' ' Datenlogger Rev 1.15 (c) Avisaro AG, 19.06.2014 ' ' ------------------------------------------------ ' Every Day a new File (1= yes, 0 = no) ? let new_file = 1 ' ------------------------------------------------ ' One or two RS232 Ports (1, 2) ? let ports = 1 ' ------------------------------------------------ ' max filesize in MByte let size = 10 ' ------------------------------------------------ ' 2nd serial Port if ports = 2 then auxopen -4, 9600, asc("N"), 1, 8, asc("N") end if ' ------------------------------------------------ inmode -3 outmode -2 let size = size * 1000000 ' ------------------------------------------------ let red = -202 let green = -203 let inkey = -204 ' ------------------------------------------------ DIM A(512) 'if no battery if time < 10000 then exec "time 2014 01 01 00 00 01" end if sleep 1 let n$ = "" let f$ = "" sleep 1000 print "Avisaro Logger Rev 1.15 (c) 2012 Avisaro AG ("; print date$;",";time$;")" BEGIN: put green, #1 put red, #0 let n$ = date$ ' empty input Fifo get -3, A get -4, A ' open files gosub Datei_erzeugen if LASTERR <> 0 then close 1 close 2 goto BEGIN end if ' debounce key get inkey, in if in = 0 then goto BEGIN end if if lof(0) = 0 then sleep 0 goto BEGIN end if put red, #1 let t = time do ' get data from RS232 get -3, A if BYTESREAD > 0 then put red, #0 write_RS232_1: put 1, A, BYTESREAD if (lasterr <> 0) and status(1) = 2 then sleep 10 goto write_RS232_1 end if end if if ports = 2 then get -4, A if BYTESREAD > 0 then put red, #0 write_RS232_2: put 2, A, BYTESREAD if (lasterr <> 0) and status(2) = 2 then sleep 10 goto write_RS232_2 end if end if end if if t < time then ' do this every second let t = time put red, #1 ' Finish ? get inkey, in if in = 0 then close 1 close 2 goto FIN_KEY end if if lof(0) = 0 or status(1) <> 2 then close 1 close 2 goto BEGIN end if ' New Day ? if n$ <> date$ then close 1 close 2 goto BEGIN end if end if loop Datei_erzeugen: if new_file = 1 then exec "mkdir logs" let f$ = "logs/" let f$ = f$ + mid$(date$, 3 , 2) + mid$(date$, 6 , 2) + mid$(date$, 9 , 2) + "_1.txt" else ' wenn einmal ein Datei gefordert let f$ = "log_1.txt" end if sleep 1 open "AB", 1, f$ if LASTERR <> 0 then open "WB", 1, f$ if LASTERR <> 0 then return end if end if if ports = 2 then if new_file = 1 then let f$ = "logs/" let f$ = f$ + mid$(date$, 3 , 2) + mid$(date$, 6 , 2) + mid$(date$, 9 , 2) + "_2.txt" else ' wenn einmal ein Datei gefordert let f$ = "log_2.txt" end if sleep 1 open "AB", 2, f$ if LASTERR <> 0 then open "WB", 2, f$ if LASTERR <> 0 then return end if end if end if return FIN_KEY: put red, #0 ' wait to release key get inkey, in if in = 0 then close 1 goto FIN_KEY end if FINISH: put red, #0 ' wait to release key or extract card let x = lof(0) get inkey, in if (x < 10) or (in = 0) then goto BEGIN else goto FINISH end if goto BEGIN ' +++