| |
'*************************************************************************'
'Description: This application demonstrates simple serial communication
from 'the BS2 to
the Siteplayer.'
'An SRF04 ultra sonic range finder inputs readings into a BS2 which
decides 'whether any
object is close enough for an alarm condition to be apparent. If it
is, a serial out command
sends data to the siteplayer which in turn sets 'an alarm warning on
its website.'
'If no alarm condition is apparent, an all-clear screen is displayed.'
'Created: 15/10/02 Revision 1.00
'Written By: TR Control Solutions (Jamie Finnan)
'TRCS-001
'Siteplayer is a Registered Trademark of Netmedia'
'*************************************************************************'
'{$STAMP BS2}sendata var byte(7) 'Set up a 7 byte Array
Dist var word
INIT con 0
ECHO con 1
convfac con 29 ' use centimeters
'*************************************************************************'
main:
gosub sonar
debug dec Dist, cr
pause 200
if Dist < 100 then Alarm_State
if Dist > 100 then All_Clear
goto main
'*************************************************************************'
sonar:
pulsout INIT,5 ' 10us init pulse
output INIT ' dummy command (delay)
rctime ECHO,1,Dist ' measure echo time
Dist=Dist/convfac ' convert to inches
pause 10
return'
*************************************************************************'
Alarm_State:
sendata(0) = "A"
sendata(1) = "L"
sendata(2) = "A"
sendata(3) = "R"
sendata(4) = "M"
sendata(5) = "!"
sendata(6) = "!"debug "Send data Alarm",cr
serout 6,16468,[$80,$00,sendata(0)]
serout 6,16468,[$80,$01,sendata(1)]
serout 6,16468,[$80,$02,sendata(2)]
serout 6,16468,[$80,$03,sendata(3)]
serout 6,16468,[$80,$04,sendata(4)]
serout 6,16468,[$80,$05,sendata(5)]
serout 6,16468,[$80,$06,sendata(6)]
pause 4000
return
'*************************************************************************'
All_Clear:
sendata(0) = " "
sendata(1) = "C"
sendata(2) = "L"
sendata(3) = "E"
sendata(4) = "A"
sendata(5) = "R"
sendata(6) = " "debug "Send data All Clear",cr
serout 6,16468,[$80,$00,sendata(0)]
serout 6,16468,[$80,$01,sendata(1)]
serout 6,16468,[$80,$02,sendata(2)]
serout 6,16468,[$80,$03,sendata(3)]
serout 6,16468,[$80,$04,sendata(4)]
serout 6,16468,[$80,$05,sendata(5)]
serout 6,16468,[$80,$06,sendata(6)]
pause 100
returnEnd
'*************************************************************************'
|