Serielle Kommunikation Xmega Raspberry
Verfasst: Mittwoch 13. Januar 2021, 13:35
Hallo Kolleginnen und Kollegen,
ich habe auf dem Raspberry einen kleinen Python Script im Autostart der die serielle Schnittstelle auswertet.
An der seriellen Schnittstelle kommen im Sekundentakt Messwerte an.
Dieser Script scheint nach einiger Zeit abzustürzen.
Wenn ich den Python-Script via Eintrag unter rc.local laufen lasse, dann sieht man bei den laufenden Prozessen, dass er irgendwann einfach verschwindet.
(irgendwann bedeutet zwischen wenigen Sekunden und mehreren Stunden)
Da ich keine Ahnung von Python habe und mir den Code aus Internet-Schnipseln zusammenkopiert habe, möchte ich Euch bitte, dass Ihr einfach mal drüber schaut.
Vielleicht seht Ihr ja gleich den Fehler...
Cool wäre es, wenn Ihr mir einen Tipp geben könnt, wie ich herausfinden kann, warum er abstürzt (wie man zum Beispiel einen Eintrag in Logdatei schreibt, usw...)
Vielen Dank vorab!
ich habe auf dem Raspberry einen kleinen Python Script im Autostart der die serielle Schnittstelle auswertet.
An der seriellen Schnittstelle kommen im Sekundentakt Messwerte an.
Dieser Script scheint nach einiger Zeit abzustürzen.
Wenn ich den Python-Script via Eintrag unter rc.local laufen lasse, dann sieht man bei den laufenden Prozessen, dass er irgendwann einfach verschwindet.
(irgendwann bedeutet zwischen wenigen Sekunden und mehreren Stunden)
Da ich keine Ahnung von Python habe und mir den Code aus Internet-Schnipseln zusammenkopiert habe, möchte ich Euch bitte, dass Ihr einfach mal drüber schaut.
Vielleicht seht Ihr ja gleich den Fehler...
Cool wäre es, wenn Ihr mir einen Tipp geben könnt, wie ich herausfinden kann, warum er abstürzt (wie man zum Beispiel einen Eintrag in Logdatei schreibt, usw...)
Code: Alles auswählen
#!/usr/bin/python
#coding: utf8
#!/usr/bin/env python
import time
import serial
import subprocess
import os.path
ser = serial.Serial("/dev/ttyS0")
ser.baudrate = 19200
x = 0
while 1:
try:
i=ser.readline()
print i
if ("record stop" in i):
print "record stop"
x = 0
if ("record start" in i):
print "record start"
x = 1
if ("umount" in i):
cmd = "sudo umount -l /media/usb"
os.system(cmd)
if (x == 1):
try:
if os.path.ismount("/media/usb/"):
File_Obj = open("/media/usb/reading.txt", "a")
File_Obj.write(i)
File_Obj.close
ser.write("O")
else:
ser.write("F")
except:
print("error write usb")
except:
continue