Весь план состоит из двух этапов разработки:
- Разработка сервера
- Разработка клиента
Обозначение текущего хода идёт по следующему шаблону: этап-фаза-шаг.подшаг
. Например, если разработчик находится на этапе A, фазе I, шаге 2 и подшаге 1, то текущий ход можно записать как A-I-2.1
.
Разработка сервера включает в себя две фазы: разработка серверного приложения и разработка программы микроконтроллера Arduino.
-
Разработка веб-сервера для хостинга клиентского приложения
-
Проектирование архитектуры "конечных точек" для чёткого понятия откуда клиенту брать данные (веб-страницы и прочие для них ресурсы).
-
Реализация этой архитектуры и поддержки подключений с клиентом.
- Для тестирования клиентского приложения создаются простые веб-страницы без какого-то особого интерфейса.
-
-
Разработка веб-сокет сервера для взаимодействия клиента с сервером
-
Проектирование единой системы сообщений: создание шаблона сообщений, которые будут использоваться для верификации валидности сообщения и удобной его последующей расшифровки.
-
Реализация этой системы сообщений: обработка присылаемых клиентом сообщений и при необходимости ответ на них в такой же форме, а также поддержка подключения с помощью ping-pong сообщений.
-
-
Разработка взаимодействия с микроконтроллером Arduino
-
Проектирование упрощённой системы сообщений: эта система включает в себя небольшое количество символов в сообщениях и специальный кодер/декодер для сообщений. Небольшое количество символов позволяет быстрее отправлять и получать данные с микроконтроллера.
-
Реализация этой системы сообщений: аналогично (2.2).
-
Реализация подключения к микроконтроллеру: проверка на присутствие микроконтроллера в ОС и подключение к COM-порту, а также поддержка подключения путём посылания ping-pong сообщений.
-
-
Реализация взаимодействия с сервером (компьютером)
-
Реализация упрощённой системы сообщений: реализация необходимых частей (кодера/декодера сообщений) и подключение этой системы к общей работе микроконтроллера.
-
Реализация поддержки подключения посылкой ping-pong сообщений.
-
-
Разработка физической (электрической) части программы
-
Проектирование необходимых электрических схем для построения пользователем.
-
Сборка этих электрических схем.
-
Реализация взаимодействия I/O портов микроконтроллера с программной частью: добавление необходимых модулей программы для поддержки состояния физических частей.
-
Подключение физической части к системе сообщений: выполнение соответствующих команд для изменения физического состояния в соответствии с полученным сообщением.
-
Разработка клиента включает в себя две фазы: разработка интерфейса и разработка взаимодействия с сервером.
-
Проектирование интерфейса: выявление места, вида и функции элементов интерфейса.
-
Реализация интерфейса
-
Создание веб-страниц для авторизации и управления.
-
Реализация разметки для каждой страницы: добавление соответствующих элементов на страницу и применение к ним соответствующих стилей.
-
Реализация вспомогательных программных модулей для поддержки простых частей интерфейса, не требующих взаимодействия с сервером.
-
-
Разработка программных модулей для взаимодействия с веб-сервером
-
Проектирование ожидаемых ответов пользователю в соответствии с командами модулей: например, при возникновении ошибки подключения или ошибки сервера, выдать пользователю соответствующее сообщение в читабельном формате.
-
Реализация модулей с учётом ожидаемых ответов.
-
-
Разработка программных модулей для взаимодействия с веб-сокет сервером
-
Реализация единой системы сообщений.
-
Связывание элементов интерфейса с системой сообщений
-
При заходе на страницу управления посылается сообщение о получении состояния шлагбаума и соответствующие элементы интерфейса изменяются в соответствии с ответом сервера на посланное сообщение.
-
При нажатии на кнопки управления шлагбаумом посылаются сообщения управления и ответ сервера на эти сообщения отображается пользователю для подтверждения действия.
-
-