------------------------SDT2AccessControl----------------------------------------------------ObjectName----------------------------------------ObjectType----------------------------------------!%&()LinkEndpoints--------------------------------!%()HeadingText----------------------------------- AccessControl-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------()[8(! SYSTEM AccessControl)]}--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------,()[w(!GSDL)]}-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------()[(! f! 22!(d)[h(! 6! )[k(! 6)[n(! 6! )]][Bq(! 6! )][ t(! 6v)][9!%()HeadingText-----------------------------------!%()PageOrder------------------------------------1finitionPage------------------------------------DefinitionPage------------------------------------ !%&()LinkEndpoints--------------------------------!%()PageOrder------------------------------------------------------------------------------------------------------------------------------------------- ------------------------(! 6! !S)[8(! SYNONYM KeyMax Natural = 4; SYNONYM DoorMax Natural = 4; SYNONYM KeyTimeout Duration = 10; SYNONYM CardMax Natural = 2; SYNONYM DoorTimeout Duration = 10; SYNONYM DisplayTimeout Duration = 5; /* Sy nonym declarations for the display strings*/ SYNONYM Allocating Charstring = 'Allocating the system. Please wait...'; SYNONYM InsertMain Charstring = 'Insert main'; SYNONYM InsertCard Charstring = 'Insert card'; SYNONYM EnterCode Charstring = 'Enter code'; SYNONYM Timeout Charstring = 'Timeout'; SYNONYM PleaseWait Charstring = 'Please wait'; SYNONYM WrongInput Charstring = 'Wrong input'; SYNONYM RegisterCard Charstring = 'Start registration of user card'; SYNONYM DoorOpened Charstring = 'Door opened'; SYNON YM Registered Charstring = 'Card registered'; SYNONYM NotReg Charstring = 'Card not registered'; SYNONYM SelectDoor Charstring = 'Select door'; SYNONYM IllegalDoor Charstring = 'Illegal door';)]][9w(! 6! !S)[8 (! SYNTYPE KeyIndexType = Natural CONSTANTS 1 : KeyMax ENDSYNTYPE; NEWTYPE ReadResultType LITERALS TimedOut, Successful; ENDNEWTYPE; NEWTYPE NewReadResultType INHERITS ReadResultType ADDING LITERALS WrongInput; ENDNEWTYPE; NEWTYPE KeyArrayType  Array( KeyIndexType, Character); ENDNEWTYPE; /* When a card is validated these are the possible results. */ NEWTYPE ResultType LITERALS OK, NotOK, Main ENDNEWTYPE ResultType; SYNTYPE OKType = ResultType CONSTANTS OK, NotOK ENDSYNTYPE;)]][9(! 62! !S)[8(! REMOTE PROCEDURE Display; FPAR IN Charstring; REMOTE PROCEDURE FlashMessage; FPAR IN Charstring, Charstring; REMOTE PROCEDURE ReadCode; FPAR IN Natural, IN/OUT KeyArrayType; RETURNS ReadResultType; REMOTE PROCEDURE SelectDoor; FPAR IN/OUT Natural; RETURNS NewReadResultType; REMOTE PROCEDURE Register; FPAR IN Charstring, IN KeyArrayType; RETURNS OKType; REMOTE PROCEDURE Check; FPAR IN Charstring, IN KeyArrayType; RETURNS ResultType; REMOTE PROCEDURE Main()[(! f! 22!(d)[(! 6! )[(! 6)[(! 6! )]][B(! 6! )][ (! 6r)][(! 6L)[}(!LL!8)[(! 6! FromReader)][.~(! )[8(! 6e! Card, KeyStroke)]][(! 6QL!)][v(! 6! !S)[(! 6! Local)][(!"Lee !8)[(! 6R! FromLocal)][.(! )[8(! 6X!@ PROCEDURE Register,  PROCEDURE Check, PROCEDURE MainCardExists)]][(! 6!)][y(! 6! ^!S)[(! 6 ! Central)]]][(!L!8)[(! 6~!  ToDoors)][.(! )[8(! 6! Open, Close)]][(! 6!)][ (! 6)]][(!!8)[(! 6! ToDisplay)][.(! )[8(! 6! Display)]][(! 6p!)][(! 6)]]]]][9(! 6 ! !S)[8(!n SIGNAL KeyStroke(Character), Display(Charstring), Card(Charstring), Open(Natural), Close(Natural);)]]]]}-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------E(!4!5!7)[!(! DefinitionPage!)[!(! 1!!2!3)]]}-----------------------------------------------------------------------------------------------------------------------()[8(! use ctypes;)]}-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------#CardExists; RETURNS Boolean;)]]]]}-----------------DefinitionPage------------------------------------------------------------------------------------------------------------------------------------------ ------------------------"