/** ************************************************************************** * @file modbus_data.h * @brief Заголовочный файл с описанием даты MODBUS. * @details Данный файл необходимо подключается в rs_message.h. После rs_message.h * подключается к основному проекту. * * @defgroup MODBUS_DATA * @ingroup MODBUS * @brief Modbus data description * *************************************************************************/ #ifndef _MODBUS_DATA_H_ #define _MODBUS_DATA_H_ #include "stdint.h" //--------------DEFINES FOR REGISTERS--------------- // DEFINES FOR ARRAYS /** * @addtogroup MODBUS_DATA_RERISTERS_DEFINES * @ingroup MODBUS_DATA * @brief Defines for registers Структура дефайна адресов @verbatim Для массивов регистров: R__ADDR - модбас адресс первого регистра в массиве R__QNT - количество регистров в массиве @endverbatim * @{ */ /** * @brief Регистры хранения */ typedef struct //MB_DataInRegsTypeDef { uint16_t ForwardVoltage; uint16_t ReversePeakVoltage; }MB_DataInRegsTypeDef; /** * @brief Входные регистры */ typedef struct //MB_DataInRegsTypeDef { uint16_t TimeForForward; uint16_t TimeForReverse; uint16_t TimeBeforeTest; uint16_t TimeDeadtime; uint16_t TimeBeforePeak; uint16_t Adc_PulseWidth; uint16_t Adc_PulseSign; uint16_t Adc_CalibrValue; uint16_t Adc_ZeroValue; uint16_t Adc_U_Calibr; }MB_DataHoldRegsTypeDef; // DEFINES FOR INPUT REGISTERS ARRAYS #define R_MEASURED_ADDR 0 #define R_MEASURED_QNT 2 // DEFINES FOR HOLDING REGISTERS ARRAYS #define R_SETTINGS_ADDR 0 #define R_SETTINGS_QNT 10 // DEFINES FOR REGISTERS LOCAL ADDRESSES //#define R_SET_ERROR(_te_num_) 0 /** MODBUS_DATA_RERISTERS_DEFINES * @} */ //----------------DEFINES FOR COILS----------------- /** * @addtogroup MODBUS_DATA_COILS_DEFINES * @ingroup MODBUS_DATA * @brief Defines for coils @verbatim Структура дефайна Для массивов коилов: C__ADDR - модбас адресс первого коила в массиве C__QNT - количество коилов в массиве (минимум 16) @endverbatim * @{ */ /** * @brief Коилы */ typedef struct //MB_DataCoilsTypeDef { /* reg 1 - control */ unsigned ForwardTest:1; unsigned ReverseTest:1; unsigned StartTest:1; unsigned KeyForwardHiTest:1; unsigned KeyForwardLoTest:1; unsigned KeyReverseHiTest:1; unsigned KeyReverseLoTest:1; unsigned reserved:9; /* reg 2 - settings */ unsigned msTimeForForward_enable:1; unsigned msTimeForReverse_enable:1; unsigned msTimeBeforeTest_enable:1; unsigned msTimeDeadtime_enable:1; unsigned msTimeBeforePeak_enable:1; unsigned reserved2:11; }MB_DataCoilsTypeDef; // DEFINES FOR COIL ARRAYS #define C_CONTROL_ADDR 0 #define C_CONTROL_QNT 7 #define C_SETTINGS_ADDR 16 #define C_SETTINGS_QNT 5 /** MODBUS_DATA_COILS_DEFINES * @} */ //-----------MODBUS DEVICE DATA SETTING------------- // MODBUS DATA STRUCTTURE /** * @brief Структура со всеми регистрами и коилами модбас * @ingroup MODBUS_DATA */ typedef struct // tester modbus data { MB_DataInRegsTypeDef InRegs; ///< Modbus input registers @ref MB_DataInRegsTypeDef MB_DataCoilsTypeDef Coils; ///< Modbus coils @ref MB_DataCoilsTypeDef MB_DataHoldRegsTypeDef HoldRegs; ///< Modbus holding registers @ref MB_DataHoldRegsTypeDef }MB_DataStructureTypeDef; extern MB_DataStructureTypeDef MB_DATA; typedef struct { unsigned length; char *name; }MB_DeviceObjectTypeDef; typedef struct { MB_DeviceObjectTypeDef VendorName; MB_DeviceObjectTypeDef ProductCode; MB_DeviceObjectTypeDef Revision; MB_DeviceObjectTypeDef VendorUrl; MB_DeviceObjectTypeDef ProductName; MB_DeviceObjectTypeDef ModelName; MB_DeviceObjectTypeDef UserApplicationName; }MB_DeviceIdentificationTypeDef; void MB_DevoceInentificationInit(void); #endif //_MODBUS_DATA_H_ ///////////////////////////////////////////////////////////// ///////////////////////TEMP/OUTDATE/OTHER////////////////////