Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {Login
- Function description: Logs a user into the visualisation. Checks for correct password and starts idle timer.
- Parameter:
- - User: Name of the user to be logged in
- - pwd: password of user
- }
- IF Debug THEN
- LogMessage( "----------> LOGIN <----------" );
- ENDIF;
- DIM stempNodeName AS MESSAGE;
- GetNodeName(stempNodeName,131);
- { run only if EUCHNER Login is used }
- LoggedUser=#EuchnerLoginControl10.getUserName();
- IF CCRInterestArea <> "FAILURE" THEN
- LoggedLevel=#EuchnerLoginControl10.getUserLevel(CCRInterestArea);
- { copy level read from euchner key to tag used in inTouch }
- EKS_Level = LoggedLevel;
- { copy level read from euchner key to tag sent to PLC }
- SPS_Level = LoggedLevel;
- ENDIF;
- LoggedArea=CCRInterestArea;
- tempPassword=#EuchnerLoginControl10.getHashedPassword();
- { reset bit before testing }
- OperatorFound = 0;
- { check size of operator's list file }
- OperatorListSize = InfoFile(m_path_extern + "Visu_lokal\operatorlist.txt",2, RefreshFilterFav);
- { check if logged user's name is included in text file }
- DIM Counter AS INTEGER;
- DIM Max AS INTEGER;
- MAX = OperatorListSize / 50;
- FOR Counter = 1 TO Max
- OperatorListOffset = 50 * Counter;
- IF OperatorListOffset > (OperatorListSize - 100) THEN
- OperatorListOffset = OperatorListSize - 100;
- ENDIF;
- FileReadMessage (m_path_extern + "Visu_lokal\operatorlist.txt",OperatorListOffset, OperatorListMessage, 100);
- StringOpResult = StringInString(OperatorListMessage, LoggedUser, 1,0 );
- IF StringOpResult > 0 THEN
- OperatorFound = 1;
- EXIT FOR;
- ENDIF;
- NEXT;
- IF OperatorFound == 0 THEN
- { write operator name into txt file }
- FileWriteMessage(m_path_extern + "Visu_lokal\operatorlist.txt",-1,LoggedUser + ", 0",1);
- RefreshFilterFav = 1;
- { check size of filter favorites file }
- FilterFavSize = InfoFile("D:\HMI\LogEventFilterFav\LogEventFilters.xml",2, RefreshFilterFav);
- { calculate filter favorities file offset needed to add another operator filter}
- { Trial: findout how many characters should be deleted, that there is no "</Filter_Favorites>" in txt file>
- { 1 trial: read last 19 characters }
- NumOfBytesOffset = 19;
- FileReadMessage ("D:\HMI\LogEventFilterFav\LogEventFilters.xml",FilterFavSize - NumOfBytesOffset,MessageReadFromFile, NumOfBytesOffset );
- IF MessageReadFromFile == "</Filter_Favorites>" THEN
- FilterFavOffset = FilterFavSize - NumOfBytesOffset;
- ELSE
- { 2 trial: read last 20 characters }
- NumOfBytesOffset = 20;
- FileReadMessage ("D:\HMI\LogEventFilterFav\LogEventFilters.xml",FilterFavSize - NumOfBytesOffset,MessageReadFromFile, NumOfBytesOffset );
- IF MessageReadFromFile == "</Filter_Favorites>" THEN
- FilterFavOffset = FilterFavSize - NumOfBytesOffset;
- ELSE
- { 3 trial: read last 21 characters }
- NumOfBytesOffset = 21;
- FileReadMessage ("D:\HMI\LogEventFilterFav\LogEventFilters.xml",FilterFavSize - NumOfBytesOffset,MessageReadFromFile, NumOfBytesOffset );
- IF MessageReadFromFile == "</Filter_Favorites>" THEN
- FilterFavOffset = FilterFavSize - NumOfBytesOffset;
- ENDIF;
- ENDIF;
- ENDIF;
- RefreshFilterFav = 2;
- { create filter for new operator }
- FilterFavMessage = "<Record><FilterName>" + LoggedUser + "</FilterName><Element><Name>User3</Name><OrigName>";
- { add operator name into filter favorites file - 1 part}
- FileWriteMessage("D:\HMI\LogEventFilterFav\LogEventFilters.xml", FilterFavSize - NumOfBytesOffset, FilterFavMessage, 0);
- RefreshFilterFav = 3;
- FilterFavMessage = "User3</OrigName><Operator>Like</Operator><Value>" + LoggedUser + "</Value>";
- { add operator name into filter favorites file - 2 part}
- FileWriteMessage("D:\HMI\LogEventFilterFav\LogEventFilters.xml", -1, FilterFavMessage, 0);
- RefreshFilterFav = 4;
- FilterFavMessage = "<Parent>0</Parent></Element></Record></Filter_Favorites>";
- { add operator name into filter favorites file - 3 part}
- FileWriteMessage("D:\HMI\LogEventFilterFav\LogEventFilters.xml", -1, FilterFavMessage, 0);
- RefreshFilterFav = 5;
- ENDIF;
- { update status }
- IF LoggedLevel <> 0 THEN
- ANGEMELDET=1;
- ENDIF;
- {set the Logged User for the Funktion "LogToJournal"}
- GBL_PRJ_LoggedUser = LoggedUser;
- {Massage to CCR Data Base --> LOGIN}
- CALL LogToJournal("I", "jnLoginOK", GBL_PRJ_LoggedUser, "", "", "", "");
- IF Debug THEN
- LogMessage( "----------> LOGIN - END <----------" );
- ENDIF;
Add Comment
Please, Sign In to add comment