fixed Unicode Problem in Logging Taurus File

This commit is contained in:
2018-02-13 15:35:17 +01:00
parent 2b4e3c2220
commit aa608bbad4
3 changed files with 21 additions and 8 deletions

View File

@@ -132,7 +132,10 @@ class TAURUS:
request = []
for line in file.readlines ():
if len (line) > 2:
self.log ("Line: %s" % line)
try:
self.log ("Line: %s" % line)
except:
self.log ("Line: couldn't be decoded")
linetype = line [0]
linestatus = line [1]
linedata = line [2:]

View File

@@ -14,6 +14,6 @@ herdewritefile = TAU_PRC.2
[Animal Recognition]
animalrecognition = 0
animalrecognition = 1
rfiddev = /dev/serial0

View File

@@ -19,6 +19,8 @@ infotype = {0 : 'S-Buffer deleted',
6 : 'state'
}
ganimalnr = 0
class CanListener (can.Listener):
def on_message_received (self, msg):
print ("Received Data")
@@ -32,6 +34,7 @@ class CanListener (can.Listener):
self.loglevel = 9
#[arbitration_id', 'data', 'dlc', 'id_type', 'is_error_frame', 'is_extended_id', 'is_remote_frame', 'timestamp']
#<class 'can.message.Message'>
#Timestamp: 1499861978.530813 ID: 0581 000 DLC: 8 20 20 20 20 30 30 30 30
@@ -103,7 +106,7 @@ class CanListener (can.Listener):
if 'REQ' in str (_data):
self.log ("Anforderung Tiernummer von Tiererkennung", 3)
#FixMe AnimalNr from rFID
animalnr = 12
animalnr = ganimalnr
#_sendecho = 0
_repdata = bytearray (('REP00%03d' % animalnr).encode ())
self.waitack [_address] = 1
@@ -188,12 +191,12 @@ class CanListener (can.Listener):
elif infotype [_info_type] == 'milking time':
if self.dataset [_address]:
self.log ("Melkzeit fuer vorhandenen Datensatz im Puffer %s" % self.dataset [_address])
self.dataset [_address] ['time'] = int (_data)
self.dataset [_address] ['time'] = int (_data) / 100 * 60 + int (_data) % 100
animalinfo = self.db_con.getanimal (self.dataset [_address]['animalnr'])
if len (animalinfo):
self.log ("Tier in DB gefunden", 5)
else:
self.log ("Tier %d nicht in DB gefunden - wird autmatisch angelewgt" % (self.dataset [_address]['animalnr']), 1)
self.log ("Tier %d nicht in DB gefunden - wird autmatisch angelegt" % (self.dataset [_address]['animalnr']), 1)
#FixMe Check Animal Nr Range + x
_animaldata = {'animalnr' : self.dataset [_address]['animalnr'],
'earmark' : '2730000000000000',
@@ -293,14 +296,18 @@ if __name__ == "__main__":
c_animalrecognition = config.get ('Animal Recognition', 'animalrecognition')
c_animalrecognition = 0
if c_animalrecognition:
print ('Animalrecognition configured')
c_rfiddev = config.get ('Animal Recognition', 'rfiddev')
print (' with device %s' % c_rfiddev)
if not c_rfiddev:
print ('No RFID Device configured')
sys.exit (0)
"""
Nedap RFID Reader
"""
print ('RFID configured')
rfid = serial.Serial (port = c_rfiddev,\
baudrate = "9600",\
bytesize = 8,\
@@ -334,18 +341,21 @@ if __name__ == "__main__":
d = rfid.read ()
if len (d):
try:
readbuffer += d.decode("utf-8")
print ('Decode Error')
b = d.decode("utf-8")
except:
readbuffer = readbuffer
print ("Decode Error %s" % d)
b = ''
readbuffer += b
if readbuffer [-2:] == '\r\n':
if online:
data = readbuffer.split (' ')
if len (data) == 3:
newanimalnr = data [2]
print ("Tiernummer gelesen %s" % newanimalnr)
if newanimalnr != animalnr:
print ("Neue Tiernummer %s" % newanimalnr)
animalnr = newanimalnr
ganimalnr = animalnr
readbuffer = ''
online = 1