REM d. bodnar  10-16-03
REM gets data from phanderson.com's 1 wire temperature reader
REM runs once when called from batch job as scheduled Windows task
ON ERROR GOTO bummer
CLS
'rtime$ = COMMAND$: rtime = VAL(rtime$): IF rtime = 0 THEN rtime = 60: REM readings every "rtime" seconds
'PRINT "pause time = "; rtime; " seconds"
q$ = CHR$(34): qcq$ = q$ + CHR$(44) + q$
start:
OPEN "a", 2, "1wireout.txt"

OPEN "com1:9600,n,8,1,rs,op,cs,ds,rb32767" FOR RANDOM AS 1: PRINT "opened @ "; TIME$
stime = TIMER
D$ = DATE$: T$ = TIME$
FOR x = 1 TO 100
  PRINT #1, "A": REM send any character to start a read of sensors
  LINE INPUT #1, a$
  unit = VAL(LEFT$(a$, 3)): unit$ = STR$(unit)
  hx$ = RIGHT$(a$, 2): REM last 2 digits of id
  IF x = 1 AND unit <> 0 THEN CLOSE : GOTO start: REM glitch in send -redo
  IF x > 1 AND unit = 0 THEN EXIT FOR: REM starting with first again so stop
  PRINT a$;
  ctemperature = VAL(MID$(a$, 4, 6)): ctemperature$ = STR$(ctemperature)
  ftemperature = ctemperature * 9 / 5 + 32: ftemperature$ = STR$(ftemperature)
  PRINT " unit = "; unit; : PRINT ctemperature; "degrees C";
  PRINT ftemperature; "degrees F";
IF ftemperature < -120 THEN CLOSE : GOTO start: REM error in read - redo
'PRINT #2, q$ + D$ + qcq$ + T$ + qcq$ + unit$ + qcq$ + hx$ + qcq$ + ctemperature$ + qcq$ + ftemperature$ + q$
item$(x) = q$ + D$ + qcq$ + T$ + qcq$ + unit$ + qcq$ + hx$ + qcq$ + ctemperature$ + qcq$ + ftemperature$ + q$

NEXT x




PRINT "done"
FOR x = 1 TO 4
  IF LEN(item$(x)) < 10 THEN CLOSE : GOTO start: REM blank lines creep in!
NEXT
FOR x = 1 TO 4: PRINT item$(x): PRINT #2, item$(x): NEXT
bummer:
CLOSE

END
PRINT "Waiting for key or time to expire"
DO
  k$ = INKEY$: IF k$ <> "" OR TIMER - stime > rtime THEN EXIT DO
LOOP
IF k$ = "Q" OR k$ = "q" THEN END
GOTO start

