Fehlermeldung : could not convert string to float
Verfasst: Donnerstag 15. März 2012, 13:09
Hiho liebe Community ^^
Ich soll im Rahmen meiner Bachelorarbeit ein Thermostat über eine RS232- Schnittstelle ansteuern. Dazu hab ich mir mit Tkinter eine GUI angelegt in der in einem Entry- Feld(Name : InputField) der Temperatur- Sollwert eingelesen werden soll. Per Druck auf den Startknopf, soll der Wert an eine Schleife aus der Funktion HeatinCycle übergeben werden, die die eigentlichen Befehle an das Thermostat sendet und den "Heizvorgang" aufzeichnet und mit matplotlib den Temperaturverlauf plottet(hab ich jetzt aus meinem Code unten rausgelassen). Das erst einmal zu dem Thema was das Programm schaffen soll ^^ Ich Benutze python 2.7 für Windows 7 32 Bit, sowie die packages pyserial, matplotlib,pywin32.
.
.
.
Das Problem ist nun, dass es mir immer eine Fehlermeldung liefert, wenn ich die vom gerät zurückgegebenen Strings in eine Float- Zahl umwandeln möchte.
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python27\lib\lib-tk\Tkinter.py", line 1410, in __call__
return self.func(*args)
File "H:\Bachelorarbeit\10.3\automatische Messung mit Gui\Messung starten über GUI (kommentiert).py", line 59, in callback
HeatTemp = HeatingCycle(ser)
File "H:\Bachelorarbeit\10.3\automatische Messung mit Gui\Messung starten über GUI (kommentiert).py", line 39, in HeatingCycle
CurrentTemp = float(strCurrentTemp)
ValueError: could not convert string to float:
Ich hoffe ich habe allen nötigen Code gepostet und währe euch sehr dankbar für Ideen woran es liegen könnte. Ich habe im Moment keinerlei weitere Ideen, da die Umwandlung in anderen Minimalprogrammen funktioniert hat. Das ein String vom Gerät zurückgegeben wird bin ich mir auch sicher(Test über type()).
Ich bedanke mich schonmal im Vorraus bei Allen, die zumindest bis hierhin gelesen haben und freue mich auf Lösungsansätze ^^
greets
el_pampa
Ich soll im Rahmen meiner Bachelorarbeit ein Thermostat über eine RS232- Schnittstelle ansteuern. Dazu hab ich mir mit Tkinter eine GUI angelegt in der in einem Entry- Feld(Name : InputField) der Temperatur- Sollwert eingelesen werden soll. Per Druck auf den Startknopf, soll der Wert an eine Schleife aus der Funktion HeatinCycle übergeben werden, die die eigentlichen Befehle an das Thermostat sendet und den "Heizvorgang" aufzeichnet und mit matplotlib den Temperaturverlauf plottet(hab ich jetzt aus meinem Code unten rausgelassen). Das erst einmal zu dem Thema was das Programm schaffen soll ^^ Ich Benutze python 2.7 für Windows 7 32 Bit, sowie die packages pyserial, matplotlib,pywin32.
Code: Alles auswählen
from Tkinter import *
import serial
from time import clock, sleep
import os
import tkMessageBox
from matplotlib.pyplot import plot, show, draw, colors
from pylab import ion,ioff,clf
.
.
.
def HeatingCycle(ser): # Funktion die über Button aufgerufen werden soll
ser.write("in_pv_00\r\n") # fragt aktuelle Badtemperatur ab
strCurrentTemp = ser.read(100)
CurrentTemp = float(strCurrentTemp)
strHeatTemp = InputField.get() # holt Solltemperatur aus Entry- Feld
ser.write("out_sp_00 "+strHeatTemp+"\r\n") # übergibt Solltemperatur an Thermostat
ser.write("out_mode_05 1\r\n") # Startet Heizmantel
HeatTemp=float(strHeatTemp)
while CurrentTemp <= HeatTemp :
ser.write("in_pv_00\r\n")
strCurrentTemp = ser.read(100)
CurrentTemp = float(strCurrentTemp)
print CurrentTemp
sleep(1)
return CurrentTemp
.
.
Das Problem ist nun, dass es mir immer eine Fehlermeldung liefert, wenn ich die vom gerät zurückgegebenen Strings in eine Float- Zahl umwandeln möchte.
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python27\lib\lib-tk\Tkinter.py", line 1410, in __call__
return self.func(*args)
File "H:\Bachelorarbeit\10.3\automatische Messung mit Gui\Messung starten über GUI (kommentiert).py", line 59, in callback
HeatTemp = HeatingCycle(ser)
File "H:\Bachelorarbeit\10.3\automatische Messung mit Gui\Messung starten über GUI (kommentiert).py", line 39, in HeatingCycle
CurrentTemp = float(strCurrentTemp)
ValueError: could not convert string to float:
Ich hoffe ich habe allen nötigen Code gepostet und währe euch sehr dankbar für Ideen woran es liegen könnte. Ich habe im Moment keinerlei weitere Ideen, da die Umwandlung in anderen Minimalprogrammen funktioniert hat. Das ein String vom Gerät zurückgegeben wird bin ich mir auch sicher(Test über type()).
Ich bedanke mich schonmal im Vorraus bei Allen, die zumindest bis hierhin gelesen haben und freue mich auf Lösungsansätze ^^
greets
el_pampa