frame parsing
This commit is contained in:
@ -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
|
||||
|
Reference in New Issue
Block a user