Advertisement
Guest User

Untitled

a guest
Dec 4th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 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;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement