Guest User

Untitled

a guest
Dec 4th, 2017
32
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.83 KB | None | 0 0
  1. {Login
  2. Function description:    Logs a user into the visualisation. Checks for correct password and starts idle timer.
  3.  
  4. Parameter:
  5.     - User: Name of the user to be logged in
  6.     - pwd: password of user
  7. }
  8.  
  9. IF Debug THEN
  10. LogMessage( "----------> LOGIN <----------" );
  11. ENDIF;
  12.  
  13.  
  14.     DIM stempNodeName AS MESSAGE;
  15.     GetNodeName(stempNodeName,131);
  16.  
  17. {  run only if EUCHNER Login is used }
  18.  
  19.       LoggedUser=#EuchnerLoginControl10.getUserName();
  20.  
  21.       IF CCRInterestArea <> "FAILURE" THEN
  22.           LoggedLevel=#EuchnerLoginControl10.getUserLevel(CCRInterestArea);      
  23.  
  24.           { copy level read from euchner key to tag used in inTouch }
  25.           EKS_Level = LoggedLevel;
  26.           { copy level read from euchner key to tag sent to PLC }
  27.           SPS_Level = LoggedLevel;
  28.       ENDIF;
  29.  
  30.  
  31.            
  32.       LoggedArea=CCRInterestArea;
  33.        tempPassword=#EuchnerLoginControl10.getHashedPassword();  
  34.  
  35. { reset bit before testing }
  36. OperatorFound = 0;
  37.  
  38. { check size of operator's list file }
  39. OperatorListSize = InfoFile(m_path_extern + "Visu_lokal\operatorlist.txt",2, RefreshFilterFav);  
  40.  
  41. { check if logged user's name is included in text file }
  42.  
  43. DIM Counter AS INTEGER;
  44. DIM Max AS INTEGER;
  45.  
  46. MAX = OperatorListSize / 50;
  47.  
  48. FOR Counter = 1 TO Max
  49.  
  50. OperatorListOffset = 50 * Counter;
  51. IF OperatorListOffset > (OperatorListSize - 100) THEN
  52.      OperatorListOffset = OperatorListSize - 100;
  53. ENDIF;
  54.  
  55. FileReadMessage (m_path_extern + "Visu_lokal\operatorlist.txt",OperatorListOffset, OperatorListMessage, 100);
  56. StringOpResult = StringInString(OperatorListMessage, LoggedUser, 1,0 );
  57.  
  58.  
  59. IF StringOpResult > 0 THEN
  60.     OperatorFound = 1;
  61.     EXIT FOR;    
  62.  
  63. ENDIF;
  64. NEXT;
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.      IF OperatorFound == 0 THEN
  72.             { write operator name into txt file }        
  73.             FileWriteMessage(m_path_extern + "Visu_lokal\operatorlist.txt",-1,LoggedUser + ", 0",1);
  74.   RefreshFilterFav = 1;
  75.  
  76.             { check size of filter favorites file }
  77.         FilterFavSize = InfoFile("D:\HMI\LogEventFilterFav\LogEventFilters.xml",2, RefreshFilterFav);                
  78. { calculate filter favorities file offset needed to add another operator filter}
  79.  
  80.            { Trial: findout how many characters should be deleted, that there is no "</Filter_Favorites>" in txt file>
  81.  
  82.            { 1 trial: read last 19 characters }
  83.             NumOfBytesOffset = 19;
  84.           FileReadMessage ("D:\HMI\LogEventFilterFav\LogEventFilters.xml",FilterFavSize - NumOfBytesOffset,MessageReadFromFile, NumOfBytesOffset );
  85.          IF MessageReadFromFile == "</Filter_Favorites>" THEN
  86.             FilterFavOffset = FilterFavSize - NumOfBytesOffset;
  87.  
  88. ELSE
  89.  
  90.     { 2 trial: read last 20 characters }
  91.             NumOfBytesOffset = 20;
  92.  FileReadMessage ("D:\HMI\LogEventFilterFav\LogEventFilters.xml",FilterFavSize - NumOfBytesOffset,MessageReadFromFile, NumOfBytesOffset );
  93.          IF MessageReadFromFile == "</Filter_Favorites>" THEN
  94.             FilterFavOffset = FilterFavSize - NumOfBytesOffset;
  95.  
  96. ELSE
  97. { 3 trial: read last 21 characters }
  98.             NumOfBytesOffset = 21;
  99.  FileReadMessage ("D:\HMI\LogEventFilterFav\LogEventFilters.xml",FilterFavSize - NumOfBytesOffset,MessageReadFromFile, NumOfBytesOffset );
  100.          IF MessageReadFromFile == "</Filter_Favorites>" THEN
  101.             FilterFavOffset = FilterFavSize - NumOfBytesOffset;
  102.             ENDIF;
  103.  
  104.             ENDIF;
  105.  
  106.             ENDIF;
  107.  
  108.  
  109.  
  110.  
  111.       RefreshFilterFav = 2;
  112.         { create filter for new operator }     
  113.             FilterFavMessage = "<Record><FilterName>" + LoggedUser + "</FilterName><Element><Name>User3</Name><OrigName>";
  114.         { add operator name into filter favorites file - 1 part}
  115.         FileWriteMessage("D:\HMI\LogEventFilterFav\LogEventFilters.xml", FilterFavSize - NumOfBytesOffset, FilterFavMessage, 0);   
  116.                         RefreshFilterFav = 3;
  117.                         FilterFavMessage = "User3</OrigName><Operator>Like</Operator><Value>" + LoggedUser + "</Value>";
  118.         { add operator name into filter favorites file - 2 part}
  119.         FileWriteMessage("D:\HMI\LogEventFilterFav\LogEventFilters.xml", -1, FilterFavMessage, 0); 
  120.                         RefreshFilterFav = 4;
  121.  FilterFavMessage = "<Parent>0</Parent></Element></Record></Filter_Favorites>";
  122.         { add operator name into filter favorites file - 3 part}
  123.         FileWriteMessage("D:\HMI\LogEventFilterFav\LogEventFilters.xml", -1, FilterFavMessage, 0);
  124.        RefreshFilterFav = 5;
  125.      ENDIF;
  126.  
  127.  
  128.  
  129.  
  130.    
  131.  
  132.      { update status }
  133.      IF LoggedLevel <> 0  THEN
  134.     ANGEMELDET=1;
  135.      ENDIF;
  136.  
  137.  
  138.      {set the Logged User for the Funktion "LogToJournal"}
  139.         GBL_PRJ_LoggedUser = LoggedUser;
  140.  
  141.      {Massage to CCR Data Base  --> LOGIN}
  142.         CALL LogToJournal("I", "jnLoginOK", GBL_PRJ_LoggedUser, "", "", "", "");
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151. IF Debug THEN
  152. LogMessage( "----------> LOGIN - END <----------" );
  153. ENDIF;
Add Comment
Please, Sign In to add comment