1

我尝试将我的 Shimmer3 ( http://www.shimmersensing.com/products/shimmer3-imu-sensor ) 与我的 Linux Mint 计算机连接,并尝试使用蓝牙传输数据。为此,我使用 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>]
4

0 回答 0