Собираем
информацию
по крупицам
Новости


Новости

ЖЖшечка-стайл: Год после увольнения из Росатома (Часть 2)
11-09-2018
21:28:40

Фирма, в которой я удаленно работаю, занимается разработкой устройств высокоточной GNSS-навигации. Одно из развиваемых направлений - судовая гражданская навигация. Для навигационных устройств, которые выдают данные по протоколам BINR и NMEA2/3, требуется ПО, которое бы все эти измерения красиво показывало на мобильных устройствах.

 

Разработку я веду на C++ - фреймверке Qt с использованием QML. Это очень удобно, так как сразу получается бесплатная компиляция под десктоп 32/64 bit для Linux и Windows, и, что самое главное, под платформу Android. Мой код интегрируется с проприетарной библиотекой, которая обеспечивает парсинг NMEA и BINR протоколов, и которая до этого проекта существовала для нескольких embedded-платформ под 16/32 bit, плюс под Windows 32 bit компилировалась через какой-то древний Borland-компилятор. Да, в таком деле все время приходится работать с легаси. Зато, если понадобится, мы сможем сделать сборку хоть под микропроцессор Эльбрус, благо на последней выставке "ЭкспоЭлектроника-2018" уже появилась куча отечественных устройств на нем.

 

Недавно, сделав крупный релиз, я организовал проверку работы системы в "боевых" условиях на яхте:

 

 

 

 

В самом начале работы был нарисован оригинал-макет того, как должна выглядеть страница с навигационными датчиками:

 

 

 

 

В ходе работы были некоторые трансформации, в результате получилось вот такое Android-приложение с навигационным экраном. Практически, один-в-один, как заказывали:

 

 

 

 

Все стрелочки прикольно упруго двигаются, а цифровые счетчики "прокручиваются" как настоящие. Такое поведение можно отключить в настройках, но мне так больше нравится. Далее пришлось научиться работать из C++ со встроенными сенсорами мобильного устройства в ОС Android:

 

 

 

 

Встроенные сенсоры - это демонстрационная возможность. На самом деле настоящие навигационные данные передаются по сети по TCP-протоколу или берутся из файловых логов, если работает режим имитации. В планах передача данных по Bluetooth и USB/Com. Меню у приложения многоуровневое, и выглядит так:

 

 

 

 

Далее наметилась работа на поддержку картографии. Картография - это вообще отдельный большой мир. В новых релизах появилось окно, в котором отображаются слои Open Street Map и Open Sea Map. Конечно, это все демонстрационно, так как для реальной навигации должны использоваться профессиональные морские карты, но реализовано это будет позднее:

 

 

 

 

Для карт такой стиль экрана не очень подходит, так что видимо предстоит работа по переделыванию на планарный стиль, с картой во весь экран, без этих всех олдстайловых рамочек, кнопочек и счетчиков.

 

В общем, работа кипит.

 

* * *

 

Этим постом я сдержал обещание рассказать о том, как обустраивает свою жизнь программист после увольнения из "теплого" места. Я неимоверно рад, что в мире есть Интернет, благодаря которому такая деятельность как удаленная разработка вообще стала возможна. Да, иногда приходится ездить в командировки, но это лишний раз мобилизует, потому что к очередным испытаниям надо доводить проект по-максимому до вылизанного состояния.

 

Всем удачи.



Интересное на сайте


BASH » Cron Emulator

Многие системные администраторы Linux часто сталкиваются с одной и той же проблемой: при попытке запуска команды из-под демона Cron, она ведет себя не...


Mplayer / Mencoder » Как перекодировать AC3 в MP3 с помощью mencoder

Немногие знают, что mencoder способен кодировать не только видео, но и звук. В этой статье будет показано, как с помощью mencoder можно...


Перевод документации Ext JS 4.2 » Ext JS 4.2. Часть 3.3: Определение контроллера

  Определение контроллера   Контроллеры - это тот клей, который связывает все части веб-приложения воедино. Контроллеры отлавливают возникно...

RSS подписка

Подпишитесь на новости сайта по RSS

Поделиться этой страницей


Статистика


О, смотри-ка какое хорошее место. Дайте два!

Внимание!


На этом сайте разрабатывается программа MyTetra и её родственные проекты. Доступны к просмотру следующие базы знаний:

 

База Xintrea (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)

База Rarrugas (1, 2)

База Balas

База YellowRaven

База Yurons

База Lesnik757

База Shandor

База Sirrichar

База Anatolean

База Аrmagedec

База SorokinRed

База Deadelf79

База Adgaver (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)

База Pipitos1983

База Soxsten

База Silenn

База Shlyapnikova - херомантия и ригидность

База Svoynickname

База Larson227

База Velonski

База BrokeRU

База Mcold

 

Требуют доработки:

 

База Tairesh

База Ivnglkv

База Kolyag87

База Andyk101

База Garik456456

База Harpokrat

База SalexIzyh

База Duwaz

База RuDennn

База Manakaden

База Vitvrn

База Fanrok

 

Подробности на странице MyTetra Share.

 WebHamster.Ru
 Домик любопытного хомячка
Яндекс индекс цитирования
Почтовый ящик