Улучшена логика отправки сообщений и реализованы новые функции пакетной передачи

Реализована обработка разных типов сообщений
(BroadCast, Discrete, Analog) в функции PROTOCAN_SEND_CORE
с корректной разбивкой данных на пакеты размером до 8 байт.

Добавлены новые функции для пакетной отправки данных
по диапазону регистров (PROTOCAN_SEND_GENERAL_ADDRESS_SPACE)
и модбас-данных (PROTOCAN_SEND_MODBUS).
This commit is contained in:
2026-06-19 15:34:23 +03:00
parent 6e7dd22cac
commit cbf7dee1cf
2 changed files with 226 additions and 89 deletions

View File

@@ -252,14 +252,20 @@ typedef struct{
unsigned LastPulseStep; /**< Шаг последнего импульса. */
} ProtoCanDevice_t;
struct RXMsg{
struct INFO{
unsigned EXT:1;
unsigned RTR:1;
}info;
ProtoCanId_t eID;
uint16_t DLC;
uint8_t Data[8];
/**
* @brief Структура для хранения сообщения RXCAN.
*/
struct RXMsg {
/**
* @brief Структура, содержащая флаги информации.
*/
struct INFO {
unsigned EXT : 1; /**< Бит расширенного идентификатора (EXT). */
unsigned RTR : 1; /**< Бит запроса на передачу (RTR). */
} info; /**< Информационные флаги сообщения. */
ProtoCanId_t eID; /**< Идентификатор CAN-сообщения. */
uint16_t DLC; /**< Длина данных (Data Length Code). */
uint8_t Data[8]; /**< Массив данных (до 8 байт). */
};
uint16_t AvailableCanRxMsg(void);