Я пытаюсь прочитать данные, поступающие с одного устройства по протоколу связи CAN. Я использую разъем Kvaser CAN-USB и python-can, но после отправки сообщения получаю следующее:
Вот мой код:
import can
import time
bus=can.interface.Bus(bustype='kvaser',channel=0, bitrate=250000)
print (bus)
time.sleep(1)
msg =can.Message(arbitration_id=0x032)
print(msg)
time.sleep(1)
while True:
bus.send(msg)
recvMsg = bus.recv(timeout=0.5)
print (recvMsg)
time.sleep(1)
И вот ответ, который я получаю:
Kvaser Leaf Light v2, S/N 54781 (#1)
Timestamp: 0.000000 ID: 00000032 X DLC: 0
Timestamp: 1546613346.010231 ID: 0000 S E DLC: 4 00 01 00 00 Channel: 0
Согласно инструкции, я должен использовать следующее:
- Битрейт: 250 кбит
- 11-битный идентификатор: 0x031
- Настройки по умолчанию только для передачи
- 8-байтовая структура сообщения:
Байт: 1,
Описание: состояние заряда [%],
Тип: без знака,
Значение: 0-200 LSB = 0,5% SOC.
Я впервые использую этот протокол связи и прочитал описание python-can 3.0, но мне все еще не ясно, как решить проблему. Любая рекомендация?