ich arbeite gerade mit Subprocess und bin gerade auf ein Problem gestossen, wo ich einfach nicht weiter komme. Ich will mithilfe eines C-Programmes einen Sensor auslesen, da ich Ihn nicht direkt ansprechen kann
Dabei verwende ich folgenden Pythoncode mit dem Subrocess Modul:
Code: Alles auswählen
path = os.path.normcase(Config.getValue("path2digitemp") + "/digitemp")
try:
process = subprocess.Popen([path,'-i', '-s' + port, '-q'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
except (WindowsError, TypeError) as e:
QtGui.QMessageBox.warning(None, "Fehler beim erzeugen suchen der Sensoren",
"Fehler beim suchen der Sensoren \n" + str(e))
return 0
#Reading the Return
#If error
lineerr = None
sensors = 0
while process.poll() is None:
lineerr = process.stderr.readline()
if lineerr.decode("utf-8") != "":
print(lineerr)
process.terminate()
QtGui.QMessageBox.warning(None, "Fehler beim erzeugen suchen der Sensoren",
"Fehler beim suchen der Sensoren \n" + lineerr.decode("utf-8"))
return 0
#If Sensors are found
line = process.stdout.readline().decode("utf-8")
line = line[:-2]
print(line)
if (line != "") and (line[0:3] == "ROM"):
sensors = sensors + 1
print(line)
print("fire")
return sensors
Wenn ich das C-Programm aber direkt über die Komanndozeile aufrufe, bekomme ich folgende Antwort:Turning off all DS2409 Couplers
fire
Das heißt er liest einfach nur die erste Zeile. Habe Ihre eine Idee woran das liegen könnte?Turning off all DS2409 Couplers
.
Searching the 1-Wire LAN
10A9AE9801080080 : DS1820 Temperature Sensor
ROM #0 : 10A9AE9801080080
Schonmal danke für eure Hilfe ...