Source code for caspia.node.components.sensors.datatypes

import struct


[docs]def parse_co2(data): """Return float on valid co2. None, on measurement error (INVALID_VALUE). """ if len(data) != 2: raise ValueError if data == b'\xFF\xFF': return None co2, = struct.unpack('<H', data) return float(co2)
[docs]def parse_temperature(data): """Return float on valid temperature. None, on measurement error (INVALID_VALUE). """ if len(data) != 2: raise ValueError if data == b'\xFF\xFF': return None temp, = struct.unpack('<h', data) return temp / 100
[docs]def parse_analog_uint10(data): """Return float in range 0-1 if data are valid. None if value is invalid. Raises value error if data are invalid. """ if len(data) != 2: raise ValueError if data == b'\xFF\xFF': return None value, = struct.unpack('<H', data) return value / 0x3FF
[docs]def parse_humidity(data): if len(data) != 2: raise ValueError if data == b'\xFF\xFF': return None value, = struct.unpack('<H', data) return value / 100