ich versuche diverse Sensoren für eine Selbsteueranlage auszulesen. Leider kommt bei einem Sensor dauernd die Fehlermeldung: "NoneType object is not callable", wobei das "lustige" ist, die Werte werden dennoch eingelesen. Die Fehlermeldung bezieht sich auf folgenden code in einer Schleife im Modul core-kernel:
Code: Alles auswählen
try:
self.read_gps()
except Exception as ex:
self.data.has_gps = False
logging.exception("CORE:\tError in update loop (GPS) - %s" % ex)
try:
self.read_wind()
except Exception as ex:
self.data.has_wind = False
logging.exception("CORE:\tError in update loop (Wind) - %s" % ex)
Code: Alles auswählen
def read_gps(self):
if self._gps_sensor:
(lat, lon, heading, speed) = self._gps_sensor.readgps_sensor()
self.data.gps_lat = float(lat)
self.data.gps_lon = float(lon)
self.data.gps_heading = float(heading)
self.data.gps_speed = float(speed)
self.data.has_gps = True
else:
self.data.has_gps = False
Code: Alles auswählen
def read_wind(self):
if self._wind_sensor:
(Wian, Wspeed) = self._wind_sensor.readwind_sensor()
self.data.wind_Wian = Wian
self.data.wind_Wspeed = Wspeed
if Wian > 180:
self.data.wind_Wanz = 360 - Wian
else:
self.data.wind_Wanz = Wian
self.data.has_wind = True
else:
self.data.has_wind = False
Code: Alles auswählen
def readwind_sensor(self):
data = 0
data, addr = sock.recvfrom(1024)
datalist = data.split(',')
if datalist[0] == "$WIMWV": #$WIMWV
parts_len = len(datalist) - 1
for index, item in enumerate(datalist):
Wian = float(datalist[1]) #1
Wspeed = float(datalist [3]) #3
self.oldWian = Wian
self.oldWspeed = Wspeed
else:
Wian = self.oldWian
Wspeed = self.oldWspeed
return Wian, Wspeed
def readgps_sensor(self):
data = 0
data, addr = sock.recvfrom(1024)
datalist = data.split(',')
if datalist[0] == "$GPRMC":
parts_len = len(datalist) - 1
for index, item in enumerate(datalist):
lat = float(datalist [3])/100
lon = float(datalist [5])/100
heading = float(datalist[8])
speed = float(datalist [7])
self.oldlat = lat
self.oldlon = lon
self.oldheading = heading
self.oldspeed = speed
else:
lat = self.oldlat
lon = self.oldlon
heading = self.oldheading
speed = self.oldspeed
return lat, lon, heading, speed