Skip to content

Пересмотреть использование подписок в общении #107

@ARGYR0s

Description

@ARGYR0s

Организовать динамическую подписку и отписку для параметров, которые отображаются в текущий момент.

При отображении параметров в диалоговом окне, выполняется отписка параметров, что не будут видны пользователю. Далее формируется новый пул подписок для параметров, что необходимо отобразить в данном окне.

При дублировании ID в предыдущем окне, от которого выполняется отписка, и ID, которое будет в новом окне - не стоит выполнять переподписку.

Подписка гарантирует получение данных для которых она организована.

При подписке в случае успеха в ответ приходят последние обновленные данные параметра, на который подписались.
При отписке получаем пустой пакет.

Далее для общения необходимо использовать механизмы обмена данными (request, event, timer, ...).

Подписка:
Type = 0x11
ID = ID параметра

Отписка:
Type = 0x11
ID = (ID параметра | 0x8000)

Для моторов, рейки, подвески и АКБ убрать request при подписке из текущего механизма управления.
Оставить только для потоковых запросов request (stream by time). По ним формируется только последний блок ответа от пакета при подписке. Поэтому необходимо сформировать отдельный request для получения данных по Event.

По таким данным требуется периодический запрос от приложения. Интервалы для таких запросов необходимо организовать так, чтоб не создавало проблем в общении с ESP32, а также чтоб пользователю было комфортно пользоваться данными с такой частотой обновления.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions