' ' MR5 "Sniffer" ' ' Datenlogger 2x RS232 Rev 3 (c) Avisaro AG, 10.04.2010 ' mit Zeitstempel ' inmode -3 outmode -2 ' 2. Serielle Schnittstelle auxopen -4, 9600, asc("N"), 1, 8, asc("N") exec "sched 0 fix" exec "sync 1000" DIM RX1(1) DIM RX2(1) DIM B(50) ' valid ? let RX1v = 0 let RX2v = 0 let E = 0 let D = 0 let mt = millis let t = time BEGIN: put -203, #1 REM Tasten entprellen if (KEYS & 1) = 1 then 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 get -4, A goto BEGIN end if end if put -202, #1 do REM Daten von RS232 lesen und auf Karte schreiben get -4, RX2 if BYTESREAD > 0 then let RX2v = 1 end if input RX1 if BYTESREAD > 0 then let RX1v = 1 end if if (RX1v = 1) or (RX2v = 1) then gosub store_data let RX1v = 0 let RX2v = 0 end if if (t < time) then ' volle Sekunde let t = time let mt = millis put -202, #1 end if let x = lof(0) REM Beenden ? if (x < 100) 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: put -202, #0 REM Warten bis Karte entnommen oder Taste gedrückt let x = lof(0) if (x < 100) or ((KEYS & 1) = 1) then goto BEGIN else goto FINISH end if store_data: put -202, #0 let T$ = date$ + "; " + time$ + "; " let temp = millis let temp = temp - mt if temp < 10 then let T$ = T$ + " " end if if temp < 100 then let T$ = T$ + " " end if let T$ = T$ + str$(temp) let T$ = T$ + "; " let T$ = T$ + "RX1; " if RX1v = 1 then let T$ = T$ + hex$(RX1(0),2) let T$ = T$ + "; " if RX1(0) < 10 then let T$ = T$ + " " end if if RX1(0) < 100 then let T$ = T$ + " " end if let T$ = T$ + str$(RX1(0)) let T$ = T$ + "; " + chr$(RX1(0)) else let T$ = T$ + " ; ; " end if let T$ = T$ + "; " let T$ = T$ + "RX2; " if RX2v = 1 then let T$ = T$ + hex$(RX2(0),2) let T$ = T$ + "; " if RX2(0) < 10 then let T$ = T$ + " " end if if RX2(0) < 100 then let T$ = T$ + " " end if let T$ = T$ + str$(RX2(0)) let T$ = T$ + "; " + chr$(RX2(0)) else let T$ = T$ + " ; ; " end if let T$ = T$ + "; " put 1, T$ put 1, #13 put 1, #10 return ' +++