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