964 lines
36 KiB
C
964 lines
36 KiB
C
|
/***********************************************************************************
|
|||
|
* @Copyright (c) :(C)2013, Qindao ieslab Co., Ltd
|
|||
|
* @FileName :new_gsm_EEPROM_processor.c
|
|||
|
* @Author :Intelligent gas team
|
|||
|
* @Version :V1.0
|
|||
|
* @Date :2013-11-29
|
|||
|
* @Description :the function of the entity of system processor
|
|||
|
************************************************************************************/
|
|||
|
#ifdef __cplusplus
|
|||
|
extern "C"
|
|||
|
{
|
|||
|
#endif
|
|||
|
/*--------------------------------Including-------------------------------------------*/
|
|||
|
#include "UWater_sys.h"
|
|||
|
#include "UWater_frame_app.h"
|
|||
|
#include "UWater_eeprom_driver.h"
|
|||
|
#include "UWater_encryption_driver.h"
|
|||
|
#include "UWater_valve_driver.h"
|
|||
|
#include "UWater_uart_driver.h"
|
|||
|
#include "UWater_timer1uS_driver.h"
|
|||
|
#include "UWater_valve_app.h"
|
|||
|
#include "UWater_rtcc_app.h"
|
|||
|
#include "UWater_gp22_app.h"
|
|||
|
#include "SOE.h"
|
|||
|
#include "nb_upload_monitor.h"
|
|||
|
#include "eeprom_app.h"
|
|||
|
/*------------------------------ Variable Define -------------------------------------*/
|
|||
|
|
|||
|
//static u8 ee_package_rd_num; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//static u8 ee_package_wr_num; //д<><D0B4><EFBFBD><EFBFBD>
|
|||
|
//static u8 ee_package_erase_num; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
static IMPORTANT_DATA_OP important_data_rd_state = IMPORTANT_DATA_OP_S0;
|
|||
|
//static IMPORTANT_DATA_OP important_data_wr_state = IMPORTANT_DATA_OP_S0;
|
|||
|
//static IMPORTANT_DATA_OP important_data_erase_state = IMPORTANT_DATA_OP_S0;
|
|||
|
static u8 important_data_rd_msg;
|
|||
|
static TYPE_EE_INIT_STATE tmp_init_stat = EE_INIT_STATE_S0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>״̬
|
|||
|
static u8 task_init_complete = FALSE;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɱ<EFBFBD>־
|
|||
|
static u32 frame_para_buf[FRAME_PARA_BUF_LEN];//ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
Data_object Sys_data_object;//ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
DateTime rtcc_tmp_ee_app;
|
|||
|
|
|||
|
|
|||
|
static void SysData_Init(void);//ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
|||
|
static void Coefficient_Init(void); //<2F><><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
|||
|
static void Flow_coef_Init(void);//<2F><><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
|||
|
static void UDP_Update_Init(void);//UDP ip<69><70>ʼ<EFBFBD><CABC>
|
|||
|
static void SOE_Pint_Init(void);
|
|||
|
static void RtccInitApp(void);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>Ҫд<D2AA>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ee<65><65>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>Sys_data_object<63>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
u16 ee_addr_compute(u8 *data_addr)
|
|||
|
{
|
|||
|
u16 addr_result;
|
|||
|
if(data_addr >= (u8*)(&Sys_data_object.P1))
|
|||
|
{
|
|||
|
if( data_addr < ((u8*)(&Sys_data_object.P1) + sizeof(Sys_data_object.P1)) )
|
|||
|
{
|
|||
|
addr_result = EEP_FRAME_BASE_ADDR + data_addr - (u8*)(&Sys_data_object.P1);
|
|||
|
return addr_result;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return 0;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return 0;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
//<2F>״<EFBFBD><D7B4>ϵ<EFBFBD><CFB5><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>
|
|||
|
void FirstPowerOnInit(void)
|
|||
|
{
|
|||
|
//Sys_data_object.P1.first_power_flg = FRAME_FIRST_POWER_FLG;//u8 first_power_flg---<2D><>һ<EFBFBD><D2BB><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD>־,<2C><><EFBFBD><EFBFBD>
|
|||
|
Sys_data_object.P1.start_using_flg = 0x00; //0x00,//u8 start_using_flg---<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ñ<EFBFBD>־<EFBFBD><D6BE>Ĭ<EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/*<2A>ϱ<EFBFBD>Ƶ<EFBFBD><C6B5>u8 report_freq_val[5]*/
|
|||
|
Sys_data_object.P1.Time_upload_2006.s.type = 0x02; //0x02,//report_freq_val[0]---<2D><>ģʽ
|
|||
|
Sys_data_object.P1.Time_upload_2006.s.period = 0x00; //0x00,//report_freq_val[1]---<2D><>ģʽ<C4A3><CABD>Ч
|
|||
|
Sys_data_object.P1.Time_upload_2006.s.hour = 0x06; //0x06,//report_freq_val[2]---6<><36>
|
|||
|
Sys_data_object.P1.Time_upload_2006.s.minute = 0x00; //0x00,//report_freq_val[3]---0<><30>
|
|||
|
Sys_data_object.P1.Time_upload_2006.s.second = 0x00; //0x00,//report_freq_val[4]---0<><30>
|
|||
|
/*ip<69><70>ַ:117.60.157.137*/
|
|||
|
Sys_data_object.P1.server_ip[0] =221;//117; //117,//server_ip[0]
|
|||
|
Sys_data_object.P1.server_ip[1] = 229;//60; //60,//server_ip[1]
|
|||
|
Sys_data_object.P1.server_ip[2] =214;//157; //157,//server_ip[2]
|
|||
|
Sys_data_object.P1.server_ip[3] =202;//137; //137,//server_ip[3]
|
|||
|
/*<2A>˿ں<CBBF>:5683=0x1633*/
|
|||
|
Sys_data_object.P1.server_port.datas = 5683;
|
|||
|
//0x33,//server_port.datas_map.data0
|
|||
|
//0x16,//server_port.datas_map.data1
|
|||
|
/*<2A><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>ʼʱ<CABC><CAB1>:19-7-1-00-00-00*/
|
|||
|
Sys_data_object.P1.report_period_start[0]=0x00; //0x00,//report_period_start[0]---<2D><>
|
|||
|
Sys_data_object.P1.report_period_start[1]=0x00; //0x00,//report_period_start[1]---<2D><>
|
|||
|
Sys_data_object.P1.report_period_start[2]=0x00; //0x00,//report_period_start[2]---ʱ
|
|||
|
Sys_data_object.P1.report_period_start[3]=0x01; //0x01,//report_period_start[3]---<2D><>
|
|||
|
Sys_data_object.P1.report_period_start[4]=0x07; //0x07,//report_period_start[4]---<2D><>
|
|||
|
Sys_data_object.P1.report_period_start[5]=0x19; //0x19,//report_period_start[5]---<2D><>
|
|||
|
/*<2A><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>:29-7-1-00-00-00*/
|
|||
|
Sys_data_object.P1.report_period_end[0]=0x00; //0x00,//report_period_end[0]---<2D><>
|
|||
|
Sys_data_object.P1.report_period_end[1]=0x00; //0x00,//report_period_end[1]---<2D><>
|
|||
|
Sys_data_object.P1.report_period_end[2]=0x00; //0x00,//report_period_end[2]---ʱ
|
|||
|
Sys_data_object.P1.report_period_end[3]=0x01; //0x01,//report_period_end[3]---<2D><>
|
|||
|
Sys_data_object.P1.report_period_end[4]=0x07; //0x07,//report_period_end[4]---<2D><>
|
|||
|
Sys_data_object.P1.report_period_end[5]=0x99; //0x99,//report_period_end[5]---<2D><>
|
|||
|
/*<2A><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>ֵ:15*/
|
|||
|
Sys_data_object.P1.report_step_len.datas =15;// 15,//report_step_len.datas_map.data0 //<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>Ϊ15s
|
|||
|
/*<2A><><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD>*/
|
|||
|
Sys_data_object.P1.report_retry_times =0; //Ĭ<><C4AC><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD><EFBFBD>Ϊ0
|
|||
|
/*<2A>ܼ<EFBFBD><DCBC>ϱ<EFBFBD><CFB1><EFBFBD>ʼʱ<CABC><CAB1>*/
|
|||
|
Sys_data_object.P1.report_start_time[0] = 0x01; //0x01,//report_start_time[0]---<2D><>ʼ<EFBFBD><CABC>
|
|||
|
Sys_data_object.P1.report_start_time[1] = 0x07; //0x07,//report_start_time[1]---<2D><>ʼ<EFBFBD><CABC>
|
|||
|
Sys_data_object.P1.report_start_time[2] = 0x19; //0x19,//report_start_time[2]---<2D><>ʼ<EFBFBD><CABC>
|
|||
|
Sys_data_object.P1.report_start_time[3] = 0x00; //0x00,//report_start_time[3]---<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
Sys_data_object.P1.report_start_time[4] = 0x30; //0x30,//report_start_time[4]---<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
Sys_data_object.P1.report_start_time[5] = 0x01; //0x01,//report_start_time[5]---<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/*<2A>ܼ<EFBFBD><DCBC>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>*/
|
|||
|
Sys_data_object.P1.report_start_time[6] = 0x02; //0x02,//report_start_time[6]---<2D><>ʼ<EFBFBD>ɼ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
|||
|
Sys_data_object.P1.report_start_time[7] = 0x07; //0x07,//report_start_time[7]---<2D><>ʼ<EFBFBD>ɼ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
|||
|
Sys_data_object.P1.report_start_time[8] = 0x19; //0x19,//report_start_time[8]---<2D><>ʼ<EFBFBD>ɼ<EFBFBD>ʱ<EFBFBD><CAB1>ʱ
|
|||
|
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>3000L/h=0x00000BB8*/
|
|||
|
Sys_data_object.P1.high_flow_alarm.datas = 3000;
|
|||
|
//0xB8,//high_flow_alarm.datas_map.data0
|
|||
|
//0x0B,//high_flow_alarm.datas_map.data1
|
|||
|
//0x00,//high_flow_alarm.datas_map.data2
|
|||
|
//0x00,//high_flow_alarm.datas_map.data3
|
|||
|
/*<2A><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> 6<><36><EFBFBD>ֽ<EFBFBD>*/
|
|||
|
Sys_data_object.P1.ies_valve_paras.valve_state = VALVE_STATE_OPEN;//<2F><><EFBFBD><EFBFBD>״̬
|
|||
|
Sys_data_object.P1.ies_valve_paras.valve_err = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>쳣
|
|||
|
Sys_data_object.P1.ies_valve_paras.valve_total_time = 20; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
Sys_data_object.P1.ies_valve_paras.valve_AD = VALVE_HOGH_ADC_VALUE;//<2F><><EFBFBD><EFBFBD>ADĬ<44><C4AC>ֵ
|
|||
|
Sys_data_object.P1.ies_pulse_emergency.datas = 5; //Ӧ<><D3A6><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE> 5<><35>
|
|||
|
/*ͨ<><CDA8>Ƶ<EFBFBD><C6B5>:850=0x352*/
|
|||
|
Sys_data_object.P1.report_fre.datas =850; //0x52,//report_fre.datas_map.data0
|
|||
|
//0x03,//report_fre.datas_map.data1
|
|||
|
/*APN20<32>ֽ<EFBFBD>:ctnb*/
|
|||
|
Sys_data_object.P1.apn[0] = 0x01; //APNʹ<4E><CAB9>
|
|||
|
Sys_data_object.P1.apn[1] = 0x04; //0x05,//apn[1]APN<50><4E><EFBFBD><EFBFBD>
|
|||
|
Sys_data_object.P1.apn[2] = 'c';
|
|||
|
Sys_data_object.P1.apn[3] = 't';
|
|||
|
Sys_data_object.P1.apn[4] = 'n';
|
|||
|
Sys_data_object.P1.apn[5] = 'b';
|
|||
|
/*<2A><>ͨ<EFBFBD><CDA8>Կ---16<31>ֽ<EFBFBD>:QINGDAOJICHE-GNB*/
|
|||
|
Sys_data_object.P1.key[0] = 81;
|
|||
|
Sys_data_object.P1.key[1] = 73;
|
|||
|
Sys_data_object.P1.key[2] = 78;
|
|||
|
Sys_data_object.P1.key[3] = 71;
|
|||
|
Sys_data_object.P1.key[4] = 68;
|
|||
|
Sys_data_object.P1.key[5] = 65;
|
|||
|
Sys_data_object.P1.key[6] = 79;
|
|||
|
Sys_data_object.P1.key[7] = 74;
|
|||
|
Sys_data_object.P1.key[8] = 73;
|
|||
|
Sys_data_object.P1.key[9] = 67;
|
|||
|
Sys_data_object.P1.key[10] = 72;
|
|||
|
Sys_data_object.P1.key[11] = 45;
|
|||
|
Sys_data_object.P1.key[12] = 78;
|
|||
|
Sys_data_object.P1.key[13] = 71;
|
|||
|
Sys_data_object.P1.key[14] = 78;
|
|||
|
Sys_data_object.P1.key[15] = 66;
|
|||
|
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ---7<>ֽ<EFBFBD>*/
|
|||
|
Sys_data_object.P1.mac_addr[0] = 0;
|
|||
|
Sys_data_object.P1.mac_addr[1] = 0;
|
|||
|
Sys_data_object.P1.mac_addr[2] = 0;
|
|||
|
Sys_data_object.P1.mac_addr[3] = 0;
|
|||
|
Sys_data_object.P1.mac_addr[4] = 0;
|
|||
|
Sys_data_object.P1.mac_addr[5] = 0;
|
|||
|
Sys_data_object.P1.mac_addr[6] = 0;
|
|||
|
/*<2A><><EFBFBD>к<EFBFBD>---7<>ֽ<EFBFBD>*/
|
|||
|
Sys_data_object.P1.ser_num[0] =0;
|
|||
|
Sys_data_object.P1.ser_num[1] =0;
|
|||
|
Sys_data_object.P1.ser_num[2] =0;
|
|||
|
Sys_data_object.P1.ser_num[3] =0;
|
|||
|
Sys_data_object.P1.ser_num[4] =0;
|
|||
|
Sys_data_object.P1.ser_num[5] =0;
|
|||
|
Sys_data_object.P1.ser_num[6] =0;
|
|||
|
/*ͨ<>ŵ<EFBFBD>ַ---7<>ֽ<EFBFBD>*/
|
|||
|
Sys_data_object.P1.met_addr[0] =0x01;
|
|||
|
Sys_data_object.P1.met_addr[1] =0;
|
|||
|
Sys_data_object.P1.met_addr[2] =0;
|
|||
|
Sys_data_object.P1.met_addr[3] =0;
|
|||
|
Sys_data_object.P1.met_addr[4] =0;
|
|||
|
Sys_data_object.P1.met_addr[5] =0x33;
|
|||
|
Sys_data_object.P1.met_addr[6] =0x78;
|
|||
|
/*<2A>̻<EFBFBD><CCBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7>ʶ---1<>ֽ<EFBFBD>*/
|
|||
|
Sys_data_object.P1.solidify_mac_addr_flg = 0x00;
|
|||
|
/*<2A>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>---5<>ֽ<EFBFBD>,*/
|
|||
|
Sys_data_object.P1.ies_valve_up_times.valve_up_times_pre = 4; //<2F>ط<EFBFBD><D8B7><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>(4*30)
|
|||
|
Sys_data_object.P1.ies_valve_up_times.valve_up_times_total = 24;
|
|||
|
Sys_data_object.P1.ies_valve_up_times.valve_up_times_realtime = 0;
|
|||
|
Sys_data_object.P1.ies_valve_up_times.valve_auto_check = VALVE_AUTO_CHECK_OPEN;//VALVE_AUTO_CHECK_CLOSE;//<2F><><EFBFBD><EFBFBD>ÿ<EFBFBD>³<EFBFBD><C2B3>Լ<EFBFBD><D4BC>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=0xAA<41><41>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD>Ϲر<CFB9>
|
|||
|
Sys_data_object.P1.ies_valve_up_times.reserv = 0x00;
|
|||
|
/*<2A><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD>Կ---1<>ֽ<EFBFBD>*/
|
|||
|
Sys_data_object.P1.enable_bak_key = 0x00;
|
|||
|
/*<2A>´<EFBFBD>ͨѶ<CDA8><D1B6><EFBFBD><EFBFBD>Կnum---1<>ֽ<EFBFBD>*/
|
|||
|
Sys_data_object.P1.last_key_num = 0x00;
|
|||
|
/*<2A>¶<EFBFBD>ϵ<EFBFBD><CFB5>0---4<>ֽ<EFBFBD>*/
|
|||
|
Sys_data_object.P1.temperature_coefficient0.datas = 0x00000000;//0x00,0x00,0x00,0x00,//temperature_coefficient0
|
|||
|
/*<2A>¶<EFBFBD>ϵ<EFBFBD><CFB5>1---4<>ֽ<EFBFBD>*/
|
|||
|
Sys_data_object.P1.temperature_coefficient1.datas = 0x00000000;//0x00,0x00,0x00,0x00,//temperature_coefficient1
|
|||
|
/*С<><D0A1><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>---4<>ֽ<EFBFBD>*/
|
|||
|
Sys_data_object.P1.flow_coefficient_small.datas = 0x00010000;//0x00,0x00,0x01,0x00,//flow_coefficient_small 0x00010000
|
|||
|
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>0---4<>ֽ<EFBFBD>*/
|
|||
|
Sys_data_object.P1.flow_coefficient_middle0.datas = 0x00010000;//0x00,0x00,0x01,0x00,//flow_coefficient_middle0 0x00010000
|
|||
|
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>1---4<>ֽ<EFBFBD>*/
|
|||
|
Sys_data_object.P1.flow_coefficient_middle1.datas = 0x00010000;//0x00,0x00,0x01,0x00,//flow_coefficient_middle1 0x00010000
|
|||
|
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>2---4<>ֽ<EFBFBD>*/
|
|||
|
Sys_data_object.P1.flow_coefficient_middle2.datas = 0x00010000;//0x00,0x00,0x01,0x00,//flow_coefficient_middle2 0x00010000
|
|||
|
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>3---4<>ֽ<EFBFBD>*/
|
|||
|
Sys_data_object.P1.flow_coefficient_middle3.datas = 0x00010000;//0x00,0x00,0x01,0x00,//flow_coefficient_middle3 0x00010000
|
|||
|
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>---4<>ֽ<EFBFBD>*/
|
|||
|
Sys_data_object.P1.flow_coefficient_large.datas = 0x00010000;//0x00,0x00,0x01,0x00,//flow_coefficient_large 0x00010000
|
|||
|
/*<2A><><EFBFBD>ü춨<C3BC><ECB6A8><EFBFBD><EFBFBD>---1<>ֽ<EFBFBD>*/
|
|||
|
Sys_data_object.P1.enable_verification_function =0x5A;// 0x5A,//enable_verification_function
|
|||
|
/*<2A><><EFBFBD>ú<EFBFBD><C3BA><EFBFBD><E2B9A6>---1<>ֽ<EFBFBD>*/
|
|||
|
Sys_data_object.P1.enable_infrared_function = 0x5A;// 0x5A,//enable_infrared_function
|
|||
|
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>---32<33>ֽ<EFBFBD>*/
|
|||
|
for(int i=0;i<32;i++)
|
|||
|
{
|
|||
|
Sys_data_object.P1.func_cfg_bytes[i] = 0x00;
|
|||
|
}
|
|||
|
Sys_data_object.P1.func_cfg_bytes[0]=15;//func_cfg_bytes[0]---<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>,Ĭ<><C4AC>15<31><35>
|
|||
|
//0x00,//func_cfg_bytes[1]---<2D><><EFBFBD>ⰴ<EFBFBD><E2B0B4><EFBFBD><EFBFBD>ֵ:0x10=16 ---<2D><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE>
|
|||
|
//0x00,//func_cfg_bytes[2]Զ<><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Թ<EFBFBD><D4B9><EFBFBD>Ĭ<EFBFBD>Ϲر<CFB9>,(0xAA<41><41><EFBFBD><EFBFBD>)
|
|||
|
//0x00,//func_cfg_bytes[3]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD>Ϲر<CFB9>(0xAA<41><41><EFBFBD><EFBFBD>)
|
|||
|
////func_cfg_bytes[4~5]ԭ-<2D><><EFBFBD>ع<EFBFBD><D8B9><EFBFBD>ADCĬ<43><C4AC>ֵ
|
|||
|
//0x00,//[6]ԭ---<2D>ط<EFBFBD><D8B7>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//0x00,//[7]0x55<35><35>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>,Ĭ<>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
Sys_data_object.P1.func_cfg_bytes[8]=0xAA,//[8]<5D><>֡<EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>־(0xAAΪ<41><CEAA>֡)
|
|||
|
//Sys_data_object.P1.func_cfg_bytes[9]=0xAA,//[9]0XAA<41>²<EFBFBD><C2B2><EFBFBD><EFBFBD><EFBFBD>Լ
|
|||
|
Sys_data_object.P1.func_cfg_bytes[10]=0x55;//[10]0x55<35><35><EFBFBD><EFBFBD>ACK<43>ж<EFBFBD><D0B6>ϱ<EFBFBD><CFB1>ɹ<EFBFBD>
|
|||
|
//Sys_data_object.P1.func_cfg_bytes[11]=0x55;//[11]0x55,MN316<31><36><EFBFBD>ͷ<EFBFBD><CDB7>书<EFBFBD><E4B9A6>
|
|||
|
//Sys_data_object.P1.func_cfg_bytes[12]=0x80,//[12]ʹ<><CAB9>PSMģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>,0x80<38>ط<EFBFBD>ʹ<EFBFBD><CAB9>PSM,0x82һֱʹ<D6B1><CAB9>PSM
|
|||
|
Sys_data_object.P1.func_cfg_bytes[13]=0x11;//ʣ<><CAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ϱ<EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1
|
|||
|
Sys_data_object.P1.func_cfg_bytes[14]=0x23;//ʣ<><CAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ϱ<EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2
|
|||
|
Sys_data_object.P1.func_cfg_bytes[15]=0x7F;//ʣ<><CAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ϱ<EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3 //func_cfg_bytes[15]---ԭ---<2D><>ʱ<EFBFBD><EFBFBD><EEB6AF><EFBFBD><EFBFBD>Ĭ<EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD>
|
|||
|
Sys_data_object.P1.func_cfg_bytes[16]=2;//[16]<5D><><EFBFBD><EFBFBD>:<3A>㲥<EFBFBD><E3B2A5><EFBFBD><EFBFBD>2s,<2C><>λ<EFBFBD><CEBB>,
|
|||
|
Sys_data_object.P1.func_cfg_bytes[17]=50;//[17]<5D><><EFBFBD><EFBFBD>:<3A><><EFBFBD>Ӽ<EFBFBD><D3BC><EFBFBD>50ms,<2C><>λms
|
|||
|
Sys_data_object.P1.func_cfg_bytes[18]=0x00;//[18]<5D><><EFBFBD><EFBFBD>:<3A><><EFBFBD>书<EFBFBD><E4B9A6>,0:2.5dbm;1:0dbm;2:-5dbm;3:-10dbm
|
|||
|
Sys_data_object.P1.func_cfg_bytes[19]=5;//[19]<5D><><EFBFBD><EFBFBD>:ɨ<><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>5
|
|||
|
Sys_data_object.P1.func_cfg_bytes[20]=5;//Ӧ<><D3A6><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE>Ĭ<EFBFBD><C4AC>5<EFBFBD><35>
|
|||
|
Sys_data_object.P1.func_cfg_bytes[21]=0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Թ<EFBFBD><D4B9><EFBFBD>,Ĭ<><C4AC>0<EFBFBD>ر<EFBFBD>
|
|||
|
Sys_data_object.P1.func_cfg_bytes[22]=7;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>,Ĭ<><C4AC>7<EFBFBD><37>
|
|||
|
Sys_data_object.P1.func_cfg_bytes[23]=20;//<2F><><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>,Ĭ<><C4AC>20
|
|||
|
/*ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>---2<>ֽ<EFBFBD>:Ĭ<><C4AC>600ps=0x0258*/
|
|||
|
//(DEFAULT_START_FLOW&0xFF),((DEFAULT_START_FLOW>>8)&0xFF), //#define DEFAULT_START_FLOW 0x00D1 //DN20ͭ63KPAʱ<41><CAB1>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
Sys_data_object.P1.start_flow.datas = DEFAULT_START_FLOW;
|
|||
|
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ---2<>ֽ<EFBFBD>:Ĭ<>Ϸ<EFBFBD>ʽ1*/
|
|||
|
Sys_data_object.P1.counter_current_flow.datas = 0x2B1A;//0x1A,0x2B,
|
|||
|
/*<2A><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>---1<>ֽ<EFBFBD>:Ĭ<><C4AC>8*/
|
|||
|
Sys_data_object.P1.sampling_frequency = 0x08;// 0x08,
|
|||
|
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С---1<>ֽ<EFBFBD>:Ĭ<><C4AC>16*/
|
|||
|
Sys_data_object.P1.buf_length = 0x10;// 0x10,
|
|||
|
/*Ĭ<><C4AC><EFBFBD>ܼ<EFBFBD><DCBC>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD>0:30s*/
|
|||
|
Sys_data_object.P1.storage_frequency = 15;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪĬ<CEAA><C4AC>15<31><35><EFBFBD>Ӵ洢<D3B4><E6B4A2><EFBFBD><EFBFBD>
|
|||
|
/*Ĭ<><C4AC><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD><CDB2><EFBFBD>Ƶ<EFBFBD><C6B5>4(8Hz),<2C><><EFBFBD>߲<EFBFBD><DFB2><EFBFBD>Ƶ<EFBFBD><C6B5>5(16Hz)*/
|
|||
|
Sys_data_object.P1.jx_sampling_frequency[0] = 0x04; //0x04,0x05,
|
|||
|
Sys_data_object.P1.jx_sampling_frequency[1] = 0x05;
|
|||
|
/*Ĭ<><C4AC>NB<4E><42><EFBFBD><EFBFBD>ģʽΪ<CABD>ϵ<EFBFBD>ģʽ*/
|
|||
|
Sys_data_object.P1.jx_psm_pwdown =0x01; //0x01,
|
|||
|
/*Ĭ<><C4AC>NB<4E>ϱ<EFBFBD>ʧ<EFBFBD>ܺ<EFBFBD>4Сʱ<D0A1><CAB1><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ѯcereg 40<34><30>*/
|
|||
|
//0x40,0x38,60,0x00
|
|||
|
#if PRODUCT_SY
|
|||
|
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԼĬ<D4BC><C4AC>NB<4E>ϱ<EFBFBD>ʧ<EFBFBD>ܺ<EFBFBD>30<33><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ѯcereg 60<36><30>*/
|
|||
|
Sys_data_object.P1.Upload_again_interval_time.datas = 1800;//1800=30x60
|
|||
|
#else
|
|||
|
Sys_data_object.P1.Upload_again_interval_time.datas = 14400;//14400=4x3600
|
|||
|
#endif
|
|||
|
Sys_data_object.P1.nb_para_login_ask_times.datas = 40;//CGATT<54><54>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>
|
|||
|
Sys_data_object.P1.Supplemental_send_flag.datas = 0;
|
|||
|
Sys_data_object.P1.histroy_r = 0;
|
|||
|
Sys_data_object.P1.histroy_w = 0;
|
|||
|
//
|
|||
|
Sys_data_object.P1.ies_pulse_remain.datas = 0;//<2F><>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE>
|
|||
|
//<2F><><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>
|
|||
|
//#if UPLOAD_MODE_1
|
|||
|
Sys_data_object.P1.run_information_object.total_use_sum_times_sec.to_uint32 = 0;//<2F><><EFBFBD>ƹ<EFBFBD><C6B9><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
Sys_data_object.P1.run_information_object.bat_surplus.to_uint32 = ENERGY_OF_26500;//<2F><><EFBFBD>ص<EFBFBD><D8B5><EFBFBD>uAH
|
|||
|
Sys_data_object.P1.run_information_object.use_sum_times_sec.to_uint32 = 0;//<2F><><EFBFBD><EFBFBD><EFBFBD>ۼƹ<DBBC><C6B9><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
Sys_data_object.P1.run_information_object.nb_use_sum_times_sec.to_uint32 = 0;//nb<6E>ۼƹ<DBBC><C6B9><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
Sys_data_object.P1.run_information_object.nb_upload_happen_num = 0;//nb<6E><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
Sys_data_object.P1.run_information_object.valve_use_sum_times_sec = 0;//<2F><><EFBFBD>Ź<EFBFBD><C5B9><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
Sys_data_object.P1.run_information_object.ee_remain_para_energy_life = 3;//<2F><>ֵ
|
|||
|
//#endif
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
Sys_data_object.P3.function_switch.ble_adv_fre = Sys_data_object.P1.func_cfg_bytes[16];//<2F>㲥<EFBFBD><E3B2A5><EFBFBD><EFBFBD>2<EFBFBD><32>
|
|||
|
Sys_data_object.P3.function_switch.ble_con_para = Sys_data_object.P1.func_cfg_bytes[17];//<2F><><EFBFBD>Ӽ<EFBFBD><D3BC><EFBFBD>50ms
|
|||
|
Sys_data_object.P3.function_switch.ble_tx_power = Sys_data_object.P1.func_cfg_bytes[18];//<2F><><EFBFBD>书<EFBFBD><E4B9A6>
|
|||
|
Sys_data_object.P3.function_switch.ble_scan_times = Sys_data_object.P1.func_cfg_bytes[19];//ɨ<><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
Sys_data_object.P1.ies_pulse_emergency.datas = Sys_data_object.P1.func_cfg_bytes[20];//Ӧ<><D3A6><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE>
|
|||
|
Sys_data_object.P3.function_switch.password_enable = Sys_data_object.P1.func_cfg_bytes[21];//ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
|
|||
|
//<2F><>EE<45>ж<EFBFBD><D0B6><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>
|
|||
|
void set_important_data_rd_state (void)
|
|||
|
{
|
|||
|
important_data_rd_state = IMPORTANT_DATA_OP_S1;
|
|||
|
}
|
|||
|
u8 get_important_data_rd_state (void)
|
|||
|
{
|
|||
|
return important_data_rd_state;
|
|||
|
}
|
|||
|
void LoadEepromImportantData(void)
|
|||
|
{
|
|||
|
set_important_data_rd_state();
|
|||
|
while(get_important_data_rd_state())
|
|||
|
{
|
|||
|
EeReadImportantDataMachine();
|
|||
|
EepMachineDriver();
|
|||
|
}
|
|||
|
Meter_BootVersionInit();//<2F><>ȡboot<6F>汾<EFBFBD><E6B1BE>
|
|||
|
Sys_data_object.P3.NBSleepMode = 0;//<2F><>PSMģʽ<C4A3>ϱ<EFBFBD>
|
|||
|
}
|
|||
|
//<2F><>ȡ<EFBFBD><C8A1>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>
|
|||
|
void EeReadImportantDataMachine(void)
|
|||
|
{
|
|||
|
switch(important_data_rd_state)
|
|||
|
{
|
|||
|
case IMPORTANT_DATA_OP_S0:
|
|||
|
{
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case IMPORTANT_DATA_OP_S1:
|
|||
|
{
|
|||
|
task_init_complete = FALSE;
|
|||
|
tmp_init_stat = EE_INIT_STATE_S1;
|
|||
|
important_data_rd_state=IMPORTANT_DATA_OP_S2;
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case IMPORTANT_DATA_OP_S2://ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
|||
|
{
|
|||
|
SysData_Init();
|
|||
|
if(task_init_complete == TRUE)
|
|||
|
{
|
|||
|
task_init_complete = FALSE;
|
|||
|
tmp_init_stat = EE_INIT_STATE_S1;
|
|||
|
important_data_rd_state=IMPORTANT_DATA_OP_S3;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case IMPORTANT_DATA_OP_S3://<2F><><EFBFBD><EFBFBD>ʽϵ<CABD><CFB5><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
|||
|
{
|
|||
|
Coefficient_Init();
|
|||
|
if(task_init_complete == TRUE)
|
|||
|
{
|
|||
|
task_init_complete = FALSE;
|
|||
|
tmp_init_stat = EE_INIT_STATE_S1;
|
|||
|
important_data_rd_state=IMPORTANT_DATA_OP_S4;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case IMPORTANT_DATA_OP_S4://<2F><><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
|||
|
{
|
|||
|
Flow_coef_Init();
|
|||
|
if(task_init_complete == TRUE)
|
|||
|
{
|
|||
|
task_init_complete = FALSE;
|
|||
|
tmp_init_stat = EE_INIT_STATE_S1;
|
|||
|
important_data_rd_state=IMPORTANT_DATA_OP_S5;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case IMPORTANT_DATA_OP_S5://UDP ip<69><70>ʼ<EFBFBD><CABC>
|
|||
|
{
|
|||
|
UDP_Update_Init();
|
|||
|
if(task_init_complete == TRUE)
|
|||
|
{
|
|||
|
task_init_complete = FALSE;
|
|||
|
tmp_init_stat = EE_INIT_STATE_S1;
|
|||
|
important_data_rd_state=IMPORTANT_DATA_OP_S6;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
case IMPORTANT_DATA_OP_S6://SOEָ<45><D6B8><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
|||
|
{
|
|||
|
SOE_Pint_Init();
|
|||
|
if(task_init_complete == TRUE)
|
|||
|
{
|
|||
|
task_init_complete = FALSE;
|
|||
|
tmp_init_stat = EE_INIT_STATE_S1;
|
|||
|
important_data_rd_state=IMPORTANT_DATA_OP_S7;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case IMPORTANT_DATA_OP_S7://RTCC<43><43>ʼ<EFBFBD><CABC>
|
|||
|
{
|
|||
|
RtccInitApp();
|
|||
|
if(task_init_complete == TRUE)
|
|||
|
{
|
|||
|
task_init_complete = FALSE;
|
|||
|
tmp_init_stat = EE_INIT_STATE_S1;
|
|||
|
important_data_rd_state=IMPORTANT_DATA_OP_S8;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case IMPORTANT_DATA_OP_S8://<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C>ٱ<EFBFBD><D9B1><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD>־
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
if(FRAME_FIRST_POWER_FLG != Sys_data_object.P1.first_power_flg)//<2F>ǵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ϵ<EFBFBD>
|
|||
|
{
|
|||
|
Sys_data_object.P1.first_power_flg = FRAME_FIRST_POWER_FLG;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD>־
|
|||
|
EepWrite(&Sys_data_object.P1.first_power_flg, EEP_FRAME_BASE_ADDR, 1, &important_data_rd_msg);
|
|||
|
}
|
|||
|
important_data_rd_state = IMPORTANT_DATA_OP_S9;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case IMPORTANT_DATA_OP_S9:
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
important_data_rd_state = IMPORTANT_DATA_OP_S0;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
default:
|
|||
|
{
|
|||
|
important_data_rd_state = IMPORTANT_DATA_OP_S0;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
//<2F><>״̬<D7B4><CCAC><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
u8 EeReadImportantDataIfIdle(void)
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
if(IMPORTANT_DATA_OP_S0 == important_data_rd_state)
|
|||
|
{
|
|||
|
return TASK_IDLE;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return TASK_BUSY;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return TASK_BUSY;
|
|||
|
}
|
|||
|
}
|
|||
|
void StartEeReadImportantData(void)
|
|||
|
{
|
|||
|
important_data_rd_state = IMPORTANT_DATA_OP_S1;
|
|||
|
}
|
|||
|
/*******************************************************************************
|
|||
|
* @fun_name: SysData_Init
|
|||
|
* @brief : ϵͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param[in] : None
|
|||
|
* @param[out]: None
|
|||
|
* @retval : None
|
|||
|
* @other :
|
|||
|
******************************************************************************/
|
|||
|
static void SysData_Init(void)
|
|||
|
{
|
|||
|
switch (tmp_init_stat)
|
|||
|
{
|
|||
|
case EE_INIT_STATE_S0:
|
|||
|
{
|
|||
|
break;
|
|||
|
}
|
|||
|
case EE_INIT_STATE_S1://<2F><>ȡ<EFBFBD><C8A1>һ<EFBFBD><D2BB><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD>־
|
|||
|
{
|
|||
|
if (TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
EepRead(EEP_FRAME_FIRST_POWER_ADDR, &Sys_data_object.P1.first_power_flg, sizeof(Sys_data_object.P1), &important_data_rd_msg);
|
|||
|
tmp_init_stat = EE_INIT_STATE_S2;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
case EE_INIT_STATE_S2://<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ϵ<EFBFBD>
|
|||
|
{
|
|||
|
if (TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
if(FRAME_FIRST_POWER_FLG != Sys_data_object.P1.first_power_flg)//<2F>ǵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ϵ<EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD>ɹ<EFBFBD><C9B9>ٱ<EFBFBD><D9B1><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD>־
|
|||
|
{
|
|||
|
Sys_data_object.P3.FirstPowerOnFlag = FIRST_POWER_ON_FLAG;
|
|||
|
FirstPowerOnInit();
|
|||
|
EepWrite(&(Sys_data_object.P1.start_using_flg), (EEP_FRAME_FIRST_POWER_ADDR+1), (sizeof(Sys_data_object.P1)-1), &important_data_rd_msg);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
Sys_data_object.P3.FirstPowerOnFlag = 0;
|
|||
|
}
|
|||
|
Sys_data_object.P3.ProductUpoadFailFlag =0;
|
|||
|
tmp_init_stat = EE_INIT_STATE_S3;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
case EE_INIT_STATE_S3://<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><CFB7>ж<EFBFBD>:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
|
|||
|
{
|
|||
|
if (TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
if((0x2B1A !=Sys_data_object.P1.counter_current_flow.datas) &&(0x4D3C !=Sys_data_object.P1.counter_current_flow.datas))
|
|||
|
{
|
|||
|
Sys_data_object.P1.counter_current_flow.datas = 0x2B1A;
|
|||
|
EepWrite(&Sys_data_object.P1.counter_current_flow.datas_map.data0,EEP_FRAME_COUNTER_CURRENT_FLOW_ADDR, sizeof (Sys_data_object.P1.counter_current_flow.datas), &important_data_rd_msg);
|
|||
|
}
|
|||
|
tmp_init_stat = EE_INIT_STATE_S4;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
case EE_INIT_STATE_S4://<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><CFB7>ж<EFBFBD>:ʼ<><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
if (TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
if((Sys_data_object.P1.start_flow.datas < MIN_START_FLOW)||(Sys_data_object.P1.start_flow.datas > MAX_START_FLOW))
|
|||
|
{
|
|||
|
Sys_data_object.P1.start_flow.datas = DEFAULT_START_FLOW;//Ĭ<><C4AC>ֵ
|
|||
|
EepWrite(&Sys_data_object.P1.start_flow.datas_map.data0, EEP_FRAME_START_FLOW_ADDR, 2, &important_data_rd_msg);
|
|||
|
}
|
|||
|
tmp_init_stat = EE_INIT_STATE_S5;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
case EE_INIT_STATE_S5:
|
|||
|
{
|
|||
|
if (TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
Frame_Para_Init();//ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
|||
|
task_init_complete = TRUE;
|
|||
|
tmp_init_stat = EE_INIT_STATE_S0;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
default:
|
|||
|
{
|
|||
|
tmp_init_stat = EE_INIT_STATE_S0;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
/*******************************************************************************
|
|||
|
* @fun_name: Coefficient_Init
|
|||
|
* @brief : <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽϵ<EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param[in] : None
|
|||
|
* @param[out]: None
|
|||
|
* @retval : None
|
|||
|
* @other :
|
|||
|
******************************************************************************/
|
|||
|
static void Coefficient_Init(void)
|
|||
|
{
|
|||
|
switch (tmp_init_stat)
|
|||
|
{
|
|||
|
case EE_INIT_STATE_S0:
|
|||
|
{
|
|||
|
}
|
|||
|
break;
|
|||
|
case EE_INIT_STATE_S1:
|
|||
|
{
|
|||
|
if (TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
if(FRAME_FIRST_POWER_FLG != Sys_data_object.P1.first_power_flg)//<2F>ǵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ϵ<EFBFBD>
|
|||
|
{
|
|||
|
memcpy(&cal_coefficient[0].flt, default_coefficient,sizeof(default_coefficient));//<2F><><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD>ģϵ<C4A3><CFB5><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
|||
|
EepWrite(&cal_coefficient[0].value[0], FRAME_FLOW_COEFFICIENT_ADDR, sizeof (cal_coefficient), &important_data_rd_msg);
|
|||
|
tmp_init_stat = EE_INIT_STATE_S3;
|
|||
|
}
|
|||
|
else//<2F>ǵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ϵ<EFBFBD>
|
|||
|
{
|
|||
|
EepRead(FRAME_FLOW_COEFFICIENT_ADDR, &cal_coefficient[0].value[0], sizeof (cal_coefficient), &important_data_rd_msg);
|
|||
|
tmp_init_stat = EE_INIT_STATE_S20;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
case EE_INIT_STATE_S20:
|
|||
|
{
|
|||
|
if (TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
u8 flow_coef_ok_flg = 0; //<2F><><EFBFBD><EFBFBD>ʽϵ<CABD><CFB5><EFBFBD>쳣flag
|
|||
|
for(u8 i=0;i<MULT_COEFFICIENT_BUF_NUM;i++)//<2F>ж<EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD>Ϸ<EFBFBD><CFB7>ԣ<EFBFBD><D4A3><EFBFBD><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD>Ĭ<EFBFBD><C4AC>
|
|||
|
{
|
|||
|
if(0xFFFFFFFF==cal_coefficient[i].value_u32)//ϵ<><CFB5>Ĭ<EFBFBD><C4AC>Ϊ0xFFFFFFFF<46><46><EFBFBD><EFBFBD><EFBFBD>쳣
|
|||
|
{
|
|||
|
flow_coef_ok_flg=0;
|
|||
|
break;
|
|||
|
}
|
|||
|
if((COEFFICIENT_MAX < cal_coefficient[i].flt)||(cal_coefficient[i].flt <COEFFICIENT_MIN))//<2F>жϷ<D0B6>Χ<EFBFBD>д<EFBFBD>ȷ<EFBFBD><C8B7>-20191112
|
|||
|
{
|
|||
|
flow_coef_ok_flg=0;
|
|||
|
break;
|
|||
|
}
|
|||
|
else if(cal_coefficient[i].flt != 0)
|
|||
|
{
|
|||
|
flow_coef_ok_flg=1;//<2F><><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ϊ0<CEAA><30><EFBFBD><EFBFBD>flag<61><67>1
|
|||
|
}
|
|||
|
}
|
|||
|
if(0 == flow_coef_ok_flg)//<2F>ж<EFBFBD><D0B6>쳣ϵ<ECB3A3><CFB5>,<2C><>дĬ<D0B4><C4AC>ϵ<EFBFBD><CFB5>
|
|||
|
{
|
|||
|
memcpy(&cal_coefficient[0].flt, default_coefficient,sizeof(default_coefficient));
|
|||
|
EepWrite(&cal_coefficient[0].value[0], FRAME_FLOW_COEFFICIENT_ADDR, sizeof (cal_coefficient), &important_data_rd_msg);
|
|||
|
}
|
|||
|
tmp_init_stat = EE_INIT_STATE_S3;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
case EE_INIT_STATE_S3:
|
|||
|
{
|
|||
|
if (TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
task_init_complete = TRUE;
|
|||
|
tmp_init_stat = EE_INIT_STATE_S0;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
default:
|
|||
|
{
|
|||
|
tmp_init_stat = EE_INIT_STATE_S0;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
/*******************************************************************************
|
|||
|
* @fun_name: Flow_coef_Init
|
|||
|
* @brief : <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param[in] : None
|
|||
|
* @param[out]: None
|
|||
|
* @retval : None
|
|||
|
* @other :
|
|||
|
******************************************************************************/
|
|||
|
static void Flow_coef_Init(void)
|
|||
|
{
|
|||
|
switch (tmp_init_stat)
|
|||
|
{
|
|||
|
case EE_INIT_STATE_S0:
|
|||
|
{
|
|||
|
break;
|
|||
|
}
|
|||
|
case EE_INIT_STATE_S1://<2F><>һ<EFBFBD><D2BB><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
if (TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
if(FRAME_FIRST_POWER_FLG != Sys_data_object.P1.first_power_flg)//<2F>ǵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ϵ<EFBFBD>
|
|||
|
{
|
|||
|
memcpy(&(cal_flow_coefficient[0].datas_map.data0), default_flow_coefficient, sizeof (default_flow_coefficient));//<2F><><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
|||
|
EepWrite(&cal_flow_coefficient[0].datas_map.data0, FRAME_FLOW_LOW_COEFFICIENT_ADDR, sizeof (cal_flow_coefficient), &important_data_rd_msg);
|
|||
|
tmp_init_stat = EE_INIT_STATE_S3;
|
|||
|
}
|
|||
|
else//<2F>ǵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ϵ<EFBFBD>
|
|||
|
{
|
|||
|
EepRead(FRAME_FLOW_LOW_COEFFICIENT_ADDR, &cal_flow_coefficient[0].datas_map.data0, sizeof (default_flow_coefficient), &important_data_rd_msg);
|
|||
|
tmp_init_stat = EE_INIT_STATE_S20;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
case EE_INIT_STATE_S20:
|
|||
|
{
|
|||
|
if (TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
u8 flow_coef_ok_flg = 1;//<2F><><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD>쳣<EFBFBD><ECB3A3>־ 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ 0<><30><EFBFBD>쳣Ϊ
|
|||
|
|
|||
|
for(u8 i=0;i<FLOW_COEFFICIENT_BUF_NUM;i++)//<2F><>18<31><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
if(0xFFFFFFFF==cal_flow_coefficient[i].datas)//ϵ<><CFB5>Ĭ<EFBFBD><C4AC>Ϊ0xFFFFFFFF<46><46><EFBFBD><EFBFBD><EFBFBD>쳣
|
|||
|
{
|
|||
|
flow_coef_ok_flg=0;
|
|||
|
break;
|
|||
|
}
|
|||
|
if((FLOW_COEFFICIENT_MAX < cal_flow_coefficient[i].datas)||(cal_flow_coefficient[i].datas <FLOW_COEFFICIENT_MIN))//<2F>жϷ<D0B6>Χ<EFBFBD>д<EFBFBD>ȷ<EFBFBD><C8B7>-20191112
|
|||
|
{
|
|||
|
flow_coef_ok_flg=0;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
if(0 == flow_coef_ok_flg)//<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>쳣 <20><><EFBFBD>쳣<EFBFBD>˾ͽ<CBBE>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>д<EFBFBD>뵽EEPROM
|
|||
|
{
|
|||
|
memcpy(&(cal_flow_coefficient[0].datas_map.data0), default_flow_coefficient, sizeof (default_flow_coefficient));//<2F><><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
|||
|
EepWrite(&cal_flow_coefficient[0].datas_map.data0, FRAME_FLOW_LOW_COEFFICIENT_ADDR, sizeof (cal_flow_coefficient), &important_data_rd_msg);
|
|||
|
}
|
|||
|
tmp_init_stat = EE_INIT_STATE_S3;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
case EE_INIT_STATE_S3:
|
|||
|
{
|
|||
|
if (TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
task_init_complete = TRUE;
|
|||
|
tmp_init_stat = EE_INIT_STATE_S0;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
default:
|
|||
|
{
|
|||
|
tmp_init_stat = EE_INIT_STATE_S0;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
/*******************************************************************************
|
|||
|
* @fun_name: UDP_Update_Init
|
|||
|
* @brief : UDP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param[in] : None
|
|||
|
* @param[out]: None
|
|||
|
* @retval : None
|
|||
|
* @other :
|
|||
|
******************************************************************************/
|
|||
|
static void UDP_Update_Init(void)
|
|||
|
{
|
|||
|
switch (tmp_init_stat)
|
|||
|
{
|
|||
|
case EE_INIT_STATE_S0:
|
|||
|
{
|
|||
|
break;
|
|||
|
}
|
|||
|
case EE_INIT_STATE_S1:
|
|||
|
{
|
|||
|
if (TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
if(FRAME_FIRST_POWER_FLG != Sys_data_object.P1.first_power_flg)//<2F>ǵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ϵ<EFBFBD>
|
|||
|
{
|
|||
|
#if PRODUCT_SY
|
|||
|
Sys_data_object.P2.server_ip[0] = 223;
|
|||
|
Sys_data_object.P2.server_ip[1] = 100;
|
|||
|
Sys_data_object.P2.server_ip[2] = 22;
|
|||
|
Sys_data_object.P2.server_ip[3] = 125;
|
|||
|
Sys_data_object.P2.server_port.datas = 3031;
|
|||
|
#else
|
|||
|
Sys_data_object.P2.server_ip[0] = 60;
|
|||
|
Sys_data_object.P2.server_ip[1] = 208;
|
|||
|
Sys_data_object.P2.server_ip[2] = 16;
|
|||
|
Sys_data_object.P2.server_ip[3] = 58;
|
|||
|
Sys_data_object.P2.server_port.datas = 7833;
|
|||
|
#endif
|
|||
|
EepWrite(&Sys_data_object.P2.server_ip[0], EEP_UPDATE_UDP_IP, 6, &important_data_rd_msg);
|
|||
|
tmp_init_stat = EE_INIT_STATE_S3;
|
|||
|
}
|
|||
|
else//<2F>ǵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ϵ<EFBFBD>
|
|||
|
{
|
|||
|
EepRead(EEP_UPDATE_UDP_IP, &Sys_data_object.P2.server_ip[0], 6, &important_data_rd_msg);
|
|||
|
tmp_init_stat = EE_INIT_STATE_S3;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
case EE_INIT_STATE_S3:
|
|||
|
{
|
|||
|
if (TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
task_init_complete = TRUE;
|
|||
|
tmp_init_stat = EE_INIT_STATE_S0;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
default:
|
|||
|
{
|
|||
|
tmp_init_stat = EE_INIT_STATE_S0;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
/*******************************************************************************
|
|||
|
* @fun_name: SOE_Pint_Init
|
|||
|
* @brief : SOE<EFBFBD>洢ָ<EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param[in] : None
|
|||
|
* @param[out]: None
|
|||
|
* @retval : None
|
|||
|
* @other :
|
|||
|
******************************************************************************/
|
|||
|
static void SOE_Pint_Init(void)
|
|||
|
{
|
|||
|
switch (tmp_init_stat)
|
|||
|
{
|
|||
|
case EE_INIT_STATE_S0:
|
|||
|
{
|
|||
|
break;
|
|||
|
}
|
|||
|
case EE_INIT_STATE_S1:
|
|||
|
{
|
|||
|
if (TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
if(FRAME_FIRST_POWER_FLG != Sys_data_object.P1.first_power_flg)//<2F>ǵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ϵ<EFBFBD>
|
|||
|
{
|
|||
|
Sys_data_object.P4.Point_SOE_write = 0;
|
|||
|
EepWrite(&Sys_data_object.P4.Point_SOE_write, EEP_ADDR_SOE_WR_POINT, 1, &important_data_rd_msg);
|
|||
|
tmp_init_stat = EE_INIT_STATE_S3;
|
|||
|
}
|
|||
|
else//<2F>ǵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ϵ<EFBFBD>
|
|||
|
{
|
|||
|
EepRead(EEP_ADDR_SOE_WR_POINT, &Sys_data_object.P4.Point_SOE_write, 1, &important_data_rd_msg);
|
|||
|
tmp_init_stat = EE_INIT_STATE_S3;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
case EE_INIT_STATE_S3:
|
|||
|
{
|
|||
|
if (TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
task_init_complete = TRUE;
|
|||
|
tmp_init_stat = EE_INIT_STATE_S0;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
default:
|
|||
|
{
|
|||
|
tmp_init_stat = EE_INIT_STATE_S0;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
static void RtccInitApp(void)
|
|||
|
{
|
|||
|
switch (tmp_init_stat)
|
|||
|
{
|
|||
|
case EE_INIT_STATE_S0:
|
|||
|
{
|
|||
|
break;
|
|||
|
}
|
|||
|
case EE_INIT_STATE_S1:
|
|||
|
{
|
|||
|
if (TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
EepRead(EE_FIRST_USE_ADDR, Sys_data_object.ee_data.byte, sizeof (RTCC_EE_DATA), &important_data_rd_msg); //<2F><>EE<45><45><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
tmp_init_stat = EE_INIT_STATE_S2;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
case EE_INIT_STATE_S2:
|
|||
|
{
|
|||
|
if (TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
if (Sys_data_object.ee_data.data.first_flag != RTCC_FIRST_FLAG)
|
|||
|
{
|
|||
|
//<2F><>һ<EFBFBD><D2BB><EFBFBD>ϵ<EFBFBD>
|
|||
|
if (EepIfIdle())
|
|||
|
{
|
|||
|
Sys_data_object.ee_data.data.first_flag = RTCC_FIRST_FLAG; //<2F><>д<EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD>־λ
|
|||
|
Sys_data_object.ee_data.data.work_hour = 0; //<2F><><EFBFBD>ۼƹ<DBBC><C6B9><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
Sys_data_object.ee_data.data.day_data = 0xFFFFFFFF; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ۼ<EFBFBD>ֵ
|
|||
|
RtccGetDateTime(&Sys_data_object.ee_data.data.start_time_up); //<2F><>¼<EFBFBD><C2BC><EFBFBD>Ƴ<EFBFBD><C6B3><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
EepWrite(Sys_data_object.ee_data.byte, EE_FIRST_USE_ADDR, sizeof (RTCC_EE_DATA), &important_data_rd_msg);
|
|||
|
tmp_init_stat = EE_INIT_STATE_S3;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EEA3AC><EFBFBD><EFBFBD>RTCC<43>Ƿ<EFBFBD><C7B7>ܷ<EFBFBD>
|
|||
|
DateTime init_time;
|
|||
|
if (ERROR == RtccGetDateTime(&init_time)) //<2F>ϵ<EFBFBD><CFB5><EFBFBD>ʱ<EFBFBD>䲻<EFBFBD>Ϸ<EFBFBD>
|
|||
|
{
|
|||
|
init_time.s.year = 0x22;
|
|||
|
init_time.s.month = 0x01;
|
|||
|
init_time.s.day = 0x01;
|
|||
|
init_time.s.hour = 0x00;
|
|||
|
init_time.s.minute = 0x00;
|
|||
|
init_time.s.second = 0x00;
|
|||
|
RtccSetDateTime(&init_time);
|
|||
|
}
|
|||
|
task_init_complete = TRUE;
|
|||
|
tmp_init_stat = EE_INIT_STATE_S0;
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
case EE_INIT_STATE_S3:
|
|||
|
{
|
|||
|
if (TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
task_init_complete = TRUE;
|
|||
|
tmp_init_stat = EE_INIT_STATE_S0;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
default:
|
|||
|
{
|
|||
|
tmp_init_stat = EE_INIT_STATE_S0;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
/*******************************************************************************
|
|||
|
* @fun_name: Frame_Para_Init
|
|||
|
* @brief : ϵͳ<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˢ<EFBFBD><EFBFBD>
|
|||
|
* @param[in] :
|
|||
|
* @param[out]: u32
|
|||
|
* @retval : None
|
|||
|
* @other :
|
|||
|
******************************************************************************/
|
|||
|
void Frame_Para_Init(void)
|
|||
|
{
|
|||
|
MET_STATE temp_state; //״̬<D7B4><CCAC>
|
|||
|
frame_para_buf[FramePara_DNx] = GP30_APP_DNX;//DNx
|
|||
|
frame_para_buf[FramePara_Tc0] = Sys_data_object.P1.temperature_coefficient0.datas;
|
|||
|
frame_para_buf[FramePara_Tc1] = Sys_data_object.P1.temperature_coefficient1.datas;
|
|||
|
frame_para_buf[FramePara_FcSmall] = Sys_data_object.P1.flow_coefficient_small.datas;
|
|||
|
frame_para_buf[FramePara_FcMiddle0] = Sys_data_object.P1.flow_coefficient_middle0.datas;
|
|||
|
frame_para_buf[FramePara_FcMiddle1] = Sys_data_object.P1.flow_coefficient_middle1.datas;
|
|||
|
frame_para_buf[FramePara_FcMiddle2] = Sys_data_object.P1.flow_coefficient_middle2.datas;
|
|||
|
frame_para_buf[FramePara_FcLarge] = Sys_data_object.P1.flow_coefficient_large.datas;
|
|||
|
frame_para_buf[FramePara_ReportStartDMY] = Sys_data_object.P1.report_start_time[0]|(Sys_data_object.P1.report_start_time[1]<<8)|(Sys_data_object.P1.report_start_time[2]<<16);
|
|||
|
frame_para_buf[FramePara_ReportStartSMH] = Sys_data_object.P1.report_start_time[8]|(Sys_data_object.P1.report_start_time[7]<<8)|(Sys_data_object.P1.report_start_time[6]<<16);
|
|||
|
frame_para_buf[FramePara_ProgVersion] = PROGRAME_VERSION;
|
|||
|
frame_para_buf[FramePara_MetAddr0_3] = Sys_data_object.P1.met_addr[0]|(Sys_data_object.P1.met_addr[1]<<8)|(Sys_data_object.P1.met_addr[2]<<16)|(Sys_data_object.P1.met_addr[3]<<24);
|
|||
|
frame_para_buf[FramePara_MetAddr4] = Sys_data_object.P1.met_addr[4]|(Sys_data_object.P1.met_addr[5]<<8)|(Sys_data_object.P1.met_addr[6]<<16);
|
|||
|
frame_para_buf[FramePara_FuncCfg0_3] = Sys_data_object.P1.func_cfg_bytes[0]|(Sys_data_object.P1.func_cfg_bytes[1]<<8)|(Sys_data_object.P1.func_cfg_bytes[2]<<16)|(Sys_data_object.P1.func_cfg_bytes[3]<<24);
|
|||
|
frame_para_buf[FramePara_FuncCfg4_7] = Sys_data_object.P1.func_cfg_bytes[4]|(Sys_data_object.P1.func_cfg_bytes[5]<<8)|(Sys_data_object.P1.func_cfg_bytes[6]<<16)|(Sys_data_object.P1.func_cfg_bytes[7]<<24);
|
|||
|
frame_para_buf[FramePara_FuncCfg8_11] = Sys_data_object.P1.func_cfg_bytes[8]|(Sys_data_object.P1.func_cfg_bytes[9]<<8)|(Sys_data_object.P1.func_cfg_bytes[10]<<16)|(Sys_data_object.P1.func_cfg_bytes[11]<<24);
|
|||
|
frame_para_buf[FramePara_FuncCfg12_15]= Sys_data_object.P1.func_cfg_bytes[12]|(Sys_data_object.P1.func_cfg_bytes[13]<<8)|(Sys_data_object.P1.func_cfg_bytes[14]<<16)|(Sys_data_object.P1.func_cfg_bytes[15]<<24);
|
|||
|
frame_para_buf[FramePara_ReportEndSMH] = Sys_data_object.P1.report_start_time[3]|(Sys_data_object.P1.report_start_time[4]<<8)|(Sys_data_object.P1.report_start_time[5]<<16);
|
|||
|
frame_para_buf[FramePara_FcMiddle3] = Sys_data_object.P1.flow_coefficient_middle3.datas;
|
|||
|
temp_state = FrameGetByte();
|
|||
|
frame_para_buf[FramePara_Sta1_2] = temp_state.stat1|(temp_state.stat2<<8);//-------------------------------------------------------------
|
|||
|
frame_para_buf[FramePara_CCFlow] = Sys_data_object.P1.counter_current_flow.datas_map.data0|(Sys_data_object.P1.counter_current_flow.datas_map.data1<<8);
|
|||
|
frame_para_buf[FramePara_StartFlow] = Sys_data_object.P1.start_flow.datas;
|
|||
|
/********************/
|
|||
|
frame_para_buf[FramePara_GP30Freq] = Sys_data_object.P1.sampling_frequency;//----------------------------------------------------------------------
|
|||
|
frame_para_buf[FramePara_GP30BufLen] = Sys_data_object.P1.buf_length;//----------------------------------------------------------------------------
|
|||
|
frame_para_buf[FramePara_ReportFreq] = Sys_data_object.P1.Time_upload_2006.buf[0]|(Sys_data_object.P1.Time_upload_2006.buf[1]<<8)|(Sys_data_object.P1.Time_upload_2006.buf[2]<<16)|(Sys_data_object.P1.Time_upload_2006.buf[3]<<24);
|
|||
|
frame_para_buf[FramePara_EnableTestFunc] = Sys_data_object.P1.enable_verification_function;
|
|||
|
frame_para_buf[FramePara_EnableInfrareFunc] = Sys_data_object.P1.enable_infrared_function;
|
|||
|
frame_para_buf[FramePara_StartUsingFunc] = Sys_data_object.P1.start_using_flg;
|
|||
|
frame_para_buf[FramePara_StoreFrequency] = Sys_data_object.P1.storage_frequency;
|
|||
|
frame_para_buf[FramePara_NbParaRetryDelay] = Sys_data_object.P1.Upload_again_interval_time.datas;
|
|||
|
frame_para_buf[FramePara_NbParaLoginAckTimes] = Sys_data_object.P1.nb_para_login_ask_times.datas;
|
|||
|
frame_para_buf[FramePara_BootVersion] = Meter_GetBootVersion();
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
Sys_data_object.P3.function_switch.ble_adv_fre = Sys_data_object.P1.func_cfg_bytes[16];//<2F>㲥<EFBFBD><E3B2A5><EFBFBD><EFBFBD>3<EFBFBD><33>
|
|||
|
Sys_data_object.P3.function_switch.ble_con_para = Sys_data_object.P1.func_cfg_bytes[17];//<2F><><EFBFBD>Ӽ<EFBFBD><D3BC><EFBFBD>50ms
|
|||
|
Sys_data_object.P3.function_switch.ble_tx_power = Sys_data_object.P1.func_cfg_bytes[18];//<2F><><EFBFBD>书<EFBFBD><E4B9A6>
|
|||
|
Sys_data_object.P3.function_switch.ble_scan_times = Sys_data_object.P1.func_cfg_bytes[19];//ɨ<><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
Sys_data_object.P1.ies_pulse_emergency.datas = Sys_data_object.P1.func_cfg_bytes[20];//Ӧ<><D3A6><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE>
|
|||
|
Sys_data_object.P3.function_switch.password_enable = Sys_data_object.P1.func_cfg_bytes[21];//ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
/*******************************************************************************
|
|||
|
* @fun_name: FrameCheckParaApp
|
|||
|
* @brief : <EFBFBD><EFBFBD>ѯϵͳ<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param[in] : parameter Frame_CheckParaTypeDef<EFBFBD><EFBFBD>ʽö<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param[out]: u32
|
|||
|
* @retval : None
|
|||
|
* @other :
|
|||
|
******************************************************************************/
|
|||
|
u32 FrameCheckParaApp(Frame_CheckParaTypeDef parameter)
|
|||
|
{
|
|||
|
return frame_para_buf[parameter];
|
|||
|
}
|
|||
|
|
|||
|
void EeSysMachine(void)
|
|||
|
{
|
|||
|
EeReadImportantDataMachine();
|
|||
|
EepMachineDriver();
|
|||
|
}
|
|||
|
|
|||
|
#ifdef __cplusplus
|
|||
|
}
|
|||
|
#endif //#ifdef __cplusplus
|
|||
|
|
|||
|
|
|||
|
|