Drone — девайc, подключенный к CoexHub. Коптер, зарядная станция, либо еще что-нибудь.
Drone_type — тип (модель) девайса. Pyramid — дрон, который садится в зарядную станцию, Clever — клевер, charging_station — зарядная станция, и т д.
State — текущее состояние дрона, json (местоположение, скорости, заряд батареи и т. д.). Обновляется 1-2 раза в секунду у включенных дронов. Все стейты дронов сохраняются в табличку истории стейтов при соблюдении некоторых условий (для коптера сохраняются только стейты, когда он летит).
Command — команда для дрона, например, открыть/закрыть крышку для зарядной станции, запуск/вернись на базу/экстренно сядь и т. д. для коптеров. У команды могут параметры, json. Например: мощность свечения прожектора на зарядной станции. Фронтенд знает, какие есть команды для каких юзкейсов.
Usecase — тип применения дрона (мониторинг, поиск людей, охрана, доставка грузов и т. д.). Определяет каким образом нужно собирать json Mission. Также может оказывать влияние на какие-то конкретные мелочи в интерфейсе.
Mission — текущая конфигурация задачи коптера в рамках конкретного юзкейса, json. Интерфейс знает, как собирать этот json для каждого из юзкейсов. В Mission указаны параметры задачи коптера (расписание полетов, настройки полетов, маршруты полетов и т. д.). Mission есть в стейте дрона — это те настройки, про которые сейчас знает коптер. Также Mission существует, как отдельное поле у дрона — это те настройки, которые сохранил бэкенд, но пока не отправил коптеру (в случае, если он офлайн).
При изменение настроек миссии дрона, Фронтенд отсылает новый json миссии бэкенду либо через команду, либо на отдельную ручку (надо решить). Если дрон принял новую миссию (он онлайн, миссия корректна), она появляется в его State. Если не принял, то только в {Объект дрона}.mission, но не в {Объект дрона}.state.mission.
- Получить текущий (последний) стейт дрона (если нет доступа — 403)
- Получить текущие (последние) стейты всех дронов, доступных пользователю
- Получить все сохраненные стейты дрона
- Запостить команду для дрона (с параметрами или без)
- To be continued...