Ich habe eine kleine Haussteuerung mit mehreren Arduinos und CAN Bus Knoten am laufen.
Nun möchte ich per CAN-RS232 Daten per Python auf meinem (debian) Server regelmäßig einlesen und in einer Datei speichern.
Folgende kleine Routine habe ich mir zusammengesucht: (noch nicht getestet)
Code: Alles auswählen
import serial #Serielle Schnittstelle klarmachen
file_out = open("rs232_daten.txt","w")
ser = serial.Serial('/dev/tty0', 19200) #Serielle Schnittstelle öffnen
ser.flushInput() #Input Puffer leeren
while True: #abfrage schleife
if (ser.inWaiting() >0): # wenn was drinne ist (imPuffer) dann...
line = ser.readline() # lese die Zeichen
print line #Stelle das ausgelesene sichtbar da.
file_out.write(line)
ser.close() #schliesse serielle Schnittstelle
file_out.close()
Ziel ist es, später mit einem ChartViewer oder auch Excel die Daten als Statistik anzeigen lassen zu können.
Auch soll als Datensatz-Anfang das Datum und die Uhrzeit drinstehen, als Datensatz-Ende dann ein definiertes Zeichen, z.B. #
Sollte man die serielle vielleicht nur einmal öffnen und dann nur einlesen?
Daten kommen im 30Sekunden Takt.
Gruß,
Wolfram.