Skip to main content

Module master_device

Module master_device 

Source
Expand description

Реализация опроса подчиненных устройств по любому протоколу - I2C, SPI, UART

На рисунке приведена структура работы драйвера устройства. В драйвере реализуется логическая часть опроса устройств. Физическая реализация взамодействия с интерфейсом реализована в конкретных компонентах. Таким образом, драйвера можно использовать в разных реализациях. Например, драйвера устройств I2С можно использовать как в компоненте cmp_linux_i2c_master, так и cmp_esp_i2c_master.

MsgBusInputBufferToRequestsBufferPeriodicRequestInitRequestPeriodicRequestFieldbusProcessResponseMsgBus1234

Цифрами 1, 2, 3, 4 помечены каналы передачи данных, соответствующие каналам на структуре компонента опроса устройств (FieldbusExecution). В таблице приведено описание задач.

НазваниеОписание
InitRequestЗадача создания запросов, с помощью которых можно инициализировать устройство.
PeriodicRequestЗадача создания периодических запросов. Можно создавать несколько запросов с разными периодами вызова.
InputОбновление буфера на основе входящих сообщений из шины MsgBus. Обновление происходит на основе функции из конфигурации драйвера.
BufferPeriodicЗадача необходима для периодического запуска задачи BufferToRequests.
BufferToRequestsRequestЗадача создания запросов на основе буфера.
RequestЗадача объединяет запросы из задач InitRequest, PeriodicRequest и BufferToRequests и отправляет запросы в интерфейс.
ResponseЗадача получает ответы из интерфейса. На основе конфигурации драйвера создаются исходящие сообщения и передаются в шину MsgBus. Также при необходимости можно передать сигнал в задачу BufferToRequests для создания новых запросов в интерфейс.

Structs§

ConfigPeriodicRequest
Конфигурация периодических запросов
DeviceBase
Базовое устройство для опроса по шине.

Enums§

Error

Traits§

BufferBound
Ограничения для буфера данных
DeviceTrait
Трейт для реализации на структурах обмена данными с подчиненными устройствами

Type Aliases§

Result
Тип Result