Skip to main content

Module fieldbus_execution

Module fieldbus_execution 

Source
Expand description

Запуск задач, общих для всех компонентов, выполняющих опрос устройств по шине

Структура компонентов, выполняющих функцию опроса устройств по протоколам I2C, SPI и UART, практически идентична. Компоненты, работающие по заданной структуре:

– cmp_linux_i2c_master

– cmp_linux_spi_master

– cmp_linux_uart_master

– cmp_esp_i2c_master

– cmp_esp_spi_master

– cmp_esp_uart_master

– cmp_modbus_client

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

MsgBusMsgbusToBroadcastDeviceDriver_1DeviceDriver_2DeviceDriver_NAddIndex_1FieldbusProcessAddIndex_2AddIndex_NSplitDeviceDriver_1DeviceDriver_2DeviceDriver_NFilterIdenticalMsgBus1ch_msgbus_to_devicebroadcast::<TMsg>1ch_msgbus_to_devicebroadcast::<TMsg>1ch_msgbus_to_devicebroadcast::<TMsg>2ch_device_to_addindexmpsc::<TFieldbusRequest>ch_addindex_to_fieldbusmpsc::<TFieldbusRequestWithIndex>2ch_device_to_addindexmpsc::<TFieldbusRequest>ch_addindex_to_fieldbusmpsc::<TFieldbusRequestWithIndex>2ch_device_to_addindexmpsc::<TFieldbusRequest>ch_addindex_to_fieldbusmpsc::<TFieldbusRequestWithIndex>ch_fieldbus_to_splitmpsc::<TFieldbusResponseWithIndex>3ch_split_to_devicesbroadcast::<TFieldbusResponse>3ch_split_to_devicesbroadcast::<TFieldbusResponse>3ch_split_to_devicesbroadcast::<TFieldbusResponse>4ch_device_to_filtermpsc::<TMsg>4ch_device_to_filtermpsc::<TMsg>4ch_device_to_filtermpsc::<TMsg>ch_filter_to_msgbusmpsc::<TMsg>

НазваниеОписание
MsgbusToBroadcastЗадача принимает входящие сообщения из шины MsgBus и рассылает их всем драйверам устройств DeviceDriver_i
DeviceDriver_iДрайвера устройств. На основе входящих сообщений создают запросы для передачи по шине. Также формируют периодические запросы.
AddIndex_iДобавляет индекс драйвера устройства к запросу. Индекс необходим для передачи ответа из шины конкретному драйверу устройства.
FieldbusProcessЗадача коммуникации через интерфейс. Конкретная реализация для разных компонентов отличается (I2C, SPI и т.д.).
SplitЗадача принимает ответные данные из интерфейса и передаёт конкретному драйверу устройства по индексу.
DeviceDriver_iДрайвера устройств. В данном случае драйвера обрабатывают ответы из интерфейса и формируют исходящие сообщения.
FilterIdenticalФильтрация исходящих сообщений. На выход передаются только те сообщения, в которых изменились данные. Фильтрация необходима, чтобы снизить нагрузку на шину сообщений.
MpscToMsgbusПередаёт полученные сообщения в шину MsgBus.

Документация по драйверам устройств - master_device

Structs§

FieldbusExecution
Запуск задач, общих для всех компонентов, выполняющих опрос устройств по шине