Как водить CAN Board Board в Python? - PullRequest
0 голосов
/ 26 ноября 2018

Я использую доску для консервов, модель AMO-2203E.Я успешно установил драйвер (https://support.advantech.com/support/DownloadSRDetail_New.aspx?SR_ID=GF-GRSC&Doc_Source=Download) на ubuntu14.04, ядро ​​3.13 и успешно отправил и получил с помощью предоставленного примера программы.
Эта программа написана на C, я хочу перенести ее в свой проект python.
Я знаю, что существует проект CAN с открытым исходным кодом на основе Python (https://python -can.readthedocs.io / en / 2.1.0 / ), но он поддерживает только следующие интерфейсы, иПоддержка Advantech отсутствует.

Socketcan
Kvaser’s CANLIB
CAN over Serial
CAN over Serial / SLCAN
IXXAT Virtual CAN Interface
PCAN Basic API
USB2CAN Interface
NI-CAN
isCAN
NEOVI Interface
Vector
Virtual

Полагаю, я могу добавить поддержку Advantech, основанную на этой платформе, но мне это кажется немного сложным.
Другая идея - скомпилировать файл C для отправки.и получение динамических библиотек, которые называются python для ctypes. Это должно быть выполнимо.
Я хочу знать, есть ли лучший способ?

1 Ответ

0 голосов
/ 27 ноября 2018

Похоже, что Advantech предоставляет как драйвер SocketCAN, так и другую версию, вероятно, для интерфейса с символьным устройством.Вам просто нужно установить вариант SocketCAN, чтобы получить интерфейс can0.Как только он заработает, вы можете использовать SocketCAN "драйвер" python-can .

...