コード例 #1
0
 def _decode(self, packets):
     from waggle.protocol.v5.decoder import decode_frame
     decoded = decode_frame(packets)
     if decoded != {}:
         return decoded
     else:
         return None
コード例 #2
0
    def test_encode(self):
        text = '''
        nc_load_1 0.74
        nc_load_5 0.53
        nc_load_10 0.45
        wagman_ver_git 1ef3
        wagman_time_compile 1522869670
        nc_boot_id 12345678901234567890123456789012
        nc_ram_total 8046136
        nc_ram_free 291328
        net_broadband_rx 123456
        net_broadband_tx 654321
        ep_service_heartbeat_exitcode 0
        ep_service_heartbeat_state a
        ep_service_heartbeat_substate r
        ep_service_heartbeat_uptime 1522795300
        ep_service_init_exitcode 1
        ep_service_init_state i
        ep_service_init_substate d
        ep_service_init_uptime 1522795300
        ep_service_rabbitmq_exitcode 0
        ep_service_rabbitmq_state a
        ep_service_rabbitmq_substate r
        ep_service_rabbitmq_uptime 1522876954
        '''

        encoded_data = encode_frame_from_flat_string(text, verbose=True)
        self.assertIsInstance(encoded_data, bytes)

        decoded_data = decode_frame(encoded_data)

        values = flatten_sensor_values(decoded_data)

        self.assertAlmostEqual(values['nc_load_1'], 0.74)
        self.assertAlmostEqual(values['nc_load_5'], 0.53)
        self.assertAlmostEqual(values['nc_load_10'], 0.45)
        self.assertAlmostEqual(values['nc_ram_total'], 8046136)
        self.assertAlmostEqual(values['nc_ram_free'], 291328)
        self.assertAlmostEqual(values['net_broadband_rx'], 123456)
        self.assertAlmostEqual(values['net_broadband_tx'], 654321)

        self.assertEqual(values['wagman_ver_git'], '1ef3')
        self.assertEqual(values['nc_boot_id'],
                         '12345678901234567890123456789012')
コード例 #3
0
    def test_encode(self):
        data = {
            0x50: ['010203040506'],
            0x71: ['73c02022aeab4e7fb5ac6be2b0d7d771'],
            0x5A: [123, 234, 345, 456, 567, 678],
            0x07: [123, 234, 345],
        }

        encoded_data = encode_frame(data)
        self.assertIsInstance(encoded_data, bytes)

        decoded_data = decode_frame(encoded_data)

        for sensor_id in data.keys():
            self.assertIn(sensor_id, decoded_data)
            decoded_values = decoded_data[sensor_id]
            self.assertIsInstance(decoded_values, dict)
            decoded_values = list(decoded_values.values())
            original_values = data[sensor_id]
            self.assertEqual(decoded_values, original_values)
コード例 #4
0
 def test_empty(self):
     self.assertEqual(decode_frame(encode_frame_from_flat_string('')), {})
コード例 #5
0
 def test_empty(self):
     self.assertEqual(decode_frame(encode_frame({})), {})
コード例 #6
0
 def _decode(self, packets):
     decoded = decode_frame(packets)
     if decoded != {}:
         return decoded
     else:
         return None