RSRC LVINLBVWx x`<i ۷jB  Z ۷jB ُ B~Vp^t\WdLVIN 4C-Dog.viLVINEnd.vi(v@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBeginPTH0%Rcx1 BeginEnd.llbEnd.viLVIN Begin NXT.vi8  @0filenamet@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd@! LASM View?*@ Program File Try Me File Extension @portPTH0+Rcx1 BeginEnd.llb Begin NXT.viLVIN Task Split.vi;( z@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeNew Taskt@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBeginPTH04Rcx1 Structures Tasks.llb Task Split.viLVINRCX Red Container.vi X@HContainers.ctl6P"@H source.ctl@Variable Timer100msConstant Motor StatusRandom No (0-32767)MotorPowerSignedDSIntrinsicIndirectGlobalRobolabFreeSampleProgram Number SensorValue SensorType SensorMode SensorRaw SensorBool ClockMinutes PBMessageDSMotorPower128Global Motor Status (0-2)DSEventType (0-15)DSEvent (0-15)DSTaskStackVarLong (0-15) Counter (0-2) Timer1msecTask Events (0-9)SystemEvent State (0-15) Timer10msecClick Counter (0-15)Upper Threshold (0-15)Lower Threshold (0-15)Hysteresis (0-15)Duration (0-15) MotorPower8 UART SetupBatteryLevel (Avg)Firmware VersionIndirect Var (0-47) Datalog type (indirectly) (0-47)'Datalog type (directly) (0-DatalogSize)!Datalog value (indirectly) (0-47)(Datalog value (directly) (0-DatalogSize) Datalog byte (indirectly) (0-47),Datalog bye (directly) (0-(3*DatalogSize-1)) GlobalVarDSIndirectGlobalInt (0-255)DSIndirectGlobalLong (0-255)DSIndirectGlobalFloat (0-255)DSIndexedGlobalAndConstantDSIndexedGlobalLongAndConstant DSStackVarDSConstantVar (0-255)DSFunctionReturnValueWordDSFunctionReturnValueLongDSFunctionReturnValueFloatsmartMotorEncodersmartMotorEncoderTargetsmartMotorEnablemotor180ReflectionDSTaskStackVarWord (0-255)DSTaskStackVarLong (0-255)DSTaskVar (0-15)DSTaskStackAddress (0-9,10)DSTaskStackSize (0-9,10)DSBadSource@variable ContainerPTH04Rcx1 Modifiers.llbRCX Red Container.viLVINRCX Loop Forever.vi(t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBeginPTH0<SwanS_AdvancedFirmware.llbRCX Loop Forever.viLVINRCX End of Forever Loop.vi(t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBeginPTH0IRcx1 StructuresWhiles Whiles.llbRCX End of Forever Loop.viLVINFill Container.vi7(@Set the the container tot@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndX@HContainers.ctl6P"@H source.ctl@Variable Timer100msConstant Motor StatusRandom No (0-32767)MotorPowerSignedDSIntrinsicIndirectGlobalRobolabFreeSampleProgram Number SensorValue SensorType SensorMode SensorRaw SensorBool ClockMinutes PBMessageDSMotorPower128Global Motor Status (0-2)DSEventType (0-15)DSEvent (0-15)DSTaskStackVarLong (0-15) Counter (0-2) Timer1msecTask Events (0-9)SystemEvent State (0-15) Timer10msecClick Counter (0-15)Upper Threshold (0-15)Lower Threshold (0-15)Hysteresis (0-15)Duration (0-15) MotorPower8 UART SetupBatteryLevel (Avg)Firmware VersionIndirect Var (0-47) Datalog type (indirectly) (0-47)'Datalog type (directly) (0-DatalogSize)!Datalog value (indirectly) (0-47)(Datalog value (directly) (0-DatalogSize) Datalog byte (indirectly) (0-47),Datalog bye (directly) (0-(3*DatalogSize-1)) GlobalVarDSIndirectGlobalInt (0-255)DSIndirectGlobalLong (0-255)DSIndirectGlobalFloat (0-255)DSIndexedGlobalAndConstantDSIndexedGlobalLongAndConstant DSStackVarDSConstantVar (0-255)DSFunctionReturnValueWordDSFunctionReturnValueLongDSFunctionReturnValueFloatsmartMotorEncodersmartMotorEncoderTargetsmartMotorEnablemotor180ReflectionDSTaskStackVarWord (0-255)DSTaskStackVarLong (0-255)DSTaskVar (0-15)DSTaskStackAddress (0-9,10)DSTaskStackSize (0-9,10)DSBadSource@variable Containerv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBeginPTH0:Rcx1CounterContainers.llbFill Container.viLVINNXT Wait for Push.vi( @Number of Clickst@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd,@Sensor Port.ctl@!Portv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBeginPTH0;Rcx1WaitFor waitfors.llbNXT Wait for Push.viLVINRCX Input 1.vi ,@Sensor Port.ctl@!PortPTH0.Rcx1 Modifiers.llbRCX Input 1.viLVINRCX Stop Tasks.vi((@*۷TaskNumberX.ctl Task Numbert@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBeginPTH08Rcx1 Structures Tasks.llbRCX Stop Tasks.viLVINContainer fork.vi;   @j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd (Container is >)v@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBegin@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd (Container is < or = )@ Compare tob@HContainers.ctl6P"@H source.ctl@Variable Timer100msConstant Motor StatusRandom No (0-32767)MotorPowerSignedDSIntrinsicIndirectGlobalRobolabFreeSampleProgram Number SensorValue SensorType SensorMode SensorRaw SensorBool ClockMinutes PBMessageDSMotorPower128Global Motor Status (0-2)DSEventType (0-15)DSEvent (0-15)DSTaskStackVarLong (0-15) Counter (0-2) Timer1msecTask Events (0-9)SystemEvent State (0-15) Timer10msecClick Counter (0-15)Upper Threshold (0-15)Lower Threshold (0-15)Hysteresis (0-15)Duration (0-15) MotorPower8 UART SetupBatteryLevel (Avg)Firmware VersionIndirect Var (0-47) Datalog type (indirectly) (0-47)'Datalog type (directly) (0-DatalogSize)!Datalog value (indirectly) (0-47)(Datalog value (directly) (0-DatalogSize) Datalog byte (indirectly) (0-47),Datalog bye (directly) (0-(3*DatalogSize-1)) GlobalVarDSIndirectGlobalInt (0-255)DSIndirectGlobalLong (0-255)DSIndirectGlobalFloat (0-255)DSIndexedGlobalAndConstantDSIndexedGlobalLongAndConstant DSStackVarDSConstantVar (0-255)DSFunctionReturnValueWordDSFunctionReturnValueLongDSFunctionReturnValueFloatsmartMotorEncodersmartMotorEncoderTargetsmartMotorEnablemotor180ReflectionDSTaskStackVarWord (0-255)DSTaskStackVarLong (0-255)DSTaskVar (0-15)DSTaskStackAddress (0-9,10)DSTaskStackSize (0-9,10)DSBadSource@variableChoose a ContainerPTH0=Rcx1 StructuresForksGTLT.llbContainer fork.viLVINRCX Fork Merge.vi9( t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeFalsev@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeTruePTH0=Rcx1 StructuresForksGTLT.llbRCX Fork Merge.viLVINNXT Light Sensor fork.vipK    @j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd (Light is >)v@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBegin@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd (Light is < or = )@Compare to (%)@! Light on?,@Sensor Port.ctl@!PortPTH0DRcx1 StructuresForksGTLT.llbNXT Light Sensor fork.viLVINRCX Input 2.vi ,@Sensor Port.ctl@!PortPTH0.Rcx1 Modifiers.llbRCX Input 2.viLVINRCX Motor forward.vi("@ Power.ctl Power Levelt@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd.@\Output Ports.ctl@!Portsv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBeginPTH04Rcx1 GeneralIO.llbRCX Motor forward.viLVINRCX Output C.vi; <@\Output Ports.ctl@!Additional Ports 20@\Output Ports.ctl@!Ports 2PTH0/Rcx1 Modifiers.llbRCX Output C.viLVIN RCX Stop A.vi(t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBeginPTH0,Rcx1 SimpleIO.llb RCX Stop A.viLVINRCX Output A.vi9 :@\Output Ports.ctl@!Additional Ports.@\Output Ports.ctl@!PortsPTH0/Rcx1 Modifiers.llbRCX Output A.viLVIN RCX Stop C.vi(t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBeginPTH0,Rcx1 SimpleIO.llb RCX Stop C.viLVINPower Level 3.vi @ Power Level 3PTH00Rcx1 Modifiers.llbPower Level 3.viLVIN RCX Stop.vi(t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd.@\Output Ports.ctl@!Portsv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBeginPTH0+Rcx1 GeneralIO.llb RCX Stop.viLVINRCX Wait for N hundredths.vi(@ Wait (sec)t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBeginPTH0CRcx1WaitFor waitfors.llbRCX Wait for N hundredths.viLVINNXT play sound file.vi(t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd@0Sound File Namev@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBeginPTH05Rcx1 RCXtoRCX.llbNXT play sound file.viLVINRCX Play Sound.vi( @ Sound Typet@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBeginPTH01Rcx1 GeneralIO.llbRCX Play Sound.viLVINMultiply to Container.vi4(@Number to multiplyt@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndX@HContainers.ctl6P"@H source.ctl@Variable Timer100msConstant Motor StatusRandom No (0-32767)MotorPowerSignedDSIntrinsicIndirectGlobalRobolabFreeSampleProgram Number SensorValue SensorType SensorMode SensorRaw SensorBool ClockMinutes PBMessageDSMotorPower128Global Motor Status (0-2)DSEventType (0-15)DSEvent (0-15)DSTaskStackVarLong (0-15) Counter (0-2) Timer1msecTask Events (0-9)SystemEvent State (0-15) Timer10msecClick Counter (0-15)Upper Threshold (0-15)Lower Threshold (0-15)Hysteresis (0-15)Duration (0-15) MotorPower8 UART SetupBatteryLevel (Avg)Firmware VersionIndirect Var (0-47) Datalog type (indirectly) (0-47)'Datalog type (directly) (0-DatalogSize)!Datalog value (indirectly) (0-47)(Datalog value (directly) (0-DatalogSize) Datalog byte (indirectly) (0-47),Datalog bye (directly) (0-(3*DatalogSize-1)) GlobalVarDSIndirectGlobalInt (0-255)DSIndirectGlobalLong (0-255)DSIndirectGlobalFloat (0-255)DSIndexedGlobalAndConstantDSIndexedGlobalLongAndConstant DSStackVarDSConstantVar (0-255)DSFunctionReturnValueWordDSFunctionReturnValueLongDSFunctionReturnValueFloatsmartMotorEncodersmartMotorEncoderTargetsmartMotorEnablemotor180ReflectionDSTaskStackVarWord (0-255)DSTaskStackVarLong (0-255)DSTaskVar (0-15)DSTaskStackAddress (0-9,10)DSTaskStackSize (0-9,10)DSBadSource@variable Containerv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBeginPTH0ARcx1CounterContainers.llbMultiply to Container.viLVINNXT Wait for Loud.vi;t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBegin@Cutoff Sound Level@!Flat Response?,@Sensor Port.ctl@!PortPTH0;Rcx1WaitFor waitfors.llbNXT Wait for Loud.viLVINRCX Input 3.vi ,@Sensor Port.ctl@!PortPTH0.Rcx1 Modifiers.llbRCX Input 3.vi<<Pc cL P d-` `0filename`Set the the container to`! Light on?h Compare to`Compare to (%)`0Sound File Name` Sound Type" P@@`Number to multiply`Cutoff Sound Level` Wait (sec)`!Flat Response? c$ c c c<t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd c<t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd c<t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndt@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd c<t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndt@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd c<@ Power Level 3:@\Output Ports.ctl@!Additional Portst@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd c<@ Power Level 3<@\Output Ports.ctl@!Additional Ports 2t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd c<@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd (Light is < or = ) c<@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd (Light is >) cL@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd (Container is < or = ),@Sensor Port.ctl@!Port c<<@\Output Ports.ctl@!Additional Ports 2@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd (Container is >) cDt@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndX@HContainers.ctl6P"@H source.ctl@Variable Timer100msConstant Motor StatusRandom No (0-32767)MotorPowerSignedDSIntrinsicIndirectGlobalRobolabFreeSampleProgram Number SensorValue SensorType SensorMode SensorRaw SensorBool ClockMinutes PBMessageDSMotorPower128Global Motor Status (0-2)DSEventType (0-15)DSEvent (0-15)DSTaskStackVarLong (0-15) Counter (0-2) Timer1msecTask Events (0-9)SystemEvent State (0-15) Timer10msecClick Counter (0-15)Upper Threshold (0-15)Lower Threshold (0-15)Hysteresis (0-15)Duration (0-15) MotorPower8 UART SetupBatteryLevel (Avg)Firmware VersionIndirect Var (0-47) Datalog type (indirectly) (0-47)'Datalog type (directly) (0-DatalogSize)!Datalog value (indirectly) (0-47)(Datalog value (directly) (0-DatalogSize) Datalog byte (indirectly) (0-47),Datalog bye (directly) (0-(3*DatalogSize-1)) GlobalVarDSIndirectGlobalInt (0-255)DSIndirectGlobalLong (0-255)DSIndirectGlobalFloat (0-255)DSIndexedGlobalAndConstantDSIndexedGlobalLongAndConstant DSStackVarDSConstantVar (0-255)DSFunctionReturnValueWordDSFunctionReturnValueLongDSFunctionReturnValueFloatsmartMotorEncodersmartMotorEncoderTargetsmartMotorEnablemotor180ReflectionDSTaskStackVarWord (0-255)DSTaskStackVarLong (0-255)DSTaskVar (0-15)DSTaskStackAddress (0-9,10)DSTaskStackSize (0-9,10)DSBadSource@variable Container c<t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd c<t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd c<t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd c< c<X@HContainers.ctl6P"@H source.ctl@Variable Timer100msConstant Motor StatusRandom No (0-32767)MotorPowerSignedDSIntrinsicIndirectGlobalRobolabFreeSampleProgram Number SensorValue SensorType SensorMode SensorRaw SensorBool ClockMinutes PBMessageDSMotorPower128Global Motor Status (0-2)DSEventType (0-15)DSEvent (0-15)DSTaskStackVarLong (0-15) Counter (0-2) Timer1msecTask Events (0-9)SystemEvent State (0-15) Timer10msecClick Counter (0-15)Upper Threshold (0-15)Lower Threshold (0-15)Hysteresis (0-15)Duration (0-15) MotorPower8 UART SetupBatteryLevel (Avg)Firmware VersionIndirect Var (0-47) Datalog type (indirectly) (0-47)'Datalog type (directly) (0-DatalogSize)!Datalog value (indirectly) (0-47)(Datalog value (directly) (0-DatalogSize) Datalog byte (indirectly) (0-47),Datalog bye (directly) (0-(3*DatalogSize-1)) GlobalVarDSIndirectGlobalInt (0-255)DSIndirectGlobalLong (0-255)DSIndirectGlobalFloat (0-255)DSIndexedGlobalAndConstantDSIndexedGlobalLongAndConstant DSStackVarDSConstantVar (0-255)DSFunctionReturnValueWordDSFunctionReturnValueLongDSFunctionReturnValueFloatsmartMotorEncodersmartMotorEncoderTargetsmartMotorEnablemotor180ReflectionDSTaskStackVarWord (0-255)DSTaskStackVarLong (0-255)DSTaskVar (0-15)DSTaskStackAddress (0-9,10)DSTaskStackSize (0-9,10)DSBadSource@variable Containert@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd cDt@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd,@Sensor Port.ctl@!Port c<z@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeNew Task c<t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd c<t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd c<t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd c<,@Sensor Port.ctl@!Portt@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd c<z@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeNew Task c<t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd c<@ Sound Typet@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd c<X@HContainers.ctl6P"@H source.ctl@Variable Timer100msConstant Motor StatusRandom No (0-32767)MotorPowerSignedDSIntrinsicIndirectGlobalRobolabFreeSampleProgram Number SensorValue SensorType SensorMode SensorRaw SensorBool ClockMinutes PBMessageDSMotorPower128Global Motor Status (0-2)DSEventType (0-15)DSEvent (0-15)DSTaskStackVarLong (0-15) Counter (0-2) Timer1msecTask Events (0-9)SystemEvent State (0-15) Timer10msecClick Counter (0-15)Upper Threshold (0-15)Lower Threshold (0-15)Hysteresis (0-15)Duration (0-15) MotorPower8 UART SetupBatteryLevel (Avg)Firmware VersionIndirect Var (0-47) Datalog type (indirectly) (0-47)'Datalog type (directly) (0-DatalogSize)!Datalog value (indirectly) (0-47)(Datalog value (directly) (0-DatalogSize) Datalog byte (indirectly) (0-47),Datalog bye (directly) (0-(3*DatalogSize-1)) GlobalVarDSIndirectGlobalInt (0-255)DSIndirectGlobalLong (0-255)DSIndirectGlobalFloat (0-255)DSIndexedGlobalAndConstantDSIndexedGlobalLongAndConstant DSStackVarDSConstantVar (0-255)DSFunctionReturnValueWordDSFunctionReturnValueLongDSFunctionReturnValueFloatsmartMotorEncodersmartMotorEncoderTargetsmartMotorEnablemotor180ReflectionDSTaskStackVarWord (0-255)DSTaskStackVarLong (0-255)DSTaskVar (0-15)DSTaskStackAddress (0-9,10)DSTaskStackSize (0-9,10)DSBadSource@variable Containert@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd cD@0filename c, c, c, c, c, c, c, c, c, c, c, c, c c dh)t;4; d2@('D<;dogC( Buuuhh.rso K2 (:fXv$ 0<484 L.J dp  (H  BD  09p3 1x / P.v (L H , +N ,) l& %$ dD dD  Dr| X L H ||\>L|PzVIDS 4C-Dog.viVIDS Task Split.viPTH0VIDSRCX Wait for N hundredths.viPTH0VIDS RCX Stop.viPTH0VIDSRCX Stop Tasks.viPTH0VIDS RCX Stop C.viPTH0VIDS RCX Stop A.viPTH0VIDSRCX Red Container.viTLDPTH0VIDSRCX Play Sound.vi|PTH0VIDSRCX Output C.vid\PTH0VIDSRCX Output A.vih`PTH0VIDSRCX Motor forward.viPTH0VIDSRCX Loop Forever.viPTH0VIDSRCX Input 3.viXPTH0VIDSRCX Input 2.viPPTH0VIDSRCX Input 1.viHPTH0VIDSRCX Fork Merge.viPTH0VIDSRCX End of Forever Loop.viPTH0VIDSPower Level 3.viplPTH0VIDSNXT Wait for Push.viPTH0VIDSNXT Wait for Loud.viPTH0VIDSNXT play sound file.viPTH0VIDSNXT Light Sensor fork.viPTH0VIDSMultiply to Container.viPTH0VIDSFill Container.vixPTH0VIDSEnd.viPTH0VIDSContainer fork.viPTH0VIDS Begin NXT.vitPTH0O LPOWXMH0 code@O 9w> b10H"\8bP!|dx|CxbkA}hN!A8!@,@H,@H|a|i8`N !8@|cx<2`$A|N!A8!@,@K}t}ky@H0}t}kyAK@9$99!8(8bx< `A|N!A8!@9x9x!84b < `A|N!A8!@,AH,$l"}kyAH9|:"H"T> b11ܒ"\8bPDUbk@}hN 9v}t|h@H9v}t|h@H9|" }kyAH9:""T> b12`"\8bPHUbk@}hN 9v}t|h@H9v}t|h@H\9"}kyAH89:""T> b12"\8bPLUbk@}hN 9v}t|h@H9v}t|h@H9"}kyAH9:""T> b13h"\8bPPUbk@}hN 9v}t|h@H9v}t|h@HT9"}kyAH9:""T> b13"\8bPTUbk@}hN 9v}t|h@H9v}t|h@H9"}kyAH`9:"X"T> b14p"\8bPXUbk@}hN 9v}t|h@H9v}t|h@HL9"}kyAH9:"("T> b14"\8bP\Ubk@}hN 9v}t|h@H9v}t|h@H9""}kyAH9:""T> b15x"\8bP`Ubk@}hN 9v}t|h@H9v}t|h@HD9"&}kyAH9:"Ȓ"T> b15"\8bPdUbk@}hN 9v}t|h@H9v}t|h@H9"*}kyAH@9:""T> b16"\8bPhUbk@}hN 9v}t|h@H9v}t|h@H<9".}kyAH9p9> b18"p9> b19"9> b1<Ԓ"9> b1@"9D> b1E"09t> b1G"`9> b1I"9> b1J"9> b1K"94> b1L" !8888b<2`8A|N!A8!@!8888bd<2`8A|N!A8!@H 9}t|h@H9"/}t}kyAH:"h"h> b18h"p8bdlUbk@}hN 9}t|h@H9}t|h@H 9"2}kyAH!8d888b<2`8A|N!A8!@,@HHa|i8`N 9}t|h@H9"3}t}kyAH<:"8"> b19l"8bpUbk@}hN 9}t|h@H9}t|h@H 9"6}kyAH!8888b<2`8A|N!A8!@,@HHa|i8`N 9v}t|h@H9"7}t}kyAHt:,@H ,:,@H 4:$,@H <:,:""T> b1:Ȓ"\8bPtUbk@}hN 9v}t|h@H9v}t|h@H9":}kyAH9:""T> b1;L"\8bPxUbk@}hN 9v}t|h@H9v}t|h@H(9">}kyAH9:"0"T> b1;В"\8bP|Ubk@}hN 9v}t|h@H9v}t|h@H9"B}kyAH9:" В"T> b1 b1=<"8bĂUbk@}hN 9}t|h@H9}t|h@H 9"J}kyAHД!8888b<2`8A|N!A8!@H9v}t|h@H|9"K}t}kyAH:,@H : ,:" "T> b1>L"\8bPUbk@}hN 9v}t|h@H9v}t|h@H9"N}kyAH89:" "T> b1>В"\8bPUbk@}hN 9v}t|h@H9v}t|h@HP9Ă"R}kyAH9Ȃ:,@H : l:" P"T> b1?|"\8bPUbk@}hN 9v}t|h@H9v}t|h@H9Ȃ"V}kyAH9:" "T> b1@"\8bPUbk@}hN 9v}t|h@H9v}t|h@H 9̂"Z}kyAH8> b1N"\!8P888bP<2`8A|N!A8!@,@HH$a|i8`N 9}t|h@H49Ђ"[}t}kyAH:" "> b1A"8bUbk@}hN 9}t|h@H9}t|h@H9Ђ"^}kyAH9:" ("> b1A"8bUbk@}hN 9}t|h@H9}t|h@H09Ԃ"b}kyAHX9:" Ȓ"> b1B"8bUbk@}hN 9}t|h@H9}t|h@H9؂"f}kyAH9:" "> b1B"8bUbk@}hN 9}t|h@H9}t|h@H(9܂"j}kyAH9:" ("> b1C "8bUbk@}hN 9}t|h@H9}t|h@H9"n}kyAH9:" Ȓ"> b1C"8bUbk@}hN 9}t|h@H9}t|h@H 9"r}kyAH8!8888bP<2`8A|N!A8!@,@HH a|i8`N 9}t|h@H$9"s}t}kyAH:" h"> b1D"8bĂUbk@}hN 9}t|h@H9}t|h@H9"v}kyAH9:" "> b1E,"8bĂUbk@}hN 9}t|h@H9}t|h@H 9"z}kyAHd!8888b$<2`8A|N!A8!@H9J}t|h@H9"{}t}kyAH4:""(> b1F"08b$Ubk@}hN 9J}t|h@H9J}t|h@H 9"~}kyAH!8$888b<2`8A|N!A8!@,@HHa|i8`N 9}t|h@H9"}t}kyAH:"0"> b1G"8bĂUbk@}hN 9}t|h@H9}t|h@H 9"}kyAHh!8888bT<2`8A|N!A8!@H9z}t|h@H9"}t}kyAH8:"В"X> b1H"`8bTUbk@}hN 9z}t|h@H9z}t|h@H 9"}kyAH!8T888b<2`8A|N!A8!@,@HHa|i8`N 9}t|h@H9"}t}kyAH:"p"> b1I"8bĂĀUbk@}hN 9}t|h@H9}t|h@H 9"}kyAHl!8888b<2`8A|N!A8!@,@HHa|i8`N 9}t|h@H9"}t}kyAH :""> b1J"8bȀUbk@}hN 9}t|h@H9}t|h@H 9"}kyAH!8888b<2`8A|N!A8!@,@HHa|i8`N 9}t|h@H9"}t}kyAH:""> b1K "8b̀Ubk@}hN 9}t|h@H9}t|h@H 9"}kyAHT!8888b<2`8A|N!A8!@,@HHa|i8`N 9 }t|h@H9"}t}kyAH:" "> b1L"8b䂢ЀUbk@}hN 9 }t|h@H9 }t|h@H 9"}kyAHȔ!8888b<2`8A|N!A8!@,@HHa|i8`N 9:}t|h@H9 "}t}kyAH|:""> b1M" 8bԀUbk@}hN 9:}t|h@H9:}t|h@H(9 "}kyAH<9:"@"> b1M" 8b؀Ubk@}hN 9:}t|h@H9:}t|h@H9"}kyAH9:""> b1N" 8b܀Ubk@}hN 9:}t|h@H9:}t|h@H 9"}kyAH!8888bP<2`8A|N!A8!@,@HHa|i8`N 9v}t|h@H"}t}kyAHh}t}ky@H}t}kyAH}t}kyAH쉢+}t}kyAH!8b@<2`+TA|N!A8!@,@Kx,@H|qx Q~N a|i8`N 9 w> b1O"\8bP!|dx|CxbkA}hN!A8!@,@KX,@KL,@K,@K K9 wK9wK|rx|Qx~-UL9'~#x!|dx|CxbkA}hN!A8!@,AHa|i8`N |qx|Bx~(N P >bPKl|Qx~->bP䒱 9'~#x!|dx|CxbkA}hN!A8!@,AHa|i8`N |qx|Bx~(N P H>bQ8KLP >bQtKP >bQKP>bQKP>bR(K\PX>bRdK P(>bRKP  >bRKP >bSKlP( >bSTK0P >bSKd h>bSKd " >bTK|  8>bTDK@  # >bTKP  >bTKP >bTKP x 0>bU4KPP  >bUpKP >bUK h p>bUK h h>bV$K`P , >bV`K$Px, >bVKP,  P>bVKP,! >bWKpP,,(>bWPK4 >bWK<" (>bWK# >bXKD$ >bX@KD% (>bX|KL& >bXK(>bXKXX h>bY0KTX' >bYlKXX(>bYK$@>bYK$@@*%>bZ KdD 0>bZ\K(DD+ >bZKT, ! >bZKT,,-!"!>b[Kt0!"!p>b[LK800."#">b[K4"#">b[K44/#$#>b\K8#$#>b\b\xK <$%$ >b\K<<1%%%>b\KH%&%>b],KX@H2&&''@>b]hKH3''((>b]KHH(((>b]KP(>b^Khy}hN "D,@H81!8P~#xbDkkk A}hN!A8!@"H,@H81!8P~#xbHkkk A}hN!A8!@"L,@H81!8P~#xbLkkk A}hN!A8!@"P,@H81!8P~#xbPkkk A}hN!A8!@"T,@H81!8P~#xbTkkk A}hN!A8!@"X,@H81!8P~#xbXkkk A}hN!A8!@"\,@H81!8P~#xb\kkk A}hN!A8!@"`,@H81!8P~#xb`kkk A}hN!A8!@"d,@H81!8P~#xbdkkk A}hN!A8!@"h,@H81!8P~#xbhkkk A}hN!A8!@"l,@H81!8d~#xblkkk A}hN!A8!@"p,@H81!8~#xbpkkk A}hN!A8!@"t,@H81!8P~#xbtkkk A}hN!A8!@"x,@H81!8P~#xbxkkk A}hN!A8!@"|,@H81!8P~#xb|kkk A}hN!A8!@",@H81!8P~#xbkkk A}hN!A8!@",@H81!8~#xbkkk A}hN!A8!@",@H81!8P~#xbkkk A}hN!A8!@",@H81!8P~#xbkkk A}hN!A8!@",@H81!8P~#xbkkk A}hN!A8!@",@H81!8P~#xbkkk A}hN!A8!@",@H81!8~#xbkkk A}hN!A8!@",@H81!8~#xbkkk A}hN!A8!@",@H81!8~#xbkkk A}hN!A8!@",@H81!8~#xbkkk A}hN!A8!@",@H81!8~#xbkkk A}hN!A8!@",@H81!8~#xbkkk A}hN!A8!@",@H81!8~#xbkkk A}hN!A8!@",@H81!8~#xbkkk A}hN!A8!@",@H81!8$~#xbkkk A}hN!A8!@",@H81!8~#xbkkk A}hN!A8!@",@H81!8T~#xbkkk A}hN!A8!@",@H81!8~#xbākkk A}hN!A8!@",@H81!8~#xbȁkkk A}hN!A8!@",@H81!8~#xb́kkk A}hN!A8!@",@H81!8~#xbЁkkk A}hN!A8!@",@H81!8~#xbԁkkk A}hN!A8!@",@H81!8~#xb؁kkk A}hN!A8!@",@H81!8~#xb܁kkk A}hN!A8!@H\|=a,l}hN!A!8@~Cx<2`0ؐA|N!A8!@,AKLy}hN 9LD}ky@H"D1q bL:̒l9p=aT9X=PTaAB\"H"P:"H"H9H}ky@H"H1q b: L<9@=a$9(=PTaAB,"H" :""H9쁢L}ky@H"L1q b: d 9=a9=PTaAB"H":""H9P}ky@H"P1q b:9=a9=PTaAB̂"H":""H9T}ky@H"T1q b: 9=a9=PTaAB"H":""H9\X}ky@H"X1q b\: |9=ad9h=PTaABl"H"`:"X"H9,\}ky@H"\1q b,:HD=H=a498=PTaAB<"H"0:"("H9`}ky@H"`1q b:==a9 =PTaAB "H":""H9́d}ky@H"d1q b:ܒ==a9 =PTaAB܂"H":"Ȓ"H9h}ky@H"h1q b:ܒ9=a9 =PTaAB"H":""H9ll}ky@H"l1q bl:D9=at9 x=PTaAB|"H"p:"h"H9<p}ky@H"p1q b<:ܒ\9`=aD9 H=PTaABL"H"@:"8"H9t}ky@H"t1q b:4 9:В9= =(=0=a9=PTaAB"H":""H9x}ky@H"x1q b:9:p9:̒9:В9=a9=PTaAB"H":""H94|}ky@H"|1q b4:lL9P: T9X:pd9h=a<9@=PTaABD"H"8:"0"H9 ԁ}ky@H"1q b : 9 : P 9 : 9=a 9 =PTaAB "H" :" В"H9 t}ky@H"1q b t: ̒ 9 : 9 : 9 =a |9 =PTaAB "H" x:" p"H9 }ky@H"1q b =@ 0: 49 8: L <9 @: P D9 H=a 9 =PTaAB $"H" :" "H9 }ky@H"1q b : 9 : 9 : 9 =a 9 =PTaAB Ă"H" :" "H9 T}ky@H"1q b T=@ p: , t9 x: 9 =a \9 `=PTaAB d"H" X:" P"H9 }ky@H"1q b : , $9 (=a 9 =PTaAB "H" :" "H9 }ky@H"1q b : l 9 : ̒ 9 =a 9 =PTaAB "H" :" "H9 ,}ky@H"1q b ,:  D9 H: l L9 P:4 T9 X:< \9 `: d9 h=a 49 8=PTaAB <"H" 0:" ("H9 ́}ky@H"1q b :0 9 : d 9 :  9 :  9 =a 9 =PTaAB ܂"H" :" Ȓ"H9 }ky@H"1q b :8 9 : d 9 =a 9 =PTaAB "H" :" "H9 ,}ky@H"1q b ,:  L9 P: d \9 `=a 49 8=PTaAB <"H" 0:" ("H9 ́}ky@H"1q b :  9 =a 9 =PTaAB ܂"H" :" Ȓ"H9 l}ky@H"1q b l: D 9 : 9 =a t9 x=PTaAB |"H" p:" h"H9 }ky@H"1q b : 9 : D $9 (:| ,9 0: 49 8: d <9 @=a 9 =PTaAB "H" :" "H9}ky@H"1q b:9:ܒ9:9=a9=PTaAB"H":""H94}ky@H"1q b4: L9P:|T9X:\9`:d9h:l9p:t9x=a<9 @=PTaABD"H"8:"0"H9ԁ}ky@H"1q b:L9: 9=a9!=PTaAB"H":"В"H9t}ky@H"Ă1q bt:9:9=a|9"=PTaAB"H"x:"p"H9 }ky@H"Ȃ1q b :D$9(:|,90:H498:L<9@=a9#=PTaAB"H":""H9}ky@H"̂1q b:ܒ9:\9:9:9=a9$=PTaAB"H":""H9$}ky@H"Ђ1q b$:ܒD9H:\L9P:|T9X=a,9%0=PTaAB4"H"(:" "H9}ky@H"Ԃ1q b:|9:ܒ9:9=a9&=PTaAB"H":""H9D}ky@H"؂1q bD:d9h:|t9x=aL9'P=PTaABT"H"H:"@"H9䁢}ky@H"܂1q b:9=a9(=PTaAB"H":""H!b<D` b1hĒ5 > b1|t5> b105@> b1|5D!8|Cx< `HA|N!A8!@y}hN @   |LlTX@DHLP\ 8L0LM 0 u8L\L,!H.,'`%$%!)|)@--!%D&&p!'$"8)"p-x-<**l + *++\\-,4,+#H,,L#($#$$T#d *0)&4%%&''()"t(P("(LLLM( (08 $  4LT\`P CODE@XO (`q7.0b71Oldest compatible LabVIEW.`X< pPPP~NI.LV.ALL.VILastSavedTarget0MacNI.LV.ALL.goodSyntaxTargets%@0MacPort 1: touch sensor Port 2: light sensor Port 3: sound sensor Port 4: distance sensor Port A: motor Port B: lamp Port C: motor %.0f%.0f%.0f%.0f%.0f%.0f%.0fMHFIUPPPPPUPPPPPPPPPPPPUPPUPPUPPPPhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhsDTHPD88ss~pv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBegin(v@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBegin"@0filenamet@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd@! LASM View?:*@ Program File Try Me File Extension @port8  @0filenamet@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd@! LASM View?*@ Program File Try Me File Extension @portz@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeNew Taskx( z@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeNew Taskt@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBegindX@HContainers.ctl6P"@H source.ctl@Variable Timer100msConstant Motor StatusRandom No (0-32767)MotorPowerSignedDSIntrinsicIndirectGlobalRobolabFreeSampleProgram Number SensorValue SensorType SensorMode SensorRaw SensorBool ClockMinutes PBMessageDSMotorPower128Global Motor Status (0-2)DSEventType (0-15)DSEvent (0-15)DSTaskStackVarLong (0-15) Counter (0-2) Timer1msecTask Events (0-9)SystemEvent State (0-15) Timer10msecClick Counter (0-15)Upper Threshold (0-15)Lower Threshold (0-15)Hysteresis (0-15)Duration (0-15) MotorPower8 UART SetupBatteryLevel (Avg)Firmware VersionIndirect Var (0-47) Datalog type (indirectly) (0-47)'Datalog type (directly) (0-DatalogSize)!Datalog value (indirectly) (0-47)(Datalog value (directly) (0-DatalogSize) Datalog byte (indirectly) (0-47),Datalog bye (directly) (0-(3*DatalogSize-1)) GlobalVarDSIndirectGlobalInt (0-255)DSIndirectGlobalLong (0-255)DSIndirectGlobalFloat (0-255)DSIndexedGlobalAndConstantDSIndexedGlobalLongAndConstant DSStackVarDSConstantVar (0-255)DSFunctionReturnValueWordDSFunctionReturnValueLongDSFunctionReturnValueFloatsmartMotorEncodersmartMotorEncoderTargetsmartMotorEnablemotor180ReflectionDSTaskStackVarWord (0-255)DSTaskStackVarLong (0-255)DSTaskVar (0-15)DSTaskStackAddress (0-9,10)DSTaskStackSize (0-9,10)DSBadSource@variable Containerth X@HContainers.ctl6P"@H source.ctl@Variable Timer100msConstant Motor StatusRandom No (0-32767)MotorPowerSignedDSIntrinsicIndirectGlobalRobolabFreeSampleProgram Number SensorValue SensorType SensorMode SensorRaw SensorBool ClockMinutes PBMessageDSMotorPower128Global Motor Status (0-2)DSEventType (0-15)DSEvent (0-15)DSTaskStackVarLong (0-15) Counter (0-2) Timer1msecTask Events (0-9)SystemEvent State (0-15) Timer10msecClick Counter (0-15)Upper Threshold (0-15)Lower Threshold (0-15)Hysteresis (0-15)Duration (0-15) MotorPower8 UART SetupBatteryLevel (Avg)Firmware VersionIndirect Var (0-47) Datalog type (indirectly) (0-47)'Datalog type (directly) (0-DatalogSize)!Datalog value (indirectly) (0-47)(Datalog value (directly) (0-DatalogSize) Datalog byte (indirectly) (0-47),Datalog bye (directly) (0-(3*DatalogSize-1)) GlobalVarDSIndirectGlobalInt (0-255)DSIndirectGlobalLong (0-255)DSIndirectGlobalFloat (0-255)DSIndexedGlobalAndConstantDSIndexedGlobalLongAndConstant DSStackVarDSConstantVar (0-255)DSFunctionReturnValueWordDSFunctionReturnValueLongDSFunctionReturnValueFloatsmartMotorEncodersmartMotorEncoderTargetsmartMotorEnablemotor180ReflectionDSTaskStackVarWord (0-255)DSTaskStackVarLong (0-255)DSTaskVar (0-15)DSTaskStackAddress (0-9,10)DSTaskStackSize (0-9,10)DSBadSource@variable Container(t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBegin(t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBegin.@Set the the container to|p(@Set the the container tot@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndX@HContainers.ctl6P"@H source.ctl@Variable Timer100msConstant Motor StatusRandom No (0-32767)MotorPowerSignedDSIntrinsicIndirectGlobalRobolabFreeSampleProgram Number SensorValue SensorType SensorMode SensorRaw SensorBool ClockMinutes PBMessageDSMotorPower128Global Motor Status (0-2)DSEventType (0-15)DSEvent (0-15)DSTaskStackVarLong (0-15) Counter (0-2) Timer1msecTask Events (0-9)SystemEvent State (0-15) Timer10msecClick Counter (0-15)Upper Threshold (0-15)Lower Threshold (0-15)Hysteresis (0-15)Duration (0-15) MotorPower8 UART SetupBatteryLevel (Avg)Firmware VersionIndirect Var (0-47) Datalog type (indirectly) (0-47)'Datalog type (directly) (0-DatalogSize)!Datalog value (indirectly) (0-47)(Datalog value (directly) (0-DatalogSize) Datalog byte (indirectly) (0-47),Datalog bye (directly) (0-(3*DatalogSize-1)) GlobalVarDSIndirectGlobalInt (0-255)DSIndirectGlobalLong (0-255)DSIndirectGlobalFloat (0-255)DSIndexedGlobalAndConstantDSIndexedGlobalLongAndConstant DSStackVarDSConstantVar (0-255)DSFunctionReturnValueWordDSFunctionReturnValueLongDSFunctionReturnValueFloatsmartMotorEncodersmartMotorEncoderTargetsmartMotorEnablemotor180ReflectionDSTaskStackVarWord (0-255)DSTaskStackVarLong (0-255)DSTaskVar (0-15)DSTaskStackAddress (0-9,10)DSTaskStackSize (0-9,10)DSBadSource@variable Containerv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBegin&@Number of Clicks8,@Sensor Port.ctl@!PortH<( @Number of Clickst@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd,@Sensor Port.ctl@!Portv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBeginH< ,@Sensor Port.ctl@!Port4(@*۷TaskNumberX.ctl Task Number6&((@*۷TaskNumberX.ctl Task Numbert@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBegin@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd (Container is >)@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd (Container is < or = )@ Compare torb@HContainers.ctl6P"@H source.ctl@Variable Timer100msConstant Motor StatusRandom No (0-32767)MotorPowerSignedDSIntrinsicIndirectGlobalRobolabFreeSampleProgram Number SensorValue SensorType SensorMode SensorRaw SensorBool ClockMinutes PBMessageDSMotorPower128Global Motor Status (0-2)DSEventType (0-15)DSEvent (0-15)DSTaskStackVarLong (0-15) Counter (0-2) Timer1msecTask Events (0-9)SystemEvent State (0-15) Timer10msecClick Counter (0-15)Upper Threshold (0-15)Lower Threshold (0-15)Hysteresis (0-15)Duration (0-15) MotorPower8 UART SetupBatteryLevel (Avg)Firmware VersionIndirect Var (0-47) Datalog type (indirectly) (0-47)'Datalog type (directly) (0-DatalogSize)!Datalog value (indirectly) (0-47)(Datalog value (directly) (0-DatalogSize) Datalog byte (indirectly) (0-47),Datalog bye (directly) (0-(3*DatalogSize-1)) GlobalVarDSIndirectGlobalInt (0-255)DSIndirectGlobalLong (0-255)DSIndirectGlobalFloat (0-255)DSIndexedGlobalAndConstantDSIndexedGlobalLongAndConstant DSStackVarDSConstantVar (0-255)DSFunctionReturnValueWordDSFunctionReturnValueLongDSFunctionReturnValueFloatsmartMotorEncodersmartMotorEncoderTargetsmartMotorEnablemotor180ReflectionDSTaskStackVarWord (0-255)DSTaskStackVarLong (0-255)DSTaskVar (0-15)DSTaskStackAddress (0-9,10)DSTaskStackSize (0-9,10)DSBadSource@variableChoose a Container  ;   @j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd (Container is >)v@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBegin@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd (Container is < or = )@ Compare tob@HContainers.ctl6P"@H source.ctl@Variable Timer100msConstant Motor StatusRandom No (0-32767)MotorPowerSignedDSIntrinsicIndirectGlobalRobolabFreeSampleProgram Number SensorValue SensorType SensorMode SensorRaw SensorBool ClockMinutes PBMessageDSMotorPower128Global Motor Status (0-2)DSEventType (0-15)DSEvent (0-15)DSTaskStackVarLong (0-15) Counter (0-2) Timer1msecTask Events (0-9)SystemEvent State (0-15) Timer10msecClick Counter (0-15)Upper Threshold (0-15)Lower Threshold (0-15)Hysteresis (0-15)Duration (0-15) MotorPower8 UART SetupBatteryLevel (Avg)Firmware VersionIndirect Var (0-47) Datalog type (indirectly) (0-47)'Datalog type (directly) (0-DatalogSize)!Datalog value (indirectly) (0-47)(Datalog value (directly) (0-DatalogSize) Datalog byte (indirectly) (0-47),Datalog bye (directly) (0-(3*DatalogSize-1)) GlobalVarDSIndirectGlobalInt (0-255)DSIndirectGlobalLong (0-255)DSIndirectGlobalFloat (0-255)DSIndexedGlobalAndConstantDSIndexedGlobalLongAndConstant DSStackVarDSConstantVar (0-255)DSFunctionReturnValueWordDSFunctionReturnValueLongDSFunctionReturnValueFloatsmartMotorEncodersmartMotorEncoderTargetsmartMotorEnablemotor180ReflectionDSTaskStackVarWord (0-255)DSTaskStackVarLong (0-255)DSTaskVar (0-15)DSTaskStackAddress (0-9,10)DSTaskStackSize (0-9,10)DSBadSource@variableChoose a Containerv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeFalsev@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeTruet( t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeFalsev@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeTrue@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd (Light is >)@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd (Light is < or = ) @Compare to (%)@! Light on?K    @j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd (Light is >)v@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBegin@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd (Light is < or = )@Compare to (%)@! Light on?,@Sensor Port.ctl@!Port2"@ Power.ctl Power Level>.@\Output Ports.ctl@!PortsZJ("@ Power.ctl Power Levelt@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd.@\Output Ports.ctl@!Portsv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBeginH<@\Output Ports.ctl@!Additional Ports 2<0@\Output Ports.ctl@!Ports 2x <@\Output Ports.ctl@!Additional Ports 20@\Output Ports.ctl@!Ports 2J:@\Output Ports.ctl@!Additional Portst :@\Output Ports.ctl@!Additional Ports.@\Output Ports.ctl@!Ports"@ Power Level 32" @ Power Level 38,(t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd.@\Output Ports.ctl@!Portsv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBegin$@Number to multiplyzj(@Number to multiplyt@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndX@HContainers.ctl6P"@H source.ctl@Variable Timer100msConstant Motor StatusRandom No (0-32767)MotorPowerSignedDSIntrinsicIndirectGlobalRobolabFreeSampleProgram Number SensorValue SensorType SensorMode SensorRaw SensorBool ClockMinutes PBMessageDSMotorPower128Global Motor Status (0-2)DSEventType (0-15)DSEvent (0-15)DSTaskStackVarLong (0-15) Counter (0-2) Timer1msecTask Events (0-9)SystemEvent State (0-15) Timer10msecClick Counter (0-15)Upper Threshold (0-15)Lower Threshold (0-15)Hysteresis (0-15)Duration (0-15) MotorPower8 UART SetupBatteryLevel (Avg)Firmware VersionIndirect Var (0-47) Datalog type (indirectly) (0-47)'Datalog type (directly) (0-DatalogSize)!Datalog value (indirectly) (0-47)(Datalog value (directly) (0-DatalogSize) Datalog byte (indirectly) (0-47),Datalog bye (directly) (0-(3*DatalogSize-1)) GlobalVarDSIndirectGlobalInt (0-255)DSIndirectGlobalLong (0-255)DSIndirectGlobalFloat (0-255)DSIndexedGlobalAndConstantDSIndexedGlobalLongAndConstant DSStackVarDSConstantVar (0-255)DSFunctionReturnValueWordDSFunctionReturnValueLongDSFunctionReturnValueFloatsmartMotorEncodersmartMotorEncoderTargetsmartMotorEnablemotor180ReflectionDSTaskStackVarWord (0-255)DSTaskStackVarLong (0-255)DSTaskVar (0-15)DSTaskStackAddress (0-9,10)DSTaskStackSize (0-9,10)DSBadSource@variable Containerv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBegin$@Cutoff Sound Level @!Flat Response?`T;t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBegin@Cutoff Sound Level@!Flat Response?,@Sensor Port.ctl@!Port@ Wait (sec)(@ Wait (sec)t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBegin$@0Sound File Name&(t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd@0Sound File Namev@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBegin@ Sound Type( @ Sound Typet@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBegin,|<(< <<|<@'<'('+`+<+/02<2X72<2<<ACdDIhJLL'L'+`LLLL<ACdDQ<QR$U|UV<Q<QR$VQV<WLWlWLWl<QWVQVU|UV< <<|Z<ZZZ<cpc'c'+`cccpcpg<g0ggjLjLjpjL<mmmm< D,S ,S dduWelcome to Inventor. Write your program in the window below. To go back to the main menu, close all Inventor windows.D$33r{ Designing Behaviors Fundamentals of Interface Design UW Division of Design ART 483, Winter 2007 Davidson/Roesler Db{%b} $U] "4:MSioz Port 1: touch sensor Port 2: light sensor Port 3: sound sensor Port 4: distance sensor Port A: motor Port B: lamp Port C: motor dD{I&}8% The Dog [C]D { } !!!!This robot crudely models the behavior of a dog. Being a canine, it is a highly sentient, intelligent, and perceptive creature, of course. Our dog is a hunter and tracker. This dog's mission is to find something ahead of it in the bush. Since we don't have smell sensors for this robot, instead we'll have him follow a visual trail on the grounda black line on a light background. The robot does this by using a light sensor pointed at the ground to evaluate reflected light and determine its intensity, and then steering itself to stay on the black line. In addition to this activity, the robot is simultaneously doing two other things: stopping if it makes contact with anything, and listening for commands to pause and continue its search. In this program, the robot has three separately executing tasks, operating simultaneously to accomplish each of the four goals. Each task continuously monitors one of the input sensors, and takes appropriate action when something is detected by that sensor. In some cases, this requires communication between separate tasks, which is done by setting an indicator value in a container accessible to all tasks in the program. The details of each task's methodology (LIGHT, TOUCH, SOUND, and DISTANCE Monitors) are explained in the boxes to the right.RDananEnd.viTDe<rle>rkfilenameHDPuKkuMjXD0O=0Q= Begin NXT.viYD0;<0;; Task Split.viZD)(RCX Input 1.vi`DRCX Red Container.vi_DRCX Loop Forever.vifD$#RCX End of Forever Loop.viRDEnd.vi]D  Container fork.viYD LIGHT Monitor]D0;0;Fill Container.vidDg;rg=rSet the the container toHDuu`DalMalLNXT Wait for Push.vi]DaklamlRCX Stop Tasks.viVD4?4? Compare toHD:@BOBO`DLWLWRCX Red Container.vi]D] _ RCX Fork Merge.vidDNXT Light Sensor fork.viZDQPRCX Input 2.viYD RCX Stop C.viZDCBCompare to (%)HD1B3A]DRCX Fork Merge.vi`DHU8HU7RCX Motor forward.vi[DRCX Output A.vi[DuuRCX Output C.viUDED Light on?YDHSHS RCX Stop A.vi`D87RCX Motor forward.vi[D  RCX Output A.vi\DPower Level 3.vi\D""Power Level 3.vi[D  RCX Output C.viWD RCX Stop.viYD8r:q Task Split.viXDZZUY!!!+The two commands (with sideways "Y"-shaped icons) after the initialization commands serve to start the three tasks of the program operating simultaneously. Each starts executing the commands from the topmost exit wire and then creates a new task (from the bottom command exit wire) that begins executing in parallel to the top sequence. So the first task command starts the main program (the TOUCH Monitor) and then creates a second task. This second task immediately starts the LIGHT Monitor in parallel, and then starts a new task as the SOUND Monitor. With this method of cascading task creation, we start three separate tasks almost instantaneously after the initialization of the program.]D0@;0@:RCX Play Sound.viVDerer Sound TypeHDlHD:@uubDa,la.lNXT play sound file.vi[Da`Sound File NameYDPaPa TOUCH MonitorHD:I,`!_ sDW 8z qW :n p 9") This task has the responsibility to monitor the light sensor and direct the robot to follow a black line. It also obeys the setting of the "pause/track" switch while following. It runs continuously until stopped by the main program. The following "pseudo-code" summarizes the method in a textual form of logic. -- follow a black line on the ground, only if robot is not paused loop forever if (red container > 0) then -- pause in effect stop both motors else -- tracking, so check the light sensor value if (light is bright) then -- off the track, turn left stop left motor run right motor else -- on the track, turn right stop right motor run left motor endif -- light sensor check endif -- container check The method is to continuously check the light sensor and evaluate the intensity of the reflected light by comparing its value to a threshold level. If the sensor detects a value above the threshold (here we set it to 40% brightness, but this can be changed depending the specific environment), then it is assumed to be white and the robot is off the track. If it is 40% or less, then it is assumed to be black and on the track. If the robot is on the track, it turns a little to the right and continues forward. If it is off the track, it instead turns a little to the left and proceeds forward also. Since it is doing this continuously, in this way it inches forward (at a given speed, also modifiable according to taste), constantly adjusting its course to the left or right to stay on the black line. This scheme seems like magic, but it actually works. There is a flaw in the logic which you will undoubtedly discover if you give the robot a complicated track to follow, but it works especially well for a circular track. Improving the scheme to follow a more general track is, as math professors love to say, left as an exercise for the student. Within the task, each time through the loop there is an overarching test that checks to see if the robot is paused or allowed to be moving (tracking the line). To do this, we test the value of the number stored in the red container to decide whether to move (read the light sensor and run the motors) or just stop both motors. Since this happens each time through the loop, it makes the robot very responsive. If the red container value is positive (> 0), it means we should be paused and so we just stop both motors. Otherwise, we go on and check the light sensor and move in the right direction.ZD6G 6G  InitializationYD6 8G r6 :G q LIGHT MonitorDWz W[ First store the value "2" in the red container and then beep to signal that the robot is ready. The red container is simply a storage location that holds a number. We will use the value in that container to indicate whether the robot should pause (the dog stops tracking) or move (track the line). A number greater than zero (> 0) means pause, while zero or a number less than zero ( 0) indicates it is ok to run. This is an arbitrary convention that we set, not any sort of technical or mystical value. The initial value of "2" (or any positive number) means the robot will initially be paused, and wait for a command to start moving.JD51This is the main program. It has the responsibility to monitor the touch sensor and stop everything if it is hit. When contact is made, a sound is played (note that this is a sound file, not just a synthesized tone), and then all other tasks are halted.ZD#4#4 InitializationYD6 G I6 G H SOUND Monitor (DW z JW s I)""#"C)"This task has the responsibility to monitor the sound sensor and control whether the robot pauses or runs. It runs continuously until stopped by the main program. Each time a loud noise (a master's command) is detected, it toggles (flips) a "switch" that indicates whether the robot should be paused or tracking. The switch is simply a container that holds a number indicating "pause" or "track." The following "pseudo-code" summarizes the whole method in a textual form of logic. -- toggle pause/track switch each time a loud noise is detected loop forever wait for loud noise multiply value in red container by -1 wait 1/2 second The key to this task's method is that the only significant aspect of the value stored in the red container is whether the number is positive (> 0) or not ( 0). Positive indicates paused, and negative indicates stopped. So (as long as the number is not actually equal to zero), we can use a trick of basic algebra and simply multiply it by -1 each time a noise is detected. Since any positive number multiplied by -1 will give the negative version of that number, AND multiplying any negative number by -1 will give the positive equivalent, this effectively toggles the setting of the red container with each multiplication. A little algebraic summary of this trick: +2 * -1 = -2 -2 * -1 = +2 During the initialization of the program, a value must be stored in the red container; otherwise it would default to zero and this scheme would collapse in a clever programmer's pile of trickery. (Why?) The reason to use it is that it makes this task very efficient; it only has to do a single multiply command when the sound triggers it. This allows the dog to rapidly respond to its master's commands! An equivalent but longer piece of logic to accomplish the same thing could be: if (red container < 0) then put "2" in red container else put "-2" in red container endif By the way, the purpose of waiting for 1/2 second after toggling the switch is to allow the sound to die down a little before looping back and checking it again. Otherwise the robot would toggle the switch a few extra times after each sound is detected. _DRCX Loop Forever.vifD RCX End of Forever Loop.vi^D,07,27Number to multiplyHD:J:zG:|GRDFeHdEnd.vi`DG_RGaRRCX Red Container.vidDg i Multiply to Container.viYDdc SOUND Monitor`D  m lNXT Wait for Loud.vi^DALDALCCutoff Sound LevelHD:NO2\CO4\BZDGRFGRERCX Input 3.viZD-8F-8EFlat Response?hD K JRCX Wait for N hundredths.viWD,7,7 Wait (sec)HD:A:G:GD#3<#/;@!@The Initialization is explained in the box to the right . ===>D,+>>!>The SOUND Monitor is explained in the box to the right. ===>D-/66!>The LIGHT Monitor is explained in the box to the right. ===> <  <PNG  IHDR<-PLTEf3̙f3f3ffffff3f3333f333f3f3̙f3̙̙̙̙f̙3̙ffffff3f3333f333f3̙f3̙̙f3̙f3ff̙ffff3f33̙33f333̙f3ffffff3ffff̙fff3fffffff3ffffffffffff3fff3f3f3f3ff33f3ffffff3f3333f333333̙3f3333333f3333f3f3f3ff3f33f33333333f333333333f333f3̙f3f3ffffff3f3333f333f3wUD"wUD"wUD𠠤nIDATxZK( zjlG0B{ijܒɫzNW`@&+$֪[fu[z[Ƿ*"21yn}k)Dh[_Ůg'})nR`NAf|ڎsYg^|t(NUE۶t.9ܶ][GH4SAj֕6bmp4D[tHc5?l6 nc%g9j{UeōXD܊{UrSgWvn,e(^Jts Iݲaaω[E kejZM tm#gܑi"gǁK-Cr?hJcӹDpJN)^=n!֖ľ{!W$\ x0nLpJw3431Eo_uM[Dٴ%rO.FvW\#dGE۾.燑csZ=I]%d߬uIKv cZH^nVvwR\[]?ch/],FsNmlF-^}6Ra 0.iOÚ}C5>7ڒb 8h.?b aέ0>5I75[}4^[.+=Aπ= Lp|E[U;&VMp@6\S~qO({{QM A~€gku}c $>w}hKc+v1J[vGACM\{1n97hJEl.(|u^MXH ;ΆVmk-{-K:ְdԶ[}~/HP @-뽺/xVx=n/!m.6cZchh9B݇+ޫ7t6͎y~%I.>&(fGwq+TsV1t0Ն>~GӺltYɄV{YY̭:^~Mqk pn@|^:ƭkhc@K)vWV/i,_ bڝ܎Z^{hr%v+%/tY:~~'|¿|[nz[xy}HIENDB`FPHP 4C-Dog.viFPHPp8 XLT7,  4 D+T0 D#_$~D@< :C#_%wnh/`  Key-clickBeepBeepDescending sweep Rising sweepBuzzFast rising sweep Short click ExceptionKey click (no wait)BeepBeep (no wait)Descending sweep (no wait)Rising sweep (no wait)Buzz (no wait)Fast rising sweep (no wait)Short click (no wait)Exception sound (no wait)zBDHP 4C-Dog.viLVINEnd.vitiPTH0LVIN Begin NXT.viLPTH0LVIN Task Split.viC\PTH0LVINRCX Red Container.vi @xlPTH0LVINRCX Loop Forever.vi cPTH0LVINRCX End of Forever Loop.viePTH0LVINFill Container.viPTH0LVINNXT Wait for Push.viPTH0LVINRCX Input 1.vi|PTH0LVINRCX Stop Tasks.viPTH0LVINContainer fork.vi$PTH0LVINRCX Fork Merge.vi$T.PTH0LVINNXT Light Sensor fork.vi&PTH0LVINRCX Input 2.viPTH0LVINRCX Motor forward.vi06PTH0LVINRCX Output C.vi">PTH0LVIN RCX Stop A.vi)PTH0LVINRCX Output A.vi934PTH0LVIN RCX Stop C.vi+PTH0LVINPower Level 3.vi<0=PTH0LVIN RCX Stop.vi?hPTH0LVINRCX Wait for N hundredths.viwPTH0LVINNXT play sound file.viKPTH0LVINRCX Play Sound.viFPTH0LVINMultiply to Container.vip(PTH0LVINNXT Wait for Loud.vipPTH0LVINRCX Input 3.vit\PTH0BDHPt8N@,b0Da~D@O:E`tqA?\`4 D24 Daz&44 DzJ'@4 D z`( t@(d D1Do ͊4 Kt`o` ( tX t  43t tt43tD43t,ow43t0owXt tR ,p ( @pNT Q4hH4 J d;smd4  2 tJl(0  sGm | |4 QsGm , L ,D 1D>N^nt 4 &KL/N><$ Lh l8 hB4 3LTN^^nVf L LXh4 3L >^NnFf h L4 3L$ SN^^XV   LNT L Ll4 3L >NI^CV lD 1D L >^! i 4 &K/<=T  l < Z l4 3 N^!V  l  L  4 3L8 INS^NV  \ <4 3 N^V   < Z G|4 3 >NF   4 &K|*hD 1D\ DH4 &K @~  @ 43 @ P0 , 43 >N!F43 @ D1D  h p4 &K \  @ x  ` @43  @  R 43   043 d  W$D\x  @N `D1DX$ @4 &K% xH x43x P434 hH43H S%T43D1D,\ $͊4 &KL43 43  , 43`! t43"t P430#4 &K$ D1D#l#8ZzLC4 DD1Dx4>^x)v4 &K/<843%N^V Y43&>NF L t L43'N^V Xh43(>NF,p4*h:H @pQ4H@Ps+,@4 Jh f:s8 2h tHL :h u0V0V/W.X-Y0 3h s8hhB||D1D`o 0 '4 &K`mN(  43,  Z`<43p-o w Nl P0 43 /ow,pLS+X+4,,,lD1D H3@ |43|,1 |O`@43|2@D1D oj8 P4 &K`jm4 @x `@434z@ R435ozw 043d6jzr YTL437ojzwrxD1D*()"PRXD1DhD ,> $$( ` O@43.43$9 $ $RH 43$|: ( $X43$;,$ $Sd !43$ L<,$ $S #43$ =,$ `,p ?!(f! @pSd !@P @Q!h@,!!""L"|4 J!( 3@8 2!( APL :!( BN0V0V/W.X-Y0 3!( @Q8h!(B""||D1D# 3\c(34\4 &KxKX## x##43x#Ajzr# xS$ #43x$@BZjb#D1D, $ \,| H@4 &K$T\ 0 $W$ $T% $43$T%@Dl,|$t$ $TS%t%T43$T%E l|t%T $TXd%/43$T&F\,l$d% $T[&D@h43$T&xG \ld&$D1D'&.O04 &K&(',''(d()4 &T'L',43&'I.&', &X'43&'J' &U(('43&(PK&.*' &Q(,43&(L&"(d &Q(+43&) M( &T8)T*43&)N)4D1D5,4Vvh5L4 &KR< *@* *`*@4 3*P" *@ T8**4 3*Q" *D 1D:p+Tup4 &K+ !@pQ +<!O ,F`T!|!| !$%T%&$@! 6+,F*\)]*\8!h+B++ !GG|GHL,!p8U-v !@pQ,,@!P,/D-PV,!-|--.4.d4! J- D8" 2- 0C|L$ :- +10V0V/W.X-Y0$ 3- /D8$h-B..$|$|D$1D/</; [ @4$ &K.L %/\/0,0 %./|/\4%3./W+;3%/\ %.Xd//4%3.0X+;3%/ %.T0L74%3.0Y+#%0, %.[4014%3.0Z+#%0D%1D1t1@Vv ``4% &K0GV9 &112d2 &0S01=(4&301\fvn&1 &0[4214&302P]Vf^&1 &0R$234&302^fvn&2d &0Ux254&303 _Vf^&2D&1DA3xh`4& &K34'A4' &K"th ("434(3"4Ha(3 ("R$4|34(3"4b(4\4( J+F4) &K)GT *5L566p *)5l5L4*3))dfvn *)Ux554*3)5eVf^*5 *)6(64*3)6\ffvn*6 *)T6',4*3)6gVf^*6pD*1D7P7 m`4* &K69l +7p78@8 +6V7>4+367i+7p +6T774+368,j+7 +6V48`94+368k+8@ +6V8:4+368l+8D+1D99T/`p`4+ &K9 `,9: ,9994,399n/',9 ,9V4:(94,39:\o,: ,::;`; ,+::4,3+:q,: ,+V;:4,3+;Lr,: ,+;;`4,3+;s,;` ,+U(;'4,3+<t,;D,1D<=%Ep{84- &K=#\.> > .=>@> 4.3=>ty5E=.> .=V?4>.>D.1DBt?:d4. &K> 4/3=>z%5-D/1D?? 4/ &K?hT 0@@h@A8 0?h@ @403?h@T|0@ 0?h[@@h403?h@}0@h 0?hU@B403?hA$~0@ 0?hWAX$403?hA0A80AB 034WtAB403343  034UB,B40334B`0B 0BB 0>BB403>B*:20B 0>WtCB403>CH*"0BD01DCC7W pi 40 &KC\7sP 1CD\DE, 1C\bDDC413C\DHGWO1C 1C\W$D|D\413C\DGWO1D\ 1C\DD413C\E7G?1D 1C\ZEL l413C\E7G?1E,,1pEE 1E 1@pZEE41QEbF(,1M@PMM1|41 D[[dD21D,F>^|042 &KF/A< 3FYG4G433FGhN^V3G 3FZGG|433FG>NF3G| 3FHG433FH8N^V3G 3FYHl433FH>NF3HL,3pHI$3H 3@pYHHP3WHsId(,3IIJJ<JxJ43 JI dsx@4 2IO t11284jI <6  2I tt08 3I s88hIBJJ8|8|D81DKKLo+K 48 &KK`+m 9KLLpL 9KKK493KK;KC9K 9KYTL(L493KL\o;KwC9L 9KZLE493KL+;39Lp 9KZ`L493KM,o+;w39L49 JE b:|0: E b8:hEBMtFT4: DOb1O|4;DN0;L;@4;DN\Q ;O;Di 1;Di 1;Di ,;_\\D\_\1P;Di 4;DN! 4;DPdP; 4;  2E a1`;Di 4<DQ(P3<4<DQh\<H4<DQ<,(d4<DR`!<+(4<DRXh!<4\2d<!4<DRP!<X4<DShP'< (4<DU4<DRt4<DS,Q<# `4<DTdP2<%T4<DTlp!<*)44<DTP0<70,4<DU P+<',6p4<DU\ P,<';4<DVP-<=(14<DU!<B @<524<DVh!<:8@4<DV<>7p4<DWP.<:84<DWXP<D\x4<DWt!<BA4<DWP(<$A84<DXHP)<'4<DXP1</%4<DX^P<h4<DY8_<HG4<DYP <Lx<ELp4<DY]dP<HL4<DZD^P<G| 4<DZP<L4<DY\04<D[aLP< lE,4<D[hlP/<104<D[dP*<@h&$4< DV 7{ rH=NV4= D5H X4> D5 7H s?Q4{VV{?YFF?XFFf?ZF F4? DV{ 4@ D6LAYV{V4A D"5p;Di 1;Di 1;Di  BZ?VV?LB H!+,HEgTurz(4BDbxPBCeX4B D5 H Jt4C DV { K\D(p @|xlt\"9>34<0=LFC\Ktcpp(wei $?h&)+06.$TDmmpDD1Dd(d  pDdH DddHdheX Dc|edH Dcedh4D &Kcl Ecdd4E3cH4E3cdEdh EcbDexC4E3cf84E3ceDDE1DffL + (EfEeX4E &Ke x Fffh(j Feff4F3ef$+# Fe{gf,Fpg@gt0FgT F@pXggT@FPg8xIg,Fh|hhi4id4F3eh+#Ff FehHh(4F3ej 4F Jgt +/8|8G 2gt 9yHLI :gt :tFz0V0V/W.X-Y0I 3gt 8xI8IhgtBpiI|4I3ei IjDI1Djpj<Ee ͊4I &KiEf JjjkLk Jil0jJh( Je}in Jikj4J3ik8Ue]Jj JiklkL4J3ikEUMJkL Ji{kf4J3ilEUMJkJm4J3ildUe]JjJtu(JtDJ1DclU^u~T4J &KlF^S Klm<m4K3lle^u~mn Kl|mmp4K3lmU^e~]nKmp4K &Kp(f 4L De Mn`no0o Mp(XngT4M3p(nv,$~Mn` Mp(~hnn4M3p(o v~Mn Mp(|oPmp4M3p(of,v$nMo0 Mp(~oq44M3p(o fvnMoM|Mq4DM1Dn@m f,  ,Mprr4DM1Dqp  ,+ (M4M &Kp  n$Nq4qqrXs Np~qTq44N3pp +# Np|qdH4N3pq  Nq Np|Lrr4N3prD ,+$%Nq Np~vuNrXNr N@p|Lplr@NPplM0^Es,Ns,s`w<sw4N Jr @ME8O 2r N1]D0Q 3r M0^E Qpysu(4Q3pt ,$Qs,QpzzH8DQ1DlxtUu!XX4Q &Kt\FSG Rt\tt4R3t\leu!m Rt\yuHu(4R3t\u|Ue!]Ru(,Rpuu<Ru R@p~uu<ROu9-GGv,RvHv|v4R Ju,9G@S 6u9-GG*\)]*\8ShuBw(yd4S3prx, $S|LS :r O,[20V0V/W.X-Y8ShrBwwS|S|DS1Dx`x, ,  04S &Kw L Txx}Xyx Twxz(4T3wx,$Tx Tw}yn4T3wy< TxT}XT| Tw~hyn4T3wy Tyx4TD}!Tz( T@pt0z(@TPt08Iz,Tzz{ {l{4T JzH +88U 2zH 9HLW :zH :F0V0V/W.X-Y0W 3zH 8I8WhzHB{{W|W|4WD|0P&Wfk4WD|$ Wrq4WD|P"WdHq4WD} 0QWmpo0WgTn` Ww}x}X4W3wyP,$4WD}xP%WxjWu(s4WD~L,! WurX4WD~|P$Wnyx4WD~P#Wq4o4WD<8 Wz(x4WD}<Wy]$]HW@$W~#nW~@:$@W|WX@$~$HW|$n]nW}W|LU:$%U%W{#MW~h~WPWXd$d3G$GWRwwHWSb$HWWt" WWWRWSdH$H$WX$$W[4 ^^ #WT#  WT^X&^XHWT8WQ9""WStWVWW$OWR$nWS0nnHWV4WUx^^WV-WQ9WU(X*XWUW[dHdHWZ`ww3HWOWP0wFFLwLWYTwrwCWZ>399W3bD~~h}||L~yX|{[[4ZZYTZ`ZYXYW$XdXWWtUU(TTVVV4UxS0R$QQT8SSSdRRP0OQ4PNNTWbDOmpmppp4W D"4=XNT{ZVf{f4X D- dOO@OpOP``a qdD@4t'qA?\@`D@.4t'qA?\@`En 5DD@A4t'qA?\@`5D^-n @\-<lD@4t1nD?\`5D"4TD@4t1nD?\@`D@4tqA?\@`\5D, -h<(D@4tqA?\@`5D, -<,ddD@4tqA?\@`5D,D@4tqA?\@`5D,-<D5D,-p<9D=4Y D,mD@4tqA?\@`D@4t'qA?\@`-\5D=-\-\hn p5Df5D&D1-<-Fh5D"5-b,ZE<\|Fh_z(wrut\pgTp(ln iecbb[\_h\P`|MEKHFC\>34?h=<0+96)"0.,+&$Tx!$|H @LtDx ( K&@@?j >>>>>>>>AAAB @?&h  v       1  &(    Lucida Grande Lucida Grande Lucida Grande020000Akzidenz-Grotesk Std MedItal000 Andale MonoRSRC LVINLBVWx x 4 RSID`LVSRtBDPWLIviCPTMDSTMDFDSLIdsVICDversDLDR(FPTDl?`@,qABLpCED DE8DPFUPGJ`HlJJKLtMN<@OPb) RPb)@S Tl}0U|PV%PX$&@YZ@0\x 7ÌX`Ĩ(u0pu\Mu` 4C-Dog.vi