Example #1
0
 def test_decocde(self):
     data = [0x17, 0x00, 0x51, 0x01, 0x35, 0x17, 0x00, 0x51,
             0x01, 0x35, 0x17, 0x00, 0x51, 0x01, 0x35, 0x32,
             0x85, 0x32, 0x1b, 0x1b, 0x00, 0x04, 0x00, 0x00,
             0x3b, 0x01, 0x00, 0x01, 0x00, 0xd0, 0x07, 0xcc,
             0xf4, 0xa6, 0xff, 0x00, 0x00, 0xfe, 0xf5, 0x00,
             0x8e, 0xa5, 0x04, 0x04, 0x00, 0x00, 0x00, 0xca,
             0x41, 0x32, 0x3a, 0x56, 0x63, 0x63, 0x20, 0x31,
             0x32, 0x56]
     sdr = SdrFullSensorRecord(data)
     eq_(sdr.device_id_string, b'A2:Vcc 12V')
Example #2
0
    def test_linearization(self):
        sdr = SdrFullSensorRecord(None)

        # linear
        sdr.linearization = 0
        eq_(sdr.l(1), 1)
        eq_(sdr.l(10), 10)

        # ln
        sdr.linearization = 1
        eq_(sdr.l(1), 0)

        # log
        sdr.linearization = 2
        eq_(sdr.l(10), 1)
        eq_(sdr.l(100), 2)

        # log
        sdr.linearization = 3
        eq_(sdr.l(8), 3)
        eq_(sdr.l(16), 4)

        # e
        sdr.linearization = 4
        eq_(sdr.l(1), 2.718281828459045)

        # exp10
        sdr.linearization = 5
        eq_(sdr.l(1), 10)
        eq_(sdr.l(2), 100)

        # exp2
        sdr.linearization = 6
        eq_(sdr.l(3), 8)
        eq_(sdr.l(4), 16)

        # 1/x
        sdr.linearization = 7
        eq_(sdr.l(2), 0.5)
        eq_(sdr.l(4), 0.25)

        # sqr
        sdr.linearization = 8
        eq_(sdr.l(2), 4)

        # cube
        sdr.linearization = 9
        eq_(sdr.l(2), 8)
        eq_(sdr.l(3), 27)

        # sqrt
        sdr.linearization = 10
        eq_(sdr.l(16), 4)

        # cubert
        sdr.linearization = 11
        eq_(sdr.l(8), 2)
        eq_(sdr.l(27), 3)
Example #3
0
 def test_linearization_key_error(self):
     sdr = SdrFullSensorRecord(None)
     sdr.linearization = 12
     sdr.l(1)
Example #4
0
 def test_invalid_length(self):
     data = (0, 0, 0, 0, 0)
     SdrFullSensorRecord(data)
Example #5
0
    def test_decode_capabilities(self):
        record = SdrFullSensorRecord()

        record._decode_capabilities(0)
        ok_('ignore_sensor' not in record.capabilities)
        ok_('auto_rearm' not in record.capabilities)
        ok_('hysteresis_not_supported' in record.capabilities)
        ok_('threshold_not_supported' in record.capabilities)

        record._decode_capabilities(0x80)
        ok_('ignore_sensor' in record.capabilities)
        ok_('auto_rearm' not in record.capabilities)
        ok_('hysteresis_not_supported' in record.capabilities)
        ok_('threshold_not_supported' in record.capabilities)

        record._decode_capabilities(0x40)
        ok_('ignore_sensor' not in record.capabilities)
        ok_('auto_rearm' in record.capabilities)
        ok_('hysteresis_not_supported' in record.capabilities)
        ok_('threshold_not_supported' in record.capabilities)

        record._decode_capabilities(0x30)
        ok_('ignore_sensor' not in record.capabilities)
        ok_('auto_rearm' not in record.capabilities)
        ok_('hysteresis_fixed' in record.capabilities)
        ok_('threshold_not_supported' in record.capabilities)

        record._decode_capabilities(0x0c)
        ok_('ignore_sensor' not in record.capabilities)
        ok_('auto_rearm' not in record.capabilities)
        ok_('hysteresis_not_supported' in record.capabilities)
        ok_('threshold_fixed' in record.capabilities)
Example #6
0
    def test_convert_sensor_raw_to_value(self):
        sdr = SdrFullSensorRecord()
        eq_(sdr.convert_sensor_raw_to_value(None), None)

        sdr.analog_data_format = sdr.DATA_FMT_UNSIGNED
        sdr.m = 1
        sdr.b = 0
        sdr.k1 = 0
        sdr.k2 = 0
        sdr.linearization = 0
        eq_(sdr.convert_sensor_raw_to_value(1), 1)
        eq_(sdr.convert_sensor_raw_to_value(255), 255)

        sdr.analog_data_format = sdr.DATA_FMT_UNSIGNED
        sdr.m = 10
        sdr.b = 0
        sdr.k1 = 0
        sdr.k2 = 0
        sdr.linearization = 0
        eq_(sdr.convert_sensor_raw_to_value(1), 10)
        eq_(sdr.convert_sensor_raw_to_value(255), 2550)

        sdr.analog_data_format = sdr.DATA_FMT_1S_COMPLEMENT
        sdr.m = 1
        sdr.b = 0
        sdr.k1 = 0
        sdr.k2 = 0
        sdr.linearization = 0
        eq_(sdr.convert_sensor_raw_to_value(1), 1)
        eq_(sdr.convert_sensor_raw_to_value(128), -127)
        eq_(sdr.convert_sensor_raw_to_value(255), 0)

        sdr.analog_data_format = sdr.DATA_FMT_2S_COMPLEMENT
        sdr.m = 1
        sdr.b = 0
        sdr.k1 = 0
        sdr.k2 = 0
        sdr.linearization = 0
        eq_(sdr.convert_sensor_raw_to_value(1), 1)
        eq_(sdr.convert_sensor_raw_to_value(128), -128)
        eq_(sdr.convert_sensor_raw_to_value(255), -1)
Example #7
0
 def test_convert_complement(self):
     eq_(SdrFullSensorRecord()._convert_complement(0x8, 4), -8)
     eq_(SdrFullSensorRecord()._convert_complement(0x80, 8), -128)
     eq_(SdrFullSensorRecord()._convert_complement(0x8000, 16), -32768)
Example #8
0
def test_sdrfullsensorrecord_linearization_key_error():
    sdr = SdrFullSensorRecord(None)
    sdr.linearization = 12
    sdr.l(1)
Example #9
0
def test_sdrfullsensorrecord_invalid_length():
    data = (0, 0, 0, 0, 0)
    SdrFullSensorRecord(data)