--- a
+++ b/branches/SBSI/Vision_Game_PLC/Plc Logic/Application/Function Blocks/Puzzle/Vision_GameStateMachine/svnobj
@@ -0,0 +1,4 @@
+Gx_l@'!0…jüoW6õhÑÁö*¤ƒSystem.StringL{6f9dac99-8de1-4efc-8465-68ac443b7d08}SpecialFuncL{0db3d7bb-cde0-4416-9a7b-ce49a0124323}NoneImplementationL{3b83b776-fb25-43b8-99f2-3c507c9143fc}TextDocument	L{f3878285-8e4f-490b-bb1b-9acbb7eb04db}
+TextLinesL{a5de0b0b-1cb5-4913-ac21-9d70293ec00d}Id
longTagText4//---- Client init  ----\\$IF NOT xInit THEN	N	UM				(		sName := 'Normal Operation', ì							dwSupportedStates := PACK_ML.State.All - PACK_ML.State.Suspending - PACK_ML.State.Suspended - PACK_ML.State.UnSuspending - PACK_ML.Holding - PACK_ML.Held - PACK_ML.UnHolding, Ô							dwAllowsLeavingFromStates := PACK_ML.State.Stopped OR PACK_ML.State.Aborted OR PACK_ML.State.Idle, Ö							dwAllowsEnteringIntoStates := PACK_ML.State.Stopped OR PACK_ML.State.Aborted OR PACK_ML.State.Idle, \							eInitialState := PACK_ML.State.Aborted,0							xActive := TRUE);	xInit := TRUE;	END_IFD//---- Client communicatie  ----\\4IF Client.bReadyToPLC THEN:	CASE Client.iCommandToPLC OF"	0 : 	//Handshake 	1 : 	//Lock!		IF SysStrCmp(Client.sCommandToPLC, Client.LockCommands[0]) =  0 THEN		"0			//First Lock Function#Ž			SendCommand(Command:= CommandType.Key,Value:=Client.KeyCommands[0]);$–		ELSIF SysStrCmp(Client.sCommandToPLC, Client.LockCommands[1]) =  0 THEN		%2			//Second Lock Function&Ž			SendCommand(Command:= CommandType.Key,Value:=Client.KeyCommands[1]);'		END_IF(	2 : 	//Key)	3 : 	//IO*	4 : 	//Media+	5 : 	//Hint,	6 : 	//State	-p		IF SysStrCmp(Client.sCommandFromPLC, 'SC') =  0 THEN		.&			StateComplete();/x		ELSIF SysStrCmp(Client.sCommandToPLC, 'Start') =  0 THEN		0			Start();1v		ELSIF SysStrCmp(Client.sCommandToPLC, 'Stop') =  0 THEN		2			Stop();3x		ELSIF SysStrCmp(Client.sCommandToPLC, 'Reset') =  0 THEN		4			Reset();5x		ELSIF SysStrCmp(Client.sCommandToPLC, 'Abort') =  0 THEN		6			Abort();7x		ELSIF SysStrCmp(Client.sCommandToPLC, 'Clear') =  0 THEN		8			Clear();9v		ELSIF SysStrCmp(Client.sCommandToPLC, 'Hold') =  0 THEN		:			Hold();;z		ELSIF SysStrCmp(Client.sCommandToPLC, 'UnHold') =  0 THEN		<			Unhold();	=|		ELSIF SysStrCmp(Client.sCommandToPLC, 'Suspend') =  0 THEN		>			Suspend();?€		ELSIF SysStrCmp(Client.sCommandToPLC, 'UnSuspend') =  0 THEN		@			UnSuspend();A		B	END_CASEC6	Client.iCommandToPLC := 0;D8	Client.sCommandToPLC := '';E:	Client.bReadyToPLC := FALSE;FD//---- Client statemachine  ----\\G.CASE UM.CurrentState OFH,PACK_ML.State.Stopped:I	;J,PACK_ML.State.Aborted:K&PACK_ML.State.Idle:L2PACK_ML.State.Complete :	M.PACK_ML.State.Execute :N2PACK_ML.State.Resetting :O"	StateComplete();P0PACK_ML.State.Starting :Q4PACK_ML.State.Completing :R0PACK_ML.State.Aborting :S.PACK_ML.State.Stopping:T2PACK_ML.State.Clearing :	UEND_CASEV.//---- Emergency ----\\W*IF NOT Emergency THENX(	// Emergency Abort.Y	Abort();	ZEND_IF [8//---- State handling ----\\\LClient.ActualState := UM.CurrentState;]>messageQueue(Client := Client);^äpuzzleTimer(xStartTimer := UM.CurrentState = PACK_ML.State.Execute ,xPauseTimer := ,xStopTimer:= NOT (UM.CurrentState = PACK_ML.State.Execute),tMaxPuzzleTime := Client.Duration);_PClient.Progress := puzzleTimer.iProcess;`FIF puzzleTimer.iProcess >= 100 THENa	Stop();bInterfacecL{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}dLFUNCTION_BLOCK Vision_GameStateMachineeVAR_IN_OUTf.	Client : PuzzleClient;gEND_VARhVARi0	UM	: PACK_ML.UnitMode; jj	xInit				: BOOL := FALSE; // Flag for initializationk:	messageQueue : MessageQueue;lN	puzzleTimer : PuzzleTimerStateMachine;m"UniqueIdGeneratorn330oPOULevelpL{8e575c5b-1d37-49c6-941b-5c0ec7874787}qStandardr ChildObjectGuidss8System.Collections.ArrayListt,AddAttributeSubsequentuboolÐÐ-ÐÐ	E
+lÐÐ
­$ÚÐ-ÐÐ
­%ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­lÚÐ-ÐÐ
­eÚÐ-ÐÐ
­ÚÐ-ÐÐ
­*ÚÐ-ÐÐ
­ŽÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­”ÚÐ-ÐÐ
­®ÚÐ-ÐÐ
­–ÚÐ- ÐÐ
­µÚÐ-!ÐÐ
­´ÚÐ-"ÐÐ
­÷ÚÐ-#ÐÐ
­¶ÚÐ-$ÐÐ
­·ÚÐ-%ÐÐ
­&ÚÐ-&ÐÐ
­¯ÚÐ-'ÐÐ
­©ÚÐ-(ÐÐ
­ÚÚÐ-)ÐÐ
­«ÚÐ-*ÐÐ
­¬ÚÐ-+ÐÐ
­­ÚÐ-,ÐÐ
­¹ÚÐ--ÐÐ
­ºÚÐ-.ÐÐ
­»ÚÐ-/ÐÐ
­¾ÚÐ-0ÐÐ
­¿ÚÐ-1ÐÐ
­ÀÚÐ-2ÐÐ
­ÁÚÐ-3ÐÐ
­ÂÚÐ-4ÐÐ
­ÃÚÐ-5ÐÐ
­ÄÚÐ-6ÐÐ
­ÅÚÐ-7ÐÐ
­ÆÚÐ-8ÐÐ
­ÇÚÐ-9ÐÐ
­ÈÚÐ-:ÐÐ
­ÉÚÐ-;ÐÐ
­ÎÚÐ-<ÐÐ
­ÏÚÐ-=ÐÐ
­ÐÚÐ->ÐÐ
­ÑÚÐ-?ÐÐ
­¼ÚÐ-@ÐÐ
­¸ÚÐ-'ÐÐ
­½ÚÐ-AÐÐ
­—ÚÐ-BÐÐ
­ÓÚÐ-ÐÐ
­ÕÚÐ-CÐÐ
­ÖÚÐ-DÐÐ
­×ÚÐ-EÐÐ
­•ÚÐ-ÐÐ
­“ÚÐ-ÐÐ
­ÚÐ-FÐÐ
­ÚÐ-ÐÐ
­ÚÐ-GÐÐ
­ÚÐ-HÐÐ
­ÚÐ-IÐÐ
­ÚÐ-JÐÐ
­ÚÐ-IÐÐ
­ÚÐ-KÐÐ
­ÚÐ-IÐÐ
­ ÚÐ-LÐÐ
­¦ÚÐ-IÐÐ
­ŸÚÐ-MÐÐ
­üÚÐ-IÐÐ
­þÚÐ-NÐÐ
­ÚÐ-OÐÐ
­ÚÐ-PÐÐ
­ÚÐ-OÐÐ
­RÚÐ-QÐÐ
­ ÚÐ-OÐÐ
­UÚÐ-RÐÐ
­!ÚÐ-OÐÐ
­WÚÐ-SÐÐ
­"ÚÐ-OÐÐ
­[ÚÐ-TÐÐ
­#ÚÐ-OÐÐ
­	ÚÐ-UÐÐ
­+ÚÐ-ÐÐ
­,ÚÐ-VÐÐ
­gÚÐ-ÐÐ
­€ÚÐ-WÐÐ
­ÚÐ-XÐÐ
­ÚÐ-YÐÐ
­hÚÐ-ZÐÐ
­-ÚÐ-ÐÐ
­.ÚÐ-[ÐÐ
­ÚÐ-ÐÐ
­fÚÐ-\ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-]ÐÐ
­(ÚÐ-ÐÐ
­ÚÐ-^ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-_ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-`ÐÐ
­ÚÐ-aÐÐ
­ÚÐ-ÐbcÐ	E
+ÐÐ
­=ÚÐ-dÐÐ
­>ÚÐ-eÐÐ
­?ÚÐ-fÐÐ
­@ÚÐ-gÐÐ
­AÚÐ-hÐÐ
­BÚÐ-iÐÐ
­CÚÐ-ÐÐ
­DÚÐ-jÐÐ
­EÚÐ-ÐÐ
­FÚÐ-ÐÐ
­GÚÐ-kÐÐ
­HÚÐ-lÐÐ
­IÚÐ-ÐÐ
­JÚÐ-gÐÐ
­ÚÐ-Ðm-nÐop-qrsÐtu­
\ No newline at end of file