Поиск

Утилита для управления турелью HSFW от Edmund Optics


Итак, вчера я написал базовый функционал для управления турелью «High Speed Filter Wheel» от Edmund Optics, сегодня добавил функцию смены имен колес/фильтров и более-менее дополировал. Код лежит на гитхабе (т.к. утилитка мелкая, я ее в сниппеты запихал, чтобы отдельную репу не делать), а также в одноименных репах на сосфорже, гитлабе и битбакете. Функционал сброса имен в «умолчательные» значения пока не добавлял (не думаю, что нужно).

Вот краткая справка:

HSFW_manage

  -H, --home              переместиться в стартовую позицию
  -N, --wheel-name=arg    название колеса
  -W, --wheel-id=arg      буквенный идентификатор колеса
  -h, --help              отобразить эту справку
  -i, --filter-id=arg     идентификатор фильтра, например, "A3"
  -n, --filter-name=arg   название фильтра
  -p, --f-position=arg    номер позиции фильтра
  -s, --serial=arg        серийный номер турели (с начальными нулями)
  --list                  список имен только присутствующих устройств
  --list-all              список всех сохраненных имен
  --rename                переименовать сохраненные имена колес/фильтров

Если запустить утилиту без параметров, она выдаст на экран текущую позицию турели. В принципе, базовый функционал из справки понятен: это перемещение в «дом», перемещение в заданную позицию, выдача списка всех подключенных устройств или списка всех сохраненных в EEPROM параметров, переименование колес/позиций.
На случай, если вдруг в разных турелях будут установлены колеса с одинаковыми буквенными обозначениями и именами, я добавил доступ по идентификатору.
Кстати, пока гонял программку в попытках снять видео, нашел пару багов: 1) даже если указать другой идентификатор при подключенной одной турели, все равно будет выбрана она; 2) попытка переименовать фильт с номером >5 для 8-фильтровых колес (колеса F, G и H) заканчивается матюками, что номер позиции >5 (видимо, на стадии проверки). И если второе — ерунда, которую фичей можно обозвать, первое обязательно надо будет исправить, иначе в случае, когда подключено несколько турелей, и одна отвалилась, а обращение идет по идентификатору, вместо выдачи ошибки благополучно будет крутиться другая турель!

Видео:

eddy-em.livejournal.com

Добавить комментарий