Доступ к оборудованию USB (матрица датчиков давления с собственным API C ++) с использованием Python - PullRequest
2 голосов
/ 18 августа 2011

Я работаю с чувствительным к давлению матрасом с интерфейсом USB.Производитель предоставляет драйверы USB-устройств для Windows и API, написанный на C ++, который имеет функции для запроса данных и установки некоторых параметров.

В настоящее время я не могу использовать этот датчик для непосредственного тестирования некоторых скриптов Python для визуализации данных, имеямне пришлось попросить моих коллег написать для меня текстовый журнал, а затем я прочитал эту информацию в автономном режиме с помощью Python.

Кроме того, я вообще не могу использовать Linux с датчиком, потому что нет драйверов для Linux,и я не знаю, с чего начать «взламывать» датчик, и поэтому я спрашиваю:

«Если бы я попытался прочитать данные с этого датчика напрямую с помощью Python и, возможно, в Linux, чтоя должен сделать сначала или сначала прочитать? "

РЕДАКТИРОВАТЬ: устройство имеет драйвер FTDI (FTD2XX.dll), если это помогает.

Любая помощь будет очень приветствоваться

Ответы [ 2 ]

3 голосов
/ 18 августа 2011

Шансы довольно хорошие, это устройство HID, и в этом случае вы, вероятно, можете начать писать драйвер Linux для пользовательского пространства, используя libhid .Первое, с чего можно начать, это перечислить дерево, которое дает вам информацию о его возможностях.(lsusb -vvv или Пример )

Если вам не удастся использовать libusb в Linux (и в наши дни и на других платформах) для записи драйвера пользовательского пространства.Вы захотите использовать что-то вроде usbsnoop или реального аппаратного эквивалента , чтобы увидеть, что делает официальный драйвер, когда он разговаривает с устройством, и подражать ему оттуда.

Со стороны Python вы, вероятно, можете сгенерировать подходящую оболочку для существующего API C ++, используя SWIG за относительно небольшие усилия, особенно по сравнению с разработкой полностью настраиваемого драйвера.

Обновление:

Если это устройство FTDI, с ним может быть намного проще работать.В зависимости от того, что показывают поставщик и идентификатор продукта, он может автоматически работать с драйвером FTDI в Linux, предоставляя вам последовательный порт USB.В случае отсутствия в модуле параметров - vendor и product, которые, как я полагаю, вы можете использовать, чтобы заставить его запрашивать другие устройства, кроме уже известных ему комбинаций pid / vid.Оттуда вы можете попробовать открыть устройство последовательного порта с другими настройками.Если повезет, он уже может регулярно отправлять информацию о состоянии.

Если это не так, вы хотите попробовать и узнать, что посылает официальное программное обеспечение, чтобы оно начало играть.Вы снова попадаете в сферу фырканья, но я думаю, вполне возможно, что есть вещи, которые делают это на последовательном слое, а не на слое USB для окон (хотя я не могу назвать ни одного).Вы также можете чему-то научиться, пытаясь заставить их библиотеку использовать программный эмулированный последовательный порт вместо устройства FTDI и посмотреть, что оно пишет.

1 голос
/ 09 мая 2013

Чипы FTDI имеют драйвер linux. Просто зайдите на сайт FTDI и загрузите его. Драйвер создает виртуальный последовательный порт. Вы можете использовать PySerial для взаимодействия с ним.

Жаль, что я не видел почту раньше!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...