KeyError:<EChannelType.INTERNAL_ADC_13:19>微光3 EXG

2024-05-15 00:02:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试将我的Shimmer3(http://www.shimmersensing.com/products/shimmer3-imu-sensor)与我的LinuxMint计算机连接,并尝试使用蓝牙传输数据。为此,我使用git hub代码: https://github.com/seemoo-lab/pyshimmer。 我做了每件事,它是如何解释在读我,但我仍然得到这个错误,无法修复它。 以下是我的简短节目:

import time

from serial import Serial

from pyshimmer import ShimmerBluetooth, DEFAULT_BAUDRATE, DataPacket, EChannelType


def handler(pkt: DataPacket) -> None:
    cur_value = pkt[EChannelType.INTERNAL_ADC_13]
    print(f'Received new data point: {cur_value}')


if __name__ == '__main__':

    serial = Serial('/dev/rfcomm0', DEFAULT_BAUDRATE)
    shim_dev = ShimmerBluetooth(serial)

    shim_dev.initialize()

    dev_name = shim_dev.get_device_name()
    print(f'My name is: {dev_name}')

    shim_dev.add_stream_callback(handler)

    shim_dev.start_streaming()
    time.sleep(5.0)
    shim_dev.stop_streaming()

    shim_dev.shutdown()

这是我的错误/终端输出:

    My name is: Shimmer_86A5
    Exception in thread Thread-1:
    Traceback (most recent call last):
      File "/usr/lib/python3.7/threading.py", line 926, in _bootstrap_inner
        self.run()
      File "/usr/lib/python3.7/threading.py", line 870, in run
        self._target(*self._args, **self._kwargs)
      File "/home/zfcc/Dokumente/pyshimmer/pyshimmer/bluetooth/bt_api.py", line 294, in _run_readloop
        self._bluetooth.process_single_input_event()
      File "/home/zfcc/Dokumente/pyshimmer/pyshimmer/bluetooth/bt_api.py", line 206, in process_single_input_event
        self._process_data_packet()
      File "/home/zfcc/Dokumente/pyshimmer/pyshimmer/bluetooth/bt_api.py", line 148, in _process_data_packet
        cb(packet)
      File "/home/zfcc/Dokumente/pyshimmer/Untitled-3.py", line 14, in handler
        cur_value = pkt[EChannelType.INTERNAL_ADC_13]
      File "/home/zfcc/Dokumente/pyshimmer/pyshimmer/bluetooth/bt_commands.py", line 60, in __getitem__
        return self._values[item]
KeyError: <EChannelType.INTERNAL_ADC_13: 19>


the value of pkt before the error is:
<pyshimmer.bluetooth.bt_commands.DataPacket object at 0x7f58b43a6e50>


value of pkt.channel:
[<EChannelType.TIMESTAMP: 42>, <EChannelType.ACCEL_LN_X: 1>, <EChannelType.ACCEL_LN_Y: 2>, <EChannelType.ACCEL_LN_Z: 3>, <EChannelType.VBATT: 4>, <EChannelType.GYRO_MPU9150_X: 11>, <EChannelType.GYRO_MPU9150_Y: 12>, <EChannelType.GYRO_MPU9150_Z: 13>, <EChannelType.MAG_LSM303DLHC_X: 8>, <EChannelType.MAG_LSM303DLHC_Y: 9>, <EChannelType.MAG_LSM303DLHC_Z: 10>]

value of channel_types:
[<pyshimmer.device.ChannelDataType object at 0x7ff4620ba5d0>, <pyshimmer.device.ChannelDataType object at 0x7ff4620b6810>, <pyshimmer.device.ChannelDataType object at 0x7ff46212b6d0>, <pyshimmer.device.ChannelDataType object at 0x7ff4620b6d50>, <pyshimmer.device.ChannelDataType object at 0x7ff4620b6d90>, <pyshimmer.device.ChannelDataType object at 0x7ff4620b6f50>, <pyshimmer.device.ChannelDataType object at 0x7ff4620b6f90>, <pyshimmer.device.ChannelDataType object at 0x7ff4620b6fd0>, <pyshimmer.device.ChannelDataType object at 0x7ff4620b6e90>, <pyshimmer.device.ChannelDataType object at 0x7ff4620b6ed0>, <pyshimmer.device.ChannelDataType object at 0x7ff4620b6f10>]


value of channels:
[<EChannelType.TIMESTAMP: 42>, <EChannelType.ACCEL_LN_X: 1>, <EChannelType.ACCEL_LN_Y: 2>, <EChannelType.ACCEL_LN_Z: 3>, <EChannelType.VBATT: 4>, <EChannelType.GYRO_MPU9150_X: 11>, <EChannelType.GYRO_MPU9150_Y: 12>, <EChannelType.GYRO_MPU9150_Z: 13>, <EChannelType.MAG_LSM303DLHC_X: 8>, <EChannelType.MAG_LSM303DLHC_Y: 9>, <EChannelType.MAG_LSM303DLHC_Z: 10>]

Tags: nameinpydevselfobjectvaluedevice

热门问题