#include "upper_computer_rw_api.h"
|
#include "rtc.h"
|
#include "key.h"
|
#include "master_slave_inter.h"
|
#include "string.h"
|
#include "test_log.h"
|
#include "system_parameter.h"
|
#include "valve_control.h"
|
#include "system_log.h"
|
#include "e2p.h"
|
#include "gpio.h"
|
#include "delay.h"
|
#include "low_pwr_test.h"
|
#include "gprs.h"
|
#include "check_out.h"
|
#include "stdlib.h"
|
|
|
UC_SLAVE_PARA_UNION_T slave_para_union_g = {0};
|
|
/************************************** Write Data **************************************************************/
|
/************************************** Write Data **************************************************************/
|
static const UC_RECV_WRITE_FUNC_TABLE_DRV_T uc_recv_write_tab_func[] = {
|
{30,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE,UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER,Uc_WriteFlowAlarmCfgHandler},
|
{31,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE,UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER,Uc_WritePressAlarmCfgHandler},
|
{32,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE,UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER,Uc_WriteTempAlarmCfgHandler},
|
{33,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE,UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER,Uc_WritePulseFactorHandler},
|
{UCC_MASTER_INFO_RW,SET_PARA_MODE,UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_WriteMasterInfoHandler},
|
{UCC_TIME_RW, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_WriteTimeHandler},
|
|
{UCC_SLAVE_INFO_RW_2, SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_WriteSlave_TransitionHandler},
|
{UCC_SLAVE_INFO_RW, SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_WriteSlave_TransitionHandler},
|
|
{UCC_FUNC_CFG_RW, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_WriteFuncCfgHandler},
|
{UCC_ALARM_CFG_RW, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_WriteAlarmCtlHandler},
|
{UCC_ALARM_SEND_RW, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_WriteAlarmSendHandler},
|
{UCC_VALVE_CTL_RW, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_WriteValveCtlHandler},
|
/*¼ÆÁ¿Ïà¹Ø*/
|
{UCC_SLAVE_PIPE_RW, SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_WriteSlave_TransitionHandler},
|
{UCC_SLAVE_UT_RW, SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_WriteSlave_TransitionHandler},
|
{UCC_SLAVE_CORR_SET_RW, SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_WriteSlave_TransitionHandler},
|
{UCC_SLAVE_UT_REAL_2_RW, SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_WriteSlave_TransitionHandler},
|
{UCC_SLAVE_RST_WO, SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_WriteSlave_TransitionHandler},
|
{UCC_SLAVE_ZERO_2_ZERO_WO, SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_WriteSlave_TransitionHandler},
|
{UCC_SLAVE_RES_RW, SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_WriteSlave_TransitionHandler},
|
{UCC_SLAVE_PWR_RW,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER,Uc_WriteSalve_PwrHandler},
|
{UCC_SLAVE_CAL_DATA_PARA_RW,SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER,Uc_WriteSlave_TransitionHandler},
|
{UCC_SLAVE_CORR_FIXED_RW,SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER,Uc_WriteSlave_TransitionHandler},
|
|
|
{UCC_BASIC_INFO_RW,SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_WriteBasicInfoHandler},
|
{UCC_FLOW_CFG_PARA_RW,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_WriteFlowAlarmCfg_2Handler},
|
{UCC_PRESS_CFG_PARA_RW,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_WritePressAlarmCfg_2Handler},
|
{UCC_TEMP_CFG_PARA_RW,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_WriteTempAlarmCfg_2Handler},
|
{UCC_BILLING_CFG_RW,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_WriteBillingAlarmCfg_Handler},
|
{UCC_CAL_PULSE_RW,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_WritePulseFactor_2Handler},
|
{UCC_PRICE_CFG_RW,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_WritePriceCfgHandler},
|
{UCC_GPRS_CFG_RW,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_WriteGprsCfgHandler},
|
{UCC_AES_KEYS_RW,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_WriteAes128KeysHandler},
|
{UCC_SAVE_TIME_RW,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_WriteSaveTimeCfgHandler},
|
{UCC_BALANCE_SET_WO,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_WriteBalanceSetHandler},
|
{UCC_CUMULATE_SET_RW,SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_WriteCumulateSetHandler},
|
{UCC_FUNC_CFG_RW_2,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER,Uc_WriteFuncCfg_2Handler},
|
{UCC_ALARM_CFG_SEND_RW,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER,Uc_WriteAlarmCtlSend_2Handler},
|
{UCC_VALVE_CTL_RW_2,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER,Uc_WriteValveCtl_2Handler},
|
{UCC_VALVE_FLAG_WO,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER,Uc_WriteValveFlag_Handler},
|
{UCC_MICRO_CONSTANT_PARA_RW,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER,Uc_WriteMicroConstant_Handler},
|
{UCC_SEC_CORR_SET_PARA_RW,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER,Uc_WriteSecCorrSet_Handler},
|
{UCC_ZERO_DRIFT_CFG_RW,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER,Uc_WriteZeroDriftCfg_Handler},
|
};
|
/************************************** Read Data **************************************************************/
|
/************************************** Read Data **************************************************************/
|
static const UC_RECV_READ_FUNC_TABLE_DRV_T uc_recv_read_tab_func[] = {
|
{30,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE,UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER,Uc_ReadFlowAlarmCfgHandler},
|
{31,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE,UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER,Uc_ReadPressAlarmCfgHandler},
|
{32,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE,UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER,Uc_ReadTempAlarmCfgHandler},
|
{33,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE,UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER,Uc_ReadPulseFactorHandler},
|
{UCC_MASTER_INFO_RW,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE,UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadMasterInfoHandler},
|
{UCC_TIME_RW, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadTimeHandler},
|
/*¼ÆÁ¿Ïà¹Ø*/
|
{UCC_SLAVE_INFO_RW_2, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadSlave_TransitionHandler},
|
{UCC_SLAVE_INFO_RW, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadSlave_TransitionHandler},
|
|
{UCC_STATE_BYTES_RO, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadStateBytesHandler},
|
{UCC_FUNC_CFG_RW, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadFuncCfgHandler},
|
{UCC_ALARM_CFG_RW, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadAlarmCtlHandler},
|
{UCC_ALARM_SEND_RW, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadAlarmSendHandler},
|
{UCC_VALVE_CTL_RW, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadValveCtlHandler},
|
/*¼ÆÁ¿Ïà¹Ø*/
|
{UCC_SLAVE_PIPE_RW, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadSlave_TransitionHandler},
|
{UCC_SLAVE_UT_RW, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadSlave_TransitionHandler},
|
{UCC_SLAVE_CORR_SET_RW, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadSlave_TransitionHandler},
|
{UCC_SLAVE_CORR_REAL_RO, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadSlave_TransitionHandler},
|
{UCC_SLAVE_RAW_DATA_RO, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadSlave_TransitionHandler},
|
{UCC_SLAVE_TP_DATA_RO, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadSlave_TransitionHandler},
|
{UCC_SLAVE_UT_REAL_1_RO, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadSlave_TransitionHandler},
|
{UCC_SLAVE_UT_REAL_2_RW, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadSlave_TransitionHandler},
|
{UCC_SLAVE_STATUS_RO, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadSlave_TransitionHandler},
|
{UCC_SLAVE_ALARM_RO, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadSlave_TransitionHandler},
|
{UCC_SLAVE_REAL_DATA_RO, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadSlave_TransitionHandler},
|
{UCC_SLAVE_RES_RW, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadSlave_TransitionHandler},
|
{UCC_SLAVE_PWR_RW,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER,Uc_ReadSalve_PwrHandler},
|
{UCC_SLAVE_TEMP_TIMEDIFF_RO,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER,Uc_ReadSlave_TransitionHandler},
|
{UCC_SLAVE_CAL_DATA_PARA_RW,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER,Uc_ReadSlave_TransitionHandler},
|
{UCC_SLAVE_CORR_FIXED_RW,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER,Uc_ReadSlave_TransitionHandler},
|
|
|
{UCC_BASIC_INFO_RW,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadBasicInfoHandler},
|
{UCC_FLOW_CFG_PARA_RW,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadFlowAlarmCfg_2Handler},
|
{UCC_PRESS_CFG_PARA_RW,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadPressAlarmCfg_2Handler},
|
{UCC_TEMP_CFG_PARA_RW,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadTempAlarmCfg_2Handler},
|
{UCC_BILLING_CFG_RW,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadBillingAlarmCfg_Handler},
|
{UCC_CAL_PULSE_RW,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadPulseFactor_2Handler},
|
{UCC_PRICE_CFG_RW,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadPriceCfgHandler},
|
{UCC_GPRS_CFG_RW,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadGprsCfgHandler},
|
{UCC_AES_KEYS_RW,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadAes128KeysHandler},
|
{UCC_SAVE_TIME_RW,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadSaveTimeCfgHandler},
|
{UCC_CUMULATE_SET_RW,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadRealCumulateHandler},
|
{UCC_STATE_BYTES_RO_2,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER,Uc_ReadStateBytes_2Handler},
|
{UCC_FUNC_CFG_RW_2,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE , UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER,Uc_ReadFuncCfg_2Handler},
|
{UCC_ALARM_CFG_SEND_RW,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER,Uc_ReadAlarmCtlSend_2Handler},
|
{UCC_VALVE_CTL_RW_2,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER,Uc_ReadValveCtl_2Handler},
|
{UCC_REALTIME_PARA_RO,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER,Uc_ReadRealParaHandler},
|
{UCC_MICRO_CONSTANT_PARA_RW,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER,Uc_ReadMicroConstantHandler},
|
{UCC_CYCLIC_LOG_DATA_INFO_RO,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER,Uc_ReadCyclicLogDataHandler},
|
{UCC_SEC_CORR_SET_PARA_RW,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER,Uc_ReadSecCorrSetHandler},
|
{UCC_SEC_CORR_REAL_PARA_RO,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER,Uc_ReadSecCorrRealHandler},
|
{UCC_ZERO_DRIFT_CFG_RW,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER,Uc_ReadZeroDriftCfgHandler},
|
};
|
|
/************************************** Write Data **************************************************************/
|
/************************************** Write Data **************************************************************/
|
/************************************** Write Data **************************************************************/
|
ErrorStatus_STM32 Uc_WriteTimeHandler(uint8_t *pData)
|
{
|
if (Set_Sys_Rtc_Time(pData[0], pData[1], pData[2], pData[3], pData[4], pData[5],1) == SUCCESS_0)
|
{
|
/*ÀúÊ·¼Ç¼¹¹Ôì*/
|
timing_log_g.record_time_before[0] = calendar_g.Year;
|
timing_log_g.record_time_before[1] = calendar_g.Month;
|
timing_log_g.record_time_before[2] = calendar_g.Date;
|
timing_log_g.record_time_before[3] = calendar_g.Hour;
|
timing_log_g.record_time_before[4] = calendar_g.Minute;
|
timing_log_g.record_time_before[5] = calendar_g.Second;
|
timing_log_g.timing_cause = TC_UPPER;
|
Get_Sys_Rtc_Time(&calendar_g); //ÉèÖÃÍêʱ¼äºóÁ¢Âí¸üÐÂÒ»ÏÂʱ¼ä
|
__PERIOD_FIRST_CALC_FLAG_SET(gprs_send_period);
|
__PERIOD_FIRST_CALC_FLAG_SET(alka_get_power_period);
|
__PERIOD_FIRST_CALC_FLAG_SET(lith_get_power_period);
|
__PERIOD_FIRST_CALC_FLAG_SET(mcu_get_temperature_period);
|
return RealTimeData_LogStore(&save_realtime_data_g, &sys_realtime_data_g, &billing_real_para_g, &calendar_g);//´¢´æ
|
}
|
else
|
return ERROR_1;
|
}
|
ErrorStatus_STM32 Uc_WriteFlowAlarmCfgHandler(uint8_t *pData)
|
{
|
SYS_FLOW_ALARM_CFG_T sys_flow_alarm_cfg_temp = {0};
|
memcpy(&sys_flow_alarm_cfg_temp,pData,20);
|
sys_flow_alarm_cfg_temp.sys_flow_up_1 = BLEndianFloat(sys_flow_alarm_cfg_temp.sys_flow_up_1);
|
sys_flow_alarm_cfg_temp.sys_flow_up_2 = BLEndianFloat(sys_flow_alarm_cfg_temp.sys_flow_up_2);
|
sys_flow_alarm_cfg_temp.sys_flow_down_1 = BLEndianFloat(sys_flow_alarm_cfg_temp.sys_flow_down_1);
|
sys_flow_alarm_cfg_temp.flow_up_2_replace_value = BLEndianFloat(sys_flow_alarm_cfg_temp.flow_up_2_replace_value);
|
sys_flow_alarm_cfg_temp.small_flow_excision_value = BLEndianFloat(sys_flow_alarm_cfg_temp.small_flow_excision_value);
|
if(sys_flow_alarm_cfg_temp.sys_flow_up_1 != sys_flow_alarm_cfg_g.sys_flow_up_1)
|
{
|
/*¹¹Ôìbefore*/
|
memcpy(¶_amend_log_g.para_amend_union.flow_cfg_amend_s.flow_cfg_before,&sys_flow_alarm_cfg_g,20);
|
/*¹¹Ôìnow*/
|
memcpy(¶_amend_log_g.para_amend_union.flow_cfg_amend_s.flow_cfg_now,&sys_flow_alarm_cfg_temp,20);
|
memcpy(&sys_flow_alarm_cfg_g,&sys_flow_alarm_cfg_temp,20);
|
Sys_Log_E2pParaMultipleWrite(&sys_store_para_table[PARA_FLOW_ALARM_CFG],1);
|
para_amend_log_g.mender = SDM_UPPER;
|
__SYS_ALARM_BYTES_SET(flow_para_amend,SET);
|
}
|
return SUCCESS_0;
|
}
|
|
ErrorStatus_STM32 Uc_WritePressAlarmCfgHandler(uint8_t *pData)
|
{
|
SYS_PRESS_ALARM_CFG_T press_temp = {0};
|
memcpy(&press_temp,pData,36);
|
press_temp.press_correction_factor = BLEndianFloat(press_temp.press_correction_factor);
|
press_temp.press_intercept = BLEndianFloat(press_temp.press_intercept);
|
press_temp.press_up_value = BLEndianFloat(press_temp.press_up_value);
|
press_temp.press_up_up_value = BLEndianFloat(press_temp.press_up_up_value);
|
press_temp.press_down_value = BLEndianFloat(press_temp.press_down_value);
|
press_temp.press_down_down_value = BLEndianFloat(press_temp.press_down_down_value);
|
press_temp.press_up_scope = BLEndianFloat(press_temp.press_up_scope);
|
press_temp.press_down_scope = BLEndianFloat(press_temp.press_down_scope);
|
press_temp.press_down_down_replace = BLEndianFloat(press_temp.press_down_down_replace);
|
if(press_temp.press_up_value != sys_press_alarm_cfg_g.press_up_value)
|
{
|
/*¹¹Ôìbefore*/
|
memcpy(¶_amend_log_g.para_amend_union.press_cfg_amend_s.press_cfg_before,&sys_press_alarm_cfg_g,36);
|
/*¹¹Ôìnow*/
|
memcpy(¶_amend_log_g.para_amend_union.press_cfg_amend_s.press_cgf_now,&press_temp,36);
|
memcpy(&sys_press_alarm_cfg_g,&press_temp,36);
|
Sys_Log_E2pParaMultipleWrite(&sys_store_para_table[PARA_PRESS_ALARM_CFG],1);
|
para_amend_log_g.mender = SDM_UPPER;
|
__SYS_ALARM_BYTES_SET(press_para_amend,SET);
|
}
|
return SUCCESS_0;
|
}
|
|
ErrorStatus_STM32 Uc_WriteTempAlarmCfgHandler(uint8_t *pData)
|
{
|
SYS_TEMP_ALARM_CFG_T temp_temp = {0};
|
memcpy(&temp_temp,pData,30);
|
temp_temp.temp_correction_factor = BLEndianFloat(temp_temp.temp_correction_factor);
|
temp_temp.temp_intercept = BLEndianFloat(temp_temp.temp_intercept);
|
temp_temp.temp_up_value = BSWAP_16(temp_temp.temp_up_value);
|
temp_temp.temp_up_up_value = BSWAP_16(temp_temp.temp_up_up_value);;
|
temp_temp.temp_down_value = BSWAP_16(temp_temp.temp_down_value);
|
temp_temp.temp_down_down_value = BSWAP_16(temp_temp.temp_down_down_value);
|
temp_temp.temp_up_scope = BSWAP_16(temp_temp.temp_up_scope);
|
temp_temp.temp_down_scope = BSWAP_16(temp_temp.temp_down_scope);
|
temp_temp.temp_up_up_replace = BSWAP_16(temp_temp.temp_up_up_replace);
|
temp_temp.temp_drastic_change = BLEndianFloat(temp_temp.temp_drastic_change);
|
temp_temp.cpu_temp_up_scope = BSWAP_16(temp_temp.cpu_temp_up_scope);
|
temp_temp.cpu_temp_down_scope = BSWAP_16(temp_temp.cpu_temp_down_scope);
|
|
if(temp_temp.temp_up_value != sys_temp_alarm_cfg_g.temp_up_value)
|
{
|
/*¹¹Ôìbefore*/
|
memcpy(¶_amend_log_g.para_amend_union.temp_cfg_amend_s.temp_cfg_before,&sys_temp_alarm_cfg_g,30);
|
/*¹¹Ôìnow*/
|
memcpy(¶_amend_log_g.para_amend_union.temp_cfg_amend_s.temp_cgf_now,&temp_temp,30);
|
memcpy(&sys_temp_alarm_cfg_g,&temp_temp,30);
|
Sys_Log_E2pParaMultipleWrite(&sys_store_para_table[PARA_TEMP_ALARM_CFG],1);
|
para_amend_log_g.mender = SDM_UPPER;
|
__SYS_ALARM_BYTES_SET(temp_para_amend,SET);
|
}
|
return SUCCESS_0;
|
}
|
|
|
ErrorStatus_STM32 Uc_WritePulseFactorHandler(uint8_t *pData)/*Ôݶ¨*/
|
{
|
#pragma pack(1)
|
typedef struct {
|
uint32_t cal_pulse_factor_temp;
|
uint16_t cal_pulse_width_temp;
|
}TEMP_CAL_PULSE_PARA;
|
#pragma pack()
|
TEMP_CAL_PULSE_PARA temp_cal_pulse_para = {0};
|
memcpy(&temp_cal_pulse_para,pData,6);
|
/*´óС¶Ëת»»*/
|
temp_cal_pulse_para.cal_pulse_factor_temp = BSWAP_32(temp_cal_pulse_para.cal_pulse_factor_temp);
|
temp_cal_pulse_para.cal_pulse_width_temp = BSWAP_16(temp_cal_pulse_para.cal_pulse_width_temp);
|
if(temp_cal_pulse_para.cal_pulse_factor_temp != cal_pulse_para_g.cal_pulse_factor)
|
{
|
/*¹¹Ôìbefore*/
|
para_amend_log_g.para_amend_union.cal_pulse_amend_s.cal_pulse_cfg_before.cal_pulse_factor = cal_pulse_para_g.cal_pulse_factor;
|
para_amend_log_g.para_amend_union.cal_pulse_amend_s.cal_pulse_cfg_before.cal_pulse_width = cal_pulse_para_g.cal_pulse_width;
|
/*¹¹Ôìnow*/
|
para_amend_log_g.para_amend_union.cal_pulse_amend_s.cal_pulse_cfg_now.cal_pulse_factor = temp_cal_pulse_para.cal_pulse_factor_temp;
|
para_amend_log_g.para_amend_union.cal_pulse_amend_s.cal_pulse_cfg_now.cal_pulse_width = temp_cal_pulse_para.cal_pulse_width_temp;
|
cal_pulse_para_g.cal_pulse_factor = temp_cal_pulse_para.cal_pulse_factor_temp;
|
cal_pulse_para_g.cal_pulse_width = temp_cal_pulse_para.cal_pulse_width_temp;
|
Sys_Log_E2pParaMultipleWrite(&sys_store_para_table[PARA_CAL_PULSE_CFG],1);//²ÎÊý´æ´¢
|
para_amend_log_g.mender = SDM_UPPER;
|
__SYS_ALARM_BYTES_SET(pluse_cal_amend,SET);
|
}
|
return SUCCESS_0;
|
}
|
|
ErrorStatus_STM32 Uc_WriteSlave_TransitionHandler(uint8_t *pData)
|
{
|
uint8_t cmd = 0;
|
uint16_t ms_cnt = 500, //²»¿ÉÐ޸ĸüС
|
uc_table_id = uc_recv_para_g.uc_recv_buf_union.uc_recv_buf[12] << 8 | uc_recv_para_g.uc_recv_buf_union.uc_recv_buf[13];
|
switch (uc_table_id)
|
{
|
case UCC_SLAVE_INFO_RW:
|
case UCC_SLAVE_INFO_RW_2:
|
cmd = SC_RW_HARDWARE;
|
break;
|
case UCC_SLAVE_PIPE_RW:
|
cmd = PIPE_RW_PARA;
|
break;
|
case UCC_SLAVE_UT_RW:
|
cmd = UT_RW_PARA;
|
break;
|
case UCC_SLAVE_CORR_SET_RW:
|
cmd = CORR_RW_SET;
|
break;
|
case UCC_SLAVE_UT_REAL_2_RW:
|
cmd = UT_RW_REAL_PARA_2;
|
break;
|
case UCC_SLAVE_RST_WO:
|
cmd = SC_SYS_RST;
|
break;
|
case UCC_SLAVE_ZERO_2_ZERO_WO:
|
cmd = SC_ZERO_2_ZERO;
|
break;
|
case UCC_SLAVE_RES_RW:
|
cmd = SC_RES_PARA;
|
break;
|
case UCC_SLAVE_CAL_DATA_PARA_RW:
|
cmd = CAL_DATA_PARA;
|
break;
|
case UCC_SLAVE_CORR_FIXED_RW:
|
cmd = CORR_RW_FIXED;
|
break;
|
default:
|
break;
|
}
|
/*Ö÷°åת·¢µ½Á÷Á¿°åÒª¼õÈ¥ÉÏλ»úÐÒéÍ·³¤¶È£¬CRCУÑ鳤¶ÈºÍ±íºÅ³¤¶È*/
|
Send_Write_Slave_Command(cmd, pData, uc_recv_para_g.uc_recv_length - UC_PROTOCOL_HEAD_LENGTH - UC_DATA_TABLE_BYTES_LENGTH - 2);
|
while (ms_cnt--) // ÔÚ¹¤³ÌģʽϽo¸ö1sµÄµÈ´ýʱ¼ä
|
{
|
delay_ms(1);
|
if(Measure_Uart3_Rx_DMA_CH1_Check(10) == SUCCESS_0) //ºË²éÊý¾ÝÊÇ·ñ´«ÊäÍê³É
|
break;
|
}
|
if (Slave_Result_Handler(INTER_DATA_WRITE, &inter_recv_para_g) == INTER_OK)
|
return SUCCESS_0;
|
else
|
{
|
/*½øÐдíÎó´¦Àí£¨ÔÝÎÞ£©*/
|
return ERROR_1;
|
}
|
}
|
|
ErrorStatus_STM32 Uc_WriteSalve_PwrHandler(uint8_t *pData)
|
{
|
if(pData[0] == 0)
|
SLAVE_PWR_OFF;
|
else
|
SLAVE_PWR_ON;
|
return SUCCESS_0;
|
}
|
|
ErrorStatus_STM32 Uc_WriteMasterInfoHandler(uint8_t *pData)
|
{
|
memcpy(&master_soft_hard_para_g, pData, 15);
|
return Sys_Log_E2pParaMultipleWrite(&sys_store_para_table[PARA_MASTER_SOFT_HARD],1);//´¢´æ;
|
}
|
|
ErrorStatus_STM32 Uc_WriteFuncCfgHandler(uint8_t *pData)
|
{
|
memcpy(&sys_func_cfg_bytes_g, pData, SYS_FUNC_CTL_BYTES_TYPE_LENGTH);
|
return Sys_Log_E2pParaMultipleWrite(&sys_store_para_table[PARA_FUNC_CFG_BYTES],1);//´¢´æ;
|
}
|
ErrorStatus_STM32 Uc_WriteFuncCfg_2Handler(uint8_t *pData)
|
{
|
/*before*/
|
memcpy(para_amend_log_g.para_amend_union.sys_func_cfg_amend_s.func_cfg_bytes_before,&sys_func_cfg_bytes_g,SYS_FUNC_CTL_BYTES_TYPE_LENGTH);
|
/*now*/
|
memcpy(&sys_func_cfg_bytes_g, pData, SYS_FUNC_CTL_BYTES_TYPE_LENGTH);
|
memcpy(para_amend_log_g.para_amend_union.sys_func_cfg_amend_s.func_cfg_bytes_now,pData,SYS_FUNC_CTL_BYTES_TYPE_LENGTH);
|
para_amend_log_g.mender = SDM_UPPER;
|
sys_para_amend_log_flag_g = SYS_FUNC_CFG_BYTES_AMEND;
|
|
sys_admin_g.sys_admin.state_bytes.lcd_mode = sys_func_cfg_bytes_g.sys_func_cfg_bytes_s.lcd_mode;
|
sys_admin_g.sys_admin.state_bytes.virtual_billing = sys_func_cfg_bytes_g.sys_func_cfg_bytes_s.virtual_billing;
|
sys_admin_g.sys_admin.state_bytes.account_state = sys_func_cfg_bytes_g.sys_func_cfg_bytes_s.account_state;
|
sys_admin_g.sys_admin.state_bytes.billing_type = sys_func_cfg_bytes_g.sys_func_cfg_bytes_s.billing_type;
|
return Sys_Log_E2pParaMultipleWrite(&sys_store_para_table[PARA_FUNC_CFG_BYTES],1);//´¢´æ;
|
}
|
ErrorStatus_STM32 Uc_WriteAlarmCtlHandler(uint8_t *pData)
|
{
|
memcpy(&sys_alarm_ctl_bytes_g, pData, SYS_ALARM_CTL_BYTES_TYPE_LENGTH);
|
return Sys_Log_E2pParaMultipleWrite(&sys_store_para_table[PARA_ALARM_CTL_BYTES],1);
|
}
|
ErrorStatus_STM32 Uc_WriteAlarmSendHandler(uint8_t *pData)
|
{
|
memcpy(&sys_alarm_send_bytes_g, pData, SYS_ALARM_SEND_BYTES_TYPE_LENGTH);
|
return Sys_Log_E2pParaMultipleWrite(&sys_store_para_table[PARA_ALARM_SEND_BYTES],1);
|
}
|
ErrorStatus_STM32 Uc_WriteAlarmCtlSend_2Handler(uint8_t *pData)
|
{
|
uint16_t temp_alarm_ctl_byte_2 = sys_alarm_ctl_bytes_g.alarm_ctl_send_union[1] & 0xFFFC,
|
temp_alarm_send_byte_2 = sys_alarm_send_bytes_g.alarm_ctl_send_union[1] & 0xFFFC;
|
/*before*/
|
memcpy(para_amend_log_g.para_amend_union.sys_alarm_ctl_bytes_amend_s.alarm_ctl_bytes_before,&sys_alarm_ctl_bytes_g,SYS_ALARM_CTL_BYTES_TYPE_LENGTH);
|
memcpy(para_amend_log_g.para_amend_union.sys_alarm_ctl_bytes_amend_s.alarm_send_bytes_before,&sys_alarm_send_bytes_g,SYS_ALARM_SEND_BYTES_TYPE_LENGTH);
|
/*now*/
|
/*ÓÉÓÚ¡°¼Æ·ÑÓë·§±¨¾¯¿ØÖÆ/Éϱ¨×Ö¡±µ¥¶ÀÔÚ¸÷ÖÖÓà¶î/Ìõ¼þ¹Ø·§ÃüÁîÖÐÐ޸ģ¬ËùÒÔÔÚ´Ë´¦ÃüÁî²»ÐÞ¸Ä*/
|
memcpy(&sys_alarm_ctl_bytes_g,pData,2);
|
sys_alarm_ctl_bytes_g.alarm_ctl_send_union[1] = temp_alarm_ctl_byte_2 | (pData[2] & 0x03);
|
memcpy(&sys_alarm_ctl_bytes_g.alarm_ctl_send_union[2], &pData[4], SYS_ALARM_CTL_BYTES_TYPE_LENGTH - 4);
|
|
memcpy(&sys_alarm_send_bytes_g,&pData[SYS_ALARM_CTL_BYTES_TYPE_LENGTH],2);
|
sys_alarm_send_bytes_g.alarm_ctl_send_union[1] = temp_alarm_send_byte_2 | (pData[SYS_ALARM_CTL_BYTES_TYPE_LENGTH + 2] & 0x03);
|
memcpy(&sys_alarm_send_bytes_g.alarm_ctl_send_union[2], &pData[SYS_ALARM_CTL_BYTES_TYPE_LENGTH + 4], SYS_ALARM_SEND_BYTES_TYPE_LENGTH - 4);
|
|
memcpy(para_amend_log_g.para_amend_union.sys_alarm_ctl_bytes_amend_s.alarm_ctl_bytes_now,&sys_alarm_ctl_bytes_g,SYS_ALARM_CTL_BYTES_TYPE_LENGTH);
|
memcpy(para_amend_log_g.para_amend_union.sys_alarm_ctl_bytes_amend_s.alarm_send_bytes_now,&sys_alarm_send_bytes_g,SYS_ALARM_SEND_BYTES_TYPE_LENGTH);
|
para_amend_log_g.mender = SDM_UPPER;
|
sys_para_amend_log_flag_g = ALARM_CTL_SEND_BYTES_AMEND;
|
return (ErrorStatus_STM32)(Sys_Log_E2pParaMultipleWrite(&sys_store_para_table[PARA_ALARM_CTL_BYTES],1) |
|
Sys_Log_E2pParaMultipleWrite(&sys_store_para_table[PARA_ALARM_SEND_BYTES],1));
|
}
|
ErrorStatus_STM32 Uc_WriteValveCtlHandler(uint8_t *pData)
|
{
|
memcpy(&valve_ctl_bytes_g, pData, VALVE_CTL_LENGTH);
|
return Sys_Log_E2pParaMultipleWrite(&sys_store_para_table[PARA_VALVE_CTL_BYTES],1);
|
}
|
ErrorStatus_STM32 Uc_WriteValveCtl_2Handler(uint8_t *pData)
|
{
|
uint16_t temp_valve_ctl_2 = 0;
|
memcpy(&temp_valve_ctl_2,&valve_ctl_bytes_g.valve_ctr_2,2);
|
temp_valve_ctl_2 &= 0xFFFC;
|
/*before*/
|
memcpy(para_amend_log_g.para_amend_union.sys_valve_ctl_bytes_amend_s.valve_ctl_bytes_before,&valve_ctl_bytes_g,VALVE_CTL_LENGTH);
|
/*now*/
|
memcpy(&valve_ctl_bytes_g,pData,2);
|
temp_valve_ctl_2 |= (pData[2] & 0x03);
|
memcpy(&valve_ctl_bytes_g.valve_ctr_2,&temp_valve_ctl_2,2);
|
memcpy(&valve_ctl_bytes_g.valve_ctr_4, &pData[6], VALVE_CTL_LEN - 6);
|
memcpy(para_amend_log_g.para_amend_union.sys_valve_ctl_bytes_amend_s.valve_ctl_bytes_now,pData,VALVE_CTL_LENGTH);
|
para_amend_log_g.mender = SDM_UPPER;
|
sys_para_amend_log_flag_g = VALVE_CTL_BYTES_AMEND;
|
return Sys_Log_E2pParaMultipleWrite(&sys_store_para_table[PARA_VALVE_CTL_BYTES],1);
|
}
|
ErrorStatus_STM32 Uc_WriteValveFlag_Handler(uint8_t *pData)
|
{
|
if(pData[0] == 4 && __SYS_STATUS_BYTES_GET(valve_state) == VALVE_CL && __SYS_STATUS_BYTES_GET(valve_lock) == RESET)
|
{
|
__SYS_STATUS_BYTES_STATUS(valve_lock, SET, AV_NORMAL);
|
__VALVE_WORK_TYPE_SET(VWT_LOCK);
|
// op_cl_valve_cause_id = AV_NORMAL; // ûÓпª¹Ø·§ÔÒòID
|
}
|
else if(pData[0] == 5 && __SYS_STATUS_BYTES_GET(valve_state) == VALVE_CL && __SYS_STATUS_BYTES_GET(valve_lock) == SET)
|
{
|
__SYS_STATUS_BYTES_STATUS(valve_lock, RESET, AV_NORMAL);
|
__VALVE_WORK_TYPE_SET(VWT_UNLOCK);
|
// op_cl_valve_cause_id = AV_NORMAL; // ûÓпª¹Ø·§ÔÒòID
|
}
|
else
|
return ERROR_1;
|
return SUCCESS_0;
|
}
|
|
ErrorStatus_STM32 Uc_WriteBasicInfoHandler(uint8_t *pData)
|
{
|
uint16_t write_data_length = MASTER_BASIC_FORMAT_SIZE - SIZEOF_OF(MASTER_BASIC_PARA_T,reserve);
|
uint8_t device_type_before = atoi((char *)&master_basic_papa_g.specifications_model[7]);
|
|
memcpy(&master_basic_papa_g,pData,write_data_length);
|
memcpy(gprs_protocol_head_tail_g.gprs_protocol_head.device_num,master_basic_papa_g.factory_number,
|
sizeof(gprs_protocol_head_tail_g.gprs_protocol_head.device_num));// É豸±àºÅ
|
Sys_GetUnitType_Set(device_type_before);
|
return Sys_Log_E2pParaMultipleWrite(&sys_store_para_table[PARA_MASTER_BASIC],1);//´¢´æ
|
}
|
|
ErrorStatus_STM32 Uc_WriteMicroConstant_Handler(uint8_t *pData)
|
{
|
uint16_t write_data_length = MICRO_CONSTANT_FLOW_FORMAT_SIZE - SIZEOF_OF(MICRO_CONSTANT_FLOW_PARA_T,reserve);
|
memcpy(µ_constant_flow_para_g,pData,write_data_length);
|
return Sys_Log_E2pParaMultipleWrite(&sys_store_para_table[PARA_MICRO_CONSTANT_FLOW],1);
|
}
|
|
ErrorStatus_STM32 Uc_WriteSecCorrSet_Handler(uint8_t *pData)
|
{
|
uint16_t write_data_length = SEC_ORDER_CORR_PARA_FORMAT_SIZE - SIZEOF_OF(SECOND_ORDER_CORR_T,reserve);
|
uint8_t slave_cmd = CORR_SEC_PARA;
|
Send_Write_Slave_Command(slave_cmd,pData,write_data_length);
|
/*Ô¤ÁôµÄ10¸ö¸¡µãÊýµ±oldÖµÓÃ*/
|
memcpy(&sec_order_corr_set_g.reserve[0],&sec_order_corr_set_g,write_data_length);
|
/*before*/
|
memcpy(¶_amend_log_g.para_amend_union.sec_corr_para_amend_s.sec_corr_para_before,&sec_order_corr_set_g,write_data_length);
|
/*now*/
|
memcpy(¶_amend_log_g.para_amend_union.sec_corr_para_amend_s.sec_corr_para_now,pData,write_data_length);
|
memcpy(&sec_order_corr_set_g,pData,write_data_length);
|
sys_para_amend_log_flag_g = SEC_ORDER_CORR_PARA_AMEND; //ÓÃÓÚ´æ´¢
|
SecondOrder_RealParaCalculate_Init();
|
return Sys_Log_E2pParaMultipleWrite(&sys_store_para_table[PARA_SEC_ORDER_CORR_SET],1);
|
}
|
|
ErrorStatus_STM32 Uc_WriteFlowAlarmCfg_2Handler(uint8_t *pData)
|
{
|
uint16_t write_data_length = SYS_FLOW_ALARM_CFG_FORMAT_SIZE - SIZEOF_OF(SYS_FLOW_ALARM_CFG_T,reserve);
|
/*before*/
|
memcpy(¶_amend_log_g.para_amend_union.flow_cfg_amend_s.flow_cfg_before,&sys_flow_alarm_cfg_g,write_data_length);
|
/*now*/
|
memcpy(&sys_flow_alarm_cfg_g,pData,write_data_length);
|
memcpy(¶_amend_log_g.para_amend_union.flow_cfg_amend_s.flow_cfg_now,pData,write_data_length);
|
para_amend_log_g.mender = SDM_UPPER;
|
__SYS_ALARM_BYTES_SET(flow_para_amend,SET); //ÓÃÓÚ±¨¾¯Éϱ¨
|
sys_para_amend_log_flag_g = GAS_CFG_PARA_AMEND; //ÓÃÓÚ´æ´¢
|
return Sys_Log_E2pParaMultipleWrite(&sys_store_para_table[PARA_FLOW_ALARM_CFG],1);//´¢´æ
|
}
|
ErrorStatus_STM32 Uc_WritePressAlarmCfg_2Handler(uint8_t *pData)
|
{
|
uint16_t write_data_length = SYS_PRESS_ALARM_CFG_FORMAT_SIZE - SIZEOF_OF(SYS_PRESS_ALARM_CFG_T,reserve);
|
/*before*/
|
memcpy(¶_amend_log_g.para_amend_union.press_cfg_amend_s.press_cfg_before,&sys_press_alarm_cfg_g,write_data_length);
|
/*now*/
|
memcpy(&sys_press_alarm_cfg_g,pData,write_data_length);
|
memcpy(¶_amend_log_g.para_amend_union.press_cfg_amend_s.press_cgf_now,pData,write_data_length);
|
para_amend_log_g.mender = SDM_UPPER;
|
__SYS_ALARM_BYTES_SET(press_para_amend,SET);
|
sys_para_amend_log_flag_g = PRESS_CFG_PARA_AMEND;
|
return Sys_Log_E2pParaMultipleWrite(&sys_store_para_table[PARA_PRESS_ALARM_CFG],1);//´¢´æ
|
}
|
ErrorStatus_STM32 Uc_WriteTempAlarmCfg_2Handler(uint8_t *pData)
|
{
|
uint16_t write_data_length = SYS_TEMP_ALARM_CFG_FORMAT_SIZE - SIZEOF_OF(SYS_TEMP_ALARM_CFG_T,reserve);
|
/*before*/
|
memcpy(¶_amend_log_g.para_amend_union.temp_cfg_amend_s.temp_cfg_before,&sys_temp_alarm_cfg_g,write_data_length);
|
/*now*/
|
memcpy(&sys_temp_alarm_cfg_g,pData,write_data_length);
|
memcpy(¶_amend_log_g.para_amend_union.temp_cfg_amend_s.temp_cgf_now,pData,write_data_length);
|
para_amend_log_g.mender = SDM_UPPER;
|
__SYS_ALARM_BYTES_SET(temp_para_amend,SET);
|
sys_para_amend_log_flag_g = TEMP_CFG_PARA_AMEND;
|
return Sys_Log_E2pParaMultipleWrite(&sys_store_para_table[PARA_TEMP_ALARM_CFG],1);//´¢´æ
|
}
|
|
ErrorStatus_STM32 Uc_WriteBillingAlarmCfg_Handler(uint8_t *pData)
|
{
|
uint8_t value_cnt = 0,alarm_ctl_cnt = 0,valve_ctl_cnt = 0;
|
BILLING_ALARM_CFG_T billing_alarm_temp = {0};
|
uint16_t write_data_length = SYS_BILLING_ALARM_CFG_FORMAT_SIZE - SIZEOF_OF(BILLING_ALARM_CFG_T,reserve);
|
memcpy(&billing_alarm_temp.valve_close_ctl[0],pData,write_data_length - 4);
|
/*before*/
|
memcpy(¶_amend_log_g.para_amend_union.billing_alarm_cfg_amend_s.billing_alarm_before,&billing_alarm_cfg_g,write_data_length);
|
|
if(billing_alarm_cfg_g.balance_small_value[0] != billing_alarm_temp.balance_small_value[0])
|
{
|
value_cnt++;
|
billing_alarm_cfg_g.balance_small_value[0] = billing_alarm_temp.balance_small_value[0];
|
if(__SYS_ALARM_CTL_BYTES_GET(balance_small_1) == RESET)
|
{
|
alarm_ctl_cnt++;
|
__SYS_ALARM_CTL_SEND_BYTES_SET(balance_small_1,SET);
|
}
|
}
|
if(billing_alarm_cfg_g.balance_small_value[1] != billing_alarm_temp.balance_small_value[1])
|
{
|
value_cnt++;
|
billing_alarm_cfg_g.balance_small_value[1] = billing_alarm_temp.balance_small_value[1];
|
if(__SYS_ALARM_CTL_BYTES_GET(balance_small_2) == RESET)
|
{
|
alarm_ctl_cnt++;
|
__SYS_ALARM_CTL_SEND_BYTES_SET(balance_small_2,SET);
|
}
|
}
|
if(billing_alarm_cfg_g.balance_small_value[2] != billing_alarm_temp.balance_small_value[2])
|
{
|
value_cnt++;
|
billing_alarm_cfg_g.balance_small_value[2] = billing_alarm_temp.balance_small_value[2];
|
if(__SYS_ALARM_CTL_BYTES_GET(balance_small_3) == RESET)
|
{
|
alarm_ctl_cnt++;
|
__SYS_ALARM_CTL_SEND_BYTES_SET(balance_small_3,SET);
|
}
|
}
|
if(billing_alarm_cfg_g.balance_small_value[3] != billing_alarm_temp.balance_small_value[3])
|
{
|
value_cnt++;
|
billing_alarm_cfg_g.balance_small_value[3] = billing_alarm_temp.balance_small_value[3];
|
if(__SYS_ALARM_CTL_BYTES_GET(balance_small_4) == RESET)
|
{
|
alarm_ctl_cnt++;
|
__SYS_ALARM_CTL_SEND_BYTES_SET(balance_small_4,SET);
|
}
|
}
|
billing_alarm_cfg_g.balance_small_value[4] = billing_alarm_temp.balance_small_value[4];
|
|
if(billing_alarm_cfg_g.cumulate_flow_value != billing_alarm_temp.cumulate_flow_value)
|
{
|
value_cnt++;
|
billing_alarm_cfg_g.cumulate_flow_value = billing_alarm_temp.cumulate_flow_value;
|
if(billing_alarm_cfg_g.cumulate_flow_value == 0 && __SYS_ALARM_CTL_BYTES_GET(set_cumulate_up_to) == SET)
|
{
|
alarm_ctl_cnt++;
|
__SYS_ALARM_CTL_SEND_BYTES_SET(set_cumulate_up_to,RESET);
|
}else if(billing_alarm_cfg_g.cumulate_flow_value != 0 && __SYS_ALARM_CTL_BYTES_GET(set_cumulate_up_to) == RESET)
|
{
|
alarm_ctl_cnt++;
|
__SYS_ALARM_CTL_SEND_BYTES_SET(set_cumulate_up_to,SET);
|
}
|
}
|
if(billing_alarm_cfg_g.no_gprs_days != billing_alarm_temp.no_gprs_days)
|
{
|
value_cnt++;
|
billing_alarm_cfg_g.no_gprs_days = billing_alarm_temp.no_gprs_days;
|
if(billing_alarm_cfg_g.no_gprs_days == 0 && __SYS_ALARM_CTL_BYTES_GET(no_gprs_date_up_to) == SET)
|
{
|
alarm_ctl_cnt++;
|
__SYS_ALARM_CTL_SEND_BYTES_SET(no_gprs_date_up_to,RESET);
|
}else if(billing_alarm_cfg_g.no_gprs_days != 0 && __SYS_ALARM_CTL_BYTES_GET(no_gprs_date_up_to) == RESET)
|
{
|
alarm_ctl_cnt++;
|
__SYS_ALARM_CTL_SEND_BYTES_SET(no_gprs_date_up_to,SET);
|
}
|
}
|
if(billing_alarm_cfg_g.no_use_gas_days != billing_alarm_temp.no_use_gas_days)
|
{
|
value_cnt++;
|
billing_alarm_cfg_g.no_use_gas_days = billing_alarm_temp.no_use_gas_days;
|
if(billing_alarm_cfg_g.no_use_gas_days == 0 && __SYS_ALARM_CTL_BYTES_GET(no_use_gas_date_up_to) == SET)
|
{
|
alarm_ctl_cnt++;
|
__SYS_ALARM_CTL_SEND_BYTES_SET(no_use_gas_date_up_to,RESET);
|
}else if(billing_alarm_cfg_g.no_use_gas_days != 0 && __SYS_ALARM_CTL_BYTES_GET(no_use_gas_date_up_to) == RESET)
|
{
|
alarm_ctl_cnt++;
|
__SYS_ALARM_CTL_SEND_BYTES_SET(no_use_gas_date_up_to,SET);
|
}
|
}
|
if(billing_alarm_cfg_g.valve_close_ctl[0] != billing_alarm_temp.valve_close_ctl[0])
|
{
|
valve_ctl_cnt++;
|
billing_alarm_cfg_g.valve_close_ctl[0] = billing_alarm_temp.valve_close_ctl[0];
|
}
|
if(billing_alarm_cfg_g.valve_close_ctl[1] != billing_alarm_temp.valve_close_ctl[1])
|
{
|
valve_ctl_cnt++;
|
billing_alarm_cfg_g.valve_close_ctl[1] = billing_alarm_temp.valve_close_ctl[1];
|
}
|
|
if(alarm_ctl_cnt)
|
{
|
billing_alarm_cfg_g.alarm_ctl_byte_2 = sys_alarm_ctl_bytes_g.alarm_ctl_send_union[1];
|
billing_alarm_cfg_g.alarm_send_byte_2 = sys_alarm_send_bytes_g.alarm_ctl_send_union[1];
|
Sys_Log_E2pParaMultipleWrite(&sys_store_para_table[PARA_ALARM_CTL_BYTES],1);
|
Sys_Log_E2pParaMultipleWrite(&sys_store_para_table[PARA_ALARM_SEND_BYTES],1);
|
}
|
if(valve_ctl_cnt)
|
{
|
//¸³Óè·§¿Ø×Ö
|
memcpy(&valve_ctl_bytes_g.valve_ctr_2,&billing_alarm_cfg_g.valve_close_ctl[0],SIZEOF_OF(BILLING_ALARM_CFG_T,valve_close_ctl));
|
Sys_Log_E2pParaMultipleWrite(&sys_store_para_table[PARA_VALVE_CTL_BYTES],1);
|
}
|
|
if(value_cnt || alarm_ctl_cnt || valve_ctl_cnt)
|
{
|
/*now*/
|
memcpy(¶_amend_log_g.para_amend_union.billing_alarm_cfg_amend_s.billing_alarm_now,&billing_alarm_cfg_g,write_data_length);
|
para_amend_log_g.mender = SDM_UPPER;
|
sys_para_amend_log_flag_g = BILLING_ALARM_CFG_AMEND;
|
return Sys_Log_E2pParaMultipleWrite(&sys_store_para_table[PARA_BILLING_ALARM_CFG],1);
|
}
|
else
|
return ERROR_1;
|
}
|
|
ErrorStatus_STM32 Uc_WritePulseFactor_2Handler(uint8_t *pData)
|
{
|
uint16_t write_data_length = SYS_CAL_PULSE_PARA_FORMAT_SIZE - SIZEOF_OF(CAL_PULSE_PARA_T,reserve);
|
/*before*/
|
memcpy(¶_amend_log_g.para_amend_union.cal_pulse_amend_s.cal_pulse_cfg_before,&cal_pulse_para_g,write_data_length);
|
/*now*/
|
memcpy(&cal_pulse_para_g,pData,write_data_length);
|
memcpy(¶_amend_log_g.para_amend_union.cal_pulse_amend_s.cal_pulse_cfg_now,pData,write_data_length);
|
para_amend_log_g.mender = SDM_UPPER;
|
__SYS_ALARM_BYTES_SET(pluse_cal_amend,SET);
|
sys_para_amend_log_flag_g = PLUSE_CAL_PARA_AMEND;
|
return Sys_Log_E2pParaMultipleWrite(&sys_store_para_table[PARA_CAL_PULSE_CFG],1);//´¢´æ
|
}
|
ErrorStatus_STM32 Uc_WritePriceCfgHandler(uint8_t *pData)
|
{
|
uint16_t write_data_length = SYS_LADDER_PRICE_CFG_FORMAT_SIZE - SIZEOF_OF(LADDER_PRICE_CFG_PARA_T,reserve);
|
/*before*/
|
memcpy(¶_amend_log_g.para_amend_union.billing_price_amend_s.price_cfg_before,&ladder_price_cfg_para_new_g,write_data_length);
|
/*now*/
|
memcpy(&ladder_price_cfg_para_new_g,pData,write_data_length);
|
memcpy(¶_amend_log_g.para_amend_union.billing_price_amend_s.price_cfg_now,pData,write_data_length);
|
para_amend_log_g.mender = SDM_UPPER;
|
__SYS_ALARM_BYTES_SET(billing_para_amend,SET);
|
sys_para_amend_log_flag_g = BILLING_PARA_AMEND;
|
return Sys_Log_E2pParaMultipleWrite(&sys_store_para_table[PARA_LADDER_PRICE_CFG_NEW],1);//´¢´æ
|
}
|
ErrorStatus_STM32 Uc_WriteGprsCfgHandler(uint8_t *pData)
|
{
|
uint16_t write_data_length = SYS_GPRS_NETWORK_CFG_FORMAT_SIZE -
|
SIZEOF_OF(GPRS_NETWORK_CFG_PARA_T,reserve) - SIZEOF_OF(GPRS_NETWORK_CFG_PARA_T,aes128_secret_key);
|
uint16_t temp_send_time = gprs_network_cfg_para_g.gprs_send_period_min_time;
|
memcpy(&gprs_network_cfg_para_g,pData,write_data_length);
|
if(temp_send_time != gprs_network_cfg_para_g.gprs_send_period_min_time)
|
__PERIOD_FIRST_CALC_FLAG_SET(gprs_send_period);
|
return Sys_Log_E2pParaMultipleWrite(&sys_store_para_table[PARA_GPRS_NETWORK_CFG],1);//´¢´æ
|
}
|
ErrorStatus_STM32 Uc_WriteAes128KeysHandler(uint8_t *pData)
|
{
|
uint8_t i = 0;
|
uint16_t write_data_length = SIZEOF_OF(GPRS_NETWORK_CFG_PARA_T,aes128_secret_key);
|
memcpy(gprs_network_cfg_para_g.aes128_secret_key,pData,write_data_length);
|
/*ÃÜÔ¿*/
|
if(my_memcmp(gprs_network_cfg_para_g.aes128_secret_key[1],&i,8 * 16) > 0)
|
memcpy(KVer_AES_128,gprs_network_cfg_para_g.aes128_secret_key[1],sizeof(KVer_AES_128)); //Õýʽ
|
else
|
memcpy(KVer_AES_128,gprs_network_cfg_para_g.aes128_secret_key[0],sizeof(KVer_AES_128)); //²âÊÔ
|
return Sys_Log_E2pParaMultipleWrite(&sys_store_para_table[PARA_GPRS_NETWORK_CFG],1);//´¢´æ
|
}
|
ErrorStatus_STM32 Uc_WriteSaveTimeCfgHandler(uint8_t *pData)
|
{
|
uint16_t write_data_length = SAVE_DATA_START_PARA_FORMAT_SIZE - SIZEOF_OF(SAVE_DATA_START_PARA_T,reserve);
|
memcpy(&save_day_month_timing_g,pData,write_data_length);
|
return Sys_Log_E2pParaMultipleWrite(&sys_store_para_table[PARA_SAVE_DATA_START_TIME],1);//´¢´æ
|
}
|
|
ErrorStatus_STM32 Uc_WriteZeroDriftCfg_Handler(uint8_t *pData)
|
{
|
uint16_t write_data_length = ZERO_DRIFT_CFG_SIZE - SIZEOF_OF(ZERO_DRIFT_CORR_CFG_T,reserve);
|
memcpy(&zero_drift_cfg_g,pData,write_data_length);
|
return Sys_Log_E2pParaMultipleWrite(&sys_store_para_table[PARA_ZERO_DRIFT_CFG],1);//´¢´æ
|
}
|
|
ErrorStatus_STM32 Uc_WriteBalanceSetHandler(uint8_t *pData)
|
{
|
uint8_t pay_flag = pData[0];
|
int64_t pay_value = 0;
|
if(pay_flag == 1) //³äÖµ
|
{
|
memcpy(&pay_value,&pData[1],8);
|
billing_real_para_g.balance_now += pay_value * 0.001; // Ôö¼ÓÓà¶î
|
pay_para_g.pay_value = pay_value;
|
pay_para_g.pay_value_cumulate += pay_para_g.pay_value;
|
pay_para_g.mender = SDM_UPPER;
|
pay_para_g.pay_type = 1;
|
pay_flag_g = 1;//³äÖµ±ê־λ
|
}else if(pay_flag == 2) //ÇåÁã
|
{
|
/*before*/
|
para_amend_log_g.para_amend_union.balance_amend_s.balance_before = billing_real_para_g.balance_now;
|
/*now*/
|
para_amend_log_g.para_amend_union.balance_amend_s.balance_now = billing_real_para_g.balance_now = 0;
|
__SYS_ALARM_BYTES_SET(balance_amend,SET);
|
sys_para_amend_log_flag_g = BALANCE_PARA_AMEND;
|
}
|
return RealTimeData_LogStore(&save_realtime_data_g, &sys_realtime_data_g, &billing_real_para_g, &calendar_g); // ´æ´¢
|
}
|
ErrorStatus_STM32 Uc_WriteCumulateSetHandler(uint8_t *pData)
|
{
|
ErrorStatus_STM32 result = ERROR_1;
|
double cumulate_sc = 0,cumulate_wc = 0;
|
memcpy(&cumulate_sc,pData,8);
|
memcpy(&cumulate_wc,&pData[8],8);
|
if((cumulate_sc != sys_realtime_data_g.measure_para_s.forward_cumulate_sc) ||
|
(cumulate_wc != sys_realtime_data_g.measure_para_s.forward_cumulate_wc))
|
{
|
/*¹¹Ôìbefore*/
|
para_amend_log_g.para_amend_union.gas_cumulate_amend_s.cumulate_sc_before = sys_realtime_data_g.measure_para_s.forward_cumulate_sc;
|
para_amend_log_g.para_amend_union.gas_cumulate_amend_s.cumulate_wc_before = sys_realtime_data_g.measure_para_s.forward_cumulate_wc;
|
/*¹¹Ôìnow*/
|
para_amend_log_g.para_amend_union.gas_cumulate_amend_s.cumulate_sc_after = sys_realtime_data_g.measure_para_s.forward_cumulate_sc = cumulate_sc;
|
para_amend_log_g.para_amend_union.gas_cumulate_amend_s.cumulate_wc_after = sys_realtime_data_g.measure_para_s.forward_cumulate_wc = cumulate_wc;
|
para_amend_log_g.mender = SDM_UPPER;
|
__SYS_ALARM_BYTES_SET(gas_cumulate_amend,SET);
|
sys_para_amend_log_flag_g = GAS_CUMULATE_PARA_AMEND;
|
result = RealTimeData_LogStore(&save_realtime_data_g, &sys_realtime_data_g, &billing_real_para_g, &calendar_g); // ´æ´¢
|
}
|
return result;
|
}
|
|
/*ÉÏλ»úдÊý¾Ý·µ»Ø´¦Àíº¯Êý*/
|
void Upper_ComputerWriteResultProcess(ErrorStatus_STM32 result_state, uint8_t *pData, UC_RECV_DATA_UNION_T *uc_recv_union_p)
|
{
|
/*¹¹ÔìÐÒéÍ·*/
|
uc_recv_union_p->uc_protocol_head_s.data_field_length = 3;
|
/*°ÑÖ¡Í·½á¹¹ÌåÊý¾Ý¿½±´µ½·¢ËÍÊý×é*/
|
memcpy(pData, &uc_recv_union_p->uc_protocol_head_s, UC_PROTOCOL_HEAD_LENGTH);
|
/*¹¹ÔìÊý¾ÝÓò*/
|
pData[UC_PROTOCOL_HEAD_LENGTH] = uc_recv_union_p->uc_recv_buf[12];
|
pData[UC_PROTOCOL_HEAD_LENGTH + 1] = uc_recv_union_p->uc_recv_buf[13];
|
pData[UC_PROTOCOL_HEAD_LENGTH + 2] = result_state;
|
}
|
|
/*ÉÏλ»úдÊý¾Ý´¦Àíº¯Êý*/
|
ErrorStatus_STM32 Upper_ComputerWriteProcess(uint16_t work_permissions, uint16_t table_id, uint8_t *pWriteData)
|
{
|
ErrorStatus_STM32 write_result_flag = ERROR_1;
|
// ²é±í
|
for (uint8_t i = 0; i < UC_RECV_WRITE_TABLE_NUM; i++)
|
{
|
if (uc_recv_write_tab_func[i].uc_data_table == table_id && uc_recv_write_tab_func[i].UcRecvWriteFuncHandler != NULL)
|
{
|
if ((work_permissions & uc_recv_write_tab_func[i].func_admin_user) != 0) // Óû§È¨ÏÞÅжÏ
|
{
|
/*ģʽȨÏÞÅжÏ*/
|
if(uc_recv_write_tab_func[i].func_admin_mode & sys_display_para_g.sys_and_display_mode)
|
{
|
E2p_GPIO_Clk_Init();
|
write_result_flag = uc_recv_write_tab_func[i].UcRecvWriteFuncHandler(pWriteData);
|
}
|
}
|
else
|
{
|
}
|
break;
|
}
|
}
|
return write_result_flag;
|
}
|
|
/************************************** Read Data **************************************************************/
|
/************************************** Read Data **************************************************************/
|
/************************************** Read Data **************************************************************/
|
ErrorStatus_STM32 Uc_ReadTimeHandler(uint8_t *pOutputData, uint16_t *pData_field_len)
|
{
|
uint16_t i = 0;
|
/*¹¹ÔìÊý¾ÝÓòÄÚÈÝ*/
|
pOutputData[i++] = calendar_g.Year & 0xFF;
|
pOutputData[i++] = calendar_g.Month;
|
pOutputData[i++] = calendar_g.Date;
|
pOutputData[i++] = calendar_g.Hour;
|
pOutputData[i++] = calendar_g.Minute;
|
pOutputData[i++] = calendar_g.Second;
|
*pData_field_len = i + UC_DATA_TABLE_BYTES_LENGTH; //+UC_DATA_TABLE_BYTES_LENGTHΪ±íºÅÊý¾ÝÕ¼2×Ö½Ú
|
return SUCCESS_0;
|
}
|
ErrorStatus_STM32 Uc_ReadFlowAlarmCfgHandler(uint8_t *pOutputData, uint16_t *pData_field_len)
|
{
|
uint8_t reserved_bytes = 0;
|
SYS_FLOW_ALARM_CFG_T read_flow_cfg_temp = {0};
|
float * ptr;
|
memcpy(&read_flow_cfg_temp,&sys_flow_alarm_cfg_g,20);
|
ptr = &read_flow_cfg_temp.sys_flow_up_1;
|
for(uint8_t i = 0;i < (20 /sizeof(float));i++)
|
*(ptr + i) = BLEndianFloat(*(ptr + i));
|
memcpy(pOutputData,ptr,20);
|
*pData_field_len = 20 + UC_DATA_TABLE_BYTES_LENGTH + reserved_bytes;
|
return SUCCESS_0;
|
}
|
ErrorStatus_STM32 Uc_ReadPressAlarmCfgHandler(uint8_t *pOutputData, uint16_t *pData_field_len)
|
{
|
uint8_t reserved_bytes = 0;
|
SYS_PRESS_ALARM_CFG_T read_press_cfg_temp = {0};
|
float * ptr = &read_press_cfg_temp.press_correction_factor;
|
memcpy(&read_press_cfg_temp,&sys_press_alarm_cfg_g,36);
|
for(uint8_t i = 0;i < (36 /sizeof(float));i++)
|
*(ptr + i) = BLEndianFloat(*(ptr + i));
|
memcpy(pOutputData,ptr,36);
|
*pData_field_len = 36 + UC_DATA_TABLE_BYTES_LENGTH + reserved_bytes;
|
return SUCCESS_0;
|
}
|
ErrorStatus_STM32 Uc_ReadTempAlarmCfgHandler(uint8_t *pOutputData, uint16_t *pData_field_len)
|
{
|
uint8_t reserved_bytes = 0;
|
SYS_TEMP_ALARM_CFG_T read_temp_cfg_temp = {0};
|
float * ptr_f = &read_temp_cfg_temp.temp_correction_factor;
|
int16_t * ptr_16 = &read_temp_cfg_temp.temp_up_value;
|
memcpy(&read_temp_cfg_temp,&sys_temp_alarm_cfg_g,30);
|
for(uint8_t i = 0;i < (8 /sizeof(float));i++)
|
*(ptr_f + i) = BLEndianFloat(*(ptr_f + i));
|
for(uint8_t i = 0;i < (14 /sizeof(int16_t));i++)
|
*(ptr_16 + i) = BSWAP_16(*(ptr_16 + i));
|
read_temp_cfg_temp.temp_drastic_change = BLEndianFloat(read_temp_cfg_temp.temp_drastic_change);
|
read_temp_cfg_temp.cpu_temp_up_scope = BSWAP_16(read_temp_cfg_temp.cpu_temp_up_scope);
|
read_temp_cfg_temp.cpu_temp_down_scope = BSWAP_16(read_temp_cfg_temp.cpu_temp_down_scope);
|
memcpy(pOutputData,&read_temp_cfg_temp,30);
|
*pData_field_len = 30 + UC_DATA_TABLE_BYTES_LENGTH + reserved_bytes;
|
return SUCCESS_0;
|
}
|
|
ErrorStatus_STM32 Uc_ReadPulseFactorHandler(uint8_t *pOutputData, uint16_t *pData_field_len) /*ÔÝʱ*/
|
{
|
#pragma pack(1)
|
typedef struct {
|
uint32_t cal_pulse_factor_temp;
|
uint16_t cal_pulse_width_temp;
|
}TEMP_CAL_PULSE_PARA;
|
#pragma pack()
|
uint8_t reserved_bytes = 0,PARA_NUM = sizeof(TEMP_CAL_PULSE_PARA);
|
TEMP_CAL_PULSE_PARA temp_cal_pulse_para = {0};
|
/*´óС¶Ëת»»*/
|
temp_cal_pulse_para.cal_pulse_factor_temp = BSWAP_32(cal_pulse_para_g.cal_pulse_factor);
|
temp_cal_pulse_para.cal_pulse_width_temp = BSWAP_16(cal_pulse_para_g.cal_pulse_width);
|
memcpy(pOutputData,&temp_cal_pulse_para,PARA_NUM);
|
*pData_field_len = PARA_NUM + UC_DATA_TABLE_BYTES_LENGTH + reserved_bytes;
|
return SUCCESS_0;
|
}
|
|
|
ErrorStatus_STM32 Uc_ReadSlave_TransitionHandler(uint8_t *pOutputData, uint16_t *pData_field_len)
|
{
|
uint8_t cmd;
|
uint16_t ms_cnt = 500,//²»Òª³¬¹ý1S£¬²»¿ÉÐ޸ĸüС
|
uc_table_id = uc_recv_para_g.uc_recv_buf_union.uc_recv_buf[12] << 8 | uc_recv_para_g.uc_recv_buf_union.uc_recv_buf[13];
|
void *ptr = &slave_para_union_g;
|
switch (uc_table_id)
|
{
|
case UCC_SLAVE_INFO_RW:
|
case UCC_SLAVE_INFO_RW_2:
|
cmd = SC_RW_HARDWARE;
|
break;
|
case UCC_SLAVE_PIPE_RW:
|
cmd = PIPE_RW_PARA;
|
break;
|
case UCC_SLAVE_UT_RW:
|
cmd = UT_RW_PARA;
|
break;
|
case UCC_SLAVE_CORR_SET_RW:
|
cmd = CORR_RW_SET;
|
break;
|
case UCC_SLAVE_CORR_REAL_RO:
|
cmd = CORR_RO_REAL;
|
break;
|
case UCC_SLAVE_RAW_DATA_RO:
|
cmd = RAW_RO_DATA;
|
break;
|
case UCC_SLAVE_TP_DATA_RO:
|
cmd = SC_RO_TP;
|
break;
|
case UCC_SLAVE_STATUS_RO:
|
cmd = SC_RO_STATUS;
|
break;
|
case UCC_SLAVE_ALARM_RO:
|
cmd = SC_RO_ALARM;
|
break;
|
case UCC_SLAVE_REAL_DATA_RO:
|
cmd = DATA_RO_REAL_TIME;
|
break;
|
case UCC_SLAVE_UT_REAL_1_RO:
|
cmd = UT_RO_REAL_PARA_1;
|
break;
|
case UCC_SLAVE_UT_REAL_2_RW:
|
cmd = UT_RW_REAL_PARA_2;
|
break;
|
case UCC_SLAVE_RES_RW:
|
cmd = SC_RES_PARA;
|
break;
|
case UCC_SLAVE_TEMP_TIMEDIFF_RO:
|
cmd = DATA_RO_TEMP_TIME_DIFF;
|
break;
|
case UCC_SLAVE_CAL_DATA_PARA_RW:
|
cmd = CAL_DATA_PARA;
|
break;
|
case UCC_SLAVE_CORR_FIXED_RW:
|
cmd = CORR_RW_FIXED;
|
break;
|
default:
|
break;
|
}
|
Send_Read_Slave_Command(cmd);
|
while (ms_cnt--)
|
{
|
delay_ms(1);
|
if(Measure_Uart3_Rx_DMA_CH1_Check(200) == SUCCESS_0) //ºË²éÊý¾ÝÊÇ·ñ´«ÊäÍê³É
|
break;
|
}
|
if (Slave_Result_Handler(INTER_DATA_READ, &inter_recv_para_g) == INTER_OK)
|
{
|
memcpy(pOutputData, ptr, inter_recv_para_g.inter_recv_length - CMD_DATATABLE_CRC_LENGTH);
|
// memcpy(pOutputData, &inter_recv_para_g.inter_recv_union.inter_recv_buf[2],
|
// inter_recv_para_g.inter_recv_length - CMD_DATATABLE_CRC_LENGTH);
|
*pData_field_len = inter_recv_para_g.inter_recv_length - CMD_DATATABLE_CRC_LENGTH + UC_DATA_TABLE_BYTES_LENGTH;
|
memset(&slave_para_union_g,0,SLAVE_UNION_PARA_LENGTH);
|
return SUCCESS_0;
|
}
|
else
|
{
|
/*½øÐдíÎó´¦Àí£¨ÔÝÎÞ£©*/
|
return ERROR_1;
|
}
|
}
|
|
ErrorStatus_STM32 Uc_ReadSalve_PwrHandler(uint8_t *pOutputData, uint16_t *pData_field_len)
|
{
|
pOutputData[0] = !GPIO_ReadOutputDataBit(MEASURE_PWR_PORT,MEASURE_PWR_PIN);
|
*pData_field_len = UC_DATA_TABLE_BYTES_LENGTH + 1;
|
return SUCCESS_0;
|
}
|
|
ErrorStatus_STM32 Uc_ReadMasterInfoHandler(uint8_t *pOutputData, uint16_t *pData_field_len)
|
{
|
uint8_t reserved_bytes = 0;
|
uint16_t read_data_length = MASTER_SOFT_HARD_FORMAT_SIZE - SIZEOF_OF(MASTER_SOFT_HARD_PARA_T,reserve);
|
memcpy(pOutputData, &master_soft_hard_para_g, read_data_length);
|
*pData_field_len = read_data_length + UC_DATA_TABLE_BYTES_LENGTH + reserved_bytes;
|
return SUCCESS_0;
|
}
|
|
ErrorStatus_STM32 Uc_ReadStateBytesHandler(uint8_t *pOutputData, uint16_t *pData_field_len)
|
{
|
uint8_t reserved_bytes = 4;
|
memcpy(pOutputData, (void *)&sys_admin_g.sys_admin.state_bytes, SYS_STATUS_BYTES_TYPE_LENGTH);
|
*pData_field_len = SYS_STATUS_BYTES_TYPE_LENGTH + UC_DATA_TABLE_BYTES_LENGTH + reserved_bytes;
|
return SUCCESS_0;
|
}
|
ErrorStatus_STM32 Uc_ReadStateBytes_2Handler(uint8_t *pOutputData, uint16_t *pData_field_len)
|
{
|
uint8_t reserved_bytes = 0;
|
memcpy(pOutputData, (void *)&sys_admin_g.sys_admin.state_bytes, SYS_STATUS_BYTES_TYPE_LENGTH);
|
*pData_field_len = SYS_STATUS_BYTES_TYPE_LENGTH + UC_DATA_TABLE_BYTES_LENGTH + reserved_bytes;
|
return SUCCESS_0;
|
}
|
ErrorStatus_STM32 Uc_ReadFuncCfgHandler(uint8_t *pOutputData, uint16_t *pData_field_len)
|
{
|
uint8_t reserved_bytes = 8;
|
memcpy(pOutputData, &sys_func_cfg_bytes_g, SYS_FUNC_CTL_BYTES_TYPE_LENGTH);
|
*pData_field_len = SYS_FUNC_CTL_BYTES_TYPE_LENGTH + UC_DATA_TABLE_BYTES_LENGTH + reserved_bytes;
|
return SUCCESS_0;
|
}
|
ErrorStatus_STM32 Uc_ReadFuncCfg_2Handler(uint8_t *pOutputData, uint16_t *pData_field_len)
|
{
|
uint8_t reserved_bytes = 0;
|
memcpy(pOutputData, &sys_func_cfg_bytes_g, SYS_FUNC_CTL_BYTES_TYPE_LENGTH);
|
*pData_field_len = SYS_FUNC_CTL_BYTES_TYPE_LENGTH + UC_DATA_TABLE_BYTES_LENGTH + reserved_bytes;
|
return SUCCESS_0;
|
}
|
ErrorStatus_STM32 Uc_ReadAlarmCtlHandler(uint8_t *pOutputData, uint16_t *pData_field_len)
|
{
|
uint8_t reserved_bytes = 2;
|
memcpy(pOutputData, &sys_alarm_ctl_bytes_g, SYS_ALARM_CTL_BYTES_TYPE_LENGTH);
|
*pData_field_len = SYS_ALARM_CTL_BYTES_TYPE_LENGTH + UC_DATA_TABLE_BYTES_LENGTH + reserved_bytes;
|
return SUCCESS_0;
|
}
|
ErrorStatus_STM32 Uc_ReadAlarmSendHandler(uint8_t *pOutputData, uint16_t *pData_field_len)
|
{
|
uint8_t reserved_bytes = 2;
|
memcpy(pOutputData, &sys_alarm_send_bytes_g, SYS_ALARM_SEND_BYTES_TYPE_LENGTH);
|
*pData_field_len = SYS_ALARM_SEND_BYTES_TYPE_LENGTH + UC_DATA_TABLE_BYTES_LENGTH + reserved_bytes;
|
return SUCCESS_0;
|
}
|
ErrorStatus_STM32 Uc_ReadAlarmCtlSend_2Handler(uint8_t *pOutputData, uint16_t *pData_field_len)
|
{
|
uint8_t reserved_bytes = 0;
|
memcpy(pOutputData, &sys_alarm_ctl_bytes_g, SYS_ALARM_CTL_BYTES_TYPE_LENGTH);
|
memcpy(&pOutputData[SYS_ALARM_CTL_BYTES_TYPE_LENGTH], &sys_alarm_send_bytes_g, SYS_ALARM_SEND_BYTES_TYPE_LENGTH);
|
*pData_field_len = SYS_ALARM_CTL_BYTES_TYPE_LENGTH + SYS_ALARM_SEND_BYTES_TYPE_LENGTH +
|
UC_DATA_TABLE_BYTES_LENGTH + reserved_bytes;
|
return SUCCESS_0;
|
}
|
ErrorStatus_STM32 Uc_ReadValveCtlHandler(uint8_t *pOutputData, uint16_t *pData_field_len)
|
{
|
uint8_t reserved_bytes = 2;
|
memcpy(pOutputData, &valve_ctl_bytes_g, VALVE_CTL_LENGTH);
|
*pData_field_len = VALVE_CTL_LENGTH + UC_DATA_TABLE_BYTES_LENGTH + reserved_bytes;
|
return SUCCESS_0;
|
}
|
ErrorStatus_STM32 Uc_ReadValveCtl_2Handler(uint8_t *pOutputData, uint16_t *pData_field_len)
|
{
|
uint8_t reserved_bytes = 0;
|
memcpy(pOutputData, &valve_ctl_bytes_g, VALVE_CTL_LENGTH);
|
*pData_field_len = VALVE_CTL_LENGTH + UC_DATA_TABLE_BYTES_LENGTH + reserved_bytes;
|
return SUCCESS_0;
|
}
|
ErrorStatus_STM32 Uc_ReadBasicInfoHandler(uint8_t *pOutputData, uint16_t *pData_field_len)
|
{
|
uint8_t reserved_bytes = 0;
|
uint16_t read_data_length = MASTER_BASIC_FORMAT_SIZE - SIZEOF_OF(MASTER_BASIC_PARA_T,reserve);
|
memcpy(pOutputData, &master_basic_papa_g, read_data_length);
|
*pData_field_len = read_data_length + UC_DATA_TABLE_BYTES_LENGTH + reserved_bytes;
|
return SUCCESS_0;
|
}
|
ErrorStatus_STM32 Uc_ReadFlowAlarmCfg_2Handler(uint8_t *pOutputData, uint16_t *pData_field_len)
|
{
|
uint8_t reserved_bytes = SIZEOF_OF(SYS_FLOW_ALARM_CFG_T,reserve);
|
uint16_t read_data_length = SYS_FLOW_ALARM_CFG_FORMAT_SIZE - reserved_bytes;
|
memcpy(pOutputData, &sys_flow_alarm_cfg_g, read_data_length);
|
*pData_field_len = read_data_length + UC_DATA_TABLE_BYTES_LENGTH + reserved_bytes;
|
return SUCCESS_0;
|
}
|
ErrorStatus_STM32 Uc_ReadPressAlarmCfg_2Handler(uint8_t *pOutputData, uint16_t *pData_field_len)
|
{
|
uint8_t reserved_bytes = SIZEOF_OF(SYS_PRESS_ALARM_CFG_T,reserve);
|
uint16_t read_data_length = SYS_PRESS_ALARM_CFG_FORMAT_SIZE - reserved_bytes;
|
memcpy(pOutputData, &sys_press_alarm_cfg_g, read_data_length);
|
*pData_field_len = read_data_length + UC_DATA_TABLE_BYTES_LENGTH + reserved_bytes;
|
return SUCCESS_0;
|
}
|
ErrorStatus_STM32 Uc_ReadTempAlarmCfg_2Handler(uint8_t *pOutputData, uint16_t *pData_field_len)
|
{
|
uint8_t reserved_bytes = SIZEOF_OF(SYS_TEMP_ALARM_CFG_T,reserve);
|
uint16_t read_data_length = SYS_TEMP_ALARM_CFG_FORMAT_SIZE - reserved_bytes;
|
memcpy(pOutputData, &sys_temp_alarm_cfg_g, read_data_length);
|
*pData_field_len = read_data_length + UC_DATA_TABLE_BYTES_LENGTH + reserved_bytes;
|
return SUCCESS_0;
|
}
|
ErrorStatus_STM32 Uc_ReadBillingAlarmCfg_Handler(uint8_t *pOutputData, uint16_t *pData_field_len)
|
{
|
uint8_t reserved_bytes = SIZEOF_OF(BILLING_ALARM_CFG_T,reserve);
|
uint16_t read_data_length = SYS_BILLING_ALARM_CFG_FORMAT_SIZE - reserved_bytes;
|
memcpy(pOutputData, &billing_alarm_cfg_g.valve_close_ctl[0], read_data_length - 4);
|
*pData_field_len = read_data_length + UC_DATA_TABLE_BYTES_LENGTH + reserved_bytes;
|
return SUCCESS_0;
|
}
|
ErrorStatus_STM32 Uc_ReadPulseFactor_2Handler(uint8_t *pOutputData, uint16_t *pData_field_len)
|
{
|
uint8_t reserved_bytes = SIZEOF_OF(CAL_PULSE_PARA_T,reserve);
|
uint16_t read_data_length = SYS_CAL_PULSE_PARA_FORMAT_SIZE - reserved_bytes;
|
memcpy(pOutputData, &cal_pulse_para_g, read_data_length);
|
*pData_field_len = read_data_length + UC_DATA_TABLE_BYTES_LENGTH + reserved_bytes;
|
return SUCCESS_0;
|
}
|
ErrorStatus_STM32 Uc_ReadPriceCfgHandler(uint8_t *pOutputData, uint16_t *pData_field_len)
|
{
|
uint8_t reserved_bytes = SIZEOF_OF(LADDER_PRICE_CFG_PARA_T,reserve);
|
uint16_t read_data_length = SYS_LADDER_PRICE_CFG_FORMAT_SIZE - reserved_bytes;
|
memcpy(pOutputData, &ladder_price_cfg_para_new_g, read_data_length);
|
*pData_field_len = read_data_length + UC_DATA_TABLE_BYTES_LENGTH + reserved_bytes;
|
return SUCCESS_0;
|
}
|
ErrorStatus_STM32 Uc_ReadGprsCfgHandler(uint8_t *pOutputData, uint16_t *pData_field_len)
|
{
|
uint8_t reserved_bytes = SIZEOF_OF(GPRS_NETWORK_CFG_PARA_T,reserve) + SIZEOF_OF(GPRS_NETWORK_CFG_PARA_T,aes128_secret_key);
|
uint16_t read_data_length = SYS_GPRS_NETWORK_CFG_FORMAT_SIZE - reserved_bytes;
|
memcpy(pOutputData, &gprs_network_cfg_para_g, read_data_length);
|
*pData_field_len = read_data_length + UC_DATA_TABLE_BYTES_LENGTH;
|
return SUCCESS_0;
|
}
|
ErrorStatus_STM32 Uc_ReadAes128KeysHandler(uint8_t *pOutputData, uint16_t *pData_field_len)
|
{
|
uint8_t reserved_bytes = 0;
|
uint16_t read_data_length = SIZEOF_OF(GPRS_NETWORK_CFG_PARA_T,aes128_secret_key) - reserved_bytes;
|
memcpy(pOutputData, gprs_network_cfg_para_g.aes128_secret_key, read_data_length);
|
*pData_field_len = read_data_length + UC_DATA_TABLE_BYTES_LENGTH + reserved_bytes;
|
return SUCCESS_0;
|
}
|
ErrorStatus_STM32 Uc_ReadSaveTimeCfgHandler(uint8_t *pOutputData, uint16_t *pData_field_len)
|
{
|
uint8_t reserved_bytes = SIZEOF_OF(SAVE_DATA_START_PARA_T,reserve);
|
uint16_t read_data_length = SAVE_DATA_START_PARA_FORMAT_SIZE - reserved_bytes;
|
memcpy(pOutputData, &save_day_month_timing_g, read_data_length);
|
*pData_field_len = read_data_length + UC_DATA_TABLE_BYTES_LENGTH + reserved_bytes;
|
return SUCCESS_0;
|
}
|
ErrorStatus_STM32 Uc_ReadRealCumulateHandler(uint8_t *pOutputData, uint16_t *pData_field_len)
|
{
|
uint8_t reserved_bytes = 0;
|
uint16_t read_data_length = SIZEOF_OF(struct measure_para,forward_cumulate_sc) + SIZEOF_OF(struct measure_para,forward_cumulate_sc) - reserved_bytes;
|
memcpy(pOutputData,&sys_realtime_data_g.measure_para_s.forward_cumulate_sc,SIZEOF_OF(struct measure_para,forward_cumulate_sc));
|
memcpy(&pOutputData[8],&sys_realtime_data_g.measure_para_s.forward_cumulate_wc,SIZEOF_OF(struct measure_para,forward_cumulate_sc));
|
*pData_field_len = read_data_length + UC_DATA_TABLE_BYTES_LENGTH + reserved_bytes;
|
return SUCCESS_0;
|
}
|
|
ErrorStatus_STM32 Uc_ReadRealParaHandler(uint8_t *pOutputData, uint16_t *pData_field_len)
|
{
|
uint8_t reserved_bytes = 0;
|
uint16_t read_data_length = REALTIME_DATA_FORMAT_SIZE +
|
SIZEOF_OF(BILLING_REAL_PARA_T,price_now) + SIZEOF_OF(BILLING_REAL_PARA_T,balance_now);
|
memcpy(pOutputData,&sys_realtime_data_g,REALTIME_DATA_FORMAT_SIZE);
|
memcpy(&pOutputData[REALTIME_DATA_FORMAT_SIZE],
|
&billing_real_para_g.price_now,SIZEOF_OF(BILLING_REAL_PARA_T,price_now));
|
memcpy(&pOutputData[REALTIME_DATA_FORMAT_SIZE + SIZEOF_OF(BILLING_REAL_PARA_T,price_now)],
|
&billing_real_para_g.balance_now,SIZEOF_OF(BILLING_REAL_PARA_T,balance_now));
|
*pData_field_len = read_data_length + UC_DATA_TABLE_BYTES_LENGTH + reserved_bytes;
|
return SUCCESS_0;
|
}
|
ErrorStatus_STM32 Uc_ReadMicroConstantHandler(uint8_t *pOutputData, uint16_t *pData_field_len)
|
{
|
uint8_t reserved_bytes = SIZEOF_OF(MICRO_CONSTANT_FLOW_PARA_T,reserve);
|
uint16_t read_data_length = MICRO_CONSTANT_FLOW_FORMAT_SIZE - reserved_bytes;
|
memcpy(pOutputData,µ_constant_flow_para_g,read_data_length);
|
*pData_field_len = read_data_length + UC_DATA_TABLE_BYTES_LENGTH;
|
return SUCCESS_0;
|
}
|
|
ErrorStatus_STM32 Uc_ReadCyclicLogDataHandler(uint8_t *pOutputData, uint16_t *pData_field_len)
|
{
|
uint16_t read_data_length = SYSLOG_CYCLIC_INFO_LEN + 2 +
|
SIZEOF_OF(SYSLOG_CYCLIC_TABLE_T,data_size) + SIZEOF_OF(SYSLOG_CYCLIC_TABLE_T,data_num);
|
uint16_t store_num = 0;
|
for(uint8_t i = 0;i < SYSLOG_CYCLIC_INFO_NUM;i++)
|
{
|
store_num = (sys_log_cyclic_table[i].table_id->log_index - 1) +
|
(sys_log_cyclic_table[i].table_id->log_cyclic_full_cnt * sys_log_cyclic_table[i].data_num);
|
memcpy(&pOutputData[read_data_length * i],&store_num,2);
|
memcpy(&pOutputData[read_data_length * i + 2],sys_log_cyclic_table[i].table_id,SYSLOG_CYCLIC_INFO_LEN);
|
memcpy(&pOutputData[read_data_length * i + 2 + SYSLOG_CYCLIC_INFO_LEN],&sys_log_cyclic_table[i].data_size,4);
|
}
|
*pData_field_len = read_data_length * SYSLOG_CYCLIC_INFO_NUM + UC_DATA_TABLE_BYTES_LENGTH;
|
return SUCCESS_0;
|
}
|
|
ErrorStatus_STM32 Uc_ReadSecCorrSetHandler(uint8_t *pOutputData, uint16_t *pData_field_len)
|
{
|
uint8_t reserved_bytes = SIZEOF_OF(SECOND_ORDER_CORR_T,reserve);
|
uint16_t read_data_length = SEC_ORDER_CORR_PARA_FORMAT_SIZE - reserved_bytes;
|
memcpy(pOutputData,&sec_order_corr_set_g,read_data_length);
|
*pData_field_len = read_data_length + UC_DATA_TABLE_BYTES_LENGTH;
|
return SUCCESS_0;
|
}
|
|
|
ErrorStatus_STM32 Uc_ReadSecCorrRealHandler(uint8_t *pOutputData, uint16_t *pData_field_len)
|
{
|
uint8_t reserved_bytes = SIZEOF_OF(SECOND_ORDER_CORR_T,reserve);
|
uint16_t read_data_length = SEC_ORDER_CORR_PARA_FORMAT_SIZE - reserved_bytes;
|
memcpy(pOutputData,&sec_order_corr_real_g,read_data_length);
|
*pData_field_len = read_data_length + UC_DATA_TABLE_BYTES_LENGTH;
|
return SUCCESS_0;
|
}
|
|
ErrorStatus_STM32 Uc_ReadZeroDriftCfgHandler(uint8_t *pOutputData, uint16_t *pData_field_len)
|
{
|
uint8_t reserved_bytes = SIZEOF_OF(ZERO_DRIFT_CORR_CFG_T,reserve);
|
uint16_t read_data_length = ZERO_DRIFT_CFG_SIZE - reserved_bytes;
|
memcpy(pOutputData,&zero_drift_cfg_g,read_data_length);
|
*pData_field_len = read_data_length + UC_DATA_TABLE_BYTES_LENGTH;
|
return SUCCESS_0;
|
}
|
|
/*ÉÏλ»ú¶ÁÊý¾Ý·µ»Ø´¦Àíº¯Êý*/
|
void Upper_ComputerReadResultProcess(ErrorStatus_STM32 result_state, uint8_t *pData, UC_RECV_DATA_UNION_T *uc_recv_union_p)
|
{
|
|
/*°ÑÖ¡Í·½á¹¹ÌåÊý¾Ý¿½±´µ½·¢ËÍÊý×é*/
|
memcpy(pData, &uc_recv_union_p->uc_protocol_head_s, UC_PROTOCOL_HEAD_LENGTH);
|
/*¹¹ÔìÊý¾ÝÓò±íºÅ*/
|
pData[UC_PROTOCOL_HEAD_LENGTH] = uc_recv_union_p->uc_recv_buf[12];
|
pData[UC_PROTOCOL_HEAD_LENGTH + 1] = uc_recv_union_p->uc_recv_buf[13];
|
if (result_state == ERROR_1)
|
memset(&pData[UC_PROTOCOL_HEAD_LENGTH + 2], 0, uc_recv_union_p->uc_protocol_head_s.data_field_length - 2); // ³ýÁ˱íºÅµÄÊý¾ÝÓò²¿·Ö½o0
|
}
|
|
/*ÉÏλ»ú¶ÁÊý¾Ý´¦Àíº¯Êý*/
|
ErrorStatus_STM32 Upper_ComputerReadProcess(uint16_t work_permissions, uint16_t table_id, uint8_t *pOutput)
|
{
|
ErrorStatus_STM32 read_result_flag = ERROR_1;
|
// ²é±í
|
for (uint8_t i = 0; i < UC_RECV_READ_TABLE_NUM; i++)
|
{
|
if (uc_recv_read_tab_func[i].uc_data_table == table_id && uc_recv_read_tab_func[i].UcRecvReadFuncHandler != NULL)
|
{
|
if ((work_permissions & uc_recv_read_tab_func[i].func_admin_user) != 0) // Óû§È¨ÏÞÅжÏ
|
{
|
/*ģʽȨÏÞÅжÏ*/
|
if(uc_recv_read_tab_func[i].func_admin_mode & sys_display_para_g.sys_and_display_mode)
|
read_result_flag = uc_recv_read_tab_func[i].UcRecvReadFuncHandler(pOutput,
|
&uc_recv_para_g.uc_recv_buf_union.uc_protocol_head_s.data_field_length);
|
}
|
else
|
{
|
}
|
break;
|
}
|
}
|
return read_result_flag;
|
}
|