From 82cbdfe883b7547f914259ec02d4506dbae17f6b Mon Sep 17 00:00:00 2001 From: Razvalyaev Date: Thu, 6 Nov 2025 18:15:27 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D1=82=D0=B0=D1=86=D0=B8=D1=8F=20=D0=BE=D1=82=D0=BB=D0=B0=D0=B4?= =?UTF-8?q?=D0=BA=D0=B8=20rs=5Fmessage?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Inc/rs_message.h | 94 +++++++++++++++++++++++++++++------------------- Src/rs_message.c | 6 +++- 2 files changed, 63 insertions(+), 37 deletions(-) diff --git a/Inc/rs_message.h b/Inc/rs_message.h index ee8dd34..4920966 100644 --- a/Inc/rs_message.h +++ b/Inc/rs_message.h @@ -76,42 +76,6 @@ #define RS_Is_TX_Busy(_hRS_) (_hRS_->f.TX_Busy == 1) -#ifndef printf_rs_err -#define printf_rs_err(...) -#endif - -#ifndef printf_rs -#define printf_rs(...) -#endif - -#ifndef __MYLIBS_CONFIG_H_ -// дефайны из mylibs include -static int dummy; -#define TrackerTypeDef(num_user_vars) void * -#define num_of_usercnts(_user_) 0 -#define assert_tracecnt(_cntstruct_, _uservarnumb_) 0 -#define if_assert_usertracker(_cntstruct_, _uservarnumb_) if(0) -#define tern_assert_usertracker(_cntstruct_, _uservarnumb_) 0 -#define TrackerGet_Ok(_cntstruct_) dummy -#define TrackerGet_Err(_cntstruct_) dummy -#define TrackerGet_Warn(_cntstruct_) dummy -#define TrackerGet_User(_cntstruct_, _uservarnumb_) dummy -#define TrackerCnt_Ok(_cntstruct_) -#define TrackerCnt_Err(_cntstruct_) -#define TrackerCnt_Warn(_cntstruct_) -#define TrackerCnt_User(_cntstruct_, _uservarnumb_) -#define TrackerWrite_User(_cntstruct_, _uservarnumb_, _val_) -#define TrackerClear_All(_cntstruct_) -#define TrackerClear_Ok(_cntstruct_) -#define TrackerClear_Err(_cntstruct_) -#define TrackerClear_Warn(_cntstruct_) -#define TrackerClear_User(_cntstruct_) -#define TrackerClear_UserAll(_cntstruct_) -#else -#include "mylibs_include.h" -#endif - - #ifndef RS_USER_VARS_NUMB #define RS_USER_VARS_NUMB 0 #endif @@ -122,6 +86,64 @@ static int dummy; /** @endcond */ +/** + * @addtogroup RS_DEBUG Tools for debug RS/UART/TIM + * @ingroup RS_TOOLS + * @{ + */ + +#ifndef RS_USER_VARS_NUMB +#define RS_USER_VARS_NUMB 0 ///< Количество переменных в @ref TrackerTypeDef +#endif + +/** + * @brief Тип структуры для счетчиков-переменных + * @param num_user_vars Есть возмоность добавления num_user_vars количества пользовательскиъх переменных + */ +#define TrackerTypeDef(num_user_vars) void * +/** @brief Инкрементировать переменную - успешных событий */ +#define TrackerCnt_Ok(_cntstruct_) +/** @brief Инкрементировать переменную - ошибок */ +#define TrackerCnt_Err(_cntstruct_) +/** @brief Инкрементировать переменную - предупреждений */ +#define TrackerCnt_Warn(_cntstruct_) + + + +#ifndef printf_rs +/** @brief Printf обычных событий RS/UART/TIM */ +#define printf_rs(...) +#endif + +#ifndef printf_rs_err +/** @brief Printf ошибок RS/UART/TIM */ +#define printf_rs_err(...) +#endif + + +#ifndef RS_TIM_Handler_ENTER +/** @brief Действия при заходе в прерывания таймера */ +#define RS_TIM_Handler_ENTER() +#endif +#ifndef RS_TIM_Handler_EXIT +/** @brief Действия при выходе из прерывания таймера */ +#define RS_TIM_Handler_EXIT() +#endif + +#ifndef RS_UART_Handler_ENTER +/** @brief Действия при заходе в прерывания UART */ +#define RS_UART_Handler_ENTER() +#endif +#ifndef RS_UART_Handler_EXIT +/** @brief Действия при выходе из прерывания UART */ +#define RS_UART_Handler_EXIT() +#endif +/** RS_TOOLS + * @} + */ + + + // направление передачи rs485 #ifndef RS_EnableReceive #define RS_EnableReceive() ///< Функция изменения направления передачи на ПРИЕМ для RS-485 diff --git a/Src/rs_message.c b/Src/rs_message.c index 08a2a57..9b2d90b 100644 --- a/Src/rs_message.c +++ b/Src/rs_message.c @@ -323,6 +323,7 @@ void RS_UART_Handler(RS_HandleTypeDef *hRS) { return; } + RS_UART_Handler_ENTER(); //-------------CHECK IDLE FLAG FIRST------------- /* Проверяем флаг IDLE в первую очередь - это гарантирует обработку только после idle */ if(__HAL_UART_GET_FLAG(hRS->huart, UART_FLAG_IDLE) && __HAL_UART_GET_IT_SOURCE(hRS->huart, UART_IT_IDLE)) @@ -419,6 +420,7 @@ void RS_UART_Handler(RS_HandleTypeDef *hRS) // later, maybe, will be added specific handlers for err } + RS_UART_Handler_EXIT(); } @@ -434,10 +436,11 @@ void RS_TIM_Handler(RS_HandleTypeDef *hRS) { return; } + RS_TIM_Handler_ENTER(); + HAL_TIM_IRQHandler(hRS->htim); RS_Abort(hRS, ABORT_RS); - hRS->RS_STATUS = RS_TIMEOUT; @@ -456,6 +459,7 @@ void RS_TIM_Handler(RS_HandleTypeDef *hRS) // Слейв: перезапускаем прием RS_Handle_Receive_Start(hRS, hRS->pMessagePtr); } + RS_TIM_Handler_EXIT(); } /**