Добавление флага write в MB_DefineRegistersAddress
И рефакторинг дефайнов размеров сообщения
This commit is contained in:
@@ -12,10 +12,10 @@
|
||||
|
||||
@section arch Архитектура:
|
||||
В режиме слейв:
|
||||
- Инициализация приема с сообщения с максимальным размером MSG_SIZE_MAX
|
||||
- Инициализация приема с сообщения с максимальным размером RS_MSG_SIZE_MAX
|
||||
- При срабатывании прерывания IDLE - обработка полученного сообщения
|
||||
В режиме мастер (пока не реализовано):
|
||||
- Отправка запроса и переход в режим приема сообщения с максимальным размером MSG_SIZE_MAX
|
||||
- Отправка запроса и переход в режим приема сообщения с максимальным размером RS_MSG_SIZE_MAX
|
||||
- При срабатывании прерывания IDLE - обработка полученного ответа
|
||||
|
||||
@section ithandler Необходимые обработчики:
|
||||
@@ -25,7 +25,7 @@
|
||||
#include "rs_message.h"
|
||||
#include "modbus_diag.h"
|
||||
|
||||
uint8_t RS_Buffer[MSG_SIZE_MAX]; // uart buffer
|
||||
uint8_t RS_Buffer[RS_MSG_SIZE_MAX]; // uart buffer
|
||||
|
||||
extern void RS_UART_Init(void);
|
||||
extern void RS_UART_DeInit(UART_HandleTypeDef *huart);
|
||||
@@ -61,7 +61,7 @@ RS_StatusTypeDef RS_Receive_IT(RS_HandleTypeDef *hRS, RS_MsgTypeDef *RS_msg)
|
||||
|
||||
// start receiving
|
||||
__HAL_UART_ENABLE_IT(hRS->huart, UART_IT_IDLE);
|
||||
uart_res = HAL_UART_Receive_IT(hRS->huart, &hRS->pBufferPtr[hRS->RS_Message_Size], MSG_SIZE_MAX); // receive until ByteCnt+1 byte,
|
||||
uart_res = HAL_UART_Receive_IT(hRS->huart, &hRS->pBufferPtr[hRS->RS_Message_Size], RS_MSG_SIZE_MAX); // receive until ByteCnt+1 byte,
|
||||
// then in Callback restart receive for rest bytes
|
||||
|
||||
// if receive isnt started - abort RS
|
||||
@@ -445,7 +445,7 @@ void RS_TIM_Handler(RS_HandleTypeDef *hRS)
|
||||
hRS->RS_STATUS = RS_TIMEOUT;
|
||||
|
||||
if(hRS->sRS_Mode < RS_MASTER_MODE_START)
|
||||
if(hRS->pMessagePtr->MbAddr == hRS->ID) // ошибка если таймаут по нашему сообщению
|
||||
if(hRS->pMessagePtr->DeviceAddr == hRS->ID) // ошибка если таймаут по нашему сообщению
|
||||
TrackerCnt_Err(hRS->rs_err);
|
||||
|
||||
if(hRS->sRS_Mode >= RS_MASTER_MODE_START)
|
||||
|
||||
Reference in New Issue
Block a user