У меня есть Panatone Huey, калибровочный пробник монитора (устройство, которое вы подключаете к монитору, и оно дает вам цветные показания) - я хочу получать показания с устройства в Python.
Никогда раньше не писал такой драйвер устройства, я не уверен, с чего начать.
Я нашел два C / C ++ проекта с открытым исходным кодом, которые взаимодействуют с Heuy - ArgyllCMS и mcalib .
ArgyllCMS поставляется с командой spotread
, которая возвращает показания с устройства, хотя он функционирует только как интерактивный инструмент командной строки, поэтому запуск его через subprocess
не будет (легко) работать.
Код, который ArgyllCMS использует для связи с устройством, находится в spectro / huey.c
Не пробовал (только нашел его при написании этого вопроса), но mcalib содержит гораздо меньше кода, в основном просто heuy.cpp - однако у него есть тревожное количество FIXME
комментариев и неполных методов и код создается автоматически (бесполезные имена переменных)
Кажется, есть три варианта:
- Измените
spotread
для работы без каких-либо интерактивных подсказок, позвоните по номеру subprocess
- Создайте модуль Python на основе C, используя
huey.c
или huey.cpp
- Повторно реализовать интерфейс, используя что-то вроде PyUSB
Будучи гораздо более знакомым с Python, я испытываю желание использовать PyUSB, но будет ли это значительно более трудоемким, чем упаковка существующего кода с Python C API? Есть ли что-то очевидное в любой из реализаций C, что будет нелегко сделать в PyUSB?