P3UWaterGuangZhou/app/UWater_Frame/UWater_frame_func_ReplyNB.c

3595 lines
118 KiB
C
Raw Permalink Normal View History

2024-06-03 15:49:39 +08:00
#include "sys_config.h"
#include "sys_processor.h"
#include "UWater_eeprom_driver.h"
#include "UWater_timer1uS_driver.h"
#include "UWater_gp22_driver.h"
#include "UWater_valve_driver.h"
#include "UWater_rtcc_app.h"
#include "UWater_power_app.h"
#include "UWater_lcd_app.h"
#include "UWater_gp22_app.h"
#include "UWater_pt_app.h"
#include "UWater_DataTools_App.h"
#include "UWater_self_test.h"
#include "UWater_Valve_app.h"
#include "eeprom_app.h"
#include "SOE.h"
#include "UWater_QZ_Store_App.h"
#include "UWater_frame_func_ReplyNB.h"
#include "nb_upload_monitor.h"
static u8 check_addr[7] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00};
const u8 super_key[] = {113, 100, 46, 105, 101, 115, 108, 97, 98, 46, 99, 111, 109, 46, 99, 110};//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Կ<EFBFBD><D4BF>Ĭ<EFBFBD><C4AC> qd.ieslab.com.cn
static u8 key[16] = {81, 73, 78, 71, 68, 65, 79, 74, 73, 67, 72, 45, 78, 71, 78, 66}; //Ĭ<><C4AC><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>Կ
static u8 s_nb_eep_complete=0;
static u8 task_complete_ies = PTL_PACK_BUSY;
static u8 g_frame_temp_send_buf[UP_BUF_SIZE]; //<2F><><EFBFBD>ݲ<EFBFBD><DDB2>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD>
static u16 g_frame_temp_len=0;
static u32 s_frame_temp_timer_tick;
static mtype16_ write_eeprom_address; //дEE<45><45><EFBFBD>ݵ<EFBFBD>ַ
static u8 write_eeprom_length; //дEE<45><45><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
//static STRUCT_FLAG s_frame_flag_IES; //<2F><>Լ<EFBFBD><D4BC>־
static STRUCT_FRAME_IES frame_struct_IES; //<2F><>Լ<EFBFBD><D4BC>Ϣ
static u8 *new_message_data_rev_ies;
static u8 up_deal_stat_ies = UP_DEAL_S0;
static u8 frame_buffer[128];//<2F><>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD>,<2C><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ԭʼ<D4AD><CABC><EFBFBD><EFBFBD>
///*******<2A><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD><D8B1><EFBFBD>*****************************************/
#if (MODULE_BLE_USED)
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
static void frame_func_reply_NB_TimeFrequency(void)
{
DateTime date_time;
task_complete_ies = PTL_PACK_FAIL;
g_frame_temp_len =0;
if(*new_message_data_rev_ies == 0x01)//<2F><>ȡʱ<C8A1><CAB1>
{
g_frame_temp_send_buf[g_frame_temp_len++]=0x01;
RtccGetDateTime(&date_time);
g_frame_temp_send_buf[g_frame_temp_len++] = date_time.s.second;
g_frame_temp_send_buf[g_frame_temp_len++] = date_time.s.minute;
g_frame_temp_send_buf[g_frame_temp_len++] = date_time.s.hour;
g_frame_temp_send_buf[g_frame_temp_len++] = date_time.s.day;
g_frame_temp_send_buf[g_frame_temp_len++] = date_time.s.month;
g_frame_temp_send_buf[g_frame_temp_len++] = date_time.s.year;
g_frame_temp_len = 7;
task_complete_ies = PTL_PACK_SUCCESS;
}
}
#else //NB <20><>
//<2F><><EFBFBD><EFBFBD>UDP<44>ڶ<EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>
static STRU_PROC_MSG upload_udp_frame;
static u8 upload_frame_stat_ies_udp=UP_DEAL_S0;
static u8 upload_task_complete_ies_udp=PTL_PACK_BUSY;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD>ϱ<EFBFBD>״̬
static STRU_SHORT_UPLOAD_FRAME short_upload_product_frame;
static u8 upload_frame_stat_product_ies=0; //<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>֡״̬
static u8 upload_task_complete_product_ies = PTL_PACK_FAIL;
static u8 upload_frame_retry_times=0;
//<2F><>ȡIP<49><50><EFBFBD>˿ں<CBBF>
static void frame_func_reply_NB_ReadIpPort(void)
{
g_frame_temp_len = 0;
if(*(new_message_data_rev_ies - 2) == 0x02)//sta=2,<2C><>ȡUDP<44><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
{
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P2.server_ip[0];
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P2.server_ip[1];
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P2.server_ip[2];
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P2.server_ip[3];
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P2.server_port.datas_map.data0;
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P2.server_port.datas_map.data1;
}
else
{
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.server_ip[0];
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.server_ip[1];
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.server_ip[2];
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.server_ip[3];
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.server_port.datas_map.data0;
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.server_port.datas_map.data1;
}
task_complete_ies = PTL_PACK_SUCCESS;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>
static void frame_func_reply_NB_Upload(void)
{
FrameSetMsgApp(MsgNbUartSend);
g_frame_temp_len = 0;
task_complete_ies = PTL_PACK_SUCCESS;
}
//<2F><>ȡ<EFBFBD>ź<EFBFBD>ֵ
static void frame_func_reply_NB_ReadSignal(void)
{
int i = 0;
static UNION_SIGNAL temp_signal_val;
u8 cell_id_data_frame[CELL_ID_SIZE];
s16 s_temp_data=0;
u8 s_temp_data1 = 0;
u16 s_temp_data2 = 0;
NbiotGetSNR(&s_temp_data);
g_frame_temp_len=0;
if(s_temp_data<0)
{
temp_signal_val.SignalStruct.snr.datas = (-s_temp_data)|0x8000;
}
else
{
temp_signal_val.SignalStruct.snr.datas = s_temp_data;
}
g_frame_temp_send_buf[g_frame_temp_len++] = temp_signal_val.SignalStruct.snr.data_buf[0];
g_frame_temp_send_buf[g_frame_temp_len++] = temp_signal_val.SignalStruct.snr.data_buf[1];
//
NbiotGetECL(&s_temp_data);
if(s_temp_data<0)
{
temp_signal_val.SignalStruct.ecl = (-s_temp_data)|0x8000;
}
else
{
temp_signal_val.SignalStruct.ecl = s_temp_data;
}
g_frame_temp_send_buf[g_frame_temp_len++] = temp_signal_val.SignalStruct.ecl;
g_frame_temp_send_buf[g_frame_temp_len++] = temp_signal_val.SignalStruct.ecl>>8;
//
NbiotGetRSRP(&s_temp_data);
temp_signal_val.SignalStruct.rsrp = -s_temp_data;
g_frame_temp_send_buf[g_frame_temp_len++] = temp_signal_val.SignalStruct.rsrp;
g_frame_temp_send_buf[g_frame_temp_len++] = temp_signal_val.SignalStruct.rsrp>>8;
//
NbiotGetCSQ(&s_temp_data1);
temp_signal_val.SignalStruct.csq = s_temp_data1;
temp_signal_val.SignalStruct.csq = (temp_signal_val.SignalStruct.csq / 10)*16 + (temp_signal_val.SignalStruct.csq%10);
g_frame_temp_send_buf[g_frame_temp_len++] = temp_signal_val.SignalStruct.csq;
//
temp_signal_val.SignalStruct.faile_times = NB_SS_Control_GetPara(NB_UploadFailTimes);
g_frame_temp_send_buf[g_frame_temp_len++] = temp_signal_val.SignalStruct.faile_times;
//
g_frame_temp_send_buf[g_frame_temp_len++] = 0;
//
NbiotGetCell_ID(cell_id_data_frame);
temp_signal_val.SignalStruct.cell_id = 0;
for(i=0;i<CELL_ID_SIZE;i++)
{
if(cell_id_data_frame[i] != 0)
{
temp_signal_val.SignalStruct.cell_id <<= 4;
if(cell_id_data_frame[i] <= '9')
{
temp_signal_val.SignalStruct.cell_id |= cell_id_data_frame[i]-'0';
}
else if((cell_id_data_frame[i] <= 'f')&&(cell_id_data_frame[i] >= 'a'))
{
temp_signal_val.SignalStruct.cell_id |= cell_id_data_frame[i]-'a'+10;
}
else if((cell_id_data_frame[i] <= 'F')&&(cell_id_data_frame[i] >= 'A'))
{
temp_signal_val.SignalStruct.cell_id |= cell_id_data_frame[i]-'A'+10;
}
}
}
g_frame_temp_send_buf[g_frame_temp_len++] = temp_signal_val.SignalStruct.cell_id>>0;
g_frame_temp_send_buf[g_frame_temp_len++] = temp_signal_val.SignalStruct.cell_id>>8;
g_frame_temp_send_buf[g_frame_temp_len++] = temp_signal_val.SignalStruct.cell_id>>16;
g_frame_temp_send_buf[g_frame_temp_len++] = temp_signal_val.SignalStruct.cell_id>>24;
//
NbiotGetEARFCN(&s_temp_data2);//<2F>ϱ<EFBFBD>Ƶ<EFBFBD><C6B5>
temp_signal_val.SignalStruct.report_fre.datas = s_temp_data2;
g_frame_temp_send_buf[g_frame_temp_len++] = temp_signal_val.SignalStruct.report_fre.datas>>8;
g_frame_temp_send_buf[g_frame_temp_len++] = temp_signal_val.SignalStruct.report_fre.datas;
g_frame_temp_len = 15;
task_complete_ies = PTL_PACK_SUCCESS;
}
//<2F><>ȡ<EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>ʼʱ<CABC><EFBFBD><E4A1A2><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
static void frame_func_reply_NB_ReadStartEnd(void)
{
int i;
g_frame_temp_len =0;
for(i=0;i<6;i++)
{
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.report_period_start[i];
}
for(i=0;i<6;i++)
{
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.report_period_end[i];
}
for(i=0;i<2;i++)
{
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.report_step_len.data_buf[i];
}
g_frame_temp_len = 14;
task_complete_ies = PTL_PACK_SUCCESS;
}
//<2F><>ȡ<EFBFBD><C8A1>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
static void frame_func_reply_NB_ReadStepLength(void)
{
g_frame_temp_len =0;
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.report_step_len.data_buf[0];
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.report_step_len.data_buf[1];
g_frame_temp_len = 2;
task_complete_ies = PTL_PACK_SUCCESS;
}
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Ƶ<EFBFBD><C6B5>
static void frame_func_reply_NB_TimeFrequency(void)
{
DateTime date_time;
task_complete_ies = PTL_PACK_FAIL;
g_frame_temp_len =0;
if(*new_message_data_rev_ies == 0x01)//<2F><>ȡʱ<C8A1><CAB1>
{
g_frame_temp_send_buf[g_frame_temp_len++]=0x01;
RtccGetDateTime(&date_time);
g_frame_temp_send_buf[g_frame_temp_len++] = date_time.s.second;
g_frame_temp_send_buf[g_frame_temp_len++] = date_time.s.minute;
g_frame_temp_send_buf[g_frame_temp_len++] = date_time.s.hour;
g_frame_temp_send_buf[g_frame_temp_len++] = date_time.s.day;
g_frame_temp_send_buf[g_frame_temp_len++] = date_time.s.month;
g_frame_temp_send_buf[g_frame_temp_len++] = date_time.s.year;
g_frame_temp_len = 7;
task_complete_ies = PTL_PACK_SUCCESS;
}
else if(*new_message_data_rev_ies == 0x02)
{
g_frame_temp_send_buf[g_frame_temp_len++]=0x02;
u8 temp = NbiotGetNBAND();
u16 band_fre=0;
if(1 == temp)
{
band_fre = 1980;
}
else if(3 == temp)
{
band_fre = 1785;
}
else if(5 == temp)
{
band_fre = 850;
}
else if(8 == temp)
{
band_fre = 900;
}
else if(20 == temp)
{
band_fre = 800;
}
else if(34 == temp)
{
band_fre = 2025;
}
else if(38 == temp)
{
band_fre = 2620;
}
else if(39 == temp)
{
band_fre = 1920;
}
else if(40 == temp)
{
band_fre = 2400;
}
else if(41 == temp)
{
band_fre = 2655;
}
else
{
band_fre = 850;
}
g_frame_temp_send_buf[g_frame_temp_len++] = band_fre&0xFF;
g_frame_temp_send_buf[g_frame_temp_len++] =(band_fre>>8)&0xFF;//Ĭ<><C4AC>Ƶ<EFBFBD><C6B5> 800
g_frame_temp_len = 3;
task_complete_ies = PTL_PACK_SUCCESS;
}
else if(*new_message_data_rev_ies == 0x10)//<2F><>ȡ<EFBFBD>ϱ<EFBFBD>ʱ<EFBFBD><CAB1>
{
g_frame_temp_send_buf[g_frame_temp_len++]=0x01;
SystemGetUploadTime(&date_time);
g_frame_temp_send_buf[g_frame_temp_len++] = date_time.s.second;
g_frame_temp_send_buf[g_frame_temp_len++] = date_time.s.minute;
g_frame_temp_send_buf[g_frame_temp_len++] = date_time.s.hour;
g_frame_temp_send_buf[g_frame_temp_len++] = date_time.s.day;
g_frame_temp_send_buf[g_frame_temp_len++] = date_time.s.month;
g_frame_temp_send_buf[g_frame_temp_len++] = date_time.s.year;
g_frame_temp_len = 7;
task_complete_ies = PTL_PACK_SUCCESS;
}
}
//<2F><>ˮ<EFBFBD><CBAE>ȡ<EFBFBD><C8A1><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD>
static void frame_func_reply_NB_ReadRetryCount(void)
{
g_frame_temp_len=0;
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.report_retry_times;
g_frame_temp_len = 1;
task_complete_ies = PTL_PACK_SUCCESS;
}
//<2F><>ȡ<EFBFBD>ϱ<EFBFBD>Ƶ<EFBFBD><C6B5>
static void frame_func_reply_NB_ReadReportingFrequency(void)
{
g_frame_temp_len = 0;
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.Time_upload_2006.s.type;
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.Time_upload_2006.s.period;
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.Time_upload_2006.s.hour;
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.Time_upload_2006.s.minute;
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.Time_upload_2006.s.second;
task_complete_ies = PTL_PACK_SUCCESS;
}
//<2F><>ȡ<EFBFBD>ܼ<EFBFBD><DCBC>ϱ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static void frame_func_reply_NB_ReadReportStartTime(void)
{
int i;
g_frame_temp_len =0;
for(i=0;i<9;i++)
{
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.report_start_time[i];
}
g_frame_temp_len = 9;
task_complete_ies = PTL_PACK_SUCCESS;
}
//<2F><>ȡAPN
static void frame_func_reply_NB_ReadApn(void)
{
int i;
g_frame_temp_len =0;
for(i=0;i<20;i++)
{
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.apn[1+i];
}
g_frame_temp_len =(Sys_data_object.P1.apn[1]+1);
task_complete_ies = PTL_PACK_SUCCESS;
}
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static void frame_func_reply_NB_UnifiedRead(void)
{
int i=0;
DateTime date_time;
u8 temp_band = NbiotGetNBAND();
RtccGetDateTime(&date_time);
g_frame_temp_len = 0;
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.Time_upload_2006.buf[0];
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.Time_upload_2006.buf[1];
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.Time_upload_2006.buf[2];
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.Time_upload_2006.buf[3];
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.Time_upload_2006.buf[4];
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.server_ip[0];
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.server_ip[1];
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.server_ip[2];
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.server_ip[3];
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.server_port.data_buf[0];
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.server_port.data_buf[1];
for(i=0;i<6;i++)
{
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.report_period_start[i];
}
for(i=0;i<6;i++)
{
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.report_period_end[i];
}
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.report_step_len.data_buf[0];
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.report_step_len.data_buf[1];
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.report_retry_times;
for(i=0;i<9;i++)
{
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.report_start_time[i];
}
for(i=0;i<4;i++)
{
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.high_flow_alarm.data_buf[i];
}
g_frame_temp_send_buf[g_frame_temp_len++] = date_time.s.second;
g_frame_temp_send_buf[g_frame_temp_len++] = date_time.s.minute;
g_frame_temp_send_buf[g_frame_temp_len++] = date_time.s.hour;
g_frame_temp_send_buf[g_frame_temp_len++] = date_time.s.day;
g_frame_temp_send_buf[g_frame_temp_len++] = date_time.s.month;
g_frame_temp_send_buf[g_frame_temp_len++] = date_time.s.year;
if(1 == temp_band)
{
Sys_data_object.P1.report_fre.datas = 1980;
}
else if(3 == temp_band)
{
Sys_data_object.P1.report_fre.datas = 1785;
}
else if(5 == temp_band)
{
Sys_data_object.P1.report_fre.datas = 850;
}
else if(8 == temp_band)
{
Sys_data_object.P1.report_fre.datas = 900;
}
else if(20 == temp_band)
{
Sys_data_object.P1.report_fre.datas = 800;
}
else if(34 == temp_band)
{
Sys_data_object.P1.report_fre.datas = 2025;
}
else if(38 == temp_band)
{
Sys_data_object.P1.report_fre.datas = 2620;
}
else if(39 == temp_band)
{
Sys_data_object.P1.report_fre.datas = 1920;
}
else if(40 == temp_band)
{
Sys_data_object.P1.report_fre.datas = 2400;
}
else if(41 == temp_band)
{
Sys_data_object.P1.report_fre.datas = 2655;
}
else
{
Sys_data_object.P1.report_fre.datas = 850;
}
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.report_fre.data_buf[0];
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.report_fre.data_buf[1];
for(i = 0; i < 19; i++)
{
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.apn[1 + i];
}
g_frame_temp_send_buf[g_frame_temp_len++] = 0;
//g_frame_temp_len = 67;
task_complete_ies = PTL_PACK_SUCCESS;
}
//<2F><>ˮ<EFBFBD><CBAE>ȡIMEI<45><49><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӷ<EFBFBD>ȡICCID2019<31><39>5<EFBFBD><35>16<31><36>
static void frame_func_reply_NB_ReadImei(void)
{
u8 temp_buf1[16];
u8 temp_buf2[16];
u8 temp_iccid_buf[20];
int i;
g_frame_temp_len=0;
NbiotGetIMEI((char*)temp_buf1);
temp_buf2[0] = temp_buf1[0] - 0x30;
for(i=1;i<8;i++)
{
temp_buf2[i] = (temp_buf1[2*i]-0x30)&0x0F;
temp_buf2[i] |= ((temp_buf1[2*i-1]-0x30)<<4)&0xF0;
}
for(i=0;i<8;i++)
{
g_frame_temp_send_buf[g_frame_temp_len++] = temp_buf2[7-i];
}
NbiotGetIMSI((char*)temp_buf1);
temp_buf2[0] = temp_buf1[0] - 0x30;
for(i=1;i<8;i++)
{
temp_buf2[i] = (temp_buf1[2*i]-0x30)&0x0F;
temp_buf2[i] |= ((temp_buf1[2*i-1]-0x30)<<4)&0xF0;
}
for(i=0;i<8;i++)
{
g_frame_temp_send_buf[g_frame_temp_len++] = temp_buf2[7-i];
}
NbiotGetICCID((char*)temp_iccid_buf);
for(i=0;i<20;i++)
{
g_frame_temp_send_buf[g_frame_temp_len++] = temp_iccid_buf[19-i];
}
//g_frame_temp_len = 36;
task_complete_ies = PTL_PACK_SUCCESS;
}
//<2F><>ȡ<EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static void frame_func_reply_NB_ReadRetryTime(void)
{
g_frame_temp_len = 0;
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.Upload_again_interval_time.datas_map.data0;
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.Upload_again_interval_time.datas_map.data1;
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.nb_para_login_ask_times.datas_map.data0;
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.nb_para_login_ask_times.datas_map.data1;
task_complete_ies = PTL_PACK_SUCCESS;
}
//дIP<49>Ͷ˿ں<CBBF>
static void frame_func_s3_NB_WriteIpPort(void)
{
if(TASK_IDLE == EepIfIdle())//<2F><EFBFBD><E6B4A2><EFBFBD>ݵ<EFBFBD>EEPROM
{
int i =0;
g_frame_temp_len = 0;
if(*(new_message_data_rev_ies - 2) == 0x02)//sta=2,UDP<44><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
{
for (i = 0; i < 4; i++)
{
Sys_data_object.P2.server_ip[i] = *(new_message_data_rev_ies +i);
}
Sys_data_object.P2.server_port.data_buf[0] = *(new_message_data_rev_ies +4);
Sys_data_object.P2.server_port.data_buf[1] = *(new_message_data_rev_ies +5);
EepWrite(&Sys_data_object.P2.server_ip[0], EEP_UPDATE_UDP_IP, 6, &s_nb_eep_complete);//<2F><><EFBFBD>浽UDP IP
FrameSetMsgApp(MsgShenYang_UdpIpPortChange);
}
else
{
for (i = 0; i < 4; i++)
{
Sys_data_object.P1.server_ip[i] = *(new_message_data_rev_ies +i);
}
Sys_data_object.P1.server_port.data_buf[0] = *(new_message_data_rev_ies +4);
Sys_data_object.P1.server_port.data_buf[1] = *(new_message_data_rev_ies +5);
EepWrite(&Sys_data_object.P1.server_ip[0], FRAME_NBIot_IP, 6, &s_nb_eep_complete);
FrameSetMsgApp(MsgNbIpPortChange);
}
task_complete_ies = PTL_PACK_SUCCESS;
}
}
//<2F><>ˮͳһ<CDB3><D2BB><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>
static void frame_func_s3_NB_Unified_Setting(void)
{
if(TASK_IDLE == EepIfIdle())//<2F><EFBFBD><E6B4A2><EFBFBD>ݵ<EFBFBD>EEPROM
{
g_frame_temp_len = 0;
//DateTime temp_date_time;
int i=0;
u8* temp_data_p = (new_message_data_rev_ies + 1);
for(i=0;i<5;i++)
{
Sys_data_object.P1.Time_upload_2006.buf[i] = *(temp_data_p++);
}
for(i=0;i<4;i++)
{
Sys_data_object.P1.server_ip[i] = *(temp_data_p++);
}
Sys_data_object.P1.server_port.data_buf[0] = *(temp_data_p++);
Sys_data_object.P1.server_port.data_buf[1] = *(temp_data_p++);
for(i=0;i<6;i++)
{
Sys_data_object.P1.report_period_start[i] = *(temp_data_p++);
}
for(i=0;i<6;i++)
{
Sys_data_object.P1.report_period_end[i] = *(temp_data_p++);
}
Sys_data_object.P1.report_step_len.data_buf[0] = *(temp_data_p++);
Sys_data_object.P1.report_step_len.data_buf[1] = *(temp_data_p++);
Sys_data_object.P1.report_retry_times = *(temp_data_p++);
for(i=0;i<9;i++)
{
Sys_data_object.P1.report_start_time[i] = *(temp_data_p++);
}
for(i=0;i<4;i++)
{
Sys_data_object.P1.high_flow_alarm.data_buf[i] = *(temp_data_p++);
}
for(i=0;i<6;i++)//Ԥ<><D4A4>
{
temp_data_p++;
}
for(i=0;i<4;i++)
{
Sys_data_object.P1.report_fre.data_buf[i] = *(temp_data_p++);
}
for(i=0;i<20;i++)
{
Sys_data_object.P1.apn[i] = *(temp_data_p++);
}
EepWrite(&Sys_data_object.P1.Time_upload_2006.buf[0], FRAME_NBIot_FREQVAL, 67, &s_nb_eep_complete);
task_complete_ies = PTL_PACK_SUCCESS;
}
}
//<2F><>ˮ<EFBFBD><CBAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static void frame_func_s3_NB_SetThreshold(void)
{
if(TASK_IDLE == EepIfIdle())//<2F><EFBFBD><E6B4A2><EFBFBD>ݵ<EFBFBD>EEPROM
{
g_frame_temp_len = 0;
UNION_4U8TOU32 alarm_value;
memcpy(&alarm_value.datas_map.data0, new_message_data_rev_ies, 4);
if(alarm_value.datas >10000)//2018<31><38>12<31><32>29<32><39>14:09:11<31><31><EFBFBD>Ӵ<EFBFBD><D3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޷<EFBFBD><DEB7><EFBFBD>
{
task_complete_ies = PTL_PACK_FAIL;
return;
}
memcpy(&Sys_data_object.P1.high_flow_alarm.datas_map.data0, new_message_data_rev_ies,4);
EepWrite(&Sys_data_object.P1.high_flow_alarm.datas_map.data0, FRAME_NBIot_HIGHFLOW, 4, &s_nb_eep_complete);
FrameSetMsgApp(MsgNbFlowAlarm);
task_complete_ies = PTL_PACK_SUCCESS;
}
}
//<2F><>ˮ<EFBFBD><CBAE><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
static void frame_func_s3_NB_SetStartEnd(void)
{
if(TASK_IDLE == EepIfIdle())//<2F><EFBFBD><E6B4A2><EFBFBD>ݵ<EFBFBD>EEPROM
{
g_frame_temp_len = 0;
UNION_2U8TOU16 temp_fram ;
temp_fram.datas_map.data0 = *(new_message_data_rev_ies + 12);
temp_fram.datas_map.data1 = *(new_message_data_rev_ies + 13);
if(temp_fram.datas >10)
{
task_complete_ies = PTL_PACK_FAIL;
return;
}
memcpy(&Sys_data_object.P1.report_period_start[0],new_message_data_rev_ies,14);
EepWrite(&Sys_data_object.P1.report_period_start[0], FRAME_NBIot_REPORTSTART, 14, &s_nb_eep_complete);
FrameSetMsgApp(MsgNbStartEndChange);
task_complete_ies = PTL_PACK_SUCCESS;
}
}
//<2F><>ˮ<EFBFBD><CBAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
static void frame_func_s3_NB_SetSteplength(void)
{
if(TASK_IDLE == EepIfIdle())//<2F><EFBFBD><E6B4A2><EFBFBD>ݵ<EFBFBD>EEPROM
{
g_frame_temp_len = 0;
UNION_2U8TOU16 temp_fram ;
temp_fram.datas_map.data0 = *(new_message_data_rev_ies + 0);
temp_fram.datas_map.data1 = *(new_message_data_rev_ies + 1);
if(temp_fram.datas >43)
{
task_complete_ies = PTL_PACK_FAIL;
return;
}
memcpy(&Sys_data_object.P1.report_step_len.data_buf[0] ,new_message_data_rev_ies, 2);
EepWrite(&Sys_data_object.P1.report_step_len.data_buf[0], FRAME_NBIot_LENGTH, 2, &s_nb_eep_complete);
FrameSetMsgApp(MsgNbStepLengthChange);
task_complete_ies = PTL_PACK_SUCCESS;
}
}
//<2F><>ˮ<EFBFBD><CBAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD>
static void frame_func_s3_NB_SetRetryCount(void)
{
if(TASK_IDLE == EepIfIdle())//<2F><EFBFBD><E6B4A2><EFBFBD>ݵ<EFBFBD>EEPROM
{
g_frame_temp_len = 0;
memcpy(&Sys_data_object.P1.report_retry_times ,new_message_data_rev_ies,1);
EepWrite(&Sys_data_object.P1.report_retry_times, EEP_RETRY_TIMES_ADDR, 1, &s_nb_eep_complete);
FrameSetMsgApp(MsgNbRetryTimesChange);
task_complete_ies = PTL_PACK_SUCCESS;
}
}
//<2F><>ˮ<EFBFBD><CBAE><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>Ƶ<EFBFBD>ʹ<EFBFBD>Լ<EFBFBD><D4BC>Сʱģʽ<C4A3><CABD><EFBFBD><EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD>ģʽ<C4A3><CABD>
static void frame_func_s3_NB_SetReportingFrequency(void)
{
if(TASK_IDLE == EepIfIdle())//<2F><EFBFBD><E6B4A2><EFBFBD>ݵ<EFBFBD>EEPROM
{
g_frame_temp_len = 0;
memcpy(&Sys_data_object.P1.Time_upload_2006.buf[0] ,new_message_data_rev_ies,5);
EepWrite(&Sys_data_object.P1.Time_upload_2006.buf[0], FRAME_NBIot_FREQVAL, 5, &s_nb_eep_complete);
Frame_Para_Init();
FrameSetMsgApp(MsgNbUploadFreqChange);
task_complete_ies = PTL_PACK_SUCCESS;
}
}
//<2F><>ˮ<EFBFBD><CBAE><EFBFBD><EFBFBD><EFBFBD>ܼ<EFBFBD><DCBC>ϱ<EFBFBD><CFB1><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
static void frame_func_s3_NB_SetReportStartTime(void)
{
if(TASK_IDLE == EepIfIdle())//<2F><EFBFBD><E6B4A2><EFBFBD>ݵ<EFBFBD>EEPROM
{
g_frame_temp_len = 0;
memcpy(&Sys_data_object.P1.report_start_time [0],new_message_data_rev_ies,9);
if((Sys_data_object.P1.report_start_time[2]>Sys_data_object.P1.report_start_time[5]) ||((Sys_data_object.P1.report_start_time[2]==Sys_data_object.P1.report_start_time[5])&& (Sys_data_object.P1.report_start_time[1]>Sys_data_object.P1.report_start_time[4]))
|| ((Sys_data_object.P1.report_start_time[2]==Sys_data_object.P1.report_start_time[5])&& (Sys_data_object.P1.report_start_time[1]==Sys_data_object.P1.report_start_time[4]) &&(Sys_data_object.P1.report_start_time[0]>Sys_data_object.P1.report_start_time[3])))
{
task_complete_ies = PTL_PACK_FAIL;
return;
}
EepWrite(&Sys_data_object.P1.report_start_time [0], FRAME_NBIot_STARTTIME, 9, &s_nb_eep_complete);
Frame_Para_Init();
FrameSetMsgApp(MsgNbIntensiveTime);
task_complete_ies = PTL_PACK_SUCCESS;
}
}
//<2F><><EFBFBD><EFBFBD>APN
static void frame_func_s3_NB_SetApn(void)
{
if(TASK_IDLE == EepIfIdle())
{
g_frame_temp_len = 0;
if((0< *new_message_data_rev_ies) && (*new_message_data_rev_ies <19) )//APN<50><4E><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
{
Sys_data_object.P1.apn[0] = 0x01;
Sys_data_object.P1.apn[1] = *(new_message_data_rev_ies);//apn<70><6E><EFBFBD><EFBFBD>
u8 i_temp = 0;
for(i_temp = 0; i_temp < Sys_data_object.P1.apn[1]; i_temp++)
{
Sys_data_object.P1.apn[2 + i_temp] = *(new_message_data_rev_ies + 1 + i_temp);
}
}
else
{
task_complete_ies = PTL_PACK_FAIL;
return;
}
EepWrite(&Sys_data_object.P1.apn[0], FRAME_NBIot_APN, (Sys_data_object.P1.apn[1]+2), &s_nb_eep_complete);
FrameSetMsgApp(MsgNbApnChange);
task_complete_ies = PTL_PACK_SUCCESS;
}
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>
static void frame_func_s3_NB_SetRetryTime(void)
{
if(TASK_IDLE == EepIfIdle())
{
g_frame_temp_len = 0;
Sys_data_object.P1.Upload_again_interval_time.datas_map.data0 = *(new_message_data_rev_ies + 0);
Sys_data_object.P1.Upload_again_interval_time.datas_map.data1 = *(new_message_data_rev_ies + 1);
Sys_data_object.P1.nb_para_login_ask_times.datas_map.data0 = *(new_message_data_rev_ies + 2);
Sys_data_object.P1.nb_para_login_ask_times.datas_map.data1 = *(new_message_data_rev_ies + 3);
EepWrite(&Sys_data_object.P1.Upload_again_interval_time.datas_map.data0, EEP_FRAME_NB_PARA_ADDR, 4, &s_nb_eep_complete);
Frame_Para_Init();
task_complete_ies = PTL_PACK_SUCCESS;
}
}
//<2F><>֡<EFBFBD>ϱ<EFBFBD>Ӧ<EFBFBD><D3A6>
static void frame_func_reply_NB_AckUploadShort(void)
{
g_frame_temp_len =0;
FrameSetMsgApp(MsgNbUplaod_AckOk);
task_complete_ies = PTL_PACK_FAIL;//<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>Ӧ<EFBFBD><D3A6>֡,<2C><><EFBFBD>ش<EFBFBD><D8B4><EFBFBD>,<2C><><EFBFBD>Ʋ<EFBFBD>Ӧ<EFBFBD><D3A6>
}
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
static void frame_func_reply_NB_ReadThreshole(void)
{
int i = 0;
g_frame_temp_len =0;
for(i=0;i<4;i++)
{
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.high_flow_alarm.data_buf[i];
}
g_frame_temp_len = 4;
task_complete_ies = PTL_PACK_SUCCESS;
}
#endif
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ:<3A><>ȡ<EFBFBD><C8A1><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>
static void frame_func_reply_NB_read_battery(void)
{
u16 temp_u32_data;
g_frame_temp_len = 0;
//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.run_information_object.total_use_sum_times_sec.to_uint8[0];
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.run_information_object.total_use_sum_times_sec.to_uint8[1];
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.run_information_object.total_use_sum_times_sec.to_uint8[2];
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.run_information_object.total_use_sum_times_sec.to_uint8[3];
//<2F><><EFBFBD><EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.run_information_object.bat_surplus.to_uint8[0];
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.run_information_object.bat_surplus.to_uint8[1];
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.run_information_object.bat_surplus.to_uint8[2];
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.run_information_object.bat_surplus.to_uint8[3];
//<2F><><EFBFBD><EFBFBD><EFBFBD>ۼƹ<DBBC><C6B9><EFBFBD>ʱ<EFBFBD><CAB1>
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.run_information_object.use_sum_times_sec.to_uint8[0];
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.run_information_object.use_sum_times_sec.to_uint8[1];
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.run_information_object.use_sum_times_sec.to_uint8[2];
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.run_information_object.use_sum_times_sec.to_uint8[3];
//NB<4E>ۼƹ<DBBC><C6B9><EFBFBD>ʱ<EFBFBD><CAB1>
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.run_information_object.nb_use_sum_times_sec.to_uint8[0];
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.run_information_object.nb_use_sum_times_sec.to_uint8[1];
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.run_information_object.nb_use_sum_times_sec.to_uint8[2];
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.run_information_object.nb_use_sum_times_sec.to_uint8[3];
//NB<4E>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.run_information_object.nb_upload_happen_num&0xFF;
g_frame_temp_send_buf[g_frame_temp_len++] = (Sys_data_object.P1.run_information_object.nb_upload_happen_num>>8)&0xFF;
//<2F><><EFBFBD>Ź<EFBFBD><C5B9><EFBFBD>ʱ<EFBFBD><CAB1>
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.run_information_object.valve_use_sum_times_sec&0xFF;
g_frame_temp_send_buf[g_frame_temp_len++] = (Sys_data_object.P1.run_information_object.valve_use_sum_times_sec>>8)&0xFF;
//ʣ<><EFBFBD>ĺ<EFBFBD>ʣ<EFBFBD><CAA3>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ֵ
temp_u32_data = Sys_data_object.P1.run_information_object.ee_remain_para_energy_life*1000;
g_frame_temp_send_buf[g_frame_temp_len++] = temp_u32_data&0xFF;
g_frame_temp_send_buf[g_frame_temp_len++] = (temp_u32_data>>8)&0xFF;
//<2F><><EFBFBD>ص<EFBFBD>ѹ
g_frame_temp_send_buf[g_frame_temp_len++] = PowerCheckValueSys()&0xFF;
g_frame_temp_send_buf[g_frame_temp_len++] = ( PowerCheckValueSys()>>8)&0xFF;
task_complete_ies = PTL_PACK_SUCCESS;
}
////<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>
static void frame_func_reply_NB_read_batteryinit(void)
{
g_frame_temp_len = 0;
//<2F><><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>
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><>ֵ
task_complete_ies = PTL_PACK_SUCCESS;
}
//<2F>¹<EFBFBD>Լ<EFBFBD><D4BC><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD>:дUDP IP<49>Ͷ˿ں<CBBF>
static void frame_func_s3_NB_WriteUdpIpPort(void)
{
if(TASK_IDLE == EepIfIdle())//<2F><EFBFBD><E6B4A2><EFBFBD>ݵ<EFBFBD>EEPROM
{
g_frame_temp_len = 0;
Sys_data_object.P2.server_ip[0] = *(new_message_data_rev_ies+0);
Sys_data_object.P2.server_ip[1] = *(new_message_data_rev_ies+1);
Sys_data_object.P2.server_ip[2] = *(new_message_data_rev_ies+2);
Sys_data_object.P2.server_ip[3] = *(new_message_data_rev_ies+3);
Sys_data_object.P2.server_port.data_buf[0] = *(new_message_data_rev_ies+4);
Sys_data_object.P2.server_port.data_buf[1] = *(new_message_data_rev_ies+5);
EepWrite(&Sys_data_object.P2.server_ip[0], EEP_UPDATE_UDP_IP, 6, &s_nb_eep_complete);//<2F><><EFBFBD>浽UDP IP
FrameSetMsgApp(MsgShenYang_UdpIpPortChange);
task_complete_ies = PTL_PACK_SUCCESS;
}
}
//<2F>¹<EFBFBD>Լ<EFBFBD><D4BC><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD>:<3A><>ȡUDP IP<49><50><EFBFBD>˿ں<CBBF>
static void frame_func_reply_NB_ReadUdpIpPort(void)
{
g_frame_temp_len = 0;
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P2.server_ip[0];
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P2.server_ip[1];
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P2.server_ip[2];
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P2.server_ip[3];
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P2.server_port.datas_map.data0;
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P2.server_port.datas_map.data1;
task_complete_ies = PTL_PACK_SUCCESS;
}
//<2F>ն<EFBFBD><D5B6><EFBFBD><EFBFBD><EFBFBD>
static void frame_func_reply_NB_TernalRestart(void)
{
FrameSetMsgApp(BootloaderMsg);
if(01 == LcdCheckStateApp()) //<2F>춨״̬
{
FrameSetMsgApp(OutVerificationMsg); //<2F><><EFBFBD>춨msg
}
NVIC_SystemReset(); //<2F><><EFBFBD><EFBFBD>
g_frame_temp_len = 0;
task_complete_ies = PTL_PACK_SUCCESS;
}
//<2F><><EFBFBD><EFBFBD>Ϊȫ<CEAA><C8AB>״̬
static void frame_func_reply_NB_SetLcdDisplay(void)
{
FrameSetMsgApp(LcdDisplayAllMsg);//
g_frame_temp_len = 0;
task_complete_ies = PTL_PACK_SUCCESS;
}
//<2F>ط<EFBFBD>
static void frame_func_reply_NB_ValveControl(void)
{
g_frame_temp_len =0;
#if defined(VALVE)
u8 fram_valve_sta = *new_message_data_rev_ies;
g_frame_temp_send_buf[g_frame_temp_len++] = 0;
g_frame_temp_send_buf[g_frame_temp_len++] = 0;
if(0x55 == fram_valve_sta)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
ValveDealAppStart(VALVE_STATE_OPEN);
g_frame_temp_send_buf[0] = 0x10;
}
else if(0x99 == fram_valve_sta) //Ӧ<><D3A6><EFBFBD>ط<EFBFBD>
{
ValveDealAppStart(VALVE_STATE_CLOSE_EMERGENCY);
g_frame_temp_send_buf[0] = 0x20;
}
else if(0xBB == fram_valve_sta) //<2F><>ͨ<EFBFBD>ط<EFBFBD>
{
ValveDealAppStart(VALVE_STATE_CLOSE);
g_frame_temp_send_buf[0] = 0x20;
}
else if(0xCC== fram_valve_sta) //Ȩ<>޹ط<DEB9>
{
ValveDealAppStart(VALVE_STATE_CLOSE_LOCK);
g_frame_temp_send_buf[0] = 0x20;
}
else
{
task_complete_ies = PTL_PACK_FAIL;
}
g_frame_temp_len = 2;
task_complete_ies = PTL_PACK_SUCCESS;
# else
task_complete_ies = PTL_PACK_FAIL;
#endif
}
//<2F><>ȡ<EFBFBD><C8A1>ͨ<EFBFBD><CDA8>Կ
static void frame_func_reply_NB_ReadCommonKey(void)
{
int i;
g_frame_temp_len =0;
for(i=0;i<16;i++)
{
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.key[i];
}
g_frame_temp_len = 16;
task_complete_ies = PTL_PACK_SUCCESS;
}
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
static void frame_func_reply_NB_ReadMac(void)
{
int i;
g_frame_temp_len =0;
for(i=0;i<7;i++)
{
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.mac_addr[i];
}
//g_frame_temp_len = 7;
task_complete_ies = PTL_PACK_SUCCESS;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>³<EFBFBD>ֵ
static void frame_func_reply_NB_WriteInitValue(void)
{
g_frame_temp_len=0;
if (0x01 == Sys_data_object.P1.start_using_flg) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
task_complete_ies = PTL_PACK_FAIL;
return;
}
FrameSetMsgApp(InitialDataMsg); //<2F>ۼ<EFBFBD><DBBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2019<31><39>7<EFBFBD><37>8<EFBFBD><38>
UNION_4U8TOU32 tmp_datas_buf1,tmp_datas_buf2;
fram_tools_writeU32ByBuf(tmp_datas_buf1.data_buf, new_message_data_rev_ies, 0);
fram_tools_writeU32ByBuf(tmp_datas_buf2.data_buf, (new_message_data_rev_ies + 5), 0);
FrameSetMsgApp(MsgBLE_AdvChange);//<2F>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E3B2A5>Ϣ
Gp30InitDataApp(tmp_datas_buf1.datas,tmp_datas_buf2.datas);
task_complete_ies = PTL_PACK_SUCCESS;
}
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B1BE>
static void frame_func_reply_NB_ReadSwVersion(void)
{
g_frame_temp_len=0;
g_frame_temp_send_buf[g_frame_temp_len++] = (PROGRAME_VERSION>>24)&0xFF;
g_frame_temp_send_buf[g_frame_temp_len++] = (PROGRAME_VERSION>>16)&0xFF;
g_frame_temp_send_buf[g_frame_temp_len++] = (PROGRAME_VERSION>>8)&0xFF;
g_frame_temp_send_buf[g_frame_temp_len++] = (PROGRAME_VERSION>>0)&0xFF;
task_complete_ies = PTL_PACK_SUCCESS;
}
//<2F>˳<EFBFBD><CBB3>춨״̬
static void frame_func_reply_NB_OutVerificationState(void)
{
g_frame_temp_len=0;
if(01 == LcdCheckStateApp()) //<2F>춨״̬
{
FrameSetMsgApp(OutVerificationMsg); //<2F><><EFBFBD>춨msg
}
task_complete_ies = PTL_PACK_SUCCESS;
}
//<2F><><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static void frame_func_reply_NB_ReadData(void)
{
int i=0;
static MET_STATE temp_state; //״̬<D7B4><CCAC>
UNION_4U8TOU32 tmp_datas_buf;
UNION_FLOAT_STORAGE tmp_float_datas_buf1,tmp_float_datas_buf2;
DateTime tmp_date_buf;
g_frame_temp_len=0;
/*<2A><>Ӧ<EFBFBD><D3A6>*/
tmp_float_datas_buf1.float_storage_format.datas = Gp30CheckDataApp(GP30_APP_TOTAL_FLOW);
tmp_datas_buf.datas = (u32) tmp_float_datas_buf1.float_datas;
tmp_datas_buf.datas = HexToBcd32(tmp_datas_buf.datas);
for(i=0;i<4;i++)
{
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_datas_buf.data_buf[i];
}
g_frame_temp_send_buf[g_frame_temp_len++] = 0x2C;
tmp_float_datas_buf2.float_storage_format.datas = Gp30CheckDataApp(GP30_APP_TOTAL_FLOW_REVERSE);
tmp_datas_buf.datas = (u32) tmp_float_datas_buf2.float_datas;
tmp_datas_buf.datas = HexToBcd32(tmp_datas_buf.datas);
for(i=0;i<4;i++)
{
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_datas_buf.data_buf[i];
}
g_frame_temp_send_buf[g_frame_temp_len++] = 0x2C;
RtccGetDateTime(&tmp_date_buf);
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_date_buf.s.day; //<2F><>
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_date_buf.s.hour; //ʱ
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_date_buf.s.minute; //<2F><>
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_date_buf.s.second; //<2F><>
FrameGetByte();
g_frame_temp_send_buf[g_frame_temp_len++] = temp_state.stat0;
g_frame_temp_send_buf[g_frame_temp_len++] = temp_state.stat1;
g_frame_temp_send_buf[g_frame_temp_len++] = temp_state.stat2;
g_frame_temp_send_buf[g_frame_temp_len++] = temp_state.stat3;
g_frame_temp_send_buf[g_frame_temp_len++] = temp_state.stat4;
//g_frame_temp_len = 19;
task_complete_ies = PTL_PACK_SUCCESS;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
static void frame_func_reply_NB_ReadSerialnum(void)
{
g_frame_temp_len = 0;
task_complete_ies = PTL_PACK_SUCCESS;;
}
//Уʱ
static void frame_func_reply_NB_CalibrateTime(void)
{
DateTime tmp_data_time_buf;
g_frame_temp_len = 0;
tmp_data_time_buf.s.year = *(new_message_data_rev_ies + 2);
tmp_data_time_buf.s.month = *(new_message_data_rev_ies + 3);
tmp_data_time_buf.s.day = *(new_message_data_rev_ies + 4);
tmp_data_time_buf.s.hour = *(new_message_data_rev_ies + 5);
tmp_data_time_buf.s.minute =*(new_message_data_rev_ies + 6);
tmp_data_time_buf.s.second =*(new_message_data_rev_ies + 7);
RtccSetDateTime(&tmp_data_time_buf);
RtccClearError();
PowerUnSleepClearSumSys(); //<2F><><EFBFBD>߹<EFBFBD><DFB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4B2BB><EFBFBD>ߵĴ<DFB5><C4B4><EFBFBD> 2015-7-15 <20><><EFBFBD>ӵĽӿڡ<D3BF><DAA1><EFBFBD><EFBFBD><EFBFBD>
task_complete_ies = PTL_PACK_SUCCESS;
}
//<2F><>ͨѶ<CDA8><D1B6>ַ
static void frame_func_reply_NB_ReadAddr(void)
{
g_frame_temp_len = 0;
task_complete_ies = PTL_PACK_SUCCESS;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static void frame_func_reply_NB_ClearMeterData(void)
{
static u8 s_clear_history_index=0;
switch(up_deal_stat_ies)
{
case UP_DEAL_S0:
{
if (0x01 == Sys_data_object.P1.start_using_flg) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
task_complete_ies = PTL_PACK_FAIL;
return;
}
g_frame_temp_len =0;
up_deal_stat_ies = UP_DEAL_S1;
}
break;
case UP_DEAL_S1://<2F><><EFBFBD>ۼƹ<DBBC><C6B9><EFBFBD>ʱ<EFBFBD><CAB1>
{
if (EepIfIdle())
{
for(int i=0;i<256;i++)
{
g_frame_temp_send_buf[i]=0xFF;
}
s_clear_history_index = 0;
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>ó<EFBFBD><C3B3><EFBFBD>ʱ<EFBFBD><CAB1>
EepWrite(Sys_data_object.ee_data.byte, EE_FIRST_USE_ADDR, sizeof (RTCC_EE_DATA), &s_nb_eep_complete);
up_deal_stat_ies = UP_DEAL_S2;
}
}
break;
case UP_DEAL_S2://<2F><><EFBFBD><EFBFBD>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD>
{
if (EepIfIdle())
{
EepWrite(g_frame_temp_send_buf, FRAME_NBIot_HISTORY_READ_ADD + s_clear_history_index*256, 256, &s_nb_eep_complete);
up_deal_stat_ies = UP_DEAL_S3;
}
}
break;
case UP_DEAL_S3:
{
if (EepIfIdle())
{
s_clear_history_index++;
if (s_clear_history_index >= 96 )//0x2000~0x7FFF
{
SaveNewSoe(SOE_SY_CURRENT_CLEAR,SOE_REMARK_NOR);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݼ<EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
FrameSetMsgApp(ClearRealtimeDataMsg);//<2F><>ʵʱ<CAB5><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
FrameSetMsgApp(Msg_ClearHisOther);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݸ<EFBFBD><DDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>Ϣ
up_deal_stat_ies = UP_DEAL_S0;
task_complete_ies = PTL_PACK_SUCCESS;
}
else
{
up_deal_stat_ies = UP_DEAL_S2;
}
}
break;
}
default:
{
up_deal_stat_ies = UP_DEAL_S0;
task_complete_ies = PTL_PACK_FAIL;
}
break;
}
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>
static void frame_func_reply_NB_ReadFlowCoefficient(void)
{
g_frame_temp_len = 0;
if(LOW_TYPE==*new_message_data_rev_ies)
{
memcpy(&g_frame_temp_send_buf[0], &(cal_flow_coefficient[0].datas_map.data0),24);
}
else if(MIDDLE_TYPE==*new_message_data_rev_ies)
{
memcpy(&g_frame_temp_send_buf[0], &(cal_flow_coefficient[6].datas_map.data0),24);
}
else if(LARGE_TYPE==*new_message_data_rev_ies)
{
memcpy(&g_frame_temp_send_buf[0], &(cal_flow_coefficient[12].datas_map.data0),24);
}
g_frame_temp_len = 24;
task_complete_ies = PTL_PACK_SUCCESS;
}
//<2F><><EFBFBD><EFBFBD>Ϊ<EFBFBD>춨״̬
static void frame_func_reply_NB_SetVerification(void)
{
g_frame_temp_len=0;
if (0 == Sys_data_object.P1.enable_verification_function)
{
task_complete_ies = PTL_PACK_FAIL;
return;
}
Sys_data_object.P3.LCD_NoTestFlag = 0x0;
FrameSetMsgApp(SetVerificationMsg);
FrameClearMsgApp(MsgCaliberate);//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>У׼У׼<D0A3><D7BC>־
task_complete_ies = PTL_PACK_SUCCESS;
}
//<2F><>װ<EFBFBD><D7B0><EFBFBD>춨״̬
static void frame_func_reply_TOOL_SetVerification(void)
{
g_frame_temp_len=0;
if (0 == Sys_data_object.P1.enable_verification_function)
{
task_complete_ies = PTL_PACK_FAIL;
return;
}
Sys_data_object.P3.LCD_NoTestFlag = 0x55;
FrameSetMsgApp(SetVerificationMsg);
FrameClearMsgApp(MsgCaliberate);//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>У׼У׼<D0A3><D7BC>־
task_complete_ies = PTL_PACK_SUCCESS;
}
//<2F><><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>
static void frame_func_reply_NB_ReadTemperatureCoefficient(void)
{
int i;
UNION_4U8TOU32 temp_4U8toU32_data;
g_frame_temp_len=0;
temp_4U8toU32_data.datas = FrameCheckParaApp(FramePara_Tc0);
for(i=0;i<4;i++)
{
g_frame_temp_send_buf[g_frame_temp_len++] = temp_4U8toU32_data.data_buf[i];
}
temp_4U8toU32_data.datas = FrameCheckParaApp(FramePara_Tc1);
for(i=0;i<4;i++)
{
g_frame_temp_send_buf[g_frame_temp_len++] = temp_4U8toU32_data.data_buf[i];
}
task_complete_ies = PTL_PACK_SUCCESS;
}
//<2F><><EFBFBD><EFBFBD><ECB6A8><EFBFBD><EFBFBD>
static void frame_func_reply_NB_ReadVerificationData(void)
{
int i;
static MET_STATE temp_state; //״̬<D7B4><CCAC>
static DateTime tmp_time_buf;
UNION_4U8TOU32 tmp_datas_buf;
UNION_FLOAT_STORAGE tmp_float_datas_buf;
float tempTempratureFlag;
g_frame_temp_len=0;
if(01 != LcdCheckStateApp()) //<2F>Ǽ춨״̬
{
task_complete_ies = PTL_PACK_FAIL;
return;
}
//<2F><EFBFBD>
if(TRUE==Check_Start_STOP_Filter_Flag())//<2F><>ȡstart-stop<6F><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD><C2B6>˲<EFBFBD><CBB2><EFBFBD>־
{
Clear_Start_STOP_Filter_Flag();//<2F><><EFBFBD><EFBFBD>start-stop<6F><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD><C2B6>˲<EFBFBD><CBB2><EFBFBD>־
tempTempratureFlag = Check_Temperature_Parameter();//<2F><><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><CBB2>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD><C2B6><EFBFBD><EFBFBD><EFBFBD>
}
else
{
tempTempratureFlag = TempCheckValueApp();//<2F><>ȡʵʱ<CAB5><EFBFBD>
}
if(tempTempratureFlag < 0)
{
tempTempratureFlag = -tempTempratureFlag;
tmp_datas_buf.datas = HexToBcd32((u32)(tempTempratureFlag*100));
tmp_datas_buf.datas|= 0x800000;
}
else
{
tmp_datas_buf.datas = HexToBcd32((u32)(tempTempratureFlag*100));
tmp_datas_buf.datas &= 0x7FFFFF;
}
for(i=0;i<3;i++)
{
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_datas_buf.data_buf[i];
}
//<2F>ۼ<EFBFBD><DBBC><EFBFBD><EFBFBD><EFBFBD>
tmp_float_datas_buf.float_storage_format.datas = Gp30CheckTestDataApp(GP30_APP_TOTAL_FLOW); //<2F>ۼ<EFBFBD><DBBC><EFBFBD><EFBFBD><EFBFBD>//BCD
tmp_datas_buf.datas = (u32) (tmp_float_datas_buf.float_datas);
tmp_datas_buf.datas = HexToBcd32(tmp_datas_buf.datas);
for(i=0;i<4;i++)
{
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_datas_buf.data_buf[i];
}
g_frame_temp_send_buf[g_frame_temp_len++] = 0x2C; //m?
//˲ʱ<CBB2><CAB1><EFBFBD><EFBFBD>
tmp_datas_buf.datas = Gp30CheckTestDataApp(GP30_APP_INS_FLOW); //˲ʱ<CBB2><CAB1><EFBFBD><EFBFBD>(<28><>λС<CEBB><D0A1><EFBFBD><EFBFBD><EFBFBD>Ŵ<EFBFBD>100000<30><30>)//BCD
tmp_datas_buf.datas = Gp30DataToBcd(tmp_datas_buf.datas, 100);
for(i=0;i<4;i++)
{
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_datas_buf.data_buf[i];
}
g_frame_temp_send_buf[g_frame_temp_len++] = 0x35; //m?/h
//up<75><70><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
tmp_datas_buf.datas = Gp30CheckTestDataApp(GP30_APP_TOF);//up<75><70><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ȡ
for(i=0;i<4;i++)
{
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_datas_buf.data_buf[i];
}
//Magnify 100000 times<65><73>m3/h<><68><EFBFBD><EFBFBD>Real-time instantaneous flow
tmp_datas_buf.datas = Gp30CheckTestDataApp(GP30_APP_INS_FLOW_LCD);
tmp_datas_buf.datas = Gp30DataToBcd(tmp_datas_buf.datas, 100);
for(i=0;i<4;i++)
{
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_datas_buf.data_buf[i];
}
//tof
tmp_datas_buf.datas = Gp30CheckTestDataApp(GP30_APP_DIFF); //ʱ<><CAB1><EFBFBD><EFBFBD>
for(i=0;i<4;i++)
{
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_datas_buf.data_buf[i];
}
////<2F>ۼƹ<DBBC><C6B9><EFBFBD>ʱ<EFBFBD><CAB1>//BCD
tmp_datas_buf.datas = RtccGetWorkHourApp();
tmp_datas_buf.datas = HexToBcd32(tmp_datas_buf.datas);
for(i=0;i<3;i++)
{
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_datas_buf.data_buf[i];
}
//ʵʱʱ<CAB1><CAB1>
RtccGetDateTime(&tmp_time_buf);
g_frame_temp_send_buf[g_frame_temp_len++] = 0x20;
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_time_buf.s.year;
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_time_buf.s.month;
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_time_buf.s.day;
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_time_buf.s.hour;
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_time_buf.s.minute;
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_time_buf.s.second;
//״̬<D7B4><CCAC>
temp_state = FrameGetByte();
g_frame_temp_send_buf[g_frame_temp_len++] = temp_state.stat0;
g_frame_temp_send_buf[g_frame_temp_len++] = temp_state.stat1;
g_frame_temp_send_buf[g_frame_temp_len++] = temp_state.stat2;
g_frame_temp_send_buf[g_frame_temp_len++] = temp_state.stat3;
g_frame_temp_send_buf[g_frame_temp_len++] = temp_state.stat4;
//************************<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:15<31>ֽ<EFBFBD>***********************/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>T0-T2<54><32>T2<54><32>:3<>ֽ<EFBFBD>
//<2F><EFBFBD>T0-T2<54><32>T2<54><32>:3<>ֽ<EFBFBD>
#if WENDU_FANSUAN_OPEN
tempTempratureFlag = TempCheckValueApp();//<2F><><EFBFBD><EFBFBD>ʵʱ<CAB5>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if(tempTempratureFlag < 0)
{
tempTempratureFlag = -tempTempratureFlag;
tmp_datas_buf.datas = HexToBcd32((u32)(tempTempratureFlag*100));
tmp_datas_buf.datas|= 0x800000;
}
else
{
tmp_datas_buf.datas = HexToBcd32((u32)(tempTempratureFlag*100));
tmp_datas_buf.datas &= 0x7FFFFF;
}
for(i=0;i<3;i++)
{
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_datas_buf.data_buf[i];
}
tmp_datas_buf.datas = Gp30CheckDataApp(11); //TOF_UP<55><50><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_datas_buf.datas_map.data0;
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_datas_buf.datas_map.data1;
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_datas_buf.datas_map.data2;
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_datas_buf.datas_map.data3;
tmp_datas_buf.datas = Gp30CheckDataApp(12);//TOF_DOWN<57><4E><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_datas_buf.datas_map.data0;
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_datas_buf.datas_map.data1;
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_datas_buf.datas_map.data2;
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_datas_buf.datas_map.data3;
#else//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>д0
for(i=0;i<3;i++)
{
g_frame_temp_send_buf[g_frame_temp_len++] = 0;
}
//up amplitude(V1):4<>ֽ<EFBFBD>
tmp_datas_buf.datas = Gp30CheckTestDataApp(GP30_APP_PEAK_UP);
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_datas_buf.datas_map.data0;
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_datas_buf.datas_map.data1;
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_datas_buf.datas_map.data2;
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_datas_buf.datas_map.data3;
//down amplitude(V2):4<>ֽ<EFBFBD>
tmp_datas_buf.datas = Gp30CheckTestDataApp(GP30_APP_PEAK_DOWN);
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_datas_buf.datas_map.data0;
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_datas_buf.datas_map.data1;
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_datas_buf.datas_map.data2;
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_datas_buf.datas_map.data3;
#endif
//Ԥ<><D4A4>:4<>ֽ<EFBFBD>
tmp_datas_buf.datas = Gp30CheckTestDataApp(GP30_APP_DOWN);//down <20>ĵ<EFBFBD><C4B5><EFBFBD>ʱ<EFBFBD><CAB1>
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_datas_buf.datas_map.data0;
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_datas_buf.datas_map.data1;
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_datas_buf.datas_map.data2;
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_datas_buf.datas_map.data3;
//g_frame_temp_len = 55;
task_complete_ies = PTL_PACK_SUCCESS;
}
//<2F><><EFBFBD><EFBFBD><ECB6A8><EFBFBD><EFBFBD>
static void frame_func_reply_TOOL_ReadVerificationData(void)
{
int i;
UNION_FLOAT_STORAGE tmp_float_datas_buf;
g_frame_temp_len=0;
//<2F>ۼ<EFBFBD><DBBC><EFBFBD><EFBFBD><EFBFBD>
tmp_float_datas_buf.float_storage_format.datas = Gp30CheckTestDataApp(GP30_APP_TOTAL_FLOW); //<2F>ۼ<EFBFBD><DBBC><EFBFBD><EFBFBD><EFBFBD>//BCD
for(i=0;i<4;i++)
{
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_float_datas_buf.float_storage_format.data_buf[i];
}
//<2F><><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
for(i=0;i<4;i++)
{
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_float_datas_buf.float_storage_format.data_buf[i];
}
task_complete_ies = PTL_PACK_SUCCESS;
}
//<2F><>˲ʱ<CBB2><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static void frame_func_reply_NB_ReadInstantFlowAndTemperature(void)
{
MET_STATE temp_state; //״̬<D7B4><CCAC>
static DateTime tmp_time_buf;
UNION_4U8TOU32 tmp_datas_buf;
UNION_FLOAT_STORAGE tmp_float_datas_buf;
g_frame_temp_len=0;
tmp_float_datas_buf.float_storage_format.datas = Gp30CheckDataApp(GP30_APP_TOTAL_FLOW); //<2F><>ǰ<EFBFBD>ۻ<EFBFBD><DBBB><EFBFBD><EFBFBD><EFBFBD>
tmp_datas_buf.datas = (u32) tmp_float_datas_buf.float_datas;
tmp_datas_buf.datas = HexToBcd32(tmp_datas_buf.datas);
fram_tools_writeU32ByBuf(&g_frame_temp_send_buf[g_frame_temp_len], tmp_datas_buf.data_buf, 0);
g_frame_temp_len+=4;
g_frame_temp_send_buf[g_frame_temp_len++] = 0x2C;//m3
tmp_datas_buf.datas = Gp30CheckDataApp(GP30_APP_INS_FLOW); //˲ʱ<CBB2><CAB1><EFBFBD><EFBFBD>(<28><>λС<CEBB><D0A1><EFBFBD><EFBFBD><EFBFBD>Ŵ<EFBFBD>100000<30><30>)//BCD
tmp_datas_buf.datas = Gp30DataToBcd(tmp_datas_buf.datas, 100);
fram_tools_writeU32ByBuf(&g_frame_temp_send_buf[5], tmp_datas_buf.data_buf, 0);
g_frame_temp_len+=4;
g_frame_temp_send_buf[g_frame_temp_len++] = 0x35;//m3/h
float tmep = TempCheckValueApp(); //
if(tmep <0)
{
tmp_datas_buf.datas = (u32)(tmep*(-100));
tmp_datas_buf.datas &= 0x0FFFF;
tmp_datas_buf.datas |= 0x80000;
}
else
{
tmp_datas_buf.datas = (u32)(tmep*(100));
tmp_datas_buf.datas &= 0x7FFFF;
}
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_datas_buf.datas_map.data0;
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_datas_buf.datas_map.data1;
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_datas_buf.datas_map.data2;
RtccGetDateTime(&tmp_time_buf);
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_time_buf.s.day; //<2F><>
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_time_buf.s.hour; //ʱ
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_time_buf.s.minute; //<2F><>
g_frame_temp_send_buf[g_frame_temp_len++] = tmp_time_buf.s.second; //<2F><>
temp_state = FrameGetByte();
g_frame_temp_send_buf[g_frame_temp_len++] = temp_state.stat0;
g_frame_temp_send_buf[g_frame_temp_len++] = temp_state.stat1;
g_frame_temp_send_buf[g_frame_temp_len++] = temp_state.stat2;
g_frame_temp_send_buf[g_frame_temp_len++] = temp_state.stat3;
g_frame_temp_send_buf[g_frame_temp_len++] = temp_state.stat4;
//g_frame_temp_len = 22;
task_complete_ies = PTL_PACK_SUCCESS;
}
//<2F><><EFBFBD><EFBFBD>ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>
static void frame_func_reply_NB_StartOrStopTest(void)
{
g_frame_temp_len = 0;
if(01 != LcdCheckStateApp())
{
task_complete_ies = PTL_PACK_FAIL;
return;
}
#if WENDU_FANSUAN_OPEN
FrameClearMsgApp(MsgCaliberate);//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>У׼У׼<D0A3><D7BC>־
GP30_tof_buchang_filter(NOT_ALLOW_CALIBREATE);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ЧԤ<D0A7><D4A4>NB<4E><42>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD><C2B1><EFBFBD>У׼
#endif
if(0x01 == *new_message_data_rev_ies) //start
{
Gp30StartMeasureApp(1);
}
else if(0x00 == *new_message_data_rev_ies) //stop
{
Gp30StartMeasureApp(0);
}
g_frame_temp_send_buf[g_frame_temp_len++] = *new_message_data_rev_ies;
task_complete_ies = PTL_PACK_SUCCESS;
}
//RTCУ׼
static void frame_func_reply_NB_RtcCalibtation(void)
{
g_frame_temp_len = 0;
if(0x01 == *new_message_data_rev_ies)
{
FrameSetMsgApp(CalibrateRtcMsg);//<2F><>RTCУ׼msg
}
g_frame_temp_send_buf[g_frame_temp_len++] = *new_message_data_rev_ies;
g_frame_temp_send_buf[g_frame_temp_len++] = 0; //sign + || -<2D><>0<EFBFBD><30> 1<><31>
g_frame_temp_send_buf[g_frame_temp_len++] = 200;//data У׼ֵ
task_complete_ies = PTL_PACK_SUCCESS;
}
//<2F><><EFBFBD>Ƶ͹<C6B5><CDB9>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD>Թ<EFBFBD>Լ<EFBFBD><D4BC>
static void frame_func_reply_NB_EnterLowPower(void)
{
g_frame_temp_len =0;
if(0x01 == ((*new_message_data_rev_ies) & 0x01)) //<2F><><EFBFBD>Ƶ͹<C6B5><CDB9><EFBFBD>
{
if (0x01 == Sys_data_object.P1.start_using_flg) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
task_complete_ies = PTL_PACK_FAIL;
return;
}
FrameSetMsgApp(LowPowerMsg);//s_struct_msg.MsgStruct.low_power_msg = 1; //<2F>ױ<EFBFBD><D7B1>Ƶ͹<C6B5><CDB9><EFBFBD>msg
if(01 == LcdCheckStateApp()) //<2F>춨״̬
{
FrameSetMsgApp(OutVerificationMsg);//s_struct_msg.MsgStruct.out_verification_msg = 1; //<2F><><EFBFBD>춨msg
}
}
task_complete_ies = PTL_PACK_SUCCESS;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static void frame_func_reply_NB_RdFunctionCfg(void)
{
int i=0;
g_frame_temp_len =0;
for(i = 0; i<32 ;i++)
{
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.func_cfg_bytes[i];
}
task_complete_ies = PTL_PACK_SUCCESS;
}
//<2F><>ȡʼ<C8A1><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static void frame_func_reply_NB_ReadStartFlow(void)
{
UNION_2U8TOU16 temp_data;
g_frame_temp_len =0;
temp_data.datas = (Sys_data_object.P1.start_flow.datas *(float)250 /(float)65536/DIFTOF_COEFFICIENT*(float)100);//ת<><D7AA>ΪL/h<><68>ʽ;
g_frame_temp_send_buf[g_frame_temp_len++] = temp_data.datas_map.data0;
g_frame_temp_send_buf[g_frame_temp_len++] = temp_data.datas_map.data1;
task_complete_ies = PTL_PACK_SUCCESS;
}
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static void frame_func_reply_NB_ReadCounterCurrent(void)
{
g_frame_temp_len =0;
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.counter_current_flow.datas_map.data0;
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.counter_current_flow.datas_map.data1;
task_complete_ies = PTL_PACK_SUCCESS;
}
//Ӳ<><D3B2><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static void frame_func_reply_NB_TestSelf(void)
{
switch(up_deal_stat_ies)
{
case UP_DEAL_S0:
{
g_frame_temp_len =0;
SelfTest_Start();
s_frame_temp_timer_tick = Timer1usGetTick();
up_deal_stat_ies = UP_DEAL_S1;
}
break;
case UP_DEAL_S1:
{
SelfTest_Proc();//<2F>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD>
u8 temp_len = SelfTest_GetResult(g_frame_temp_send_buf);
if(0 != temp_len)
{
up_deal_stat_ies = UP_DEAL_S0;
task_complete_ies = PTL_PACK_SUCCESS;
g_frame_temp_len = temp_len;
}
else if((Timer1usGetTick() - s_frame_temp_timer_tick)>6000000)//6s
{
SelfTest_End();
up_deal_stat_ies = UP_DEAL_S0;
task_complete_ies = PTL_PACK_FAIL;
}
}
break;
default:
{
up_deal_stat_ies = UP_DEAL_S0;
task_complete_ies = PTL_PACK_FAIL;
}
break;
}
}
//<2F><>ȡʱ<C8A1><CAB1><EFBFBD><EFBFBD>SOE<4F><45>¼
static void frame_func_reply_NB_ReadSoe(void)
{
static u8 num_get,num_to_get,num_to_read,totalnum;
static mtype16_ temp_soe_type;
static ONE_SOE soe_event_read;
static DateTime_noweek start_time;
static DateTime_noweek end_time;
switch(up_deal_stat_ies)
{
case UP_DEAL_S0:
{
totalnum = 0;
num_get = 0;
num_to_read = Sys_data_object.P4.Point_SOE_write;
temp_soe_type.to_uint8[0] = *(new_message_data_rev_ies); //<2F><>ȡ<EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
temp_soe_type.to_uint8[1] = *(new_message_data_rev_ies+1);
start_time.s.year = *(new_message_data_rev_ies + 2); //<2F><>ʼʱ<CABC><CAB1>
start_time.s.month = *(new_message_data_rev_ies + 3);
start_time.s.day = *(new_message_data_rev_ies + 4);
start_time.s.hour = *(new_message_data_rev_ies + 5);
start_time.s.minute = *(new_message_data_rev_ies + 6);
start_time.s.second = *(new_message_data_rev_ies + 7);
end_time.s.year = *(new_message_data_rev_ies + 8); //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
end_time.s.month = *(new_message_data_rev_ies + 9);
end_time.s.day = *(new_message_data_rev_ies + 10);
end_time.s.hour = *(new_message_data_rev_ies + 11);
end_time.s.minute = *(new_message_data_rev_ies + 12);
end_time.s.second = *(new_message_data_rev_ies + 13);
num_to_get = *(new_message_data_rev_ies + 14); //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
if((0 == num_to_get) || (MAX_NUM_READ_SOE <= num_to_get))
{
up_deal_stat_ies = UP_DEAL_S3;
}
else
{
up_deal_stat_ies = UP_DEAL_S1;
}
}
break;
case UP_DEAL_S1://<2F><>ȡһ<C8A1><D2BB>SOE
{
if(totalnum >= TOTAL_NUM_SOE)//<2F>ܹ<EFBFBD><DCB9><EFBFBD>TOTAL_NUM_SOE<4F><45> ǿ<><C7BF><EFBFBD>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD>
{
up_deal_stat_ies = UP_DEAL_S3;
break;
}
if(TASK_IDLE == EepIfIdle())//<2F><EFBFBD><E6B4A2><EFBFBD>ݵ<EFBFBD>EEPROM
{
totalnum++;
if(num_to_read > TOTAL_NUM_SOE) //<2F><>ָֹ<D6B9><D6B8><EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD>
{
num_to_read = TOTAL_NUM_SOE;
}
if(num_to_read == 0)
{
num_to_read = TOTAL_NUM_SOE;
}
num_to_read--;
EepRead(EEP_ADDR_SOE_BASE + (u16)num_to_read*LENGTH_ONE_SOE,(u8*)&soe_event_read,LENGTH_ONE_SOE, &s_nb_eep_complete);
up_deal_stat_ies = UP_DEAL_S2;
}
}
break;
case UP_DEAL_S2:
{
if(TASK_IDLE == EepIfIdle())//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
if(TRUE == Check_One_Soe(temp_soe_type.to_uint16,&start_time,&end_time,&soe_event_read))//<2F><><EFBFBD>һ<E2B5BD><D2BB><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>SOE
{
memcpy(g_frame_temp_send_buf + 1 + (u16)num_get * LENGTH_ONE_SOE,&soe_event_read,LENGTH_ONE_SOE);
num_get++;
if(num_get >= num_to_get)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
up_deal_stat_ies = UP_DEAL_S3;
break;
}
}
up_deal_stat_ies = UP_DEAL_S1;
}
}
break;
case UP_DEAL_S3:
{
up_deal_stat_ies = UP_DEAL_S0;
g_frame_temp_send_buf[0] = num_get;
g_frame_temp_len = (1 + (u16) num_get * LENGTH_ONE_SOE);
task_complete_ies = PTL_PACK_SUCCESS;
}
break;
default:
{
up_deal_stat_ies = UP_DEAL_S0;
task_complete_ies = PTL_PACK_FAIL;
}
break;
}
}
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>ʹ<EFBFBD><CAB9>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ
static void frame_func_s3_NB_BootLoad(void)
{
static u8 s_bootloader_version_flg = 0; //Զ<><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȽϽ<C8BD><CFBD><EFBFBD>
switch(up_deal_stat_ies)
{
case UP_DEAL_S0:
{
if(TASK_IDLE == EepIfIdle())
{
g_frame_temp_len = 0;
Sys_data_object.P2.mcu = *(new_message_data_rev_ies); //ƽ̨<C6BD><CCA8><EFBFBD><EFBFBD>
Sys_data_object.P2.mcu_model = *(new_message_data_rev_ies + 1);//MCU<43>ͺ<EFBFBD>
Sys_data_object.P2.product_model = *(new_message_data_rev_ies + 2);//<2F><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>
Sys_data_object.P2.hardware_version = *(new_message_data_rev_ies + 3);//Ӳ<><D3B2><EFBFBD>
if ((Sys_data_object.P2.hardware_version == HARDWARE_VERSION_USED)&&//Ӳ<><D3B2><EFBFBD>汾2.0
(0x22== Sys_data_object.P2.mcu) && //<2F><>:0-MIC, 1-ST, 2-HC32; <20><>:0-ˮ<><CBAE>,1-<2D><><EFBFBD><EFBFBD>,2-<2D><>ˮ,3-<2D><><EFBFBD><EFBFBD>
(0x00 == Sys_data_object.P2.mcu_model)&&//0x00--HC32L196
#if defined(VALVE)
((BCD2HEX(GP30_APP_DNX)+1) == Sys_data_object.P2.product_model))//<2F><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>;<3B>з<EFBFBD><D0B7>ھ<EFBFBD>+1
#else
(BCD2HEX(GP30_APP_DNX) == Sys_data_object.P2.product_model))//<2F><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>;<3B><><EFBFBD>ƿھ<C6BF>
#endif
{
//<2F><><EFBFBD><EFBFBD><EFBFBD>
fram_tools_writeU32ByBuf(Sys_data_object.P2.soft_version, (new_message_data_rev_ies + 10), 0);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>
fram_tools_writeU32ByBuf(Sys_data_object.P2.update_num.data_buf, (new_message_data_rev_ies + 4), 0);
//<2F><><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD>
Sys_data_object.P2.update_check.datas_map.data0 = *(new_message_data_rev_ies + 8);
Sys_data_object.P2.update_check.datas_map.data1 = *(new_message_data_rev_ies + 9);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
Sys_data_object.P2.bootloader_update_flg = 0x55;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
if(frame_get_datasource() == UP_SOURCE_IR)//<2F><><EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD><C7B4><EFBFBD>
{
Sys_data_object.P2.bootloader_datas_sourse = 1;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
else if(frame_get_datasource() == UP_SOURCE_NB)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>NBͨ<42><CDA8>
{
Sys_data_object.P2.bootloader_datas_sourse = 2;//NB<4E><42><EFBFBD><EFBFBD>
}
else if(frame_get_datasource() == UP_SOURCE_BLE)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
Sys_data_object.P2.bootloader_datas_sourse = 3;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0
Sys_data_object.P2.bootloader_paknum.datas =0;
//<2F><><EFBFBD><EFBFBD><EFBFBD>ƻ<EFBFBD><C6BB><EFBFBD>־<EFBFBD><D6BE>0
Sys_data_object.P2.bootloader_RSSI = 0;
s_bootloader_version_flg = 0x00;
FrameSetMsgApp(MsgUpdateSoftVersionCheckOk);
EepWrite(&Sys_data_object.P2.soft_version[0], EEP_SOFT_VERSION, 17, &s_nb_eep_complete);
}
else
{
s_bootloader_version_flg = 0x10;
if (0x22 != Sys_data_object.P2.mcu)
{
s_bootloader_version_flg = s_bootloader_version_flg|0x01;
}
if(0x00 != Sys_data_object.P2.mcu_model)
{
s_bootloader_version_flg = s_bootloader_version_flg|0x02;
}
if(Sys_data_object.P2.hardware_version != HARDWARE_VERSION_USED)
{
s_bootloader_version_flg = s_bootloader_version_flg|0x04;
}
#if defined(VALVE)
if((BCD2HEX(GP30_APP_DNX)+1) != Sys_data_object.P2.product_model)//<2F><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>;<3B>з<EFBFBD><D0B7>ھ<EFBFBD>+1
#else
if(BCD2HEX(GP30_APP_DNX) != Sys_data_object.P2.product_model)//<2F><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>;<3B><><EFBFBD>ƿھ<C6BF>
#endif
{
s_bootloader_version_flg = s_bootloader_version_flg|0x08;
}
}
up_deal_stat_ies = UP_DEAL_S1;
}
}
break;
case UP_DEAL_S1:
{
if(TASK_IDLE == EepIfIdle())//<2F><EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P2.mcu;
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P2.mcu_model;
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P2.product_model;
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P2.hardware_version;
fram_tools_writeU32ByBuf(&g_frame_temp_send_buf[4], Sys_data_object.P2.soft_version, 0);
g_frame_temp_len +=4;
g_frame_temp_send_buf[g_frame_temp_len++] = s_bootloader_version_flg;
//g_frame_temp_len = 9;
up_deal_stat_ies = UP_DEAL_S0;
task_complete_ies = PTL_PACK_SUCCESS;
}
}
break;
default:
{
up_deal_stat_ies = UP_DEAL_S0;
task_complete_ies = PTL_PACK_FAIL;
}
break;
}
}*/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ
static void frame_func_s3_NB_diff_BootLoad(void)
{
static u8 s_bootloader_version_flg = 0; //Զ<><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȽϽ<C8BD><CFBD><EFBFBD>
switch(up_deal_stat_ies)
{
case UP_DEAL_S0:
{
if(TASK_IDLE == EepIfIdle())
{
u8 temp_update_access=0;
g_frame_temp_len = 0;
Sys_data_object.P2.mcu = *(new_message_data_rev_ies + 0);//ƽ̨<C6BD><CCA8><EFBFBD><EFBFBD>
Sys_data_object.P2.mcu_model = *(new_message_data_rev_ies + 1);//MCU<43>ͺ<EFBFBD>
Sys_data_object.P2.product_model = *(new_message_data_rev_ies + 2);//<2F><>Ʒ<EFBFBD>ͺ<EFBFBD>
Sys_data_object.P2.hardware_version = *(new_message_data_rev_ies + 3);//Ӳ<><D3B2><EFBFBD><EFBFBD><E6B1BE>
u16 software_version = (AsciiToHex(*(new_message_data_rev_ies + 10))<<12)+
(AsciiToHex(*(new_message_data_rev_ies + 11))<<8)+
(AsciiToHex(*(new_message_data_rev_ies + 12))<<4)+
(AsciiToHex(*(new_message_data_rev_ies + 13))<<0);
if(Sys_data_object.P2.product_model&0x80)//ͬ<><EFBFBD><E6B1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־λ
{
if(software_version == (PROGRAME_VERSION>>16))
{
Sys_data_object.P2.product_model &= 0x7F;//ȥ<><C8A5><EFBFBD><EFBFBD>־λ,<2C><><EFBFBD><EFBFBD><EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>
temp_update_access =1;
}
}
else
{
if(software_version != (PROGRAME_VERSION>>16))
{
temp_update_access =1;
}
}
if ((Sys_data_object.P2.hardware_version == HARDWARE_VERSION_USED)&&//Ӳ<><D3B2><EFBFBD>汾2.4
(0x22== Sys_data_object.P2.mcu) && //<2F><>:0-MIC, 1-ST, 2-HC32; <20><>:0-ˮ<><CBAE>,1-<2D><><EFBFBD><EFBFBD>,2-<2D><>ˮ,3-<2D><><EFBFBD><EFBFBD>
(0x00 == Sys_data_object.P2.mcu_model)&&//0x00--HC32L196
(temp_update_access)&&//<2F><EFBFBD>ŷ<EFBFBD><C5B7><EFBFBD>
#if defined(VALVE)
((BCD2HEX(GP30_APP_DNX)+1) == Sys_data_object.P2.product_model))//<2F><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>;<3B>з<EFBFBD><D0B7>ھ<EFBFBD>+1
#else
(BCD2HEX(GP30_APP_DNX) == Sys_data_object.P2.product_model))//<2F><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>;<3B><><EFBFBD>ƿھ<C6BF>
#endif
{
//<2F><><EFBFBD><EFBFBD><EFBFBD>
fram_tools_writeU32ByBuf(Sys_data_object.P2.soft_version, (new_message_data_rev_ies + 10), 0);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>
fram_tools_writeU32ByBuf(Sys_data_object.P2.update_num.data_buf, (new_message_data_rev_ies + 4), 0);
//<2F><><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD>
Sys_data_object.P2.update_check.datas_map.data0 = *(new_message_data_rev_ies + 8);
Sys_data_object.P2.update_check.datas_map.data1 = *(new_message_data_rev_ies + 9);
//<2F><><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>:1-<2D><><EFBFBD><EFBFBD>;2-coap;3-udp
Sys_data_object.P2.bootloader_datas_sourse = *(new_message_data_rev_ies + 14);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־/<2F><>ʽ:1-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;2-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if(*(new_message_data_rev_ies + 15) == 2)
{
Sys_data_object.P2.bootloader_update_flg = 0x77;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
else
{
Sys_data_object.P2.bootloader_update_flg = 0x55;//ȫ<><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
#if UPLOAD_MODE_1
if(Sys_data_object.P2.bootloader_datas_sourse != 1)//<2F><><EFBFBD>Ǵ<EFBFBD><C7B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
setUploadControlPara(UP_BOOT_MSG, Sys_data_object.P2.bootloader_update_flg);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
}
#endif
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0
Sys_data_object.P2.bootloader_paknum.datas =0;
//<2F><><EFBFBD><EFBFBD><EFBFBD>ƻ<EFBFBD><C6BB><EFBFBD>־<EFBFBD><D6BE>0
Sys_data_object.P2.bootloader_RSSI = 0;
s_bootloader_version_flg = 0x00;
FrameSetMsgApp(MsgUpdateSoftVersionCheckOk);
EepWrite(&Sys_data_object.P2.soft_version[0], EEP_SOFT_VERSION, 17, &s_nb_eep_complete);
}
else
{
s_bootloader_version_flg = 0x10;
if(software_version == (PROGRAME_VERSION>>16))//<2F><EFBFBD><E6B1BE>ͬ
{
s_bootloader_version_flg |= 0x20;
}
if (0x22 != Sys_data_object.P2.mcu)
{
s_bootloader_version_flg = s_bootloader_version_flg|0x01;
}
if(0x00 != Sys_data_object.P2.mcu_model)
{
s_bootloader_version_flg = s_bootloader_version_flg|0x02;
}
if(Sys_data_object.P2.hardware_version != HARDWARE_VERSION_USED)
{
s_bootloader_version_flg = s_bootloader_version_flg|0x04;
}
#if defined(VALVE)
if((BCD2HEX(GP30_APP_DNX)+1) != Sys_data_object.P2.product_model)//<2F><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>;<3B>з<EFBFBD><D0B7>ھ<EFBFBD>+1
#else
if(BCD2HEX(GP30_APP_DNX) != Sys_data_object.P2.product_model)//<2F><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>;<3B><><EFBFBD>ƿھ<C6BF>
#endif
{
s_bootloader_version_flg = s_bootloader_version_flg|0x08;
}
}
up_deal_stat_ies = UP_DEAL_S1;
}
}
break;
case UP_DEAL_S1:
{
if(TASK_IDLE == EepIfIdle())//<2F><EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P2.mcu;
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P2.mcu_model;
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P2.product_model;
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P2.hardware_version;
fram_tools_writeU32ByBuf(&g_frame_temp_send_buf[4], Sys_data_object.P2.soft_version, 0);
g_frame_temp_len +=4;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
g_frame_temp_send_buf[g_frame_temp_len++]=Sys_data_object.P2.bootloader_datas_sourse;//<2F><><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>
g_frame_temp_send_buf[g_frame_temp_len++] = *(new_message_data_rev_ies + 15);
g_frame_temp_send_buf[g_frame_temp_len++] = s_bootloader_version_flg;
//g_frame_temp_len = 11;
task_complete_ies = PTL_PACK_SUCCESS;
if(s_bootloader_version_flg==0)
{
FrameSetMsgApp(BootloaderMsg);
if(01 == LcdCheckStateApp()) //<2F>춨״̬
{
FrameSetMsgApp(OutVerificationMsg);//<2F><><EFBFBD>춨msg
}
}
up_deal_stat_ies = UP_DEAL_S0;
}
}
break;
default:
{
up_deal_stat_ies = UP_DEAL_S0;
task_complete_ies = PTL_PACK_FAIL;
}
break;
}
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨѶ<CDA8><D1B6>ַ<EFBFBD><D6B7><EFBFBD>޴ż<DEB4><C5BC><EFBFBD>
static void frame_func_s3_NB_SetAddr(void)
{
if(TASK_IDLE == EepIfIdle())//<2F><EFBFBD><E6B4A2><EFBFBD>ݵ<EFBFBD>EEPROM
{
g_frame_temp_len = 0;
if(0x01 == Sys_data_object.P1.start_using_flg)
{
task_complete_ies = PTL_PACK_FAIL;
return;
}
for (int tmp_i = 0; tmp_i < 7; tmp_i++)
{
Sys_data_object.P1.met_addr[tmp_i] = *(new_message_data_rev_ies + tmp_i);
}
EepWrite(&Sys_data_object.P1.met_addr[0], EEP_FRAME_MET_ADDR, 7, &s_nb_eep_complete);
Frame_Para_Init();
FrameSetMsgApp(MsgAddr_Change);//<2F><><EFBFBD><EFBFBD>MAC<41><43>ַ
task_complete_ies = PTL_PACK_SUCCESS;
}
}
//д<><EFBFBD>ϵ<EFBFBD><CFB5>
static void frame_func_s3_NB_SetTempratureConefficient(void)
{
if(TASK_IDLE == EepIfIdle())//<2F><EFBFBD><E6B4A2><EFBFBD>ݵ<EFBFBD>EEPROM
{
g_frame_temp_len = 0;
if(0x01 == Sys_data_object.P1.start_using_flg)
{
task_complete_ies = PTL_PACK_FAIL;
return;
}
fram_tools_writeU32ByBuf(Sys_data_object.P1.temperature_coefficient0.data_buf, (new_message_data_rev_ies + 0), 1);
fram_tools_writeU32ByBuf(Sys_data_object.P1.temperature_coefficient1.data_buf, (new_message_data_rev_ies + 4), 1);
EepWrite(&Sys_data_object.P1.temperature_coefficient0.datas_map.data0, EEP_FRAME_TEMPERATURE_COEFFICIENT_ADDR, 8, &s_nb_eep_complete);
Frame_Para_Init();
task_complete_ies = PTL_PACK_SUCCESS;
}
}
//д<><D0B4><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5> **<2A>޸<EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD>0.5-1.5<EFBFBD><EFBFBD>2019<EFBFBD><EFBFBD>7<EFBFBD><EFBFBD>5<EFBFBD><EFBFBD>
static void frame_func_s3_NB_SetFowcoefficient(void)
{
if(TASK_IDLE == EepIfIdle())//<2F><EFBFBD><E6B4A2><EFBFBD>ݵ<EFBFBD>EEPROM
{
g_frame_temp_len = 0;
if(0x01 == Sys_data_object.P1.start_using_flg)
{
task_complete_ies = PTL_PACK_FAIL;
return;
}
UNION_4U8TOU32 flow_small;
UNION_4U8TOU32 flow_medium0;
UNION_4U8TOU32 flow_medium1;
UNION_4U8TOU32 flow_medium2;
UNION_4U8TOU32 flow_medium3;
UNION_4U8TOU32 flow_large;
fram_tools_writeU32ByBuf(flow_small.data_buf, (new_message_data_rev_ies + 0), 0);
fram_tools_writeU32ByBuf(flow_medium0.data_buf, (new_message_data_rev_ies + 4), 0);
fram_tools_writeU32ByBuf(flow_medium1.data_buf, (new_message_data_rev_ies + 8), 0);
fram_tools_writeU32ByBuf(flow_medium2.data_buf, (new_message_data_rev_ies + 12), 0);
fram_tools_writeU32ByBuf(flow_medium3.data_buf, (new_message_data_rev_ies + 16), 0);
fram_tools_writeU32ByBuf(flow_large.data_buf, (new_message_data_rev_ies + 20), 0);
if(( (FLOW_COEFFICIENT_MIN < flow_small.datas) && (flow_small.datas < FLOW_COEFFICIENT_MAX) ) && ( (FLOW_COEFFICIENT_MIN < flow_medium0.datas) && (flow_medium0.datas < FLOW_COEFFICIENT_MAX) )
&& ( (FLOW_COEFFICIENT_MIN < flow_medium1.datas) && (flow_medium1.datas < FLOW_COEFFICIENT_MAX) ) && ( (FLOW_COEFFICIENT_MIN < flow_medium2.datas) && (flow_medium2.datas < FLOW_COEFFICIENT_MAX) )
&& ( (FLOW_COEFFICIENT_MIN < flow_medium3.datas) && (flow_medium3.datas < FLOW_COEFFICIENT_MAX) ) && ( (FLOW_COEFFICIENT_MIN < flow_large.datas) && (flow_large.datas < FLOW_COEFFICIENT_MAX) ))
{
if(LOW_TYPE==*(new_message_data_rev_ies + 24))
{
memcpy(&(cal_flow_coefficient[0].datas_map.data0), new_message_data_rev_ies, 24);
EepWrite(&(cal_flow_coefficient[0].datas_map.data0), FRAME_FLOW_LOW_COEFFICIENT_ADDR, 24, &s_nb_eep_complete);
}
else if(MIDDLE_TYPE==*(new_message_data_rev_ies + 24))
{
memcpy(&(cal_flow_coefficient[6].datas_map.data0), new_message_data_rev_ies, 24);
EepWrite(&(cal_flow_coefficient[6].datas_map.data0), FRAME_FLOW_MIDDLE_COEFFICIENT_ADDR, 24, &s_nb_eep_complete);
}
else if(LARGE_TYPE==*(new_message_data_rev_ies + 24))
{
memcpy(&(cal_flow_coefficient[12].datas_map.data0), new_message_data_rev_ies, 24);
EepWrite(&(cal_flow_coefficient[12].datas_map.data0), FRAME_FLOW_HIGH_COEFFICIENT_ADDR, 24, &s_nb_eep_complete);
}
else if(ALL_TYPE==*(new_message_data_rev_ies + 24))
{
memcpy(&(cal_flow_coefficient[0].datas_map.data0), default_flow_coefficient, sizeof (default_flow_coefficient));
EepWrite(&(cal_flow_coefficient[0].datas_map.data0), FRAME_FLOW_LOW_COEFFICIENT_ADDR, 72, &s_nb_eep_complete);
}
Frame_Para_Init();
task_complete_ies = PTL_PACK_SUCCESS;
}
else
{
task_complete_ies = PTL_PACK_FAIL;
return;
}
}
}
//<2F><><EFBFBD>ùرռ<D5BC><ECB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2B9A6>
static void frame_func_s3_NB_SwitchVerificationOrInfrared(void)
{
if(TASK_IDLE == EepIfIdle())//<2F><EFBFBD><E6B4A2><EFBFBD>ݵ<EFBFBD>EEPROM
{
g_frame_temp_len = 0;
Sys_data_object.P1.enable_verification_function = *(new_message_data_rev_ies + 0);
Sys_data_object.P1.enable_infrared_function = *(new_message_data_rev_ies + 1);
EepWrite(&Sys_data_object.P1.enable_verification_function, EEP_FRAME_VERIFICATION_FUNCTION_ADDR, 2, &s_nb_eep_complete);
Frame_Para_Init();
task_complete_ies = PTL_PACK_SUCCESS;
}
}
//<2F><><EFBFBD>ù<EFBFBD><C3B9><EFBFBD>
static void frame_func_s3_NB_CfgFunctioncfg(void)
{
if(TASK_IDLE == EepIfIdle())//<2F><EFBFBD><E6B4A2><EFBFBD>ݵ<EFBFBD>EEPROM
{
g_frame_temp_len = 0;
UNION_4U8TOU32 temp_flag_bytes;
fram_tools_writeU32ByBuf(temp_flag_bytes.data_buf, (new_message_data_rev_ies + 0), 0);
if (temp_flag_bytes.datas > 0)
{
for(int temp_i = 0; temp_i < 32; temp_i++)
{
if (0x00000001 == ((temp_flag_bytes.datas >> temp_i) & 0x00000001))
{
Sys_data_object.P1.func_cfg_bytes[temp_i] = *(new_message_data_rev_ies + 4 + temp_i);
}
}
EepWrite(&Sys_data_object.P1.func_cfg_bytes[0], EEP_FRAME_FUNCCFGBYTES_ADDR, 32, &s_nb_eep_complete);
}
Frame_Para_Init();
FrameSetMsgApp(MsgBLE_ConfigChange);
task_complete_ies = PTL_PACK_SUCCESS;
}
}
//(<28><>)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static void frame_func_s3_NB_SetOrClearUsing_SAcrc(void)
{
if(TASK_IDLE == EepIfIdle())//<2F><EFBFBD><E6B4A2><EFBFBD>ݵ<EFBFBD>EEPROM
{
g_frame_temp_len = 0;
if (0x01 == *(new_message_data_rev_ies + 0))
{
Sys_data_object.P1.start_using_flg = 0x01;
}
else if (0x00 == *(new_message_data_rev_ies + 0))
{
Sys_data_object.P1.start_using_flg = 0x00;
}
else
{
task_complete_ies = PTL_PACK_FAIL;
return;
}
EepWrite(&Sys_data_object.P1.start_using_flg, EEP_FRAME_STARTUSING_ADDR, 1, &s_nb_eep_complete);
Frame_Para_Init();
task_complete_ies = PTL_PACK_SUCCESS;
}
}
//<2F><><EFBFBD>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD>Կ
static void frame_func_s3_NB_SetCommonKey(void)
{
if(TASK_IDLE == EepIfIdle())
{
g_frame_temp_len = 0;
for(int i = 0; i < 16; i++)
{
Sys_data_object.P1.key[i] = *(new_message_data_rev_ies + i);
}
EepWrite(&Sys_data_object.P1.key[0], FRAME_NBIot_KEY, 16, &s_nb_eep_complete);
task_complete_ies = PTL_PACK_SUCCESS;
}
}
//<2F><><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static void frame_func_s3_NB_SetStartFlow(void)
{
if(TASK_IDLE == EepIfIdle())//<2F><EFBFBD><E6B4A2><EFBFBD>ݵ<EFBFBD>EEPROM
{
g_frame_temp_len = 0;
if (0x01 == Sys_data_object.P1.start_using_flg) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
task_complete_ies = PTL_PACK_FAIL;
return;
}
UNION_2U8TOU16 temp_flow;
u16 convert_to_ps;//תΪps
temp_flow.datas_map.data0 = *(new_message_data_rev_ies + 0);
temp_flow.datas_map.data1= *(new_message_data_rev_ies + 1);
convert_to_ps= (temp_flow.datas * (float)10 *DIFTOF_COEFFICIENT);//ת<><D7AA>Ϊps
if(( convert_to_ps <MIN_FLOW_TO_PS)||( convert_to_ps >MAX_FLOW_TO_PS))
{
task_complete_ies = PTL_PACK_FAIL;
return;
}
temp_flow.datas = ((float)temp_flow.datas/(float)100*DIFTOF_COEFFICIENT*(float)65536/(float)250);//ת<><D7AA>ΪGp30<33><30>ʽ;<3B><>Frame_Para_Init<69><74>ת<EFBFBD><D7AA>
Sys_data_object.P1.start_flow.datas = temp_flow.datas;
EepWrite(&Sys_data_object.P1.start_flow.datas_map.data0, EEP_FRAME_START_FLOW_ADDR, 2, &s_nb_eep_complete);
Frame_Para_Init();
task_complete_ies = PTL_PACK_SUCCESS;
}
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
static void frame_func_s3_NB_SetCounterCurrent(void)
{
if(TASK_IDLE == EepIfIdle())//<2F><EFBFBD><E6B4A2><EFBFBD>ݵ<EFBFBD>EEPROM
{
g_frame_temp_len = 0;
UNION_2U8TOU16 frame_temp;
frame_temp.datas_map.data0 = *(new_message_data_rev_ies + 0);
frame_temp.datas_map.data1= *(new_message_data_rev_ies + 1);
if((frame_temp.datas !=0x2B1A)&&(frame_temp.datas !=0x4D3C))
{
task_complete_ies = PTL_PACK_FAIL;
return;
}
else if(frame_temp.datas != Sys_data_object.P1.counter_current_flow.datas )
{
FrameSetMsgApp(ModelChangeMsg);
}
Sys_data_object.P1.counter_current_flow.datas_map.data0 = *(new_message_data_rev_ies + 0);
Sys_data_object.P1.counter_current_flow.datas_map.data1 = *(new_message_data_rev_ies + 1);
EepWrite(&Sys_data_object.P1.counter_current_flow.datas_map.data0, EEP_FRAME_COUNTER_CURRENT_FLOW_ADDR, 2, &s_nb_eep_complete);
Frame_Para_Init();
task_complete_ies = PTL_PACK_SUCCESS;
}
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У׼<D0A3><D7BC><EFBFBD><EFBFBD>
static void frame_func_s3_NB_SetDiftofCalibration(void)
{
if(TASK_IDLE == EepIfIdle())
{
UNION_2U8TOU16 frame_temp;
g_frame_temp_len = 0;
frame_temp.datas_map.data0 = *(new_message_data_rev_ies + 0);
frame_temp.datas_map.data1= *(new_message_data_rev_ies + 1);
if((frame_temp.datas !=0x2B1A)&&(frame_temp.datas !=0x4D3C))//<2F><>ֹ<EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><ECB3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
{
task_complete_ies = PTL_PACK_FAIL;
return;
}
if(0x2B1A == frame_temp.datas)//<2F><><EFBFBD><EFBFBD>У׼
{
Gp30DiftofCalibration();
g_diftof_cal_data.s.diftof_calibration_flag.data = DIFTOF_CALIBRATION_FLAG;
EepWrite(&g_diftof_cal_data.data[0], DIFTOF_CALIBRATION_FLAG_ADDR, sizeof (GP30_DIFTOF_CAL_DATA), &s_nb_eep_complete);
}
else
{
g_diftof_cal_data.s.diftof_calibration_flag.data =0;//<2F>ر<EFBFBD>У׼
EepWrite(&g_diftof_cal_data.data[0], DIFTOF_CALIBRATION_FLAG_ADDR, 8, &s_nb_eep_complete);
}
task_complete_ies = PTL_PACK_SUCCESS;
}
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ:<3A><>ȡӦ<C8A1><D3A6><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE>
static void frame_func_reply_NB_read_emergency(void)
{
g_frame_temp_len = 0;
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.ies_pulse_emergency.data_buf[0];
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.ies_pulse_emergency.data_buf[1];
task_complete_ies = PTL_PACK_SUCCESS;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ:<3A><><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE>
static void frame_func_reply_NB_set_emergency(void)
{
#if (MODULE_BLE_USED)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#else
if(TASK_IDLE == EepIfIdle())//<2F><EFBFBD><E6B4A2><EFBFBD>ݵ<EFBFBD>EEPROM
{
s_nb_eep_complete = 0;
Sys_data_object.P1.ies_pulse_emergency.data_buf[0] = *(new_message_data_rev_ies);
Sys_data_object.P1.ies_pulse_emergency.data_buf[1] = *(new_message_data_rev_ies + 1);
EepWrite(&Sys_data_object.P1.ies_pulse_emergency.data_buf[0],ee_addr_compute((u8*)(&Sys_data_object.P1.ies_pulse_emergency.data_buf[0])),2,&s_nb_eep_complete);
Frame_Para_Init();
task_complete_ies = PTL_PACK_SUCCESS;
}
#endif
}
//<2F><><EFBFBD><EFBFBD>/<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>
void ies_set_valve_para2_frame()
{
switch(up_deal_stat_ies)
{
case UP_DEAL_S0:
{
if(TASK_IDLE == EepIfIdle())//<2F><EFBFBD><E6B4A2><EFBFBD>ݵ<EFBFBD>EEPROM
{
g_frame_temp_len = 0;
if(0xAA == *new_message_data_rev_ies)
{
if((*(new_message_data_rev_ies + 1) <= 36) && (*(new_message_data_rev_ies + 1) != 0))
{
Sys_data_object.P1.ies_valve_up_times.valve_up_times_pre = *(new_message_data_rev_ies + 1);
Sys_data_object.P1.ies_valve_up_times.valve_up_times_total = *(new_message_data_rev_ies + 2);
Sys_data_object.P1.ies_valve_up_times.valve_up_times_realtime = 0;
}
Sys_data_object.P1.ies_valve_up_times.valve_auto_check = *(new_message_data_rev_ies + 3);
EepWrite((u8*)(&Sys_data_object.P1.ies_valve_up_times.valve_up_times_pre),ee_addr_compute((u8*)(&Sys_data_object.P1.ies_valve_up_times.valve_up_times_pre)),4,&s_nb_eep_complete);
}
up_deal_stat_ies = UP_DEAL_S1;
}
}
break;
case UP_DEAL_S1:
{
if(TASK_IDLE == EepIfIdle())//<2F><EFBFBD><E6B4A2><EFBFBD>ݵ<EFBFBD>EEPROM<4F><4D><EFBFBD><EFBFBD>
{
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.ies_valve_up_times.valve_up_times_pre;
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.ies_valve_up_times.valve_up_times_total;
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.ies_valve_up_times.valve_auto_check;
g_frame_temp_send_buf[g_frame_temp_len++] = Sys_data_object.P1.ies_valve_up_times.valve_up_times_realtime;
g_frame_temp_send_buf[g_frame_temp_len++] = 0;
g_frame_temp_send_buf[g_frame_temp_len++] = 0;
g_frame_temp_send_buf[g_frame_temp_len++] = 0;
g_frame_temp_send_buf[g_frame_temp_len++] = 0;
up_deal_stat_ies = UP_DEAL_S0;
task_complete_ies = TRUE;
}
}
break;
default:
{
up_deal_stat_ies = UP_DEAL_S0;
task_complete_ies = TRUE;
}
break;
}
}
void frame_factory_test_upload(void)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD>
{
FrameSetMsgApp(Msg_FactoryUpload);
task_complete_ies = PTL_PACK_SUCCESS;
}
//<2F><><EFBFBD><EFBFBD>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD>---<2D>ն<EFBFBD><D5B6><EFBFBD>
static void frame_func_reply_NB_ReadHistoryData_Daily(void)
{
u8 temp = 0;
u8 temp_read_index = 0;
u8 temp_read_code = *new_message_data_rev_ies;
switch(up_deal_stat_ies)
{
case UP_DEAL_S0:
{
if(TASK_IDLE == EepIfIdle())//<2F><>ȡ<EFBFBD><C8A1>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD>
{
g_frame_temp_len =0;
temp_read_index = get_QZ_StorePara(QZ_StoreCurIndex_Daily);
if (temp_read_index >= temp_read_code)
{
temp = temp_read_index - temp_read_code;
}
else
{
temp = 100 - (temp_read_code - temp_read_index);
}
EepRead((EEP_ADDR_QZ_STORE_DAY +(temp*128)), g_frame_temp_send_buf, 128, &s_nb_eep_complete);
up_deal_stat_ies = UP_DEAL_S1;
}
}
break;
case UP_DEAL_S1:
{
if(TASK_IDLE == EepIfIdle())//<2F><>ȡ<EFBFBD><C8A1>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
g_frame_temp_len = 128;
task_complete_ies = PTL_PACK_SUCCESS;
up_deal_stat_ies = UP_DEAL_S0;
}
}
break;
default:
{
task_complete_ies = PTL_PACK_FAIL;
up_deal_stat_ies = UP_DEAL_S0;
}
break;
}
}
//<2F><><EFBFBD><EFBFBD>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD>---<2D><EFBFBD><C2B6><EFBFBD>
static void frame_func_reply_NB_ReadHistoryData_Month(void)
{
u8 temp = 0;
u8 temp_read_index = 0;
u8 temp_read_code = *new_message_data_rev_ies;
switch(up_deal_stat_ies)
{
case UP_DEAL_S0:
{
if(TASK_IDLE == EepIfIdle())//<2F><>ȡ<EFBFBD><C8A1>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD>
{
g_frame_temp_len =0;
temp_read_index = get_QZ_StorePara(QZ_StoreCurIndex_Month);
if (temp_read_index >= temp_read_code)
{
temp = temp_read_index - temp_read_code;
}
else
{
temp = 24 - (temp_read_code - temp_read_index);
}
EepRead((EEP_ADDR_QZ_STORE_MONTH +(temp*6)), g_frame_temp_send_buf, 6, &s_nb_eep_complete);
up_deal_stat_ies = UP_DEAL_S1;
}
}
break;
case UP_DEAL_S1:
{
if(TASK_IDLE == EepIfIdle())//<2F><>ȡ<EFBFBD><C8A1>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
g_frame_temp_len = 6;
task_complete_ies = PTL_PACK_SUCCESS;
up_deal_stat_ies = UP_DEAL_S0;
}
}
break;
default:
{
task_complete_ies = PTL_PACK_FAIL;
up_deal_stat_ies = UP_DEAL_S0;
}
break;
}
}
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>EEPROM<4F><4D><EFBFBD><EFBFBD>
static void ies_read_eeprom_data_frame(void)
{
mtype16_ read_eeprom_address;
static u8 read_eeprom_length;
switch(up_deal_stat_ies)
{
case UP_DEAL_S0:
{
if(TASK_IDLE == EepIfIdle())
{
g_frame_temp_len =0;
read_eeprom_address.to_uint8[BYTE_L] = *(new_message_data_rev_ies + 0);
read_eeprom_address.to_uint8[BYTE_H] = *(new_message_data_rev_ies + 1);
read_eeprom_length = *(new_message_data_rev_ies + 2);
EepRead(read_eeprom_address.to_uint16, g_frame_temp_send_buf, read_eeprom_length, &s_nb_eep_complete);
up_deal_stat_ies = UP_DEAL_S1;
}
}
break;
case UP_DEAL_S1:
{
if(TASK_IDLE == EepIfIdle())//<2F><>EEPROM<4F><4D><EFBFBD><EFBFBD>
{
g_frame_temp_len = read_eeprom_length;
task_complete_ies = PTL_PACK_SUCCESS;
up_deal_stat_ies = UP_DEAL_S0;
}
}
break;
default:
{
up_deal_stat_ies = UP_DEAL_S0;
task_complete_ies = TRUE;
}
break;
}
}
//д<><D0B4><EFBFBD><EFBFBD>EEPROM<4F><4D><EFBFBD><EFBFBD>
static void ies_write_eeprom_data_frame(void)
{
switch(up_deal_stat_ies)
{
case UP_DEAL_S0:
{
if( ('i' == *(new_message_data_rev_ies + 0)) && ('e' == *(new_message_data_rev_ies + 1))
&& ('s' == *(new_message_data_rev_ies + 2)) )
{
g_frame_temp_len =0;
write_eeprom_address.to_uint8[BYTE_L] = *(new_message_data_rev_ies + 3);
write_eeprom_address.to_uint8[BYTE_H] = *(new_message_data_rev_ies + 4);
write_eeprom_length = *(new_message_data_rev_ies + 5);
if((write_eeprom_address.to_uint16 > EE_ADDR_MAX) || (write_eeprom_length > 8))//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>д8<D0B4><38><EFBFBD>ֽ<EFBFBD>
{
up_deal_stat_ies = UP_DEAL_S3;
}
else
{
for (u8 i = 0; i < write_eeprom_length; i++)
{
g_frame_temp_send_buf[i] = *(new_message_data_rev_ies + 6 + i);
}
up_deal_stat_ies = UP_DEAL_S1;
}
}
else
{
up_deal_stat_ies = UP_DEAL_S3;
}
}
break;
case UP_DEAL_S1:
{
if(TASK_IDLE == EepIfIdle())//дEEPROM
{
EepWrite(g_frame_temp_send_buf, write_eeprom_address.to_uint16, write_eeprom_length, &s_nb_eep_complete);
up_deal_stat_ies = UP_DEAL_S2;
}
}
break;
case UP_DEAL_S2:
{
if(TASK_IDLE == EeReadImportantDataIfIdle()) //дEEPROM<4F><4D><EFBFBD><EFBFBD>
{
set_important_data_rd_state(); //д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>
up_deal_stat_ies = UP_DEAL_S3;
}
}
break;
case UP_DEAL_S3:
{
task_complete_ies = PTL_PACK_SUCCESS;
up_deal_stat_ies = UP_DEAL_S0;
}
break;
default:
{
up_deal_stat_ies = UP_DEAL_S0;
task_complete_ies = TRUE;
}
break;
}
}
//<2F><>RAM<41><4D><EFBFBD><EFBFBD>
static void ies_read_ram_frame (void)
{
mtype32_ read_RAM_address;
u8 read_RAM_length;
u8 *ram_data;
read_RAM_address.to_uint8[WORD_L] = *(new_message_data_rev_ies + 0);
read_RAM_address.to_uint8[WORD_M] = *(new_message_data_rev_ies + 1);
read_RAM_address.to_uint8[WORD_H] = *(new_message_data_rev_ies + 2);
read_RAM_address.to_uint8[WORD_P] = *(new_message_data_rev_ies + 3);
read_RAM_length = *(new_message_data_rev_ies + 4);
ram_data = (u8*)read_RAM_address.to_uint32;
for(u8 i = 0; i < read_RAM_length; i++)
{
g_frame_temp_send_buf[i] = *(ram_data + i);
}
g_frame_temp_len = read_RAM_length;
task_complete_ies = PTL_PACK_SUCCESS;
up_deal_stat_ies = UP_DEAL_S0;
}
/************************************************************************************************************/
//<2F><><EFBFBD>ɹ<EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD>ַ<EFBFBD>ж<EFBFBD>
u8 check_met_addr_IES(u8 *p_buf,u8 *des_buf)
{
u8 tmp_i;
for (tmp_i = 0; tmp_i < 7; tmp_i++)
{
if (*(p_buf + 2 +tmp_i) != *(des_buf + tmp_i))
{
break;
}
}
if(tmp_i >= 6)
{
return SUCCESS_IES;
}
if( (FM_READ_ADDR_ARGUMENT_CTRL == *(p_buf+9))
||(FM_ENC_SET_ADDR_ARGUMENT_CTRL == *(p_buf+9)))//<2F><>д<EFBFBD><D0B4><EFBFBD><EFBFBD>ַ
{
for(tmp_i=0;tmp_i < 7;tmp_i++)
{
if(0xAA != *(p_buf + 2 + tmp_i))//<2F><EFBFBD><E3B2A5><EFBFBD><EFBFBD>ַ
break;
}
}
if((FM_BOOTLOADER_ARGUMENT_CTRL==*(p_buf+9))||(FM_BOOTLOADER_NEW_ARGUMENT_CTRL==*(p_buf+9)))
{
for(tmp_i=0;tmp_i < 7;tmp_i++)
{
if((0x00 != *(p_buf + 2 + tmp_i))&&(*(p_buf + 2 +tmp_i) != *(des_buf + tmp_i)))//<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>·<EFBFBD>0<EFBFBD><30>ַ
{
break;
}
}
}
if(tmp_i >= 7)
{
return SUCCESS_IES;
}
return ERROR_IES;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>Լ
u8 crack_frame_IES_Base(u16 frame_lenth,u8 *frame_buffer, STRUCT_FRAME_IES* pFrameIES)
{
u16 tmp_i = 0;
u16 tmp_j = 0;
u8 tmp_check = 0;
for (tmp_i = 0; tmp_i < frame_lenth; tmp_i++)
{
if (FM_HEAD_MARK == *(frame_buffer + tmp_i))
{
if (MET_TYPE == *(frame_buffer + tmp_i + 1))
{
pFrameIES->head_site = tmp_i; //<2F><>¼֡ͷ
pFrameIES->sta = *(frame_buffer + tmp_i + 10);//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ֽڵ<D6BD>״̬<D7B4>֣<EFBFBD>bit0Ϊ1ʱ<31><CAB1>ʾ<EFBFBD><CABE><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD>01H<31><48>ʾ<EFBFBD><CABE><EFBFBD>ܣ<EFBFBD>bit1Ϊ1ʱ<31><CAB1>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>bitλԤ<CEBB><D4A4>
pFrameIES->len = *(frame_buffer + tmp_i + 11);//<2F><><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
pFrameIES->end_site = pFrameIES->head_site + pFrameIES->len + 13;
pFrameIES->check_len = pFrameIES->end_site - pFrameIES->head_site - 1;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>Ч
if ((pFrameIES->end_site < frame_lenth) && (FM_END_MARK == *(frame_buffer + pFrameIES->end_site)))
{
//s_frame_flag_IES.enc_reply_flg = 0;
pFrameIES->ctrl = *(frame_buffer + pFrameIES->head_site + 9);
for (tmp_j = 0; tmp_j < 7; tmp_j++)
{
check_addr[tmp_j] = Sys_data_object.P1.met_addr[tmp_j];
}
//<2F><><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD>
for (tmp_j = pFrameIES->head_site; tmp_j < (pFrameIES->end_site - 1); tmp_j++)
{
tmp_check += *(frame_buffer + tmp_j);
}
if (tmp_check == *(frame_buffer + pFrameIES->end_site - 1))
{
if((SS_SET_COMMON_KEY_CTRL == frame_struct_IES.ctrl) || (SS_RD_COMMON_KEY_CTRL == frame_struct_IES.ctrl))//<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Կ<EFBFBD><D4BF><EFBFBD><EFBFBD>
{
for (int tmp_j = 0; tmp_j < 16; tmp_j++)
{
key[tmp_j] = super_key[tmp_j];
}
}
else
{
for (int tmp_j = 0; tmp_j < 16; tmp_j++)
{
key[tmp_j] = Sys_data_object.P1.key[tmp_j];
}
}
if (SUCCESS_IES == check_met_addr_IES(frame_buffer + pFrameIES->head_site, check_addr)) //<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>ַ<EFBFBD>ͱ<EFBFBD><CDB1><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD>0
{
if((pFrameIES->sta & 0x01) == 0x01)//<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>ܹ<EFBFBD>Լ
{
//<2F><>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD>Լ:<3A><><EFBFBD><EFBFBD>,<2C>޸ļ<DEB8><C4BC>ܱ<EFBFBD>־
AES_decrypt(frame_buffer+pFrameIES->head_site +12, *(frame_buffer+pFrameIES->head_site +11),key);
//<2F>Ǽ<EFBFBD><C7BC><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD>
tmp_check = 0;
for (tmp_j = pFrameIES->head_site; tmp_j < (pFrameIES->end_site - 1); tmp_j++)
{
tmp_check += *(frame_buffer + tmp_j);
}
*(frame_buffer + pFrameIES->end_site - 1) = tmp_check;
}
pFrameIES->sta &= 0xFD; //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD>bit1Ϊ1ʱ<31><CAB1>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD>0<EFBFBD><30>ʾӦ<CABE><D3A6><EFBFBD><EFBFBD>
pFrameIES->DI0 = *(frame_buffer + pFrameIES->head_site + 12);
pFrameIES->DI1 = *(frame_buffer + pFrameIES->head_site + 13);
pFrameIES->serial_num0 = *(frame_buffer + pFrameIES->head_site + 14);
pFrameIES->serial_num1 = *(frame_buffer + pFrameIES->head_site + 15);
return SUCCESS_IES;
}
}
}
}
}
}
return ERROR_IES;
}
u8 crack_frame_IES(u16 frame_lenth,u8 *in_frame_buffer)
{
memcpy(frame_buffer, in_frame_buffer, frame_lenth);
u8 temp_res = crack_frame_IES_Base(frame_lenth, frame_buffer, &frame_struct_IES);
if(temp_res == SUCCESS_IES)
{
if(
(frame_struct_IES.ctrl == SS_TERNAL_RESTART_CTRL)||
(frame_struct_IES.ctrl == SS_SET_LCD_DISPLAY_CTRL)||
(frame_struct_IES.ctrl == READ_IP_PORT_CTRL)||
(frame_struct_IES.ctrl == SMS_UPLOAD_CTRL)||
(frame_struct_IES.ctrl == VALVE_CONTROL_CTRL)||
(frame_struct_IES.ctrl == READ_SIGNAL_INTENSITY_CTRL)||
(frame_struct_IES.ctrl == SS_READ_THRESHOLD_CTRL)||
(frame_struct_IES.ctrl == SS_READ_START_END_CTRL)||
(frame_struct_IES.ctrl == SS_READ_STEPLENGTH_CTRL)||
(frame_struct_IES.ctrl == SS_READ_TIME_FREQUENCY_CTRL)||
(frame_struct_IES.ctrl == SS_READ_RETRY_COUNT_CTRL)||
(frame_struct_IES.ctrl == SS_READ_REPORTING_FREQUENCY_CTRL)||
(frame_struct_IES.ctrl == SS_READ_REPORTSTARTTIME_CTRL)||
(frame_struct_IES.ctrl == SS_RD_APN_CTRL)||
(frame_struct_IES.ctrl == SS_RD_COMMON_KEY_CTRL)||
(frame_struct_IES.ctrl == SS_UNIFIED_READ_CTRL)||
(frame_struct_IES.ctrl == SS_READ_IMEI_CTRL)||
(frame_struct_IES.ctrl == FM_READ_MAC_ARGUMENT_CTRL)||
(frame_struct_IES.ctrl == FM_ENC_WRITE_INITVALUE_ARGUMENT_CTRL)||
(frame_struct_IES.ctrl == FM_READ_SWVERSION_ARGUMENT_CTRL)||
(frame_struct_IES.ctrl == FM_OUT_VERIFICATIONSTATE_ARGUMENT_CTRL)||
(frame_struct_IES.ctrl == FM_ENC_READ_DATA_ARGUMENT_CTRL)||
(frame_struct_IES.ctrl == FM_READ_SERIALNUM_ARGUMENT_CTRL)||
(frame_struct_IES.ctrl == FM_CALIBRATE_TIME_ARGUMENT_CTRL)||
(frame_struct_IES.ctrl == FM_READ_ADDR_ARGUMENT_CTRL)||
(frame_struct_IES.ctrl == FM_CLEAR_METERDATA_ARGUMENT_CTRL)||
(frame_struct_IES.ctrl == FM_READ_FLOWCOEFFICIENT_ARGUMENT_CTRL)||
(frame_struct_IES.ctrl == FM_SET_VERIFICATIONSTATE_ARGUMENT_CTRL)||
(frame_struct_IES.ctrl == FM_READ_TEMPERATURECOEFFICIENT_ARGUMENT_CTRL)||
(frame_struct_IES.ctrl == FM_READ_VERIFICATIONDATA_ARGUMENT_CTRL)||
(frame_struct_IES.ctrl == FM_READ_INSTANTANEOUSFLOW_AND_TEMPERATURE_ARGUMENT_CTRL)||
(frame_struct_IES.ctrl == FM_START_OR_STOP_TEST_ARGUMENT_CTRL)||
(frame_struct_IES.ctrl == FM_RTC_CALIBTATION_ARGUMENT_CTRL)||
(frame_struct_IES.ctrl == FM_ENTER_LOWPOWER_ARGUMENT_CTRL)||
(frame_struct_IES.ctrl == FM_RD_FUNCTIONCFG_ARGUMENT_CTRL)||
(frame_struct_IES.ctrl == FM_READ_START_FLOW_CTRL)||
(frame_struct_IES.ctrl == FM_READ_COUNTER_CURRENT_CTRL)||
(frame_struct_IES.ctrl == FM_TEST_SLEF_ARGUMENT_CTRL)||
(frame_struct_IES.ctrl == FM_READ_RETRY_TIME_CTRL)||
(frame_struct_IES.ctrl == FM_BOOTLOADER_ARGUMENT_CTRL)||
(frame_struct_IES.ctrl == FM_BOOTLOADER_NEW_ARGUMENT_CTRL)||
(frame_struct_IES.ctrl == FM_ENC_SET_ADDR_ARGUMENT_CTRL)||
(frame_struct_IES.ctrl == FM_SET_TEMPERATURECOEFFICIENT_ARGUMENT_CTRL)||
(frame_struct_IES.ctrl == FM_SET_FLOWCOEFFICIENT_ARGUMENT_CTRL)||
(frame_struct_IES.ctrl == FM_SWITCH_VERIFICATION_OR_INFRARED_ARGUMENT_CTRL)||
(frame_struct_IES.ctrl == FM_CFG_FUNCTIONCFG_ARGUMENT_CTRL)||
(frame_struct_IES.ctrl == FM_START_OR_CLEAR_USING_ARGUMENT_CTRL)||
(frame_struct_IES.ctrl == WRITE_IP_PORT_CTRL)||
(frame_struct_IES.ctrl == SS_UNIFIED_SETTINGS_CTRL)||
(frame_struct_IES.ctrl == SS_SET_THRESHOLD_CTRL)||
(frame_struct_IES.ctrl == SS_SET_START_END_CTRL)||
(frame_struct_IES.ctrl == SS_SET_STEPLENGTH_CTRL)||
(frame_struct_IES.ctrl == SS_SET_RETRY_COUNT_CTRL)||
(frame_struct_IES.ctrl == SS_SET_REPORTING_FREQUENCY_CTRL)||
(frame_struct_IES.ctrl == SS_SET_REPORTSTARTTIME_CTRL)||
(frame_struct_IES.ctrl == SS_SET_APN_CTRL)||
(frame_struct_IES.ctrl == SS_SET_COMMON_KEY_CTRL)||
(frame_struct_IES.ctrl == FM_SET_START_FLOW_CTRL)||
(frame_struct_IES.ctrl == FM_SET_COUNTER_CURRENT_CTRL)||
(frame_struct_IES.ctrl == FM_SET_DIFTOF_CALIBRATION_CTRL)||
(frame_struct_IES.ctrl == FM_SET_RETRY_TIME_CTRL)||
(frame_struct_IES.ctrl == IES_NEW_ADD_FRAME_CTRL)||
((frame_struct_IES.ctrl == SS_READ_HIS_CTRL)&&(frame_struct_IES.DI1==QZ_READ_HIS_DAILY_CTRL_ID1))||
((frame_struct_IES.ctrl == SS_READ_HIS_CTRL)&&(frame_struct_IES.DI1==QZ_READ_HIS_MONTH_CTRL_ID1))||
(frame_struct_IES.ctrl == RD_RAM_CTRL)
)
{
new_message_data_rev_ies = frame_buffer + frame_struct_IES.head_site + 16;
FrameSetMsgApp(MsgNb_FlagRcvNbFrame); //<2F>յ<EFBFBD><D5B5>IJ<EFBFBD><C4B2><EFBFBD>Ӧ<EFBFBD><D3A6>֡ʱ<D6A1><CAB1>λ
return SUCCESS_IES;
}
else if(frame_struct_IES.ctrl == SHORT_ACK_UPLOAD_CTRL)
{
if(UPLOAD_TYPE_FRAME_ORDER == GetEventUploadType())//<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>
{
return SUCCESS_IES;
}
}
}
return ERROR_IES;
}
//<2F><><EFBFBD>ɹ<EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD>
u8 up_deal_code_ies(void)
{
task_complete_ies = PTL_PACK_BUSY;
switch(frame_struct_IES.ctrl)
{
#if (MODULE_BLE_USED)
#else
case READ_IP_PORT_CTRL:
{
frame_func_reply_NB_ReadIpPort();
frame_struct_IES.ack_ctrl = ACK_READ_IP_PORT_CTRL;
}
break;
case SMS_UPLOAD_CTRL:
{
frame_func_reply_NB_Upload();
frame_struct_IES.ack_ctrl = ACK_SMS_UPLOAD_CTRL;
}
break;
case READ_SIGNAL_INTENSITY_CTRL:
{
frame_func_reply_NB_ReadSignal();
frame_struct_IES.ack_ctrl = ACK_READ_SIGNAL_INTENSITY_CTRL;
}
break;
case SS_READ_THRESHOLD_CTRL:
{
frame_func_reply_NB_ReadThreshole();
frame_struct_IES.ack_ctrl = SS_ACK_READ_THRESHOLD_CTRL;
}
break;
case SS_READ_START_END_CTRL:
{
frame_func_reply_NB_ReadStartEnd();
frame_struct_IES.ack_ctrl = SS_ACK_READ_START_END_CTRL;
}
break;
case SS_READ_STEPLENGTH_CTRL:
{
frame_func_reply_NB_ReadStepLength();
frame_struct_IES.ack_ctrl = SS_ACK_READ_STEPLENGTH_CTRL;
}
break;
// case SS_READ_TIME_FREQUENCY_CTRL:
// {
// frame_func_reply_NB_TimeFrequency();
// frame_struct_IES.ack_ctrl = SS_ACK_READ_TIME_FREQUENCY_CTRL;
// }
// break;
case SS_READ_RETRY_COUNT_CTRL:
{
frame_func_reply_NB_ReadRetryCount();
frame_struct_IES.ack_ctrl = SS_ACK_READ_RETRY_COUNT_CTRL;
}
break;
case SS_READ_REPORTING_FREQUENCY_CTRL:
{
frame_func_reply_NB_ReadReportingFrequency();
frame_struct_IES.ack_ctrl = SS_ACK_READ_REPORTING_FREQUENCY_CTRL;
}
break;
case SS_READ_REPORTSTARTTIME_CTRL:
{
frame_func_reply_NB_ReadReportStartTime();
frame_struct_IES.ack_ctrl = SS_ACK_READ_REPORTSTARTTIME_CTRL;
}
break;
case SS_RD_APN_CTRL:
{
frame_func_reply_NB_ReadApn();
frame_struct_IES.ack_ctrl = SS_ACK_RDT_APN_CTRL;
}
break;
// case SS_RD_COMMON_KEY_CTRL:
// {
// frame_func_reply_NB_ReadCommonKey();
// frame_struct_IES.ack_ctrl = ACK_SS_RD_COMMON_KEY_CTRL;
// }
// break;
case SS_UNIFIED_READ_CTRL:
{
frame_func_reply_NB_UnifiedRead();
frame_struct_IES.ack_ctrl = SS_ACK_UNIFIED_READ_CTRL;
}
break;
case SS_READ_IMEI_CTRL:
{
frame_func_reply_NB_ReadImei();
frame_struct_IES.ack_ctrl = SS_ACK_READ_IMEI_CTRL;
}
break;
case FM_READ_RETRY_TIME_CTRL:
{
frame_func_reply_NB_ReadRetryTime();
frame_struct_IES.ack_ctrl = FM_READ_RETRY_TIME_REPLY_CTRL;
}
break;
case WRITE_IP_PORT_CTRL:
{
frame_func_s3_NB_WriteIpPort();;
frame_struct_IES.ack_ctrl = ACK_WRTIE_IP_PORT_CTRL;
}
break;
case SS_UNIFIED_SETTINGS_CTRL:
{
frame_func_s3_NB_Unified_Setting();;
frame_struct_IES.ack_ctrl = SS_ACK_UNIFIED_SETTINGS_CTRL;
}
break;
case SS_SET_THRESHOLD_CTRL:
{
frame_func_s3_NB_SetThreshold();;
frame_struct_IES.ack_ctrl = SS_ACK_SET_THRESHOLD_CTRL;
}
break;
case SS_SET_START_END_CTRL:
{
frame_func_s3_NB_SetStartEnd();;
frame_struct_IES.ack_ctrl = SS_ACK_SET_START_END_CTRL;
}
break;
case SS_SET_STEPLENGTH_CTRL:
{
frame_func_s3_NB_SetSteplength();;
frame_struct_IES.ack_ctrl = SS_ACK_SET_STEPLENGTH_CTRL;
}
break;
case SS_SET_RETRY_COUNT_CTRL:
{
frame_func_s3_NB_SetRetryCount();;
frame_struct_IES.ack_ctrl = SS_ACK_SET_RETRY_COUNT_CTRL;
}
break;
case SS_SET_REPORTING_FREQUENCY_CTRL:
{
frame_func_s3_NB_SetReportingFrequency();;
frame_struct_IES.ack_ctrl = SS_ACK_SET_REPORTING_FREQUENCY_CTRL;
}
break;
case SS_SET_REPORTSTARTTIME_CTRL:
{
frame_func_s3_NB_SetReportStartTime();;
frame_struct_IES.ack_ctrl = SS_ACK_SET_REPORTSTARTTIME_CTRL;
}
break;
case SS_SET_APN_CTRL:
{
frame_func_s3_NB_SetApn();;
frame_struct_IES.ack_ctrl = SS_ACK_SET_APN_CTRL;
}
break;
case FM_SET_RETRY_TIME_CTRL:
{
frame_func_s3_NB_SetRetryTime();;
frame_struct_IES.ack_ctrl = FM_SET_RETRY_TIME_REPLY_CTRL;
}
break;
case SHORT_ACK_UPLOAD_CTRL:
{
frame_func_reply_NB_AckUploadShort();
}
break;
#endif
case SS_TERNAL_RESTART_CTRL:
{
frame_func_reply_NB_TernalRestart();
frame_struct_IES.ack_ctrl = SS_ACK_TERNAL_RESTART_CTRL;
}
break;
case SS_SET_LCD_DISPLAY_CTRL:
{
frame_func_reply_NB_SetLcdDisplay();
frame_struct_IES.ack_ctrl = SS_ACK_SET_LCD_DISPLAY_CTRL;
}
break;
case VALVE_CONTROL_CTRL:
{
frame_func_reply_NB_ValveControl();
frame_struct_IES.ack_ctrl = ACK_VALVE_CONTROL_CTRL;
}
break;
case SS_READ_TIME_FREQUENCY_CTRL:
{
frame_func_reply_NB_TimeFrequency();
frame_struct_IES.ack_ctrl = SS_ACK_READ_TIME_FREQUENCY_CTRL;
}
break;
case SS_RD_COMMON_KEY_CTRL:
{
frame_func_reply_NB_ReadCommonKey();
frame_struct_IES.ack_ctrl = ACK_SS_RD_COMMON_KEY_CTRL;
}
break;
case FM_READ_MAC_ARGUMENT_CTRL:
{
frame_func_reply_NB_ReadMac();
frame_struct_IES.ack_ctrl = FM_READ_MAC_REPLY_CTRL;
}
break;
case FM_ENC_WRITE_INITVALUE_ARGUMENT_CTRL:
{
frame_func_reply_NB_WriteInitValue();
frame_struct_IES.ack_ctrl = FM_ENC_WRITE_INITVALUE_REPLY_CTRL;
}
break;
case FM_READ_SWVERSION_ARGUMENT_CTRL:
{
frame_func_reply_NB_ReadSwVersion();
frame_struct_IES.ack_ctrl = FM_READ_SWVERSION_REPLY_CTRL;
}
break;
case FM_OUT_VERIFICATIONSTATE_ARGUMENT_CTRL:
{
frame_func_reply_NB_OutVerificationState();
frame_struct_IES.ack_ctrl = FM_OUT_VERIFICATIONSTATE_REPLY_CTRL;
}
break;
case FM_ENC_READ_DATA_ARGUMENT_CTRL:
{
frame_func_reply_NB_ReadData();
frame_struct_IES.ack_ctrl = FM_ENC_READ_DATA_REPLY_CTRL;
}
break;
case FM_READ_SERIALNUM_ARGUMENT_CTRL:
{
frame_func_reply_NB_ReadSerialnum();
frame_struct_IES.ack_ctrl = FM_READ_SERIALNUM_REPLY_CTRL;
}
break;
case FM_CALIBRATE_TIME_ARGUMENT_CTRL:
{
frame_func_reply_NB_CalibrateTime();
frame_struct_IES.ack_ctrl = FM_CALIBRATE_TIME_REPLY_CTRL;
}
break;
case FM_READ_ADDR_ARGUMENT_CTRL:
{
frame_func_reply_NB_ReadAddr();
frame_struct_IES.ack_ctrl = FM_READ_ADDR_REPLY_CTRL;
}
break;
case FM_CLEAR_METERDATA_ARGUMENT_CTRL:
{
frame_func_reply_NB_ClearMeterData();
frame_struct_IES.ack_ctrl = FM_CLEAR_METERDATA_REPLY_CTRL;
}
break;
case FM_READ_FLOWCOEFFICIENT_ARGUMENT_CTRL:
{
frame_func_reply_NB_ReadFlowCoefficient();
frame_struct_IES.ack_ctrl = FM_READ_FLOWCOEFFICIENT_REPLY_CTRL;
}
break;
case FM_SET_VERIFICATIONSTATE_ARGUMENT_CTRL:
{
if(FM_SET_VERIFICATIONSTATE_TOOL_DI1 == frame_struct_IES.DI1)
{
frame_func_reply_TOOL_SetVerification();
}
else
{
frame_func_reply_NB_SetVerification();
}
frame_struct_IES.ack_ctrl = FM_SET_VERIFICATIONSTATE_REPLY_CTRL;
}
break;
case FM_READ_TEMPERATURECOEFFICIENT_ARGUMENT_CTRL:
{
frame_func_reply_NB_ReadTemperatureCoefficient();
frame_struct_IES.ack_ctrl = FM_READ_TEMPERATURECOEFFICIENT_REPLY_CTRL;
}
break;
case FM_READ_VERIFICATIONDATA_ARGUMENT_CTRL:
{
if(FM_READ_VERIFICATIONDATA_TOOL_DI1 == frame_struct_IES.DI1)
{
frame_func_reply_TOOL_ReadVerificationData();
}
else
{
frame_func_reply_NB_ReadVerificationData();
}
frame_struct_IES.ack_ctrl = FM_READ_VERIFICATIONDATA_REPLY_CTRL;
}
break;
case FM_READ_INSTANTANEOUSFLOW_AND_TEMPERATURE_ARGUMENT_CTRL:
{
frame_func_reply_NB_ReadInstantFlowAndTemperature();
frame_struct_IES.ack_ctrl = FM_READ_INSTANTANEOUSFLOW_AND_TEMPERATURE_REPLY_CTRL;
}
break;
case FM_START_OR_STOP_TEST_ARGUMENT_CTRL:
{
frame_func_reply_NB_StartOrStopTest();
frame_struct_IES.ack_ctrl = FM_START_OR_STOP_TEST_REPLY_CTRL;
}
break;
case FM_RTC_CALIBTATION_ARGUMENT_CTRL:
{
frame_func_reply_NB_RtcCalibtation();
frame_struct_IES.ack_ctrl = FM_RTC_CALIBTATION_REPLY_CTRL;
}
break;
case FM_ENTER_LOWPOWER_ARGUMENT_CTRL:
{
frame_func_reply_NB_EnterLowPower();
frame_struct_IES.ack_ctrl = FM_ENTER_LOWPOWER_REPLY_CTRL;
}
break;
case FM_RD_FUNCTIONCFG_ARGUMENT_CTRL:
{
frame_func_reply_NB_RdFunctionCfg();
frame_struct_IES.ack_ctrl = FM_RD_FUNCTIONCFG_REPLY_CTRL;
}
break;
case FM_READ_START_FLOW_CTRL:
{
frame_func_reply_NB_ReadStartFlow();
frame_struct_IES.ack_ctrl = FM_READ_START_FLOW_REPLY_CTRL;
}
break;
case FM_READ_COUNTER_CURRENT_CTRL:
{
frame_func_reply_NB_ReadCounterCurrent();
frame_struct_IES.ack_ctrl = FM_READ_COUNTER_CURRENT_REPLY_CTRL;
}
break;
case FM_TEST_SLEF_ARGUMENT_CTRL:
{
frame_func_reply_NB_TestSelf();
frame_struct_IES.ack_ctrl = FM_TEST_SLEF_REPLY_CTRL;
}
break;
/*case FM_BOOTLOADER_ARGUMENT_CTRL:
{
frame_func_s3_NB_BootLoad();
frame_struct_IES.ack_ctrl = FM_BOOTLOADER_REPLY_CTRL;
}
break;*/
case FM_BOOTLOADER_NEW_ARGUMENT_CTRL:
{
if((frame_struct_IES.DI0 == SET_RD_VALVE_PARA2_CTRL_DI0) && (frame_struct_IES.DI1 == SET_RD_VALVE_PARA2_CTRL_DI1))//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID
{
ies_set_valve_para2_frame();
frame_struct_IES.ack_ctrl = ACK_SET_RD_VALVE_PARA2_CTRL;
}
else if((frame_struct_IES.DI0 == FM_BOOTLOADER_NEW_DI0) && (frame_struct_IES.DI1 == FM_BOOTLOADER_NEW_DI1))
{
frame_func_s3_NB_diff_BootLoad();
frame_struct_IES.ack_ctrl = FM_BOOTLOADER_NEW_REPLY_CTRL;
}
}
break;
case FM_ENC_SET_ADDR_ARGUMENT_CTRL:
{
frame_func_s3_NB_SetAddr();;
frame_struct_IES.ack_ctrl = FM_ENC_SET_ADDR_REPLY_CTRL;
}
break;
case FM_SET_TEMPERATURECOEFFICIENT_ARGUMENT_CTRL:
{
frame_func_s3_NB_SetTempratureConefficient();;
frame_struct_IES.ack_ctrl = FM_SET_TEMPERATURECOEFFICIENT_REPLY_CTRL;
}
break;
case FM_SET_FLOWCOEFFICIENT_ARGUMENT_CTRL:
{
frame_func_s3_NB_SetFowcoefficient();;
frame_struct_IES.ack_ctrl = FM_SET_FLOWCOEFFICIENT_REPLY_CTRL;
}
break;
case FM_SWITCH_VERIFICATION_OR_INFRARED_ARGUMENT_CTRL:
{
frame_func_s3_NB_SwitchVerificationOrInfrared();;
frame_struct_IES.ack_ctrl = FM_SWITCH_VERIFICATION_OR_INFRARED_REPLY_CTRL;
}
break;
case FM_CFG_FUNCTIONCFG_ARGUMENT_CTRL:
{
frame_func_s3_NB_CfgFunctioncfg();;
frame_struct_IES.ack_ctrl = FM_CFG_FUNCTIONCFG_REPLY_CTRL;
}
break;
case FM_START_OR_CLEAR_USING_ARGUMENT_CTRL:
{
frame_func_s3_NB_SetOrClearUsing_SAcrc();;
frame_struct_IES.ack_ctrl = FM_START_OR_CLEAR_USING_REPLY_CTRL;
}
break;
case SS_SET_COMMON_KEY_CTRL:
{
frame_func_s3_NB_SetCommonKey();;
frame_struct_IES.ack_ctrl = ACK_SS_SET_COMMON_KEY_CTRL;
}
break;
case FM_SET_START_FLOW_CTRL:
{
frame_func_s3_NB_SetStartFlow();;
frame_struct_IES.ack_ctrl = FM_SET_START_FLOW_REPLY_CTRL;
}
break;
case FM_SET_COUNTER_CURRENT_CTRL:
{
frame_func_s3_NB_SetCounterCurrent();;
frame_struct_IES.ack_ctrl = FM_SET_COUNTER_CURRENT_REPLY_CTRL;
}
break;
case FM_SET_DIFTOF_CALIBRATION_CTRL:
{
frame_func_s3_NB_SetDiftofCalibration();;
frame_struct_IES.ack_ctrl = FM_SET_DIFTOF_CALIBRATION_REPLY_CTRL;
}
break;
case SS_READ_HIS_CTRL:
{
switch(frame_struct_IES.DI1)
{
case QZ_READ_HIS_DAILY_CTRL_ID1://<2F>ն<EFBFBD><D5B6><EFBFBD>
{
frame_func_reply_NB_ReadHistoryData_Daily();
}
break;
case QZ_READ_HIS_MONTH_CTRL_ID1://<2F><EFBFBD><C2B6><EFBFBD>
{
frame_func_reply_NB_ReadHistoryData_Month();
}
break;
default:
{
up_deal_stat_ies = UP_DEAL_S0;
task_complete_ies = PTL_PACK_FAIL;
}
}
frame_struct_IES.ack_ctrl = SS_ACK_READ_HIS_CTRL;
}
break;
case RD_RAM_CTRL:
{
ies_read_ram_frame();;
frame_struct_IES.ack_ctrl = ACK_RD_RAM_CTRL;
}
break;
case IES_NEW_ADD_FRAME_CTRL:
{
if(COM_WATER_ID1_0x10 == frame_struct_IES.DI1) //<2F><><EFBFBD>ݱ<EFBFBD>ʶ1ͳһΪx010
{
switch(frame_struct_IES.DI0)
{
case READ_EEPROM_DATA_ID0://<2F><>EEPROM
{
ies_read_eeprom_data_frame();
}
break;
case WRITE_EEPROM_DATA_ID0://дEEPROM
{
ies_write_eeprom_data_frame();
}
break;
case SET_UDP_IP_PORT_ID0://<2F><><EFBFBD><EFBFBD>udp
{
frame_func_s3_NB_WriteUdpIpPort();
}
break;
case READ_UDP_IP_PORT_ID0: // <20><>ȡUDPģʽIP
{
frame_func_reply_NB_ReadUdpIpPort();
}
break;
case READ_TIMES_SOE_ID0:
{
frame_func_reply_NB_ReadSoe();
}
break;
case SET_EMERGENCY_NUM_ID0:
{
frame_func_reply_NB_set_emergency();
}
break;
case READ_EMERGENCY_NUM_ID0:
{
frame_func_reply_NB_read_emergency();
}
break;
case FACTORY_TEST_UPLOAD_ID0: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>
{
frame_factory_test_upload();
}
break;
case READ_BATERY_PARA:
{
frame_func_reply_NB_read_battery();
}
break;
case CLEAR_BATERY_PARA:
{
frame_func_reply_NB_read_batteryinit();
}
break;
default:
{
up_deal_stat_ies = UP_DEAL_S0;
task_complete_ies = PTL_PACK_FAIL;
}
break;
}
}
frame_struct_IES.ack_ctrl = ACK_IES_NEW_ADD_FRAME_CTRL;;
}
break;
default:
{
up_deal_stat_ies = UP_DEAL_S0;
task_complete_ies = PTL_PACK_FAIL;
}
break;
}
return task_complete_ies;
}
void Frame_ResetDealState_Ies(void)
{
up_deal_stat_ies = UP_DEAL_S0;
}
/****************************************************************<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD>ݵĴ<DDB5><C4B4><EFBFBD>*********************************************/
//NB<4E><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡
void Frame_ack_IesBase(STRUCT_FRAME_IES temp_struct, u8* p_temp_buf, u16 p_temp_len, u8* p_send_buf, u16* p_send_len)
{
int i = 0;
UNION_2U8TOU16 temp_pack_len;
p_send_buf[0] = 0xFE;
p_send_buf[1] = 0xFE;
p_send_buf[2] = FM_HEAD_MARK;
p_send_buf[3] = MET_TYPE;
for (i = 0; i < 7; i++)
{
p_send_buf[4 + i] = Sys_data_object.P1.met_addr[i];
}
p_send_buf[11] = temp_struct.ack_ctrl;
p_send_buf[12] = temp_struct.sta;//sta 0x40<34><30>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>֡ 0x80 λ<><CEBB><EFBFBD><EFBFBD>֡ 0xc0Ϊ<30><CEAA><EFBFBD>ܵ<EFBFBD><DCB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>֡
if(p_temp_len <= (0xFF-4))
{
p_send_buf[13] = p_temp_len+4;//l
p_send_buf[14] = temp_struct.DI0; //DI0
p_send_buf[15] = temp_struct.DI1; //DI1
p_send_buf[16] = temp_struct.serial_num0; //SER
p_send_buf[17] = temp_struct.serial_num1; //SER
memcpy(&p_send_buf[18],p_temp_buf, p_temp_len);
if((temp_struct.sta & 0x01) == 0x01)
{
AES_encrypt(0,&p_send_buf[14],p_send_buf[13], key);//<2F><><EFBFBD><EFBFBD>
p_send_buf[13]=(p_send_buf[13]/16+1)*16;
}
p_send_buf[14+p_send_buf[13]]=0;
for (i = 2; i < 14+p_send_buf[13]; i++)
{
p_send_buf[14+p_send_buf[13]] += p_send_buf[i];//У<><D0A3><EFBFBD><EFBFBD>
}
p_send_buf[15+p_send_buf[13]] = FM_END_MARK; //֡<><D6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*p_send_len = 16+p_send_buf[13];
}
else
{
temp_pack_len.datas = p_temp_len+4;
p_send_buf[13] = temp_pack_len.datas_map.data0;
p_send_buf[14] = temp_pack_len.datas_map.data1;
p_send_buf[15] = temp_struct.DI0; //DI0
p_send_buf[16] = temp_struct.DI1; //DI1
p_send_buf[17] = temp_struct.serial_num0; //SER
p_send_buf[18] = temp_struct.serial_num1; //SER
memcpy(&p_send_buf[19], p_temp_buf, p_temp_len);
if((temp_struct.sta & 0x01) == 0x01)
{
AES_encrypt(1,&p_send_buf[15], temp_pack_len.datas, key);//<2F><><EFBFBD><EFBFBD>
temp_pack_len.datas = (temp_pack_len.datas/16+1)*16;
p_send_buf[13]=temp_pack_len.datas_map.data1;//<2F><>λ<EFBFBD><CEBB>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
p_send_buf[14]=temp_pack_len.datas_map.data0;
}
p_send_buf[15+temp_pack_len.datas]=0;
for (i = 2; i < 15+temp_pack_len.datas; i++)
{
p_send_buf[15+temp_pack_len.datas] += p_send_buf[i];//У<><D0A3><EFBFBD><EFBFBD>
}
p_send_buf[16+temp_pack_len.datas] = FM_END_MARK; //֡<><D6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*p_send_len = 17+temp_pack_len.datas;
}
}
//Ӧ<><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡
void Frame_ack_IES(u8* p_send_buf, u16* p_send_len)
{
STRUCT_FRAME_IES temp_struct;
temp_struct.ack_ctrl = frame_struct_IES.ack_ctrl;
temp_struct.DI0 = frame_struct_IES.DI0;
temp_struct.DI1 = frame_struct_IES.DI1;
temp_struct.sta = frame_struct_IES.sta;
temp_struct.serial_num0 = frame_struct_IES.serial_num0;
temp_struct.serial_num1 = frame_struct_IES.serial_num1;
Frame_ack_IesBase(temp_struct,g_frame_temp_send_buf, g_frame_temp_len, p_send_buf, p_send_len);
}
///////////////////////////////////////////////////////////<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>֡///////////////////////////////
#if (MODULE_BLE_USED)
#else
//<2F><>ȡ<EFBFBD>ź<EFBFBD><C5BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
MEASURE_UPLOAD_INFO UploadGetInfo_Base(void)
{
s16 s_temp_data=0;
MEASURE_UPLOAD_INFO temp_UploadInfo;
NbiotGetSNR(&s_temp_data);
if(s_temp_data<0)
{
temp_UploadInfo.metinfo.snr_val =(-s_temp_data);
temp_UploadInfo.metinfo.snr_val |= 0x8000;
}
else
{
temp_UploadInfo.metinfo.snr_val = s_temp_data;
}
//
NbiotGetECL(&s_temp_data);
if(s_temp_data<0)
{
temp_UploadInfo.metinfo.ecl_val |= (-s_temp_data)&0x8000;
}
else
{
temp_UploadInfo.metinfo.ecl_val = s_temp_data;
}
//
NbiotGetRSRP(&s_temp_data);
temp_UploadInfo.metinfo.RSRP_val = -s_temp_data;
NbiotGetCSQ(&temp_UploadInfo.metinfo.single_val);
temp_UploadInfo.metinfo.single_val = (temp_UploadInfo.metinfo.single_val / 10)*16 + (temp_UploadInfo.metinfo.single_val%10);
//<2F><>ȡ<EFBFBD><C8A1>ѹֵ
temp_UploadInfo.metinfo.bat_val.u16_data =HexToBcd16(PowerCheckValueSys());
temp_UploadInfo.metinfo.bat_threshold_val = 0x03;//Ƿѹ<C7B7><D1B9>ֵ3v
return temp_UploadInfo;
}
/////////////////////////////////////////////<2F><><EFBFBD><EFBFBD>UDP<44>ϱ<EFBFBD>////////////////////////////////
void GetUploadDataResetState_IesUDP(void)
{
upload_frame_stat_ies_udp =UP_DEAL_S1;
upload_task_complete_ies_udp = PTL_PACK_BUSY;
}
u8 GetUploadDataCheckIdle_IesUDP(void)
{
if(UP_DEAL_S0 == upload_frame_stat_ies_udp)
{
return TASK_IDLE;
}
else
{
return TASK_BUSY;
}
}
u8 GetUploadDataCheckTask_IesUDP(void)
{
return upload_task_complete_ies_udp;
}
void GetUploadDataMachine_IesUDP(u8 data_step, u8* p_send_buf, u16* p_send_len)
{
if(data_step == UPLOAD_FRAME_REQUEST_NEW)
{
STRUCT_FRAME_IES upload_struct_IES;
u8 cell_id_data_frame[CELL_ID_SIZE];
MET_STATE temp_state; //״̬<D7B4><CCAC>
Fram_To_Float tmp_float;
s16 s_temp_data=0;
upload_udp_frame.ProcMsgData.GP30_PeakUp.datas = Gp30CheckTestDataApp(GP30_APP_PEAK_UP);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>źŷ<C5BA>ֵup
upload_udp_frame.ProcMsgData.GP30_PeakDown.datas = Gp30CheckTestDataApp(GP30_APP_PEAK_DOWN);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>źŷ<C5BA>ֵdown ƽ̨<C6BD><CCA8>ʾ<EFBFBD><CABE>λΪV
//<2F><EFBFBD>
float tempTempratureFlag;
tempTempratureFlag= TempCheckValueApp();
if(tempTempratureFlag < 0) //CMR<4D><52><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
{
tempTempratureFlag = -tempTempratureFlag;
upload_udp_frame.ProcMsgData.TempX100.datas = (u32)(tempTempratureFlag*100);//HexToBcd32((u32)(tempTempratureFlag*100));
upload_udp_frame.ProcMsgData.TempX100.datas|= 0x8000;
}
else
{
upload_udp_frame.ProcMsgData.TempX100.datas = (u32)(tempTempratureFlag*100);//HexToBcd32((u32)(tempTempratureFlag*100));
upload_udp_frame.ProcMsgData.TempX100.datas &= 0x7FFF;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#if WENDU_FANSUAN_OPEN
upload_udp_frame.ProcMsgData.GP30_TempX100.datas = upload_udp_frame.ProcMsgData.TempX100.datas;
#else
upload_udp_frame.ProcMsgData.GP30_TempX100.datas = 0;
#endif
upload_udp_frame.ProcMsgData.GP30_Diff.datas = Gp30CheckTestDataApp(GP30_APP_DIFF);
upload_udp_frame.ProcMsgData.GP30_DiffBig[0].datas =PROGRAME_VERSION>>16;
upload_udp_frame.ProcMsgData.GP30_DiffBig[1].datas =(Sys_data_object.P1.run_information_object.ee_remain_para_energy_life*10);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ;
upload_udp_frame.ProcMsgData.GP30_DiffBig[2].datas = Sys_data_object.P1.run_information_object.nb_upload_happen_num;//NB<4E>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>
upload_udp_frame.ProcMsgData.GP30_DiffBig[3].datas =0;
upload_udp_frame.ProcMsgData.ResetCount = (Meter_GetResetCount()>>8)&0xFF;
upload_udp_frame.ProcMsgData.ResetReason = Meter_GetResetCount()&0xFF;
upload_udp_frame.ProcMsgData.BateryPower =PowerCheckValueSys();
NbiotGetRSRP(&s_temp_data);
upload_udp_frame.ProcMsgData.Rsrp = -s_temp_data;
NbiotGetSNR(&s_temp_data);
if(s_temp_data<0)
{
upload_udp_frame.ProcMsgData.Snr =(-s_temp_data);
upload_udp_frame.ProcMsgData.Snr |= 0x8000;
}
else
{
upload_udp_frame.ProcMsgData.Snr = s_temp_data;
}
//upload_udp_frame.ProcMsgData.UploadLastFailCode =;
//cellid
NbiotGetCell_ID(cell_id_data_frame);
upload_udp_frame.ProcMsgData.CellId.datas = 0;
for(int i=0;i<CELL_ID_SIZE;i++)
{
if(cell_id_data_frame[i] != 0)
{
upload_udp_frame.ProcMsgData.CellId.datas <<= 4;
if(cell_id_data_frame[i] <= '9')
{
upload_udp_frame.ProcMsgData.CellId.datas |= cell_id_data_frame[i]-'0';
}
else if((cell_id_data_frame[i] <= 'f')&&(cell_id_data_frame[i] >= 'a'))
{
upload_udp_frame.ProcMsgData.CellId.datas |= cell_id_data_frame[i]-'a'+10;
}
else if((cell_id_data_frame[i] <= 'F')&&(cell_id_data_frame[i] >= 'A'))
{
upload_udp_frame.ProcMsgData.CellId.datas |= cell_id_data_frame[i]-'A'+10;
}
}
}
upload_udp_frame.ProcMsgData.Frequency =NbiotGetNBAND();
//upload_udp_frame.ProcMsgData.Reverse =;
//״̬<D7B4><CCAC>
temp_state = FrameGetByte();
upload_udp_frame.ProcMsgData.Sta0 = temp_state.stat0;
upload_udp_frame.ProcMsgData.Sta1 = temp_state.stat1;
upload_udp_frame.ProcMsgData.Sta2 = temp_state.stat2;
upload_udp_frame.ProcMsgData.Sta3 = 0x02;
//<2F><><EFBFBD><EFBFBD>
tmp_float.gp22_u32 = Gp30CheckDataApp(2);
upload_udp_frame.ProcMsgData.CurrentFlow_short.datas = (u32)(tmp_float.gp22_float*10);//<2F><>ǰ<EFBFBD>ۼ<EFBFBD><DBBC><EFBFBD><EFBFBD><EFBFBD>;//<2F><>ǰ<EFBFBD>ۼ<EFBFBD><DBBC><EFBFBD><EFBFBD><EFBFBD>
upload_udp_frame.ProcMsgData.null_buf.datas = 0; //<2F><><EFBFBD>ھ<EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD>4<EFBFBD>ֽ<EFBFBD>
upload_struct_IES.ack_ctrl = SS_UPLOAD_CTRL;
upload_struct_IES.DI0 = SS_UPLOAD_CTRL_UDP_ID0;
upload_struct_IES.DI1 = SS_UPLOAD_CTRL_ID1;
upload_struct_IES.sta = 0x03;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>
//upload_serial_num++;
upload_struct_IES.serial_num0 = 0x12;//upload_serial_num&0xFF;
upload_struct_IES.serial_num1 = 0x34;//(upload_serial_num>>8)&0xFF;
Frame_ack_IesBase(upload_struct_IES, upload_udp_frame.buf, STRU_DATA_LEN_IES_UDP, p_send_buf, p_send_len);
//////////////
upload_task_complete_ies_udp = PTL_PACK_SUCCESS;// <20>ɹ<EFBFBD>
}
else
{
upload_task_complete_ies_udp = PTL_PACK_FAIL;// ʧ<><CAA7>
}
upload_frame_stat_ies_udp = UP_DEAL_S0;
}
/////////////////////////////////////////////<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>////////////////////////////////
void GetUploadDataResetState_Product(void)
{
upload_frame_stat_product_ies =UP_DEAL_S1;
upload_task_complete_product_ies = PTL_PACK_BUSY;
}
u8 GetUploadDataCheckIdle_Product(void)
{
if(UP_DEAL_S0 == upload_frame_stat_product_ies)
{
return TASK_IDLE;
}
else
{
return TASK_BUSY;
}
}
u8 GetUploadDataCheckTask_Product(void)
{
return upload_task_complete_product_ies;
}
void GetUploadDataMachine_Product(u8 data_step, u8* p_send_buf, u16* p_send_len)
{
DateTime tempRtcc_time;
MET_STATE temp_state; //״̬<D7B4><CCAC>
Fram_To_Float tmp_float;
MEASURE_UPLOAD_INFO temp_UploadInfo;
STRUCT_FRAME_IES upload_struct_IES;
if(data_step == UPLOAD_FRAME_REQUEST_NEW)
{
upload_frame_retry_times =0;
//<2F><><EFBFBD><EFBFBD>
tmp_float.gp22_u32 = Gp30CheckDataApp(2);
short_upload_product_frame.data.null_buf.datas = 0;
short_upload_product_frame.data.CurrentFlow_short.datas = (u32)(tmp_float.gp22_float*10);//<2F><>ǰ<EFBFBD>ۼ<EFBFBD><DBBC><EFBFBD><EFBFBD><EFBFBD>
//<2F>ź<EFBFBD>\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
temp_UploadInfo = UploadGetInfo_Base();
short_upload_product_frame.data.RSRP_val = (u8)(temp_UploadInfo.metinfo.RSRP_val/10);
short_upload_product_frame.data.bat_voltage = PowerCheckValueSys();
short_upload_product_frame.data.mode_snr = temp_UploadInfo.metinfo.snr_val;
short_upload_product_frame.data.mode_ecl = temp_UploadInfo.metinfo.ecl_val;
//<2F>ϱ<EFBFBD>ʱ<EFBFBD><CAB1>
RtccGetDateTime(&tempRtcc_time);
short_upload_product_frame.data.UploadTime[0] = tempRtcc_time.s.minute;
short_upload_product_frame.data.UploadTime[1] = tempRtcc_time.s.hour;
short_upload_product_frame.data.UploadTime[2] = tempRtcc_time.s.day;
short_upload_product_frame.data.UploadTime[3] = tempRtcc_time.s.month;
short_upload_product_frame.data.UploadTime[4] = tempRtcc_time.s.year;
//״̬<D7B4><CCAC>
temp_state = FrameGetByte();
short_upload_product_frame.data.StateBytes[0] = temp_state.stat0;
short_upload_product_frame.data.StateBytes[1] = temp_state.stat1;
short_upload_product_frame.data.StateBytes[2] = temp_state.stat2;
short_upload_product_frame.data.StateBytes[3] = 0x02;
short_upload_product_frame.data.StateBytes[3] |= getUploadControlPara(UP_BAT_STATE);//ʣ<><CAA3><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD>
short_upload_product_frame.data.soft_ver.datas_map.data1 =(FrameCheckParaApp(FramePara_ProgVersion)>>16)&0xFF;
short_upload_product_frame.data.soft_ver.datas_map.data0 =(FrameCheckParaApp(FramePara_ProgVersion)>>24)&0xFF;
//<2F><EFBFBD>
short_upload_product_frame.data.temp_value.datas = (u16)TempCheckValueApp();
//////////////
upload_struct_IES.ack_ctrl = SHORT_UPLOAD_CTRL;
upload_struct_IES.DI0 = SHORT_UPLOAD_CTRL_ID0;
upload_struct_IES.DI1 = SHORT_UPLOAD_CTRL_ID1;
upload_struct_IES.sta = 0x03;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>
upload_struct_IES.serial_num0 = 0x56;
upload_struct_IES.serial_num1 = 0x78;
Frame_ack_IesBase(upload_struct_IES, short_upload_product_frame.buf, STRU_DATA_LEN_IES_SHORT, p_send_buf, p_send_len);
//////////////
upload_task_complete_product_ies = PTL_PACK_SUCCESS;// <20>ɹ<EFBFBD>
}
else
{
if(data_step == UPLOAD_FRAME_UPLOAD_RETRY)
{
if(upload_frame_retry_times < 1)
{
upload_frame_retry_times++;
upload_task_complete_product_ies = PTL_PACK_SUCCESS;// <20>ɹ<EFBFBD>
}
else//<2F><><EFBFBD>·<EFBFBD><C2B7><EFBFBD>ʧ<EFBFBD><CAA7>3<EFBFBD>εĴ<CEB5><C4B4><EFBFBD>
{
upload_task_complete_product_ies = PTL_PACK_FAIL;
}
}
else if(data_step == UPLOAD_FRAME_ONLINE_FAIL)//<2F><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
{
if((Sys_data_object.P1.func_cfg_bytes[0]>0)&&NbiotIfOnline())//<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>ʱ<EFBFBD><CAB1>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>ֵ,<2C>򲻱<EFBFBD><F2B2BBB1><EFBFBD><EFBFBD><EFBFBD>
{
NB_SS_Control_SetPara(NB_UploadFailTimes, 0);
}
else
{
Sys_data_object.P3.ProductUpoadFailFlag = 50;
}
upload_task_complete_product_ies = PTL_PACK_FAIL;// ʧ<><CAA7>
}
else//Ӧ<><D3A6><EFBFBD>ɹ<EFBFBD>
{
NB_SS_Control_SetPara(NB_UploadFailTimes, 0);//<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1>ɹ<EFBFBD>,<2C><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD>
upload_task_complete_product_ies = PTL_PACK_FAIL;// ʧ<><CAA7>
}
}
upload_frame_stat_product_ies = UP_DEAL_S0;
}
#endif