ok, so here's my modified version:
untested, but compiles.
what I am unsure of:
1. how to set the xport with all the funky terminal settings and if it can be done via pbp
2. right now his code waits for a 0 return.
I'd like to receive more than that. ie, the number 55 and then do something like turn a pin HIGH. I'm unsure of how to do that though without breaking it. ie, it's waiting for a 0 return..
sorry for those of you that breath code, this must seem very silly
Code:
include "modedefs.bas"
@ DEVICE pic16F628A, INTRC_OSC_NOCLKOUT
' System Clock Options
@ DEVICE pic16F628A, MCLR_OFF
' Master Clear Options (Internal)
DEFINE OSC 4
CMCON = 7
' pins to define serial RZX and TX
tx var portA.6
rx var portA.7
' pins with LEDs to indicate whether we're connecting
' or sending an HTTP request:
httpPin var portb.7
TCPPin var portb.6
output TCPPin
output httpPin
' constant to set the baud rate:
inv9600 con 16468
' for non-inverted connections (PIC to Xport direct):
true9600 con 84
' define variables:
adcVar var word
inByte var byte
connected var bit
connected = 0
' pause to let Xport boot up:
pause 2000
main:
' if you're connected to the server, then
' make a HTTP call. If not, then connect
' to the server:
if connected = 1 then
' read sensors, convert to bytes:
adcVar = 55
' send HTTP GET request for php script:
gosub http_request
else
' attempt to connect to the server:
gosub xport_connect
endif
tcpPin = connected
' pause so we're not overwhelming the server:
pause 3000
goto main
xport_connect:
' turn off LED to indicate HTTP GET is in progress:
'low tcpPin
' wait for a "C" byte to come back:
while inByte <> 67
serout2 tx, true9600, ["C128.122.253.189/80", 10]
serin2 rx, true9600, [inByte]
wend
' turn on TCP pin to indicate that we connected:
'high TCPPin
connected = 1
return
http_request:
adcVar = 56
' light LED to indicate HTTP GET request in progress:
high httpPin
SEROUT2 TX, true9600, ["GET /xport_test.php?action=insert&"]
serout2 tx, true9600, ["sensorValue=", DEC adcVar]
serout2 tx, true9600, [" HTTP/1.1", 10]
serout2 tx, true9600, ["HOST: brandejs.ca", 10, 10]
' wait for bytes from server:
' php script sends a 0 to end transmission:
while inByte <> 0
serin2 rx, true9600, [inByte]
wend
' now we're disconnected:
connected = 0
' turn off LED, since GET request is complete:
low httpPin
return
Bookmarks