------------------------SDT2?PanelController----------------------------------------------------ObjectName----------------------------------------ObjectType----------------------------------------!%&()LinkEndpoints--------------------------------!%()HeadingText----------------------------------- PanelController------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------15-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------()[8(! process type PanelController)]}-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------5()[w(!GSDL)]}-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------()[(! l! 22!(d)[(! 6dd! F)[(! 6}})[(! 6}! )]][ (! 6s})][Ap(!wFw!)[!%()HeadingText-----------------------------------!%()PageOrder-------------------------------------DeclarationsitKeyStroke--------------------------WaitOK-------------------------------------------- :!%&()LinkEndpoints--------------------------------Start_Idle_WaitKeyStroke-------------------------------------------------------------------------------------------------------------------------------- -------- --------1--------(! 6,x! G1)][`(! )][.q(! )[8(! 6! Display)]][(! 6w!Z)][.r(! )[8(! 6_! (EnvToPanel))]][(!  6wF!)]][As(!9F9!)[(! 6x! G2)][`(! )][.t(! )[8(! 6R! (PanelToControl))]][(! 69!Z)][.u (! )[8(! 6R_! (ControlToPanel))]][(! 69F!)]][9(! 6^! !S)[8(! DCL InsertMain, InsertCard, EnterCode, Timeout, PleaseWait;()[(! l! 22!(d)[h(! 6dd! 4)[k(! 6}})[n(! 6}! )]][ q(! 6;})][2t(! 6! ,!S)[8 (! VIRTUAL)][(!&^&!"&&^)[6w(! 6! !S)[8(!V InsertMain := 'Insert main', InsertCard := 'Insert card', EnterCode := 'Enter code ', Timeout := 'Timeout', PleaseWait := 'Please wait', WrongInput := 'Wrong input', RegisterCard := 'Register card', DoorOpened := 'DoorOpened', Registered := 'Card registered', SelectDoor := 'Select Door', IllegalDoor := 'Illegal Door')][7(!& &R!"&R& )[(! 6&R!Z)][3(! 6R! ,!S)[8(! WaitAllocated)][(!&&!"&&)[(! 6! d!S!)[8(! All_ Allocated)][(!&~&!"&&~)[(! 6! d!S!)[8(! Display (InsertMain))][(!&&F!"&F&)[(! 6&F!Z)][3k(! 6F! d!S)[8(! Idle)]]]]]]]]]]]][3P(! 6! ,!S)[8(! Idle)][_(!~^~!"~~^)[S(! 6! d!S!)[8(! Card (CardData))][b(!~~&!"~&~)[V(! 6&! d!S!)[8(! Card (CardData))][1e(!XX!"XX)[7Y(! 6&!!  !S)[8(! VIA G2)]]][h(!~~!"~~)[\(! 6! d!S!)[8(! Display (EnterCode))][t(!~ ~R!"~R~ )[ q(! 6R! !S)[8(! CALL ReadKeys (KEYMAX,KeyData))][w(!~!"~)[8(! 63! Successful)][(! 6 ~! d!S!)[8(! Code (KeyData))][(!!")[(! 6 ! d!S!)[8(! Display (PleaseWait))][(!x!"x)[6}(! 6 ! d!S)[8(! SET (PanelTimer))][(!@!"@)[(! 6@!Z)][3(! 6 @! d!S)[8(! WaitOk)]]]]]]]]][z(!F~!"~F)[8(! 63!  TimedOut)][&(! 6F~! d!S!)[8(! Abort)][/(!!")[,(! 6F! d!S!)[8(! Display (Timeout))][5(!x!"x)[62(! 6F! d!S)[8(! SET (PanelTimer))][;(!@!"@)[=()[(! l! 22!(d)[(! 622! 4)[(! 6KK)[(! 6K! )]][ (! 6\K)][3J(! 6! ,!S)[8(! WaitOk)][x(!",EE^!"^,)[u(! 6^! d!S!)[8(! Display_ Ok)][~(!!")[6(! 6! d!S)[8(! RESET (PanelTimer))][(!X!"X)[(! 6! d!S!)[8(! Display (SelectDoor))][(! !" )[ (! 6, ! !S)[8(! CALL ReadKeys (1,KeyData))][(!"!")[8(! 6! Successful)][6(! 6&! ,!S)[8(!$ DoorNo:= num(KeyData(1)) -num('0'))][(!!")[ (! 6X! d!S)[8(! DoorNo)][(!"F_&_&x!"&xF)[8(! 6-! 1:DOORMAX)][(! 6x!  d!S!)[8(! SelectedDoor (DoorNo))][(!&&!"&&)[(! 6! d!S!)[8(! Display (PleaseWait))][!(!&r&!"&&r)[6(! 6! d!S)[8(! SET (PanelTimer))][(!&&:!"&:&)[(! 6&:"!Z)][3(! 6:! d!S)[8(! WaitOpened)]]]]]]]]][(!"F_R_Rx!"RxF)[8(! 6R-! else)][(! 6#x! d!S!)[8(! Display (IllegalDoor))][(!RR!"RR)[ (! 6! d!S!)[8(! Abort)][(!$RrR!"RRr)[6(! 6! d!S)[8(! SET (PanelTimer))][(!RR:!"R:R)[(! 6R:!%Z)][3(! 6:! d!S)[8(! WaitDisplay)]]]]]]]]]]]]][(!",,L!",L)[8(! 6! TimedOut)][(! 6&L! d!S!)[8(! Display (Timeout))][(!,,!",,)[(! 6! d!S!)[8(! Abort)][(!',F,x!",x,F)[6(! 6x! d!S)[8(! SET (PanelTimer))][(!,,!",,)[(! 6,!(Z)][3(! 6! d!S)[8(! WaitDisplay)]]]]]]]]]]]]]]]]][(!",EE^!"^,)[w(! 6 ^! d!S!))[8(! Display_ Registered)][(!!")[y(! 6 ! d!S!)[8(! Display (Registered))][(!X!"*X)[6o(! 6 ! d!S)[8(! SET (PanelTimer))][r(! !" )[(! 6 !Z)][3(! 6+  ! d!S)[8(! WaitDisplay)]]]]]]]]][(!",EE^!"^,)[(! 6~^! d!S!)[8(! Display_ NotO,k)][(!!")[(! 6~! d!S!)[8(! Display (WrongInput))][(!X!"X)[-6(! 6~! d!S)[8(! SET (PanelTimer))][(! !" )[(! 6 !Z)][3(! 6~ ! d!S)[8.(! WaitDisplay)]]]]]]]]][(!",E@E@^!"@^,)[(! 6^! d!S!)[8(! Display_ StartReg)][(!@@/!"@@)[(! 6! d!S!)[8(! Display (RegisterCard))][(!@X@!"@@X)[(! 6@!>()[(! l! 22!(d)[(! l)[(! 6)["(! 6d! )]][ %(! 6>)][3((! 6,! ,!S)[8(! W2WaitOK--------------------------------------------WaitOpened_WaitDisplay---------------------------------------------------------------------------------------------------------------------------------- --------0----------------aitOpened)][C(!"!")[+(! 6! d!S!)[8(! Display_ DoorOpened)][F(!X!"3X)[.(! 6! d!S!)[8(! Display (DoorOpened))][I(! !" )[61(! 6 ! d!S)[84(! SET (PanelTimer))][L(!!")[(! 6!Z)][34(! 6! d!S)[8(! WaitDisplay)]]]]]]]]][[(!"5&&!"&)[X(! 6! d!S!)[8(! PanelTimer)][m(!&X&!"&&X)[^(! 66! d!S!)[8(! Display (Timeout))][g(!&& !"& &)[6a(! 6 ! d!S)[8(! SET (PanelTimer))][j(!7&&!"&&)[(! 6&!Z)][3d(! 6! d!S)[8(! WaitDisplay)]]]]]]]]]][37(! 6 ,! ,!S)[8(! 8 WaitDisplay)][O(!!")[:(! 6R! d!S!)[8(! PanelTimer)][R(!X!"X9)[=(! 6R! d!S!)[8(! Display (InsertCard))][U(! !" )[(! 6 !Z)][3@(! 6R ! ?(!4s!5!7)[!(! Declarations!)[!(! Start_Idle_WaitKeyStroke!!2)[!(! WaitOK!)[!(! WaitOpened_WaitDisplay!)]]]]}-----------------, WrongInput, RegisterCard, Registered, DoorOpened, SelectDoor, IllegalDoor Charstring; )]][9(! 6^! !S)[8(!F DCL CardData Charstring, KeyData KeyArrayType, DoorNo Integer;)]][9(!< 6X! !S)[8(!? TIMER PanelTimer := DISPLAYTIME, KeyTimer := USERTIMEOUT;)]][$(! 6R! !S)[(! 6w! ReadKeys)]]]]}--------------------------------------(! 6@!Z)][38(! 6F@! d!S)[8(! WaitDisplay)]]]]]]]]]]]]]]]]]]]]}--------------------------------------------------------------------------------------------------------------------Z)][3(! 6! d!S)[8(! Idle)]]]]]]]]]]}--------------------------------------------------------------------------------------------------------------------------------------------------------------------\d!S)[8(! Idle)]]]]]]]]]]}--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------2