59 lines
1.6 KiB
Python
59 lines
1.6 KiB
Python
'''
|
|
Created on 11.06.2015
|
|
|
|
@author: wn
|
|
'''
|
|
|
|
from MeterbusLibExceptions import MediumConversionException
|
|
|
|
|
|
|
|
def bcd(data):
|
|
v = ""
|
|
for c in reversed(data):
|
|
v += str((c & 0xf0) >> 4)
|
|
v += str(c & 0x0f)
|
|
v = int(v)
|
|
return v
|
|
|
|
def manufCode(data):
|
|
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
|
|
|