From c5c9ed7ab2491ebb876e6d1fbff1cf28d1ab9562 Mon Sep 17 00:00:00 2001 From: Razvalyaev Date: Thu, 6 Nov 2025 22:37:51 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D1=81=D0=BE=D0=B2=D0=BC=D0=B5=D1=81=D1=82?= =?UTF-8?q?=D0=B8=D0=BC=D0=BE=D1=81=D1=82=D0=B8=20=D1=81=20=D1=81=D1=82?= =?UTF-8?q?=D0=B0=D1=80=D1=8B=D0=BC=20API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Inc/__modbus_compat.h | 53 +++++++++++++++++++++++++++++++++++++++--- Inc/modbus_coils.h | 3 ++- Inc/modbus_core.h | 5 ++-- Inc/modbus_devid.h | 2 ++ Inc/modbus_diag.h | 2 ++ Inc/modbus_holdregs.h | 2 ++ Inc/modbus_inputregs.h | 2 ++ Inc/modbus_master.h | 5 ++-- Inc/modbus_slave.h | 7 ++++-- 9 files changed, 70 insertions(+), 11 deletions(-) diff --git a/Inc/__modbus_compat.h b/Inc/__modbus_compat.h index 1c045c9..f1a00a8 100644 --- a/Inc/__modbus_compat.h +++ b/Inc/__modbus_compat.h @@ -5,17 +5,64 @@ ******************************************************************************* * @details Файл содержит API старых функций, а также заглушки для отключенных модулей: ******************************************************************************/ +#ifndef __MODBUS_COMPAT_H_ +#define __MODBUS_COMPAT_H_ #include "modbus_core.h" +#define CREATE_DEPRECATED_ALIAS(old_name, new_name, type) \ + __attribute__((deprecated("Use " #new_name " instead"))) \ + static const type old_name = new_name; + +// Для функций +#define CREATE_DEPRECATED_FUNCTION(old_name, new_name, return_type, ...) \ + __attribute__((deprecated("Use " #new_name " instead"))) \ + return_type old_name(__VA_ARGS__) { \ + return new_name(__VA_ARGS__); \ + } + /** @addtogroup MODBUS_LEGACY_API Legacy API * @ingroup MODBUS_FUNCTIONS * @brief Старые API функций, сохранённые для обратной совместимости. - * @note Не используйте эти функции в новом коде. Они могут быть удалены в будущих версиях. - * Вместо них используйте функции из основных групп MODBUS API. + * @note Не используйте эти функции в новом коде. Они будут удалены в будущих версиях. + * Вместо них используйте актуальные API, приведенные в втором столбце. * @{ */ + +// Устаревшие enum //Старый замените на // Новый + // | // | + // v // v +CREATE_DEPRECATED_ALIAS(NO_ERRORS, ET_NO_ERRORS, MB_ExceptionTypeDef); +CREATE_DEPRECATED_ALIAS(ILLEGAL_FUNCTION, ET_ILLEGAL_FUNCTION, MB_ExceptionTypeDef); +CREATE_DEPRECATED_ALIAS(ILLEGAL_DATA_ADDRESS, ET_ILLEGAL_DATA_ADDRESS, MB_ExceptionTypeDef); +CREATE_DEPRECATED_ALIAS(ILLEGAL_DATA_VALUE, ET_ILLEGAL_DATA_VALUE, MB_ExceptionTypeDef); +CREATE_DEPRECATED_ALIAS(SLAVE_DEVICE_FAILURE, ET_SLAVE_DEVICE_FAILURE, MB_ExceptionTypeDef); +CREATE_DEPRECATED_ALIAS(MB_R_COILS, FC_R_COILS, MB_FunctonTypeDef); +CREATE_DEPRECATED_ALIAS(MB_R_DISC_IN, FC_R_DISC_IN, MB_FunctonTypeDef); +CREATE_DEPRECATED_ALIAS(MB_R_HOLD_REGS, FC_R_HOLD_REGS, MB_FunctonTypeDef); +CREATE_DEPRECATED_ALIAS(MB_R_IN_REGS, FC_R_IN_REGS, MB_FunctonTypeDef); +CREATE_DEPRECATED_ALIAS(MB_W_COIL, FC_W_COIL, MB_FunctonTypeDef); +CREATE_DEPRECATED_ALIAS(MB_W_HOLD_REG, FC_W_HOLD_REG, MB_FunctonTypeDef); +CREATE_DEPRECATED_ALIAS(MB_W_COILS, FC_W_COILS, MB_FunctonTypeDef); +CREATE_DEPRECATED_ALIAS(MB_W_HOLD_REGS, FC_W_HOLD_REGS, MB_FunctonTypeDef); +CREATE_DEPRECATED_ALIAS(MB_R_DIAGNOSTICS, FC_R_DIAGNOSTICS, MB_FunctonTypeDef); +CREATE_DEPRECATED_ALIAS(MB_R_DEVICE_ID, FC_R_DEVICE_ID, MB_FunctonTypeDef); +CREATE_DEPRECATED_ALIAS(MB_ERR_R_COILS, FC_ERR_R_COILS, MB_FunctonTypeDef); +CREATE_DEPRECATED_ALIAS(MB_ERR_R_DISC_IN, FC_ERR_R_DISC_IN, MB_FunctonTypeDef); +CREATE_DEPRECATED_ALIAS(MB_ERR_R_IN_REGS, FC_ERR_R_IN_REGS, MB_FunctonTypeDef); +CREATE_DEPRECATED_ALIAS(MB_ERR_R_HOLD_REGS, FC_ERR_R_HOLD_REGS, MB_FunctonTypeDef); +CREATE_DEPRECATED_ALIAS(MB_ERR_W_COIL, FC_ERR_W_COIL, MB_FunctonTypeDef); +CREATE_DEPRECATED_ALIAS(MB_ERR_W_HOLD_REG, FC_ERR_W_HOLD_REG, MB_FunctonTypeDef); +CREATE_DEPRECATED_ALIAS(MB_ERR_W_COILS, FC_ERR_W_COILS, MB_FunctonTypeDef); +CREATE_DEPRECATED_ALIAS(MB_ERR_W_HOLD_REGS, FC_ERR_W_HOLD_REGS, MB_FunctonTypeDef); +CREATE_DEPRECATED_ALIAS(MB_ERR_R_DIAGNOSTIC, FC_ERR_R_DIAGNOSTIC, MB_FunctonTypeDef); +CREATE_DEPRECATED_ALIAS(MB_ERR_R_DEVICE_INFO, FC_ERR_R_DEVICE_INFO, MB_FunctonTypeDef); + +CREATE_DEPRECATED_ALIAS(MB_BASIC_IDENTIFICATIONS, RID_BASIC_IDENTIFICATIONS, MB_ReadDevId); +CREATE_DEPRECATED_ALIAS(MB_REGULAR_IDENTIFICATIONS, RID_REGULAR_IDENTIFICATIONS, MB_ReadDevId); +CREATE_DEPRECATED_ALIAS(MB_EXTENDED_IDENTIFICATIONS, RID_EXTENDED_IDENTIFICATIONS, MB_ReadDevId); +CREATE_DEPRECATED_ALIAS(MB_SPEDIFIC_IDENTIFICATIONS, RID_SPEDIFIC_IDENTIFICATIONS, MB_ReadDevId); /** MODBUS_LEGACY_API @@ -114,5 +161,5 @@ #define MB_Slave_Collect_Message(hmodbus, modbus_msg, modbus_uart_buff) RS_ERR #define MB_Slave_Parse_Message(hmodbus, modbus_msg, modbus_uart_buff) RS_ERR #endif - /** @endcond */ +#endif //__MODBUS_COMPAT_H_ \ No newline at end of file diff --git a/Inc/modbus_coils.h b/Inc/modbus_coils.h index f01cafd..1afb67b 100644 --- a/Inc/modbus_coils.h +++ b/Inc/modbus_coils.h @@ -30,6 +30,7 @@ Coils упакованы в 16-битные слова для эффективн #ifndef __MODBUS_COILS_H_ #define __MODBUS_COILS_H_ #include "modbus_core.h" +#ifdef MODBUS_ENABLE_COILS ///////////////////////////////////////////////////////////////////// ////////////////////---MODBUS FUNCTION DEFINES---//////////////////// @@ -118,5 +119,5 @@ uint8_t MB_Process_Write_Miltuple_Coils(RS_MsgTypeDef *modbus_msg); * @} */ /////////////////////////---FUNCTIONS---///////////////////////////// - +#endif //MODBUS_ENABLE_COILS #endif //__MODBUS_COILS_H_ diff --git a/Inc/modbus_core.h b/Inc/modbus_core.h index b37df86..8b26730 100644 --- a/Inc/modbus_core.h +++ b/Inc/modbus_core.h @@ -29,7 +29,6 @@ #include "modbus_config.h" #include "modbus_data.h" #include "__crc_algs.h" -#include "__modbus_compat.h" /** * @addtogroup MODBUS_MESSAGE_DEFINES Modbus Message Tools @@ -306,10 +305,10 @@ MB_ExceptionTypeDef MB_DefineCoilsAddress(uint16_t **pCoils, uint16_t Addr, uint * @} */ - - /////////////////////////---FUNCTIONS---///////////////////////////// +#include "__modbus_compat.h" #endif //__MODBUS_CORE_H_ /** MODBUS_INTERNAL * @} */ + diff --git a/Inc/modbus_devid.h b/Inc/modbus_devid.h index b232e3d..e972126 100644 --- a/Inc/modbus_devid.h +++ b/Inc/modbus_devid.h @@ -22,6 +22,7 @@ #ifndef __MODBUS_DEVID_H_ #define __MODBUS_DEVID_H_ #include "modbus_core.h" +#ifdef MODBUS_ENABLE_DEVICE_IDENTIFICATIONS ///////////////////////////////////////////////////////////////////// @@ -119,5 +120,6 @@ uint8_t MB_Process_Read_Device_Identifications(RS_MsgTypeDef *modbus_msg); */ /////////////////////////---FUNCTIONS---///////////////////////////// +#endif //MODBUS_ENABLE_DEVICE_IDENTIFICATIONS #endif //__MODBUS_DEVID_H_ diff --git a/Inc/modbus_diag.h b/Inc/modbus_diag.h index 94b0349..0b56531 100644 --- a/Inc/modbus_diag.h +++ b/Inc/modbus_diag.h @@ -17,6 +17,7 @@ #ifndef __MODBUS_DIAG_H_ #define __MODBUS_DIAG_H_ #include "modbus_core.h" +#ifdef MODBUS_ENABLE_DIAGNOSTICS ///////////////////////////////////////////////////////////////////// /////////////////---DEVICE DIAGNOSTICS DEFINES---//////////////////// @@ -116,6 +117,7 @@ uint8_t MB_Process_Diagnostics(RS_MsgTypeDef *modbus_msg); /////////////////////////---FUNCTIONS---///////////////////////////// +#endif //MODBUS_ENABLE_DIAGNOSTICS #endif //__MODBUS_DIAG_H_ /** MODBUS_DIAG diff --git a/Inc/modbus_holdregs.h b/Inc/modbus_holdregs.h index 98f6bef..45cf0ad 100644 --- a/Inc/modbus_holdregs.h +++ b/Inc/modbus_holdregs.h @@ -23,6 +23,7 @@ #ifndef __MODBUS_HOLDREGS_H_ #define __MODBUS_HOLDREGS_H_ #include "modbus_core.h" +#ifdef MODBUS_ENABLE_HOLDINGS ///////////////////////////////////////////////////////////////////// /////////////////////////---FUNCTIONS---///////////////////////////// @@ -59,4 +60,5 @@ uint8_t MB_Process_Write_Miltuple_Regs(RS_MsgTypeDef *modbus_msg); */ /////////////////////////---FUNCTIONS---///////////////////////////// +#endif //MODBUS_ENABLE_HOLDINGS #endif //__MODBUS_HOLDREGS_H_ diff --git a/Inc/modbus_inputregs.h b/Inc/modbus_inputregs.h index ff3f9d1..bcfcd22 100644 --- a/Inc/modbus_inputregs.h +++ b/Inc/modbus_inputregs.h @@ -21,6 +21,7 @@ #ifndef __MODBUS_INPUTREGS_H_ #define __MODBUS_INPUTREGS_H_ #include "modbus_core.h" +#ifdef MODBUS_ENABLE_INPUTS ///////////////////////////////////////////////////////////////////// /////////////////////////---FUNCTIONS---///////////////////////////// @@ -54,4 +55,5 @@ uint8_t MB_Process_Read_Input_Regs(RS_MsgTypeDef *modbus_msg); */ /////////////////////////---FUNCTIONS---///////////////////////////// +#endif //MODBUS_ENABLE_INPUTS #endif //__MODBUS_INPUTREGS_H_ diff --git a/Inc/modbus_master.h b/Inc/modbus_master.h index 84cf4ea..7b0b7a9 100644 --- a/Inc/modbus_master.h +++ b/Inc/modbus_master.h @@ -11,9 +11,9 @@ Модуль реализации Modbus в режиме мастер ******************************************************************************/ #ifndef __MODBUS_MASTER_H_ -#define __MODBUS_MASTER_H_ - +#define __MODBUS_MASTER_H_ #include "rs_message.h" +#ifdef MODBUS_ENABLE_MASTER /** * @addtogroup MODBUS_REQUEST_MSG API for Master Requests @@ -228,4 +228,5 @@ RS_StatusTypeDef MB_Master_Parse_Message(RS_HandleTypeDef *hmodbus, RS_MsgTypeDe * @} */ +#endif //MODBUS_ENABLE_MASTER #endif //__MODBUS_MASTER_H_ diff --git a/Inc/modbus_slave.h b/Inc/modbus_slave.h index 9320c6b..bfc06bd 100644 --- a/Inc/modbus_slave.h +++ b/Inc/modbus_slave.h @@ -11,9 +11,9 @@ Модуль реализации Modbus в режиме слейв ******************************************************************************/ #ifndef __MODBUS_SLAVE_H_ -#define __MODBUS_SLAVE_H_ - +#define __MODBUS_SLAVE_H_ #include "rs_message.h" +#ifdef MODBUS_ENABLE_SLAVE /** @@ -31,4 +31,7 @@ RS_StatusTypeDef MB_Slave_Parse_Message(RS_HandleTypeDef *hmodbus, RS_MsgTypeDef /** MODBUS_SLAVE * @} */ + + +#endif //MODBUS_ENABLE_SLAVE #endif //__MODBUS_SLAVE_H_