Разработать программу (прошивку) на C++ для графической панели
Заказчик: ООО "Зентек", г.КировИсполнительное устройство:Контроллер-графическая панель, с микроконтроллером STM32F4 или STM32H7, или ESP32.1 ядро, порядка 512кб ОЗУ (возможно также исп. внешней ОЗУ, при необходимости), 4МБ внешней флеш-памяти.Язык программирования: С++ 2014Компилятор: Keil v6Среда разработки: Keil UVision, Cube MX IDE Имеющиеся библиотеки, с которыми требуется интеграция:- FreeRTOS - операционная система, открытая- LVGL - вывод на дисплей, открытая- Modbus - связь с другими контроллерами, закрытая, её разработчики в команде и на связи Имеющиеся библиотеки, исходники которых следует анализировать при написании:ZControl - библиотека на QML, реализующая требуемый функционал в мобильном приложениина Android-устройствах (см. соотв. приложение на Google play). Описание задачи:Создание интерфейса пользователя (UI) на контроллере - графической панели,с резистивным или емкостным датчиком прикосновений.Имеется некоторое кол-во других контроллеров, подключенных к целевому, с помощью:- Modbus TCP по локальной сети,- Modbus RTU по линиям связи RS-485,- Modbus MQTT через Интернет.Целевой контроллер является главным устройством, согласно протоколу Modbus.Другие вышеуказанные контроллеры - подчиненные.Подчиненные выполняют задачи по автоматизации зданий, аналогично системам "умный дом".Они имеют в памяти наборы переменных и журналы событий. Непосредственно функционал библиотеки:1. Получает от каждого подчиненного JSON-файл, где имеется настройка отображениявеличин на экране.2. Разбирает его, формирует массив переменных с их значениями и атрибутами, и массив журналов.3. Создает экраны на встроенном в контроллер дисплее.4. Опрашивает подчиненных для обновления значений переменных и строк в журналах.5. Обновляет виджеты на экранах при изменениях значений переменных или строк журналов.6. Обрабатывает события нажатия на экране - прокрутка экрана, переключение на другой экран,редактирование значения переменной, и т.д.7. Реагирует на ошибки связи с подчиненными, выдавая сообщения на дисплей. Требования к выполнению работ:1. Отладка и сдача работ "в железе", предоставляемом заказчиком.2. Выполнение 1 разработчиком или командой, не более 3 человек в итоге. В случае команды -предоставить контакты всех разработчиков.3. До разработки - предоставить примеры написанного кода из других проектов.4. Исходные тексты в процессе разработки доступны заказчику, постоянно с момента начала разработки или 1ой оплаты работ.5. Использовать систему контроля версий Git, c момента начала разработки.6. Отдельные коммиты для каждого значимого изменения с описанием.7. Строгий единый стиль кода по библиотеке, близкий к корпоративному стилю заказчика.Для отступов - табуляция, кодировка текстов UTF-8.8. Документирование библиотеки в объеме не менее 20% по кол-ву слов от синтаксических эл-тов языка.9. Заинтересованность в дальнейшем развитии проекта.10. Гарантия исправления ошибок в течение не более недели после обнаружения (кроме отпуска, и с другими исключениями).11. Гарантийный срок исправления ошибок - не менее 1 года от любого изменения исходного текста.
Other