#3 Настройки перенесены в модбас, все подтягивается оттуда
- В modbus коилах задается режим и выставляется флаг запустить тест. Запустить тест также можно по кнопке - Добавлена функция для выставления дефолтных настроек TESTER_Set_Default_Settings: она выставляет все настройки в modbus по дефолту и еще некоторые не modbus настройки (порты и пины ключей, кнопок, светодиодов) - Добавлена функция для обновления настроек тестера TESTER_UpdateSettings: она подтягивает все настроки из modbus в соответствующие структуры тестера. Вызывается каждый раз перед тестированием
This commit is contained in:
@@ -262,13 +262,8 @@ MB_ExceptionTypeDef MB_DefineRegistersAddress(uint16_t **pRegs, uint16_t Addr, u
|
||||
|
||||
if(RegisterType == RegisterType_Holding)
|
||||
{
|
||||
// Устаки для напряжений ТЭ: предупреждения аварии
|
||||
if(MB_Check_Address_For_Arr(Addr, Qnt, R_SETPOINTS_ADDR, R_SETPOINTS_QNT) == NO_ERRORS)
|
||||
{
|
||||
*pRegs = MB_Set_Register_Ptr(&MB_DATA.HoldRegs, Addr); // начало регистров хранения/входных
|
||||
}
|
||||
// Устаки для настройки МЗКТЭ: запрет опроса и настройки общения (MODBUS/UART)
|
||||
else if(MB_Check_Address_For_Arr(Addr, Qnt, R_SETTINGS_ADDR, R_SETTINGS_QNT) == NO_ERRORS)
|
||||
// Устаки для тестера
|
||||
if(MB_Check_Address_For_Arr(Addr, Qnt, R_SETTINGS_ADDR, R_SETTINGS_QNT) == NO_ERRORS)
|
||||
{
|
||||
*pRegs = MB_Set_Register_Ptr(&MB_DATA.HoldRegs, Addr); // начало регистров хранения/входных
|
||||
}
|
||||
@@ -280,13 +275,8 @@ MB_ExceptionTypeDef MB_DefineRegistersAddress(uint16_t **pRegs, uint16_t Addr, u
|
||||
}
|
||||
else if(RegisterType == RegisterType_Input)
|
||||
{
|
||||
// Напряжения на ТЭ
|
||||
if(MB_Check_Address_For_Arr(Addr, Qnt, R_TE_VOLTAGE_ADDR, R_TE_VOLTAGE_QNT) == NO_ERRORS)
|
||||
{
|
||||
*pRegs = MB_Set_Register_Ptr(&MB_DATA.InRegs, Addr); // начало регистров хранения/входных
|
||||
}
|
||||
// Статус регистр МЗКТЭ
|
||||
else if(MB_Check_Address_For_Arr(Addr, Qnt, R_STATUS_REG_ADDR, R_STATUS_REG_QNT) == NO_ERRORS)
|
||||
// Измеренные параметры диода
|
||||
if(MB_Check_Address_For_Arr(Addr, Qnt, R_MEASURED_ADDR, R_MEASURED_QNT) == NO_ERRORS)
|
||||
{
|
||||
*pRegs = MB_Set_Register_Ptr(&MB_DATA.InRegs, Addr); // начало регистров хранения/входных
|
||||
}
|
||||
@@ -323,10 +313,14 @@ MB_ExceptionTypeDef MB_DefineCoilsAddress(uint16_t **pCoils, uint16_t Addr, uint
|
||||
return ILLEGAL_DATA_VALUE; // return exception code
|
||||
}
|
||||
|
||||
// peripheral control coils
|
||||
if(MB_Check_Address_For_Arr(Addr, Qnt, C_TE_EXCLUDE_ADDR, C_TE_EXCLUDE_QNT) == NO_ERRORS)
|
||||
// tester settings coils
|
||||
if(MB_Check_Address_For_Arr(Addr, Qnt, C_SETTINGS_ADDR, C_SETTINGS_QNT) == NO_ERRORS)
|
||||
{
|
||||
*pCoils = MB_Set_Coil_Reg_Ptr(&MB_DATA.Coils, Addr-C_TE_EXCLUDE_ADDR);
|
||||
*pCoils = MB_Set_Coil_Reg_Ptr(&MB_DATA.Coils, Addr);
|
||||
}// tester control coils
|
||||
else if(MB_Check_Address_For_Arr(Addr, Qnt, C_CONTROL_ADDR, C_CONTROL_QNT) == NO_ERRORS)
|
||||
{
|
||||
*pCoils = MB_Set_Coil_Reg_Ptr(&MB_DATA.Coils, Addr);
|
||||
}
|
||||
// if address doesnt match any array - return illegal data address response
|
||||
else
|
||||
|
||||
@@ -37,7 +37,8 @@
|
||||
*/
|
||||
typedef struct //MB_DataInRegsTypeDef
|
||||
{
|
||||
unsigned DUMMY;
|
||||
uint16_t ForwardVoltage;
|
||||
uint16_t PeakVoltage;
|
||||
}MB_DataInRegsTypeDef;
|
||||
|
||||
|
||||
@@ -46,23 +47,26 @@ typedef struct //MB_DataInRegsTypeDef
|
||||
*/
|
||||
typedef struct //MB_DataInRegsTypeDef
|
||||
{
|
||||
unsigned DUMMY;
|
||||
uint16_t TimeForPositiveDC;
|
||||
uint16_t TimeBeforeTest;
|
||||
uint16_t TimeBeforePeak;
|
||||
uint16_t TimeBeforeDisconnect;
|
||||
|
||||
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_TE_VOLTAGE_ADDR 0
|
||||
#define R_TE_VOLTAGE_QNT 85
|
||||
|
||||
#define R_STATUS_REG_ADDR 85
|
||||
#define R_STATUS_REG_QNT 1
|
||||
#define R_MEASURED_ADDR 0
|
||||
#define R_MEASURED_QNT 1
|
||||
|
||||
// DEFINES FOR HOLDING REGISTERS ARRAYS
|
||||
#define R_SETPOINTS_ADDR 0
|
||||
#define R_SETPOINTS_QNT 170
|
||||
|
||||
#define R_SETTINGS_ADDR 170
|
||||
#define R_SETTINGS_QNT 5
|
||||
#define R_SETTINGS_ADDR 0
|
||||
#define R_SETTINGS_QNT 4
|
||||
|
||||
|
||||
// DEFINES FOR REGISTERS LOCAL ADDRESSES
|
||||
@@ -95,12 +99,24 @@ typedef struct //MB_DataInRegsTypeDef
|
||||
*/
|
||||
typedef struct //MB_DataCoilsTypeDef
|
||||
{
|
||||
unsigned DUMMY;
|
||||
/* reg 1 */
|
||||
unsigned PositiveTest:1;
|
||||
unsigned NegativeTest:1;
|
||||
unsigned StartTest:1;
|
||||
unsigned reserved:13;
|
||||
|
||||
/* reg 2 */
|
||||
unsigned msTimeBeforeTest_enable:1;
|
||||
unsigned msTimeBeforePeak_enable:1;
|
||||
unsigned msTimeBeforeDisconnect_enable:1;
|
||||
}MB_DataCoilsTypeDef;
|
||||
|
||||
// DEFINES FOR COIL ARRAYS
|
||||
#define C_TE_EXCLUDE_ADDR 0
|
||||
#define C_TE_EXCLUDE_QNT 85
|
||||
#define C_CONTROL_ADDR 0
|
||||
#define C_CONTROL_QNT 3
|
||||
|
||||
#define C_SETTINGS_ADDR 16
|
||||
#define C_SETTINGS_QNT 3
|
||||
|
||||
/** MODBUS_DATA_COILS_DEFINES
|
||||
* @}
|
||||
|
||||
@@ -186,7 +186,7 @@ RS_StatusTypeDef RS_Init(RS_HandleTypeDef *hRS, UART_HandleTypeDef *huart, TIM_H
|
||||
UART_Base_Init(suart);
|
||||
hRS->huart = &suart->huart;
|
||||
#else
|
||||
RS_UART_Init();
|
||||
// RS_UART_Init();
|
||||
hRS->huart = huart;
|
||||
#endif
|
||||
|
||||
@@ -206,7 +206,7 @@ RS_StatusTypeDef RS_Init(RS_HandleTypeDef *hRS, UART_HandleTypeDef *huart, TIM_H
|
||||
hRS->htim = &stim->htim;
|
||||
}
|
||||
#else
|
||||
RS_TIM_Init();
|
||||
// RS_TIM_Init();
|
||||
hRS->htim = htim;
|
||||
#endif
|
||||
|
||||
@@ -250,8 +250,6 @@ HAL_StatusTypeDef RS_ReInit_UART(RS_HandleTypeDef *hRS, UART_HandleTypeDef *huar
|
||||
UART_MspDeInit(&suart->huart);
|
||||
|
||||
RS_RES = UART_Base_Init(suart);
|
||||
|
||||
RS_RES = RS_UART_Init()
|
||||
|
||||
#else
|
||||
// // check is settings are valid
|
||||
|
||||
Reference in New Issue
Block a user