Для выполнения заказа требуется знание английского на письменном уровне. Необходимо написать модуль rpi-sys, который станет частью системы объединяющую в себе:
- модуль видеонаблюдения rpi-vs
- модуль управления вводами и выводами общего назначения rpi-io
- модуль сетевого взаимодействия и контроля rpi-sys
Модуль будет работать на Raspberry Pi v1 Model B+ и упрощенной версии операционной системы Raspbian. Модуль отвечает за:
- сетевое взаимодействие модулей rpi-io и rpi-vs
- сбор команд и их отправление по сети через проприетарный сетевой протокол
- получение команд по сети и передачу их модулям rpi-io и rpi-vs
- проверку соответсвия синтаксиса получаемых и отправляемях команд спецификации протокола
- контроль работы модулей rpi-io и rpi-vs (их старт и переодическая проверка оперативности)
Мы предоставим:
- полную и детализированную спецификацию модуля
- удаленный доступ к настроенному Raspberry Pi
- связь с технической поддержкой, которая будет готова выполнить любую операцию с Raspberry
- связь с управляющим проектом, готовым ответить на вопросы относительно проекта
Ваше решение будет оценено по следующих критериям в порядке важности:
- корректность относительно предоставленной спецификации
- полноту программы автоматического тестирования, покрытие граничных ситуаций
- простоту предложенного решения
- скорость разработки
Мы требуем:
- использование языка С со стандартом С11
- использования стиля кодирования FreeBSD
- компиляцию с ключами компилятора -Wall и -Werror
Код должен регулярно отправлятся в репозиторий git. Помимо самого модуля, также необходимо создать:
- программу автоматического тестирования
- список необходимых Debian пакетов и иструкцию по их настройке
- скрипт для исполнения модуля как демона Debian
- скрипт для создания пакета Debian с rpi-sys и скриптом демона
- описания архитектуры решения и аргументации сделанных выборов
Тестирование приложения должно быть полностью автоматизировано. Мы требуем написание функциональных end-to-end тестов. Мы также советуем написание unit тестов. Для написания фунциональных тестов вам необходимо будет создать симуляторы модулей rpi-sys и rpi-vs, а также удаленной системы. Программа тестирования должна создавать параллельно с созданием кода модуля. Оплата привязана к фазам исполнения проекта:
- 10% после согласования архитектуры проекта
- 20% после создания структуры проекта
- 40% после реализации сетевого взаимодействия
- 30% после реализции функций контроля за модулями rpi-vs и rpi-io
Полная спецификация системы будет выслана Вам, если вы заинтересованы в проекте.