Улучшена логика отправки сообщений и реализованы новые функции пакетной передачи
Реализована обработка разных типов сообщений (BroadCast, Discrete, Analog) в функции PROTOCAN_SEND_CORE с корректной разбивкой данных на пакеты размером до 8 байт. Добавлены новые функции для пакетной отправки данных по диапазону регистров (PROTOCAN_SEND_GENERAL_ADDRESS_SPACE) и модбас-данных (PROTOCAN_SEND_MODBUS).
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user