frame parsing

This commit is contained in:
hg
2015-06-12 00:09:58 +02:00
parent aebbb53090
commit 53789088f2
5 changed files with 232 additions and 62 deletions

View File

@ -4,6 +4,9 @@ Created on 11.06.2015
@author: wn
'''
from MeterbusLibExceptions import MediumConversionException
def bcd(data):
v = ""
@ -13,13 +16,43 @@ def bcd(data):
return v
def manufCode(data):
print("data: %s %s" % (hex(data[1]), hex(data[0])))
v = data[1] * 256 + data[0]
print("v: %s" % hex(v))
l3 = chr((v & 0x20) + 64)
print("l3: %s" % l3)
l2 = chr((v >> 5) & 0x20)
print("l2: %s" % l2)
l1 = chr((v >> 10) & 0x20)
print("l1: %s" % l1)
return l1 + l2 + l3
v = (data[1] << 8) + data[0]
l3 = chr((v & 0x1f) + 64)
l2 = chr(((v >> 5) & 0x1f) + 64)
l1 = chr(((v >> 10) & 0x1f) + 64)
return l1 + l2 + l3
def mediumCode(data):
try:
res = ('Other',
'Oil',
'Electrity',
'Gas',
'Heat (Volume measured at return temperature: outlet',
'Steam',
'Hot Water',
'Water',
'Heat Cost Allocator',
'Compressed Air',
'Cooling Load Meter (Volume measured at return temperature: outlet',
'Cooling Load Meter (Volume measured at flow temperature: inlet',
'Heat (Volume measured at flow temperature: inlet)',
'Heat / Cooling Load Meter',
'Bus / System',
'Unknown Medium',
'Reserved (10)',
'Reserved (11)',
'Reserved (12)',
'Reserved (13)',
'Reserved (14)',
'Reserved (15)',
'Cold Water',
'Dual Water',
'Pressure',
'A/D Converter',
)[data]
return res
except IndexError:
raise MediumConversionException