![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Итак, вчера я написал базовый функционал для управления турелью "High Speed Filter Wheel" от Edmund Optics, сегодня добавил функцию смены имен колес/фильтров и более-менее дополировал. Код лежит на гитхабе (т.к. утилитка мелкая, я ее в сниппеты запихал, чтобы отдельную репу не делать), а также в одноименных репах на сосфорже, гитлабе и битбакете. Функционал сброса имен в "умолчательные" значения пока не добавлял (не думаю, что нужно).
Вот краткая справка:
Если запустить утилиту без параметров, она выдаст на экран текущую позицию турели. В принципе, базовый функционал из справки понятен: это перемещение в "дом", перемещение в заданную позицию, выдача списка всех подключенных устройств или списка всех сохраненных в EEPROM параметров, переименование колес/позиций.
На случай, если вдруг в разных турелях будут установлены колеса с одинаковыми буквенными обозначениями и именами, я добавил доступ по идентификатору.
Кстати, пока гонял программку в попытках снять видео, нашел пару багов: 1) даже если указать другой идентификатор при подключенной одной турели, все равно будет выбрана она; 2) попытка переименовать фильт с номером >5 для 8-фильтровых колес (колеса F, G и H) заканчивается матюками, что номер позиции >5 (видимо, на стадии проверки). И если второе — ерунда, которую фичей можно обозвать, первое обязательно надо будет исправить, иначе в случае, когда подключено несколько турелей, и одна отвалилась, а обращение идет по идентификатору, вместо выдачи ошибки благополучно будет крутиться другая турель!
Видео:
Сегодня взял вторую турель и доработал утилиту: избавился от вышеназванных багов, добавил возможность сброса имен в значения по умолчанию, добавил возможность установки в позицию "дом" той турели, в которой есть указанный фильтр. Да и вообще, оказалось, что все купленные колеса промаркированы как 'A', т.е. обращаться надо будет либо по идентификатору (что не очень удобно), либо по именам (что удобней). Хотя, конечно, плохо, что колеса одноименные: если колесо воткнуть в "чужую" турель, понять об этом можно будет лишь после пробных снимков (и то, возможно, не сразу)...
Систему управления фотометром планируем только под линукс писать (Тимур говорит, что "родной" линуксовый SDK для быстрой камеры присутствует и есть истории успеха работы с ним), архитектура будет клиент-серверная. А вот клиенты уже будут кроссплатформенными (для себя, наверное, консольную сделаю, а для народа тимур на Qt нарисует). Самой интересной и сложной будет методическая работа: как обрабатывать "кубы данных" с быстрой камеры, чтобы реализовать работу Lucky imaging. Заодно думали про фокусировку: если у цейсса нет каких-нибудь характерных асимметричных дефектов изображения (скажем, комы) с амплитудой выше полуширины первого максимума функции Эйри (но, понятное дело, меньше сиинга, иначе эти дефекты давно заметили бы), то определить знак изменения фокуса без перефокусировки (или установки в сходящемся пучке асимметричной маски) будет невозможно!
Вот краткая справка:
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 (видимо, на стадии проверки). И если второе — ерунда, которую фичей можно обозвать, первое обязательно надо будет исправить, иначе в случае, когда подключено несколько турелей, и одна отвалилась, а обращение идет по идентификатору, вместо выдачи ошибки благополучно будет крутиться другая турель!
Видео:
UPD
Сегодня взял вторую турель и доработал утилиту: избавился от вышеназванных багов, добавил возможность сброса имен в значения по умолчанию, добавил возможность установки в позицию "дом" той турели, в которой есть указанный фильтр. Да и вообще, оказалось, что все купленные колеса промаркированы как 'A', т.е. обращаться надо будет либо по идентификатору (что не очень удобно), либо по именам (что удобней). Хотя, конечно, плохо, что колеса одноименные: если колесо воткнуть в "чужую" турель, понять об этом можно будет лишь после пробных снимков (и то, возможно, не сразу)...
Систему управления фотометром планируем только под линукс писать (Тимур говорит, что "родной" линуксовый SDK для быстрой камеры присутствует и есть истории успеха работы с ним), архитектура будет клиент-серверная. А вот клиенты уже будут кроссплатформенными (для себя, наверное, консольную сделаю, а для народа тимур на Qt нарисует). Самой интересной и сложной будет методическая работа: как обрабатывать "кубы данных" с быстрой камеры, чтобы реализовать работу Lucky imaging. Заодно думали про фокусировку: если у цейсса нет каких-нибудь характерных асимметричных дефектов изображения (скажем, комы) с амплитудой выше полуширины первого максимума функции Эйри (но, понятное дело, меньше сиинга, иначе эти дефекты давно заметили бы), то определить знак изменения фокуса без перефокусировки (или установки в сходящемся пучке асимметричной маски) будет невозможно!
no subject
Date: 2016-05-14 05:36 pm (UTC)no subject
Date: 2016-05-15 02:55 pm (UTC)