X-10 Control Sample Script from User
Keywords: X10 x 10
This works for turning ON/OFF a device on A3. It's ugly, but it does work.
*******************************************
AddExtender("wwser34I.dll")
port=pComOpen("COM1",0,4800,"8N1","NONNON")
pTimeout(port,2000)
pPutByte(port,195) ;House code / Device Code
Header = 4
Send = 6
A3 = 98
ON = 98
OFF = 99
getbyte = -1
while getbyte == -1
pPutByte(port,Header) ;Header -- Address a Unit
pPutByte(port,A3) ;House code / Device Code
Gosub WaitForAck ; Wait for Checksum
EndWhile
pPutByte(port,0) ; Send Ack
Gosub WaitForAck85 ; Wait for 0x55
getbyte = -1
while getbyte == -1
pPutByte(port,Send) ; Header -- Send Function
pPutByte(port,ON); House Code / Function
Gosub WaitForAck ; Wait for Checksum
EndWhile
pPutByte(port,0) ; Send Ack.
Gosub WaitForAck85 ; Wait For 0x55
pComClose(port,0)
Message("Interface","Complete")
exit
:WaitForAck
start=TimeYmdHms( )
Now=TimeYmdHms( )
diff=TimeDiffSecs(Now, start)
While diff < 4
getbyte=pGetByte(port)
Now=TimeYmdHms( )
diff=TimeDiffSecs(Now, start)
If getbyte > -1 then break
Endwhile
Display(1,"Interface",getbyte)
Return
:WaitForAck85
start=TimeYmdHms( )
Now=TimeYmdHms( )
diff=TimeDiffSecs(Now, start)
While diff < 4
getbyte=pGetByte(port)
Now=TimeYmdHms( )
diff=TimeDiffSecs(Now, start)
If getbyte == 85 then break
Endwhile
Display(1,"Interface","Ready")
Return
Article ID: W12583
Filename: X-10 Control Sample Script.txt