Костерок

eddy_em


Емельянов Эдуард Владимирович


[sticky post]Содержание
Костерок
eddy_em
Здесь - краткое содержание моего графоманстваCollapse )

promo eddy_em march 10, 22:17 2
Buy for 10 tokens
Таки дошли у меня наконец-то руки испробовать эти датчики в действии. Набросал код. Сразу наткнулся на дурость проектирования: если после команды "начать измерение" произвести считывание, датчик вернет 0 вместо того, чтобы сказать NACK. И в дальнейшем тоже будет возвращать 0. Т.е. нужно…

INDI C API
Костерок
eddy_em
Товарищи астрономы (и не только), вопрос: где бы найти примеры клиентов на сишных API библиотеки INDI?
Дело в том, что у этой библиотеки уже довольно-таки широкая поддержка всякого железа, и есть реальная возможность перейти, наконец, от велосипедов под каждый тип ПЗС и т.п. к единой оболочке. Но что-то с С++ связываться вообще не хочется. Хочу продолжать писать на кошерной сишечке.
В корне исходников библиотеки есть заголовочные файлы с сишными API, да и сам indiserver на С написан. Что их побудило С++ пихать в библиотеку — непонятно.
Для начала раздобыть бы примеров клиента CCD под INDI. Хочу прослойку сделать для ATIK'овской камеры цейссовского гида (да, на цейссовском гиде через какое-то время появится нормальная камера): на телескопе будет висеть одноплатник с запущенным на нем indiserver'ом, а клиент — управляющий компьютер или еще один посредник — будет собирать и обрабатывать картинки.
Tags:

Велосипеды-велосипедища!
Костерок
eddy_em
Знание — сила, а незнание — мощный велосипедогенератор.
За 5 дней опытной эксплуатации демоны, обслуживающие болтвудовский датчик и all-sky почему-то наплодили уйму неотмерших потоков (хотя в коде выход из потока правильный), в результате несчастный кубитрак был загружен на 170%, и компиляция элементарного кода длилась две минуты! Эту проблему решил добавлением перезапуска демонов в cron.daily.
Вчера все это хозяйство разместили на Цейссе (но пока не устанавливали на крыше), включив во время отсутствия электричества (на Цейссе-то упсы, которые не меньше двух часов даже с рабочим телескопом выдержат). В итоге время на кубитраке получилось неправильным. По идее, это должно было устраниться, как только появится сеть — ведь на кубитраке запущен ntp-демон. Как бы не так! Решил опять велосипедно: отменой автозапуска бесполезного ntp-демона и добавления ntpdate в cron.hourly.
Удивился куче логов в /var/log (хотя это одноплатник — он вообще логи в оперативке должен хранить, или даже лучше в /dev/null). Т.к. проблема глубокая, решил ее лишь настройкой logrotate ротировать ежедневно, оставляя по 1 логу.
Ну и вообще, до сих пор негодую, что дебилиан перешел на systemd! Хоть у меня и есть репа генты для кубитрака, собранная в чруте, но очень проблематично обновляться: надо вынимать флешку и перезаливать образ. Что долго и совсем неудобно, когда эта флешка черт-те где. Пришлось вместо генты ставить эту дрянь. Судя по выхлопу systemctl, запущена толпа ненужных сервисов. Что-то поприбивал, но как бороться с автозапуском ненужного wpa_supplicant, не убивая идиотский нетворкманагер, не понимаю. Вообще логика создателей армбиана не ясна для меня: какой идиот на сервер будет пихать нетворкманагер или системД? А уж тем паче, если это — сервер на одноплатнике!

Тьфу! Выпустил пар. Отдохну, а после обеда продолжу накапливать гнев — мне еще на серваке с Scientific Linux (ага, тоже с поцтерошлаком) разворачивать логгирующие демоны и апач с proftpd настраивать… Ну почему наши информатики используют это порождение Красной Шапки? И сами же матюкаются на костыли с поцтерошлаком. Как те мыши с кактусом!
UPDCollapse )

Масленица!
Костерок
eddy_em
Поздравляю всех с началом астрономической весны и масленичной недели.

Логгер для all-sky и cloud sensor
Костерок
eddy_em
"Скрестить ужа с ежом" оказалось непросто, учитывая все косяки cfitsio. Но, все-таки, получилось. Я решил этого демона не выносить в отдельную репу, а засунул в директорию внутри репы с болтвудом.
Очень много времени убил, не понимая, какого черта inotify, как только обновится файл, перестает отслеживать. А все оказалось просто: cfitsio вместо того, чтобы сделать truncate имеющегося файла (когда имени файла предваряет "!") делает unlink. Понятно, что тут inotify уже не поможет. Сделал обновление дескрипторов каждый раз, как обновится файл.
Другим косяком cfitsio было то, что целые "записи" она пишет в зипованый фитс (using fits_write_record), а вот fits_write_key не хочет — говорит, что в зипованные файлы не может.
Я все больше и больше склоняюсь к тому, что нужно свою библиотеку писать для работы с фитсами! Как лет 5 (если не больше) назад начал в ней проблемы находить, так все не покидает мысля... А еще добавить туда мой fits_filter… В общем, мечты-мечты! Если клонироваться в 10 раз (и послать половину клонов работать там, где деньги платят), то, возможно, это все и будет реализовано.
А, совсем забыл!Collapse )

Термомониторинг ГЗ БТА
Костерок
eddy_em
Я решил уже выделить наработки по термомониторингу в отдельный проект. Там сейчас: простейшая прошивка для работы с двумя датчиками, даталоггер для нее, схема печатки под термодатчики для ЛУТа, зачатки схемы основных контроллеров и разведение ног в кубе.
На начальном этапе проектирования, кстати, этот куб очень удобен, т.к. наглядно видишь, что на каких ногах висит (а то было у меня уже, когда я на используемые USART'ом ноги пытался I2C вкорячить). Если бы этот куб еще код инициализации нормальный умел генерировать (а не ту бредопортянку, что делает), вообще сильно сократил бы начальный этап разработки. Зато он генерирует удобный отчет, который можно распечатать и иметь перед глазами наглядно все распределение периферии.

Еще графики по TSYS01
Костерок
eddy_em
Вчера дома я набросал логгер, общающийся с микроконтроллером, и сохраняющий температурные данные через указанный промежуток времени (в данном случае — одну секунду). Датчики все так же прилеплены к куску стекла и обмотаны двумя слоями толстой подложки для теплого пола. Похвастаюсь сразу картинкой:
temp_avg100
Скользящее среднее по 100 точкам

ПодробнейCollapse )

Все чудесатей и необычайшей…
Костерок
eddy_em
Кто бы мог подумать, что сохранение старых параметров порта может привести к "поломке" коммуникаций?
Как только я закомментировал вот это:
        if(ioctl(comfd, TCGETA, &oldtty) < 0){  // Get settings
            /// "Не могу получить настройки"
            WARN(_("Can't get settings"));
            signals(2);
        }

так сразу демон all-sky стал нормально работать!

Вот как такое может быть? Подозреваю, что какой-нибудь баг в коде модуля для FTDI…

Сравнение двух TSYS01
Костерок
eddy_em
Сегодня я отлутил и спаял плату для второго термодатчика. Коллега на работе дал мне кусок стекла для чистоты эксперимента (все-таки, датчики к стеклу будут клеиться, правда, не совсем такому). Я приклеил датчики к стеклу, и стал копить статистику.

ДальшеCollapse )

Рукожопие продолжается
Костерок
eddy_em
В попытке написать скрипт автозапуска демонов all-sky и cloud sensor, пока еще мне не подсказали о /dev/serial, я что-то эдакое записал в порт камеры, проверяя на нем, не является ли он болтвудовским датчиком.
В итоге коммуникация с камерой работает нормально, а вот картинку она не отдает. Точнее, отдает первую порцию данных с недостачей в несколько байт, а дальше молчит.
Пока я тут методом тыка пытаюсь разобраться, заодно послал запросы в техподдержку и на форум SBIG ­— вдруг таки дадут полноценный протокол? А вообще, это свинство — делать такие дорогие железки, и не сопровождать их уж если не SDK, так хотя бы полноценной документацией!

UPD: если запустить fits_capture.py отсюда, то изображение считывается, и дальше мой демон работает без проблем.
Ну вообще мистика какая-то — ведь в питоновом скрипте все точно также, разве что чтение блокирующее! Похоже, что-то я намудрил с ioctl'ами... Неужто TIOCEXCL в этом виноват? Потому как все остальное осталось таким же, каким и было.

P.S. Для пользователей внутренней сети обсерватории данные с болтвудовского датчика будут доступны по этому адресу: http://znd.sao.ru:55555/
Можно будет делать запросы с веб-страниц и обрабатывать их, чтобы вставлять куда надо данные. А на zarch.sao.ru будет крутиться архивный демон, сохраняющий изображения all-sky а FITS-файлы с добавлением в шапку информации о показаниях болтвуда.

?

Log in