MeterbusLib/MeterbusTypeConversion.py
2015-06-12 15:14:38 +02:00

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