release 0.2
Добавлен модуль диагностически модбас (функция 0x08) + мелкие кореркции
This commit is contained in:
@@ -23,6 +23,7 @@
|
||||
- RS_TIM_Handler() в TIMx_IRQHandler вместо HAL_TIM_IRQHandler()
|
||||
******************************************************************************/
|
||||
#include "rs_message.h"
|
||||
#include "modbus_diag.h"
|
||||
|
||||
uint8_t RS_Buffer[MSG_SIZE_MAX]; // uart buffer
|
||||
|
||||
@@ -356,20 +357,9 @@ void RS_UART_Handler(RS_HandleTypeDef *hRS)
|
||||
|
||||
// Парсим наше сообщение
|
||||
RS_StatusTypeDef parse_res = RS_Parse_Message(hRS, hRS->pMessagePtr, hRS->pBufferPtr);
|
||||
|
||||
// Проверяем адрес Modbus перед обработкой
|
||||
if(hRS->pMessagePtr->MbAddr != hRS->ID)
|
||||
{
|
||||
// Чужое сообщение - игнорируем и начинаем новый прием
|
||||
RS_Abort(hRS, ABORT_RX);
|
||||
RS_Handle_Receive_Start(hRS, hRS->pMessagePtr);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Если сообещине принято корректно - отвечаем на него
|
||||
if(parse_res != RS_SKIP)
|
||||
if(parse_res == RS_OK)
|
||||
{
|
||||
if(hRS->htim)
|
||||
{
|
||||
@@ -425,6 +415,10 @@ void RS_UART_Handler(RS_HandleTypeDef *hRS)
|
||||
//----------------ERRORS HANDLER----------------
|
||||
else
|
||||
{
|
||||
if (hRS->huart->ErrorCode & HAL_UART_ERROR_ORE)
|
||||
{
|
||||
MB_Diagnostics_CharacterOverrunCnt(); // <-- Обнаружено переполнение
|
||||
}
|
||||
//TrackerCnt_Err(hRS->rs_err);
|
||||
/* de-init uart transfer */
|
||||
RS_Abort(hRS, ABORT_RS);
|
||||
|
||||
Reference in New Issue
Block a user