/* /0LOGBOOK 0 */ program test { #include #include #include #include var vHandFull = 0 var vTemp = 0 var vHand = 0 var vHandClosed = 0 var vArmReady = 0 sensor light2 on 2 light2 is light as percent event lDark_light2EventLow when light2 < (vHandFull / 10) event equal_messageEventEqual when message = 2 event equal_messageEventEqual0 when message = 4 event equal_messageEventEqual1 when message = 5 event equal_messageEventEqual2 when message = 6 event equal_messageEventEqual3 when message = 7 event equal_messageEventEqual4 when message = 8 event equal_messageEventEqual5 when message = 3 sensor touch3 on 3 touch3 is switch as boolean event tRelease_touch3EventRelease when touch3.released event tPress_touch3EventPress when touch3.pressed macro H02_CLOSEHAND { if vHandClosed = 0{ vHandClosed = 10 on [ B ] for 130 clear Timer1 } else { } } macro H02_OPENHAND { reverse [ B ] on [ B ] for 220 reverse [ B ] on [ B ] for 100 vHandClosed = 0 } main { ext InterfaceType "kFreestyle" rcx_ClearTimers bbs_GlobalReset([A B C]) trigger tRelease_touch3EventRelease trigger tPress_touch3EventPress start LightWatcher0 start IRWatcher1 start IRWatcher2 start IRWatcher3 start IRWatcher4 start IRWatcher5 start IRWatcher6 rcx_Priority( 8) trigger lDark_light2EventLow rcx_ClearIRMessage trigger equal_messageEventEqual rcx_ClearIRMessage trigger equal_messageEventEqual0 rcx_ClearIRMessage trigger equal_messageEventEqual1 rcx_ClearIRMessage trigger equal_messageEventEqual2 rcx_ClearIRMessage trigger equal_messageEventEqual3 rcx_ClearIRMessage trigger equal_messageEventEqual4 vArmReady = 0 display Light2 direction [ A B C ] [ ] vHandClosed = 0 vHandFull = (light2*10) rcx_Multiply( vHandFull,9) vHandFull += 10 repeat { if touch3 is closed { float [ C ] send 10 wait until tRelease_touch3EventRelease } else { on [ C ] send 11 wait until tPress_touch3EventPress } } until equal_messageEventEqual5 if vHandClosed = 10{ reverse [ B ] on [ B ] for 220 reverse [ B ] on [ B ] for 100 } else { } sound 1 stop tasks } watcher LightWatcher0 monitor lDark_light2EventLow { rcx_Priority( 4 ) if vArmReady = 10{ if vHandClosed = 10{ } else { H02_CLOSEHAND send 9 } } else { } } restart on event watcher IRWatcher1 monitor equal_messageEventEqual { rcx_Priority( 6 ) clear message if vHandClosed = 10{ H02_OPENHAND } else { H02_CLOSEHAND } } restart on event watcher IRWatcher2 monitor equal_messageEventEqual0 { rcx_Priority( 6 ) clear message vArmReady = 0 } restart on event watcher IRWatcher3 monitor equal_messageEventEqual1 { rcx_Priority( 6 ) clear message vArmReady = 10 } restart on event watcher IRWatcher4 monitor equal_messageEventEqual2 { rcx_Priority( 6 ) clear message if vHandClosed = 10{ sound 5 } else { vHandFull = (light2*10) rcx_Multiply( vHandFull,9) vHandFull += 10 sound 4 } vArmReady = 10 } restart on event watcher IRWatcher5 monitor equal_messageEventEqual3 { rcx_Priority( 6 ) clear message H02_CLOSEHAND } restart on event watcher IRWatcher6 monitor equal_messageEventEqual4 { rcx_Priority( 6 ) clear message H02_OPENHAND } restart on event }