--- a
+++ b/branches/VisonGame1805/Display_Escape_PLC/Plc Logic/Application/Function Blocks/Puzzle/VisionGameStateMachine/svnobj
@@ -0,0 +1,8 @@
+Gx_lÄG!0…jüoU-áAÛÈGk¡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  ----\\Gparser();H.CASE UM.CurrentState OFI,PACK_ML.State.Stopped:J	;K,PACK_ML.State.Aborted:L&PACK_ML.State.Idle:M2PACK_ML.State.Complete :	N.PACK_ML.State.Execute :O(	CASE Client.Mode OFPV		Mode.Mode1: // Target practise simulationQJ			IF puzzleTimer.iProcess = 25 THEN;Rº				//	SendCommand(Command := CommandType.Hint ,Value := 'Collect the object in the room.');	S			END_IFTJ			IF puzzleTimer.iProcess = 50 THEN;Uš				//SendCommand(Command := CommandType.Media ,Value := 'Padlock K000367');	V			END_IF			WJ			IF puzzleTimer.iProcess = 75 THEN;X				//Y			Z4	CASE Client.ActualStep OF[
+					\¬	0: // determine if depending on the level of the game the calibration step is needed.]P		IF Client.Level = Level.Beginner THEN;^6			Client.ActualStep := 30;_		ELSE`6			Client.ActualStep := 10;aP	10:// stappen voor het ijken van camerab2		xHide_ijkpunt := FALSE;c:		xHide_Text_Center := FALSE;d	20:ed	30: // Hide the ijkpunten Start van de visiongamef0		xHide_ijkpunt := TRUE;g8		xHide_Text_Center := TRUE;h4		xHide_Crosshair := TRUE;i4		xHide_Text_Top := FALSE;j´		parser(	sInputString := 'Welcome Sailors! You will participate in a training exercise ',k&				xStart := TRUE,l			  	);mZ		sInstructionString := parser.sOutputString;n.		IF parser.xDone THEN;o4			xHide_Button3 := FALSE;p6			IF xContinueScreen THEN;q8				Client.ActualStep := 32;r6				parser.xStart := FALSE;s4				xHide_Button3 := TRUE;t:				xContinueScreen := FALSE;u			END_IF				v
+	32:	w’		parser(	sInputString := 'Remember, this is only a combat simulation. ',x8				Client.ActualStep := 34;y	34:zÐ		parser(	sInputString := 'Your object is to Locate the practice target Leopold I of the Belgian navy ',{8				Client.ActualStep := 36;|
+	36: }š		parser(	sInputString := 'Use the Festo Vision Sensors to mark the target ',~8				Client.ActualStep := 38;	38:€				2PACK_ML.State.Resetting :‚"	StateComplete();ƒ0PACK_ML.State.Starting :„4PACK_ML.State.Completing :…0PACK_ML.State.Aborting :†.PACK_ML.State.Stopping:‡2PACK_ML.State.Clearing :	ˆEND_CASE‰.//---- Emergency ----\\ŠVIF NOT x_EmergencyGF AND x_EmergencyFF THEN‹(	 //Emergency Abort.Œ	Abort();	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 THEN“	Stop();”Interface•L{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}–JFUNCTION_BLOCK VisionGameStateMachine—VAR_IN_OUT˜.	Client : PuzzleClient;™END_VARšVAR›0	UM	: PACK_ML.UnitMode; œj	xInit				: BOOL := FALSE; // Flag for initialization:	messageQueue : MessageQueue;ž6	puzzleTimer : PuzzleTimer;Ÿ//  2parser 			: StringParser;¡// Hiding¢6xHide_Map 		: BOOL := TRUE;£<xHide_Leopold 	: BOOL := TRUE;¤>xHide_Leopold2 	: BOOL := TRUE;¥<xHide_Zeeland 	: BOOL := TRUE;¦>xHide_Rotterdam : BOOL := TRUE;§<xHide_Dolfijn 	: BOOL := TRUE;¨<xHide_ijkpunt 	: BOOL := TRUE;©>xHide_Crosshair : BOOL := TRUE;ª<xHide_Text_Top	: BOOL := TRUE;«BxHide_Text_Center 	:BOOL := TRUE;¬<xHide_Button1		: BOOL := TRUE;­<xHide_Button2		: BOOL := TRUE;®<xHide_Button3		: BOOL := TRUE;¯<sInstructionString	:  	STRING;°>sInstructionString2	:  	STRING;±2sButtonString1		:	STRING;²2sButtonString2		:	STRING;³.sTempString1		:	STRING;´.sTempString2		:	STRING;µBxContinueScreen		: BOOL := FALSE;¶"UniqueIdGenerator·558¸POULevel¹L{8e575c5b-1d37-49c6-941b-5c0ec7874787}ºStandard» ChildObjectGuids¼8System.Collections.ArrayList½,AddAttributeSubsequent¾boolÐÐ-ÐÐ	E
+æÐÐ
­$ÚÐ-ÐÐ
­%ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­lÚÐ-ÐÐ
­eÚÐ-ÐÐ
­ÚÐ-ÐÐ
­*ÚÐ-ÐÐ
­ŽÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­”ÚÐ-ÐÐ
­®ÚÐ-ÐÐ
­–ÚÐ- ÐÐ
­µÚÐ-!ÐÐ
­´ÚÐ-"ÐÐ
­÷ÚÐ-#ÐÐ
­¶ÚÐ-$ÐÐ
­·ÚÐ-%ÐÐ
­&ÚÐ-&ÐÐ
­¯ÚÐ-'ÐÐ
­©ÚÐ-(ÐÐ
­ÚÚÐ-)ÐÐ
­«ÚÐ-*ÐÐ
­¬ÚÐ-+ÐÐ
­­ÚÐ-,ÐÐ
­¹ÚÐ--ÐÐ
­ºÚÐ-.ÐÐ
­»ÚÐ-/ÐÐ
­¾ÚÐ-0ÐÐ
­¿ÚÐ-1ÐÐ
­ÀÚÐ-2ÐÐ
­ÁÚÐ-3ÐÐ
­ÂÚÐ-4ÐÐ
­ÃÚÐ-5ÐÐ
­ÄÚÐ-6ÐÐ
­ÅÚÐ-7ÐÐ
­ÆÚÐ-8ÐÐ
­ÇÚÐ-9ÐÐ
­ÈÚÐ-:ÐÐ
­ÉÚÐ-;ÐÐ
­ÎÚÐ-<ÐÐ
­ÏÚÐ-=ÐÐ
­ÐÚÐ->ÐÐ
­ÑÚÐ-?ÐÐ
­¼ÚÐ-@ÐÐ
­¸ÚÐ-'ÐÐ
­½ÚÐ-AÐÐ
­—ÚÐ-BÐÐ
­ÓÚÐ-ÐÐ
­ÕÚÐ-CÐÐ
­ÖÚÐ-DÐÐ
­×ÚÐ-EÐÐ
­•ÚÐ-ÐÐ
­“ÚÐ-ÐÐ
­ÚÐ-FÐÐ
­ÑÚÐ-ÐÐ
­ÒÚÐ-GÐÐ
­ÚÐ-ÐÐ
­ÚÐ-HÐÐ
­ÚÐ-IÐÐ
­ÚÐ-JÐÐ
­ÚÐ-KÐÐ
­ÚÐ-JÐÐ
­ÚÐ-LÐÐ
­ÚÐ-JÐÐ
­ ÚÐ-MÐÐ
­¦ÚÐ-JÐÐ
­ŸÚÐ-NÐÐ
­GÚÐ-AÐÐ
­[ÚÐ-OÐÐ
­\ÚÐ-AÐÐ
­^ÚÐ-PÐÐ
­wÚÐ-QÐÐ
­xÚÐ-RÐÐ
­yÚÐ-SÐÐ
­zÚÐ-TÐÐ
­{ÚÐ-UÐÐ
­|ÚÐ-VÐÐ
­}ÚÐ-WÐÐ
­ƒÚÐ-XÐÐ
­vÚÐ-SÐÐ
­…ÚÐ-YÐÐ
­]ÚÐ-BÐÐ
­‘ÚÐ-ÐÐ
­“ÚÐ-ZÐÐ
­”ÚÐ-[ÐÐ
­•ÚÐ-\ÐÐ
­›ÚÐ-]ÐÐ
­œÚÐ-^ÐÐ
­ ÚÐ-_ÐÐ
­¡ÚÐ-`ÐÐ
­ÚÐ-'ÐÐ
­£ÚÐ-AÐÐ
­–ÚÐ-aÐÐ
­®ÚÐ-bÐÐ
­¯ÚÐ-cÐÐ
­°ÚÐ-AÐÐ
­—ÚÐ-dÐÐ
­˜ÚÐ-eÐÐ
­¥ÚÐ-fÐÐ
­©ÚÐ-gÐÐ
­ªÚÐ-hÐÐ
­¨ÚÐ-iÐÐ
­­ÚÐ-YÐÐ
­«ÚÐ-AÐÐ
­×ÚÐ-jÐÐ
­ÚÚÐ-kÐÐ
­ÛÚÐ-lÐÐ
­ÕÚÐ-AÐÐ
­ÈÚÐ-mÐÐ
­	ÚÐ-ÐÐ
­
+ÚÐ-nÐÐ
­ÚÐ-oÐÐ
­*ÚÐ-pÐÐ
­+ÚÐ-qÐÐ
­,ÚÐ-rÐÐ
­-ÚÐ-sÐÐ
­.ÚÐ-tÐÐ
­)ÚÐ-uÐÐ
­ÚÐ-'ÐÐ
­ÔÚÐ-AÐÐ
­êÚÐ-ÐÐ
­ÞÚÐ-vÐÐ
­àÚÐ-wÐÐ
­áÚÐ-kÐÐ
­âÚÐ-lÐÐ
­ãÚÐ-AÐÐ
­äÚÐ-mÐÐ
­åÚÐ-ÐÐ
­æÚÐ-nÐÐ
­ÚÐ-oÐÐ
­$ÚÐ-pÐÐ
­%ÚÐ-xÐÐ
­&ÚÐ-rÐÐ
­'ÚÐ-sÐÐ
­(ÚÐ-tÐÐ
­#ÚÐ-VÐÐ
­ÚÐ-'ÐÐ
­ÚÐ-AÐÐ
­¸ÚÐ-ÐÐ
­ßÚÐ-AÐÐ
­™ÚÐ-yÐÐ
­íÚÐ-zÐÐ
­îÚÐ-kÐÐ
­ïÚÐ-lÐÐ
­ðÚÐ-AÐÐ
­ñÚÐ-mÐÐ
­
ÚÐ-ÐÐ
­ÚÐ-nÐÐ
­ÚÐ-oÐÐ
­ÚÐ-pÐÐ
­ÚÐ-{ÐÐ
­ÚÐ-rÐÐ
­ÚÐ-sÐÐ
­ ÚÐ-tÐÐ
­ÚÐ-VÐÐ
­ÚÐ-'ÐÐ
­óÚÐ-AÐÐ
­ëÚÐ-ÐÐ
­ìÚÐ-ÐÐ
­ºÚÐ-|ÐÐ
­øÚÐ-}ÐÐ
­ùÚÐ-kÐÐ
­úÚÐ-lÐÐ
­ûÚÐ-AÐÐ
­üÚÐ-mÐÐ
­ÚÐ-ÐÐ
­ÚÐ-nÐÐ
­ÚÐ-oÐÐ
­ÚÐ-pÐÐ
­ÚÐ-~ÐÐ
­ÚÐ-rÐÐ
­ÚÐ-sÐÐ
­ÚÐ-SÐÐ
­ÚÐ-'ÐÐ
­þÚÐ-AÐÐ
­÷ÚÐ-ÐÐ
­šÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-€ÐÐ
­’ÚÐ-BÐÐ
­üÚÐ-JÐÐ
­þÚÐ-ÐÐ
­ÚÐ-‚ÐÐ
­ÚÐ-ƒÐÐ
­ÚÐ-‚ÐÐ
­RÚÐ-„ÐÐ
­ ÚÐ-‚ÐÐ
­UÚÐ-…ÐÐ
­!ÚÐ-‚ÐÐ
­WÚÐ-†ÐÐ
­"ÚÐ-‚ÐÐ
­[ÚÐ-‡ÐÐ
­#ÚÐ-‚ÐÐ
­	ÚÐ-ˆÐÐ
­+ÚÐ-ÐÐ
­,ÚÐ-‰ÐÐ
­gÚÐ-ÐÐ
­CÚÐ-ŠÐÐ
­DÚÐ-‹ÐÐ
­EÚÐ-ŒÐÐ
­hÚÐ-ÐÐ
­-ÚÐ-ÐÐ
­.ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­fÚÐ-ŽÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­(ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-‘ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-’ÐÐ
­ÚÐ-“ÐÐ
­ÚÐ-ÐÐ
­oÚÐ-ÐÐ
­lÚÐ-ÐÐ
­kÚÐ-ÐÐ
­eÚÐ-ÐÐ
­dÚÐ-Д•Ð	E
+-ÐÐ
­/ÚÐ-–ÐÐ
­0ÚÐ-—ÐÐ
­1ÚÐ-˜ÐÐ
­2ÚÐ-™ÐÐ
­3ÚÐ-šÐÐ
­4ÚÐ-›ÐÐ
­5ÚÐ-ÐÐ
­6ÚÐ-œÐÐ
­7ÚÐ-ÐÐ
­8ÚÐ-ÐÐ
­9ÚÐ-ÐÐ
­:ÚÐ-žÐÐ
­HÚÐ-ÐÐ
­IÚÐ-ÐÐ
­JÚÐ-ŸÐÐ
­¿ÚÐ- ÐÐ
­¾ÚÐ-ÐÐ
­´ÚÐ-¡ÐÐ
­LÚÐ-¢ÐÐ
­MÚÐ-£ÐÐ
­TÚÐ-¤ÐÐ
­NÚÐ-¥ÐÐ
­OÚÐ-¦ÐÐ
­PÚÐ-§ÐÐ
­QÚÐ-¨ÐÐ
­RÚÐ-©ÐÐ
­UÚÐ-ªÐÐ
­VÚÐ-«ÐÐ
­XÚÐ-¬ÐÐ
­YÚÐ-­ÐÐ
­³ÚÐ-®ÐÐ
­žÚÐ-ÐÐ
­ZÚÐ-¯ÐÐ
­²ÚÐ-°ÐÐ
­ŸÚÐ-±ÐÐ
­±ÚÐ-²ÐÐ
­ØÚÐ-³ÐÐ
­ÙÚÐ-´ÐÐ
­ÃÚÐ-ÐÐ
­WÚÐ-µÐÐ
­ÄÚÐ-ÐÐ
­SÚÐ-ÐÐ
­;ÚÐ-ÐÐ
­<ÚÐ-™ÐÐ
­ÚÐ-ж-·и¹-º»¼н¾­
\ No newline at end of file