' ' Datenlogger MR2, Rev9 (c) Avisaro AG, 18.02.2010 ' mit Zeitstempel - Endeerkennung ' ' Max line length (must be < 150) let ml = 80 inmode -3 outmode -2 DIM A(1) DIM B(152) let E = 0 let D = 0 let z = time let mi = time let mil = millis 'if no battery if time < 10000 then exec "time 2009 01 01 00 00 01" end if print "Avisaro Timestamp Logger MR2, Rev 9 (c) 2010 Avisaro AG" BEGIN: setleds 34 REM Tasten entprellen if (KEYS & 1) = 1 then goto BEGIN end if if lof(0) = 0 then sleep 100 goto BEGIN end if open "AB", 1, "logdata.txt" if LASTERR <> 0 then open "WB", 1, "logdata.txt" if LASTERR <> 0 then ' Fifo leer lesen so lange keine Karte INPUT A goto BEGIN end if end if setleds 115 do REM Daten von RS232 lesen und auf Karte schreiben if mi <> time then ' eine Sekunde weiter let mi = time let mil = millis end if INPUT A if BYTESREAD > 0 then let z = time + 5 setleds 34 if A(0) <> 13 and A(0) <> 10 then let B(D) = A(0) let D = D + 1 if D > (ml - 3) then LET D = ml LET B(ml -2) = 13 LET B(ml -1) = 10 end if end if if A(0) = 10 then let B(D) = 13 let B(D+1) = 10 let D = D + 2 end if if (B((D-1))= 10) then let T$ = date$ + " " + time$ + " " let temp = millis - mil if temp < 10 then let T$ = T$ + "0" end if if temp < 100 then let T$ = T$ + "0" end if let T$ = T$ + str$(temp) let T$ = T$ + " " put 1, T$ put 1 , B, D LET D = 0 end if setleds 51 end if ' timeout ? if ((z = time) and (D > 0)) then setleds 34 let T$ = date$ + " " + time$ + " " let temp = millis - mil if temp < 10 then let T$ = T$ + "0" end if if temp < 100 then let T$ = T$ + "0" end if let T$ = T$ + str$(temp) let T$ = T$ + " " put 1, T$ put 1 , B, D put 1 , #13 put 1 , #10 LET D = 0 setleds 51 end if let x = lof(0) REM Beenden ? if (x = 0) or ((KEYS & 1)= 1) then close 1 goto FIN_KEY end if loop FIN_KEY: REM Warten bis Taste nicht gedrückt if (KEYS & 1) = 1 then goto FIN_KEY end if FINISH: setleds 34 REM Warten bis Karte entnommen oder Taste gedrückt let x = lof(0) if (x = 0) or ((KEYS & 1) = 1) then goto BEGIN else goto FINISH end if REM +++