Нуб, хотел ссылок? Получай! Вот
хронометр для велосоревнований. Без связи с ПК он — бессмысленная игрушка, т.к. каким-то образом же надо логгировать времена старта и финиша спортсменов?
Под F0 у меня
побольше наработок. Скажем, СУ чиллером в принципе может работать автономно, но для надежности обратная связь нужна: мало ли, что из строя выйдет.. А в ПЗСке надо обязательно выключить охлаждение, если возникнут проблемы с подачей хладагента. Остальное тоже требует взаимодействия с компьютером - для той же телеметрии.
Скажем, система термомониторинга зеркала устроена так:
контроллеры опрашивают температуру (до 16 термодатчиков TSYS01 на контроллер), между собой они связаны CAN-шиной. "Мастер" (с номером 0) связан с "малинкой", которая посредством простого
демона собирает статистику и отдает клиенту по условленному порту (можно просто в браузере запрос послать и увидеть данные) + этот же демон раз минут в 15 строит при помощи гнуплота красивые графики и выкладывает их в директорию, откуда nginx может отобразить клиенту через веб.
Вот эта штука вообще содержит все, необходимое для воспроизведения нашего фотометра MMPP (включая чертежи, правда, железки потом надо еще "обработать напильником"). Микроконтроллеры связаны с компьютером, при помощи CLI-утилиты я двигаю турели и шаговики, меняя режимы работы прибора. На основе специально разработанной библиотеки любой желающий может хоть GUI написать, но мне GUI нафиг не нужно, т.к. баш-скриптами автоматизация удобней делается.
Вот - библиотека для манипуляции с FITS-файлами (я ее забросил пока, но, возможно, через 4-7 лет возобновлю работу). Сделана на основе CLI-утилиты
fits_filter.
Здесь у меня куча всякой фигни под STM8. Вот там - да, можно найти пару-тройку "проектов", где связь с компьютером не нужна (вольтметры, сверлильный станок...).
Вот здесь — в CLI'шной утилите для работы с ПЗС от Apogee, у меня используется отдельный модуль просмотра изображений на GLUT (нужно было для юстировки приборов добавить такую опцию - вот и добавил).
Вот эта штука собирает изображения с all-sky камеры, размещает их в архиве и отдает клиенту либо в FITS-формате, либо (для отображения в браузере) в жопеге. Тоже никаких GUI здесь не нужно!
Вот - веб-морда для управления корректором спектрографа (видеозахватом занимается "малинка", на ней же висит демон, при помощи вебсокетов взаимодействующий с клиентом).
Эта простая разработка предназначена для трансляции видео с камер подсмотра в сеть (раньше я напрямую v4l2 использовал, но надоело каждый раз переделывать код, как камера поменяется, поэтому написал с использованием ffmpeg).
Вот эта штука помогает управлять 6-метровым телескопом. Да-да, из командной строки! Тоже нет времени довести ее до ума (хотя бы deprecated'ную slalib заменить на современную libsofa).
Для упрощения работы с вебом я даже когда-то написал простую
библиотечку, позволяющую обслуживать куки/запросы и работать с БД (sqlite - для аутентификации и авторизации). Сейчас, с переходом на вебсокеты, надо уже писать новую библиотечку. И аутентификацию несколько иначе делать...
Там у меня на гитхабе много еще всякой разной фигни. Прикола ради я когда-то даже простой
файлменеджер на вебе замутил...
Единственным моим позорищем с GUI является
вот эта штука, но она предназначена для просмотра изображений и интерактивной работы с ними. И я, будучи молодым и глупым, использовал GTK для отрисовки виджетов. Хотя есть значительно более приличные библиотеки (даже есть простые виджет-библиотеки на опенгле, позволяющие не хуже говнотыка рисовать свистоперделки, но зато не имеющие такого уродства "под капотом", как у GTK).
Ну как, нужны GUI для работы?
А по поводу бинарных форматов данных еще раз напомню: как думаешь, почему все разумные люди отказываются от бинарных форматов для работы с небольшими объемами данных, а сериализуют их? При написании той же системы управления БТА я столкнулся с тем, что фактически все необходимые данные лежат в бинарной структуре без выравнивания и прочих вещей, неделю убил, пока переделал заголовочные файлы и основной файл для работы с этими данными... Пришлось вручную везде указывать нужное выравнивание, жестко фиксировать типы данных... А было бы это в текстовом сериализованном виде, таких бы проблем не возникло!
Еще подобные бинарные интерфейсы вынуждают постоянно выполнять преобразования от одной "конечности" к другой! Если что, большинство современных компьютеров — остроконечные. Но так уж сложилось, что сетевой порядок байт — тупоконечный! Поэтому для общения бинарными данными нужно сначала преобразовать каждое число в тупоконечный формат, передать другой стороне, а та должна обратно преобразовать их в свой формат.
Добавлено after 8 minutes 6 seconds:
ПростоНуб, а вообще, сдается мне, что ты усиленно меня пытаешься затроллить. Потому что такой бред нести, какой ты периодически несешь, явно никто не будет!