Разработать программу (прошивку) на C++ для графической панели

200 000 руб. за проект
13 ноября 2024, 10:38 • 17 откликов • 125 просмотров
Заказчик: ООО "Зентек", г.Киров

Исполнительное устройство:
Контроллер-графическая панель, с микроконтроллером 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 года от любого изменения исходного текста.