1481 lines
47 KiB
C
1481 lines
47 KiB
C
|
#include "sys_config.h"
|
|||
|
#if PRODUCT_WHYW
|
|||
|
#include "sys_processor.h"
|
|||
|
#include "UWater_eeprom_driver.h"
|
|||
|
#include "UWater_timer1us_driver.h"
|
|||
|
#include "UWater_rtcc_app.h"
|
|||
|
#include "UWater_power_app.h"
|
|||
|
#include "UWater_gp22_app.h"
|
|||
|
#include "UWater_pt_app.h"
|
|||
|
#include "UWater_DataTools_App.h"
|
|||
|
#include "UWater_QZ_Store_App.h"
|
|||
|
#include "UWater_frame_func_ReplyWuHanYW.h"
|
|||
|
|
|||
|
/*------------------------------ Variable Define ------------------------------------*/
|
|||
|
static u8 s_eep_complete_WHYW=0;
|
|||
|
static u8 task_complete_WHYW = PTL_PACK_BUSY; //<2F><>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
|||
|
static u8 g_frame_temp_buf_WHYW[UP_BUF_SIZE]; //<2F><><EFBFBD>ݲ<EFBFBD><DDB2>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
static u16 g_frame_temp_len_WHYW=0;//<2F><><EFBFBD>ݲ<EFBFBD><DDB2>ֵij<D6B5><C4B3><EFBFBD>
|
|||
|
|
|||
|
static STRUCT_FRAME_WHYW frame_struct_WHYW; //<2F><>Լ<EFBFBD><D4BC>Ϣ<EFBFBD>ṹ<EFBFBD><E1B9B9>
|
|||
|
static u8 *new_message_data_rev_WHYW; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
|||
|
static u8 up_deal_stat_WHYW = UP_DEAL_S0;//<2F><>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD>״̬<D7B4><CCAC>
|
|||
|
static DateTime whyw_protl_rtcc_time;
|
|||
|
static u8 upload_count_flag=0;
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD><D8B1><EFBFBD>
|
|||
|
static u32 temp_upload_delay_time;
|
|||
|
static u32 temp_upload_set_time;
|
|||
|
static u8 temp_upload_hour_minute_time;
|
|||
|
/*******<2A><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ洢<DDB4>Ͷ<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ر<EFBFBD><D8B1><EFBFBD>*************************************/
|
|||
|
static TYP_STATE_WHYW step_circle_data_store=WHYW_STATE_S0;
|
|||
|
static U32_To_Float temp_float_data;
|
|||
|
static u32 temp_CircleData;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>
|
|||
|
static u16 uTemp_ee_addr;//<2F><><EFBFBD><EFBFBD><EFBFBD>洢<EFBFBD><E6B4A2>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>
|
|||
|
static u8 uTemp_read_len;//<2F><><EFBFBD><EFBFBD><EFBFBD>洢<EFBFBD><E6B4A2><EFBFBD>ݳ<EFBFBD><DDB3>ȱ<EFBFBD><C8B1><EFBFBD>
|
|||
|
static UNION_2U8TOU16 u_circle_store_index_w;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ洢<DDB4><E6B4A2>λ<EFBFBD><CEBB>
|
|||
|
static UNION_2U8TOU16 u_circle_store_index_r;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݶ<EFBFBD>ȡ<EFBFBD><C8A1>λ<EFBFBD><CEBB>
|
|||
|
static u8 upload_data_count;//<2F><>֡<EFBFBD><D6A1>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
|
|||
|
static u16 upload_packet_count;//<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>֡<EFBFBD><D6A1>
|
|||
|
static u16 upload_packet_code;//<2F><>֡<EFBFBD><D6A1><EFBFBD><EFBFBD>
|
|||
|
static u8 upload_packet_data_count;//<2F><>֡<EFBFBD><D6A1>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
|
|||
|
static u8 upload_circle_buf[UPLOAD_CIRCLE_MAX_LEN];//EE<45><45>ȡ<EFBFBD><C8A1><EFBFBD>ڼ<EFBFBD>¼<EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD>
|
|||
|
static DateTime upload_circle_rtcc_start;//<2F><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD>ʼʱ<CABC><CAB1>
|
|||
|
static DateTime upload_circle_rtcc_end;//<2F>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
//static DateTime store_circle_rtcc_end;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>ʱ<EFBFBD><CAB1>
|
|||
|
static UNION_4U8TOU32 temp_bcd_CircleData;//<2F>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
|
|||
|
static WHYW_UNION_EE_STORE whyw_ee;
|
|||
|
/********<2A><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD>֡<EFBFBD><D6A1><EFBFBD>ر<EFBFBD><D8B1><EFBFBD>************************************************/
|
|||
|
static u8 upload_serial_num_sy=0;
|
|||
|
static u8 temp_upload_step=0;
|
|||
|
static u8 upload_frame_retry_times = 0;
|
|||
|
static TYP_STATE_WHYW upload_frame_stat_whyw=WHYW_STATE_S0;
|
|||
|
static u8 task_upload_complete_whyw = PTL_PACK_BUSY; //<2F><>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
|||
|
static u8 g_upload_temp_buf_WHYW[300]; //<2F><><EFBFBD>ݲ<EFBFBD><DDB2>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD>,ʵ<><CAB5><EFBFBD>õ<EFBFBD>244
|
|||
|
static u16 g_upload_temp_len_WHYW=0;
|
|||
|
static STRUCT_FRAME_WHYW upload_struct_WHYW; //<2F><>Լ<EFBFBD><D4BC>Ϣ<EFBFBD>ṹ<EFBFBD><E1B9B9>
|
|||
|
//<2F>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD>
|
|||
|
static UNION_2U8TOU16 temp_data_u16;
|
|||
|
static u8 temp_data_u8;
|
|||
|
static s16 s_temp_data=0;
|
|||
|
static MET_STATE temp_state;
|
|||
|
static u8 temp_buf1[16];
|
|||
|
static u8 temp_buf2[16];
|
|||
|
static u16 temp_data=0;
|
|||
|
/***************************************************************
|
|||
|
read_oline_time_ack
|
|||
|
<EFBFBD><EFBFBD>ˮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ȴ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>
|
|||
|
˵<EFBFBD><EFBFBD>:ˮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<EFBFBD>䵥λΪ<EFBFBD>룬1 <EFBFBD>ֽ<EFBFBD> HEX <EFBFBD>룬14H <EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>ʱʱ<EFBFBD><EFBFBD>Ϊ 20 <EFBFBD>롣
|
|||
|
****************************************************************/
|
|||
|
static void read_oline_time_ack(void)
|
|||
|
{
|
|||
|
g_frame_temp_len_WHYW=0;
|
|||
|
g_frame_temp_buf_WHYW[g_frame_temp_len_WHYW++] = whyw_ee.Data.ee_nb_online_keep_time;
|
|||
|
up_deal_stat_WHYW = UP_DEAL_S0;
|
|||
|
task_complete_WHYW = PTL_PACK_SUCCESS;
|
|||
|
}
|
|||
|
|
|||
|
/***************************************************************
|
|||
|
read_meter_time_ack
|
|||
|
<EFBFBD><EFBFBD>ˮ<EFBFBD><EFBFBD>ʵʱʱ<EFBFBD><EFBFBD>
|
|||
|
˵<EFBFBD><EFBFBD>:<EFBFBD><EFBFBD><EFBFBD>ڡ<EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ 7 <EFBFBD>ֽ<EFBFBD> BCD <EFBFBD>롣
|
|||
|
****************************************************************/
|
|||
|
static void read_meter_time_ack(void)
|
|||
|
{
|
|||
|
DateTime tempRtccTime;
|
|||
|
RtccGetDateTime(&tempRtccTime); //<2F><>ȡ<EFBFBD><C8A1>ǰʱ<C7B0><CAB1>
|
|||
|
|
|||
|
g_frame_temp_len_WHYW=0;
|
|||
|
g_frame_temp_buf_WHYW[g_frame_temp_len_WHYW++] = tempRtccTime.s.second;
|
|||
|
g_frame_temp_buf_WHYW[g_frame_temp_len_WHYW++] = tempRtccTime.s.minute;
|
|||
|
g_frame_temp_buf_WHYW[g_frame_temp_len_WHYW++] = tempRtccTime.s.hour;
|
|||
|
g_frame_temp_buf_WHYW[g_frame_temp_len_WHYW++] = tempRtccTime.s.day;
|
|||
|
g_frame_temp_buf_WHYW[g_frame_temp_len_WHYW++] = tempRtccTime.s.month;
|
|||
|
g_frame_temp_buf_WHYW[g_frame_temp_len_WHYW++] = tempRtccTime.s.year;
|
|||
|
g_frame_temp_buf_WHYW[g_frame_temp_len_WHYW++] = 0x20;
|
|||
|
|
|||
|
up_deal_stat_WHYW = UP_DEAL_S0;
|
|||
|
task_complete_WHYW = PTL_PACK_SUCCESS;
|
|||
|
}
|
|||
|
|
|||
|
/***************************************************************
|
|||
|
read_upload_time
|
|||
|
<EFBFBD><EFBFBD>ˮ<EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD>ϴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
****************************************************************/
|
|||
|
static void read_upload_time(void)
|
|||
|
{
|
|||
|
u8 temp_buf[64];
|
|||
|
u8 temp_index;
|
|||
|
DateTime tempDateTime;
|
|||
|
g_frame_temp_len_WHYW = 0;
|
|||
|
SystemGetUploadTime(&tempDateTime);//<2F><>ȡ<EFBFBD>ϱ<EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
for (int i = 0; i < 48; i++)
|
|||
|
{
|
|||
|
temp_buf[i] = 0xFF;//<2F><>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>Сʱ<D0A1><CAB1><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>
|
|||
|
}
|
|||
|
temp_index = BCD2HEX(tempDateTime.s.hour)*2;
|
|||
|
temp_buf[temp_index] = BCD2HEX(tempDateTime.s.minute);
|
|||
|
for (int i = 0; i < 48; i++)
|
|||
|
{
|
|||
|
g_frame_temp_buf_WHYW[g_frame_temp_len_WHYW++] = temp_buf[i];
|
|||
|
}
|
|||
|
up_deal_stat_WHYW = UP_DEAL_S0;
|
|||
|
task_complete_WHYW = PTL_PACK_SUCCESS;
|
|||
|
}
|
|||
|
/***************************************************************
|
|||
|
read_interval_time_ack
|
|||
|
<EFBFBD><EFBFBD>ȡˮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
˵<EFBFBD><EFBFBD>:ˮ<EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݼ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>ֵֻ<EFBFBD><EFBFBD>Ϊ 0x01<EFBFBD><EFBFBD>0x05<EFBFBD><EFBFBD>0x0A<EFBFBD><EFBFBD>0x0F<EFBFBD><EFBFBD>0x14<EFBFBD><EFBFBD>0x1E<EFBFBD><EFBFBD>0x3C <EFBFBD><EFBFBD> 7 <EFBFBD><EFBFBD>
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ(1 <EFBFBD><EFBFBD><EFBFBD>ӡ<EFBFBD>5 <EFBFBD><EFBFBD><EFBFBD>ӡ<EFBFBD>10 <EFBFBD><EFBFBD><EFBFBD>ӡ<EFBFBD>15 <EFBFBD><EFBFBD><EFBFBD>ӡ<EFBFBD>20 <EFBFBD><EFBFBD><EFBFBD>ӡ<EFBFBD>30 <EFBFBD><EFBFBD><EFBFBD>ӡ<EFBFBD>60 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>)<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD>
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݡ<EFBFBD><EFBFBD>Ҳɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ۼӲɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õķ<EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>
|
|||
|
****************************************************************/
|
|||
|
static void read_interval_time_ack(void)
|
|||
|
{
|
|||
|
g_frame_temp_len_WHYW = 0;
|
|||
|
g_frame_temp_buf_WHYW[g_frame_temp_len_WHYW++] = whyw_ee.Data.ee_nb_acq_interval;
|
|||
|
|
|||
|
up_deal_stat_WHYW = UP_DEAL_S0;
|
|||
|
task_complete_WHYW = PTL_PACK_SUCCESS;
|
|||
|
}
|
|||
|
/***************************************************************
|
|||
|
read_battery_ack
|
|||
|
<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
˵<EFBFBD><EFBFBD>:<EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵΪ 2 <EFBFBD>ֽ<EFBFBD> BCD <EFBFBD>룬<EFBFBD><EFBFBD>λ<EFBFBD>ֽ<EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λС<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:35H<EFBFBD><EFBFBD>06H <EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>ѹ
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵΪ 6.35V<EFBFBD><EFBFBD>
|
|||
|
****************************************************************/
|
|||
|
static void read_battery_ack(void)
|
|||
|
{
|
|||
|
g_frame_temp_len_WHYW = 0;
|
|||
|
//<2F>͵<EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD>ֵ
|
|||
|
g_frame_temp_buf_WHYW[g_frame_temp_len_WHYW++] = whyw_ee.Data.ee_battery_pra[0];
|
|||
|
g_frame_temp_buf_WHYW[g_frame_temp_len_WHYW++] = whyw_ee.Data.ee_battery_pra[1];
|
|||
|
g_frame_temp_buf_WHYW[g_frame_temp_len_WHYW++] = whyw_ee.Data.ee_battery_pra[2];
|
|||
|
g_frame_temp_buf_WHYW[g_frame_temp_len_WHYW++] = whyw_ee.Data.ee_battery_pra[3];
|
|||
|
|
|||
|
up_deal_stat_WHYW = UP_DEAL_S0;
|
|||
|
task_complete_WHYW = PTL_PACK_SUCCESS;
|
|||
|
}
|
|||
|
|
|||
|
/***************************************************************
|
|||
|
read_nb_para_ack
|
|||
|
<EFBFBD><EFBFBD>ˮ<EFBFBD><EFBFBD> NB <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
IP <EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ֱ<EFBFBD>ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 16 <EFBFBD><EFBFBD><EFBFBD>ƺ<EFBFBD><EFBFBD>ٰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><EFBFBD><EFBFBD> IP <EFBFBD><EFBFBD>ַΪ<EFBFBD><EFBFBD>
|
|||
|
110.25.38.202<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݼ<EFBFBD>˳<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>6EH<EFBFBD><EFBFBD>19H<EFBFBD><EFBFBD>26H<EFBFBD><EFBFBD>CAH<EFBFBD><EFBFBD>
|
|||
|
<EFBFBD>˿ڵ<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫת<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 16 <EFBFBD><EFBFBD><EFBFBD>ƺ<EFBFBD><EFBFBD>ٰ<EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>ֽ<EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿ڵ<EFBFBD>ַΪ<EFBFBD><EFBFBD>
|
|||
|
5005<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݼ<EFBFBD>˳<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>8DH<EFBFBD><EFBFBD>13H<EFBFBD><EFBFBD>
|
|||
|
****************************************************************/
|
|||
|
static void read_nb_para_ack(void)
|
|||
|
{
|
|||
|
g_frame_temp_len_WHYW = 0;
|
|||
|
for (int i = 0; i < 4; i++)
|
|||
|
{
|
|||
|
g_frame_temp_buf_WHYW[g_frame_temp_len_WHYW++] = Sys_data_object.P2.server_ip[i];
|
|||
|
}
|
|||
|
g_frame_temp_buf_WHYW[g_frame_temp_len_WHYW++] = Sys_data_object.P2.server_port.data_buf[0];
|
|||
|
g_frame_temp_buf_WHYW[g_frame_temp_len_WHYW++] = Sys_data_object.P2.server_port.data_buf[1];
|
|||
|
for(int i=6;i<0x38;i++)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
g_frame_temp_buf_WHYW[g_frame_temp_len_WHYW++] = 0x30;
|
|||
|
}
|
|||
|
up_deal_stat_WHYW = UP_DEAL_S0;
|
|||
|
task_complete_WHYW = PTL_PACK_SUCCESS;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/***************************************************************
|
|||
|
write_online_time_ack
|
|||
|
дˮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ȴ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>//68 10 03 00 08 22 20 33 78 04 04 00 81 11 22 0F 3B 16
|
|||
|
˵<EFBFBD><EFBFBD>:<EFBFBD><EFBFBD>ͨѶ֡<EFBFBD>Ǹ<EFBFBD>ˮ<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>ʵʱʱ<EFBFBD>ӽ<EFBFBD><EFBFBD>ж<EFBFBD>ʱ<EFBFBD><EFBFBD>ˮ<EFBFBD><EFBFBD>ʵʱʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݸ<EFBFBD>ʽ<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ
|
|||
|
****************************************************************/
|
|||
|
static void write_online_time_ack(void)
|
|||
|
{
|
|||
|
switch(up_deal_stat_WHYW)
|
|||
|
{
|
|||
|
case UP_DEAL_S0:
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())//<2F>洢<EFBFBD><E6B4A2><EFBFBD>ݵ<EFBFBD>EEPROM
|
|||
|
{
|
|||
|
g_frame_temp_len_WHYW = 0;
|
|||
|
if(*new_message_data_rev_WHYW > 30)
|
|||
|
{
|
|||
|
whyw_ee.Data.ee_nb_online_keep_time = 30;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
whyw_ee.Data.ee_nb_online_keep_time = *new_message_data_rev_WHYW++;
|
|||
|
}
|
|||
|
EepWrite(&whyw_ee.Data.ee_nb_online_keep_time, EEP_ADDR_WHYW_NB_ONLINE_KEEP, 1, &s_eep_complete_WHYW);//<2F><><EFBFBD><EFBFBD>EE<45><45><EFBFBD><EFBFBD>
|
|||
|
up_deal_stat_WHYW = UP_DEAL_S1;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case UP_DEAL_S1:
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())//<2F>洢<EFBFBD><E6B4A2><EFBFBD>ݵ<EFBFBD>EEPROM<4F><4D><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
up_deal_stat_WHYW = UP_DEAL_S0;
|
|||
|
task_complete_WHYW = PTL_PACK_SUCCESS;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
default:
|
|||
|
{
|
|||
|
up_deal_stat_WHYW = UP_DEAL_S0;
|
|||
|
task_complete_WHYW = PTL_PACK_FAIL;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/***************************************************************
|
|||
|
write_upload_time_ack
|
|||
|
дˮ<EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD>ϴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
˵<EFBFBD><EFBFBD>:<EFBFBD><EFBFBD>ͨѶ֡Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߴ<EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݸ<EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
ͨѶ֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>¡<EFBFBD>
|
|||
|
68 10 02 00 08 22 20 33 78
|
|||
|
44 //ctr
|
|||
|
33 00
|
|||
|
81 04
|
|||
|
39 //ser
|
|||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
|||
|
FF FF 0A FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF //<2F><><EFBFBD><EFBFBD>1<EFBFBD><31>10<31><30>
|
|||
|
7F 16
|
|||
|
****************************************************************/
|
|||
|
static void write_upload_time_ack(void)
|
|||
|
{
|
|||
|
switch(up_deal_stat_WHYW)
|
|||
|
{
|
|||
|
case UP_DEAL_S0:
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())//<2F>洢<EFBFBD><E6B4A2><EFBFBD>ݵ<EFBFBD>EEPROM
|
|||
|
{
|
|||
|
g_frame_temp_len_WHYW = 0;
|
|||
|
|
|||
|
temp_upload_delay_time = (u32)((Sys_data_object.P1.met_addr[1] & 0x0F)) * 100;
|
|||
|
temp_upload_delay_time += (Sys_data_object.P1.met_addr[0] >> 4) * 10 + (Sys_data_object.P1.met_addr[0] & 0x0F); //<2F><><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>0-999
|
|||
|
temp_upload_delay_time *= Sys_data_object.P1.report_step_len.datas; //<2F><><EFBFBD><EFBFBD>ɢϵ<C9A2><CFB5>
|
|||
|
for(int i=0;i<48;i++)
|
|||
|
{
|
|||
|
temp_upload_hour_minute_time = *new_message_data_rev_WHYW++;
|
|||
|
if(0xFF != temp_upload_hour_minute_time)
|
|||
|
{
|
|||
|
temp_upload_set_time = (i/2)*3600+temp_upload_hour_minute_time*60;
|
|||
|
if(temp_upload_set_time>temp_upload_delay_time)
|
|||
|
{
|
|||
|
temp_upload_set_time -= temp_upload_delay_time;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
temp_upload_set_time = 0;
|
|||
|
}
|
|||
|
Sys_data_object.P1.Time_upload_2006.s.type = UPLOAD_MODE_DAY;
|
|||
|
Sys_data_object.P1.Time_upload_2006.s.hour = HEX2BCD(temp_upload_set_time/3600);
|
|||
|
Sys_data_object.P1.Time_upload_2006.s.minute = HEX2BCD((temp_upload_set_time%3600)/60);
|
|||
|
EepWrite(&Sys_data_object.P1.Time_upload_2006.buf[0], FRAME_NBIot_FREQVAL, 5, &s_eep_complete_WHYW);//<2F><><EFBFBD><EFBFBD>EE<45><45><EFBFBD><EFBFBD>
|
|||
|
Frame_Para_Init();
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
up_deal_stat_WHYW = UP_DEAL_S1;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case UP_DEAL_S1:
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())//<2F>洢<EFBFBD><E6B4A2><EFBFBD>ݵ<EFBFBD>EEPROM<4F><4D><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
up_deal_stat_WHYW = UP_DEAL_S0;
|
|||
|
task_complete_WHYW = PTL_PACK_SUCCESS;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
default:
|
|||
|
{
|
|||
|
up_deal_stat_WHYW = UP_DEAL_S0;
|
|||
|
task_complete_WHYW = PTL_PACK_FAIL;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/***************************************************************
|
|||
|
write_interval_time_ack
|
|||
|
дˮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
˵<EFBFBD><EFBFBD>:<EFBFBD><EFBFBD>ͨѶ֡Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݸ<EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨѶ֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>¡<EFBFBD>
|
|||
|
****************************************************************/
|
|||
|
static void write_interval_time_ack(void)
|
|||
|
{
|
|||
|
switch(up_deal_stat_WHYW)
|
|||
|
{
|
|||
|
case UP_DEAL_S0:
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())//<2F>洢<EFBFBD><E6B4A2><EFBFBD>ݵ<EFBFBD>EEPROM
|
|||
|
{
|
|||
|
g_frame_temp_len_WHYW = 0;
|
|||
|
whyw_ee.Data.ee_nb_acq_interval = *new_message_data_rev_WHYW++;
|
|||
|
EepWrite(&whyw_ee.Data.ee_nb_acq_interval, EEP_ADDR_WHYW_STORE_INTERVAL, 1, &s_eep_complete_WHYW);//<2F><><EFBFBD><EFBFBD>EE<45><45><EFBFBD><EFBFBD>
|
|||
|
up_deal_stat_WHYW = UP_DEAL_S1;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case UP_DEAL_S1:
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())//<2F>洢<EFBFBD><E6B4A2><EFBFBD>ݵ<EFBFBD>EEPROM<4F><4D><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
up_deal_stat_WHYW = UP_DEAL_S0;
|
|||
|
task_complete_WHYW = PTL_PACK_SUCCESS;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
default:
|
|||
|
{
|
|||
|
up_deal_stat_WHYW = UP_DEAL_S0;
|
|||
|
task_complete_WHYW = PTL_PACK_FAIL;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/***************************************************************
|
|||
|
write_battery_ack
|
|||
|
д<EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
˵<EFBFBD><EFBFBD>:<EFBFBD><EFBFBD>ͨѶ֡Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ĵ<EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>͵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ľ<EFBFBD>ʱ<EFBFBD>ĵ<EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
<EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨѶ֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>¡<EFBFBD>
|
|||
|
****************************************************************/
|
|||
|
static void write_battery_ack(void)
|
|||
|
{
|
|||
|
switch(up_deal_stat_WHYW)
|
|||
|
{
|
|||
|
case UP_DEAL_S0:
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())//<2F>洢<EFBFBD><E6B4A2><EFBFBD>ݵ<EFBFBD>EEPROM
|
|||
|
{
|
|||
|
g_frame_temp_len_WHYW = 0;
|
|||
|
whyw_ee.Data.ee_battery_pra[0] = *new_message_data_rev_WHYW++;
|
|||
|
whyw_ee.Data.ee_battery_pra[1] = *new_message_data_rev_WHYW++;
|
|||
|
whyw_ee.Data.ee_battery_pra[2] = *new_message_data_rev_WHYW++;
|
|||
|
whyw_ee.Data.ee_battery_pra[3] = *new_message_data_rev_WHYW++;
|
|||
|
EepWrite(whyw_ee.Data.ee_battery_pra, EEP_ADDR_WHYW_BATTERY_PRA, 4, &s_eep_complete_WHYW);//<2F><><EFBFBD><EFBFBD>EE<45><45><EFBFBD><EFBFBD>
|
|||
|
up_deal_stat_WHYW = UP_DEAL_S1;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case UP_DEAL_S1:
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())//<2F>洢<EFBFBD><E6B4A2><EFBFBD>ݵ<EFBFBD>EEPROM<4F><4D><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
up_deal_stat_WHYW = UP_DEAL_S0;
|
|||
|
task_complete_WHYW = PTL_PACK_SUCCESS;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
default:
|
|||
|
{
|
|||
|
up_deal_stat_WHYW = UP_DEAL_S0;
|
|||
|
task_complete_WHYW = PTL_PACK_FAIL;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/***************************************************************
|
|||
|
write_nb_para_ack
|
|||
|
дˮ<EFBFBD><EFBFBD> NB <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
˵<EFBFBD><EFBFBD>:<EFBFBD><EFBFBD>ͨѶ֡Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NB <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(IP <EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>)<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݸ<EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨѶ֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>
|
|||
|
****************************************************************/
|
|||
|
static void write_nb_para_ack(void)
|
|||
|
{
|
|||
|
switch(up_deal_stat_WHYW)
|
|||
|
{
|
|||
|
case UP_DEAL_S0:
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
g_frame_temp_len_WHYW = 0;
|
|||
|
for (int i = 0; i < 4; i++)
|
|||
|
{
|
|||
|
Sys_data_object.P2.server_ip[i] = *(new_message_data_rev_WHYW +i);
|
|||
|
}
|
|||
|
Sys_data_object.P2.server_port.data_buf[0] = *(new_message_data_rev_WHYW +4);
|
|||
|
Sys_data_object.P2.server_port.data_buf[1] = *(new_message_data_rev_WHYW +5);
|
|||
|
EepWrite(&Sys_data_object.P2.server_ip[0], EEP_UPDATE_UDP_IP, 6, &s_eep_complete_WHYW);//<2F><><EFBFBD>浽UDP IP
|
|||
|
up_deal_stat_WHYW = UP_DEAL_S1;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case UP_DEAL_S1:
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())//<2F>洢<EFBFBD><E6B4A2><EFBFBD>ݵ<EFBFBD>EEPROM
|
|||
|
{
|
|||
|
up_deal_stat_WHYW = UP_DEAL_S0;
|
|||
|
task_complete_WHYW = PTL_PACK_SUCCESS;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
default:
|
|||
|
{
|
|||
|
up_deal_stat_WHYW = UP_DEAL_S0;
|
|||
|
task_complete_WHYW = PTL_PACK_FAIL;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/***************************************************************
|
|||
|
upload_ack
|
|||
|
<EFBFBD>ϱ<EFBFBD>Ӧ<EFBFBD><EFBFBD>֡
|
|||
|
˵<EFBFBD><EFBFBD>:NB <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϢͨѶ֡<EFBFBD><EFBFBD>ƽ̨<EFBFBD>յ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ
|
|||
|
<EFBFBD><EFBFBD>ͨѶ֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ̨<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD>ˮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ 01H<EFBFBD><EFBFBD>ˮ<EFBFBD><EFBFBD>
|
|||
|
<EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD>ʱ<EFBFBD>ɽ<EFBFBD><EFBFBD>롰<EFBFBD><EFBFBD><EFBFBD>ߡ<EFBFBD>״̬<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ̨<EFBFBD><EFBFBD>Ҫ<EFBFBD>Ը<EFBFBD>ˮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>ƽ̨Ӧ<EFBFBD><EFBFBD>
|
|||
|
<EFBFBD><EFBFBD>Ϊ 41H(D6 Ϊ<EFBFBD><EFBFBD>1<EFBFBD><EFBFBD>)<EFBFBD><EFBFBD>ˮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD>еȴ<EFBFBD>ƽ̨<EFBFBD>ĺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>֡(<EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
<EFBFBD>ȴ<EFBFBD>ʱ<EFBFBD>䣬<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>δ<EFBFBD>յ<EFBFBD>ƽ̨<EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD>ͨѶ֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>롰<EFBFBD><EFBFBD><EFBFBD>ߡ<EFBFBD>״̬)<EFBFBD><EFBFBD>ƽ̨<EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨѶ֡<EFBFBD><EFBFBD>
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(D6 Ϊ<EFBFBD><EFBFBD>1<EFBFBD><EFBFBD>)<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ
|
|||
|
//68 10 02 00 08 22 20 33 78 01 07 00 90 20 14 01 00 01 00 3D 16
|
|||
|
****************************************************************/
|
|||
|
static void upload_ack(void)
|
|||
|
{
|
|||
|
if(frame_struct_WHYW.serial_num == upload_serial_num_sy)//<2F>Ƚ<EFBFBD><C8BD><EFBFBD><EFBFBD>к<EFBFBD>
|
|||
|
{
|
|||
|
FrameSetMsgApp(MsgNbUplaod_AckOk);
|
|||
|
}
|
|||
|
g_frame_temp_len_WHYW = 0;
|
|||
|
up_deal_stat_WHYW = UP_DEAL_S0;
|
|||
|
task_complete_WHYW = PTL_PACK_FAIL;
|
|||
|
}
|
|||
|
/****************************************************************************************************/
|
|||
|
//<2F><>ַ<EFBFBD>ж<EFBFBD>
|
|||
|
static u8 check_met_addr_WHYW(u8 * p_buf)
|
|||
|
{
|
|||
|
u8 tmp_i = 0;
|
|||
|
u8 tmp_arry[8];
|
|||
|
|
|||
|
for (tmp_i = 0; tmp_i < 8; tmp_i++)
|
|||
|
{
|
|||
|
tmp_arry[tmp_i] = *(p_buf + tmp_i + 1);
|
|||
|
}
|
|||
|
|
|||
|
for (tmp_i = 1; tmp_i < 8; tmp_i++)
|
|||
|
{
|
|||
|
if ((tmp_arry[tmp_i] != Sys_data_object.P1.met_addr[tmp_i - 1]) && (tmp_arry[tmp_i] != 0xAA))
|
|||
|
{
|
|||
|
return ERROR_IES;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
return SUCCESS_IES;
|
|||
|
}
|
|||
|
//<2F><><EFBFBD><EFBFBD>Լ
|
|||
|
u8 crack_frame_WHYW(u16 frame_lenth, u8 *frame_buffer)
|
|||
|
{
|
|||
|
u16 i;
|
|||
|
u16 j;
|
|||
|
u16 endloc = 0;
|
|||
|
u16 framelen = 0;
|
|||
|
|
|||
|
if(*(frame_buffer + 10) != 1)
|
|||
|
{
|
|||
|
if (frame_lenth > FRAME_LEN_MAX) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
return (ERROR_IES);
|
|||
|
}
|
|||
|
|
|||
|
if (frame_lenth < FRAME_LEN_MIN) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>СЭ<D0A1><D0AD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
return (ERROR_IES);
|
|||
|
}
|
|||
|
|
|||
|
for (i = 0; i < frame_lenth; i++)
|
|||
|
{
|
|||
|
if (FRAME_HEAD == *frame_buffer) //<2F>ҵ<EFBFBD>֡ͷ
|
|||
|
{
|
|||
|
frame_struct_WHYW.head_site = i; //<2F><>¼֡ͷ
|
|||
|
if (ERROR_IES == check_met_addr_WHYW(frame_buffer)) //<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
|
|||
|
{
|
|||
|
return (ERROR_IES);
|
|||
|
}
|
|||
|
|
|||
|
frame_struct_WHYW.len.to_uint8[0] = *(frame_buffer + 10); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
frame_struct_WHYW.len.to_uint8[1] = *(frame_buffer + 11); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
framelen = frame_struct_WHYW.len.to_uint16 + 14; //֡<><D6A1><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
if (frame_struct_WHYW.len.to_uint16 > (frame_lenth - i)) //<2F><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>ͨѶ<CDA8><D1B6>Լǡ<D4BC><C7A1><EFBFBD>ƹ<EFBFBD><C6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD>縴λ
|
|||
|
{
|
|||
|
return (ERROR_IES);
|
|||
|
}
|
|||
|
|
|||
|
endloc = framelen - 1;
|
|||
|
|
|||
|
if ((FRAME_TAIL == frame_buffer[endloc]) && (endloc <= frame_lenth)) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD>Ч
|
|||
|
{
|
|||
|
frame_struct_WHYW.chkval = 0;
|
|||
|
|
|||
|
for (j = 0; j < (framelen - 2); j++)
|
|||
|
{
|
|||
|
frame_struct_WHYW.chkval = frame_struct_WHYW.chkval + frame_buffer[j]; //<2F><>У<EFBFBD><D0A3><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
|
|||
|
frame_struct_WHYW.chkval &= 0x00ff;
|
|||
|
|
|||
|
if (frame_struct_WHYW.chkval == frame_buffer[endloc - 1])
|
|||
|
{
|
|||
|
frame_struct_WHYW.frame_ctrl = *(frame_buffer + 9); //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
frame_struct_WHYW.mark_DI0 = *(frame_buffer + 12);
|
|||
|
frame_struct_WHYW.mark_DI1 = *(frame_buffer + 13);
|
|||
|
frame_struct_WHYW.serial_num = *(frame_buffer + 14);
|
|||
|
//68 10 03 00 08 22 20 33 78 04 04 00 81 11 22 0F 3B 16
|
|||
|
new_message_data_rev_WHYW = frame_buffer + frame_struct_WHYW.head_site + 15;
|
|||
|
FrameSetMsgApp(MsgNb_FlagRcvNbFrame); //<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Ϣ
|
|||
|
return (SUCCESS_IES);
|
|||
|
}//end if
|
|||
|
}
|
|||
|
}//end <20><>֡ͷ<D6A1><CDB7>if
|
|||
|
|
|||
|
frame_buffer++;
|
|||
|
}//end for()
|
|||
|
|
|||
|
return (ERROR_IES);
|
|||
|
}
|
|||
|
return ERROR_IES;
|
|||
|
}
|
|||
|
|
|||
|
//<2F><>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD>
|
|||
|
static u8 whyw_deal_ctrl=0;
|
|||
|
static u8 whyw_online_wait_flag=0;
|
|||
|
u8 up_deal_code_WHYW(void)
|
|||
|
{
|
|||
|
task_complete_WHYW = PTL_PACK_BUSY;
|
|||
|
whyw_deal_ctrl = (frame_struct_WHYW.frame_ctrl&0xBF);//ȥ<><C8A5>D6<44><36>ˮ<EFBFBD><CBAE><EFBFBD><EFBFBD><EFBFBD>ߵȴ<DFB5>λ<EFBFBD><CEBB>
|
|||
|
if(frame_struct_WHYW.frame_ctrl&0x40)//<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ߵȴ<DFB5>
|
|||
|
{
|
|||
|
whyw_online_wait_flag = 1;//<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
whyw_online_wait_flag = 2;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
}
|
|||
|
switch(whyw_deal_ctrl)
|
|||
|
{
|
|||
|
case READ_CTRL_DOWN:
|
|||
|
{
|
|||
|
//<2F><>ˮ<EFBFBD><CBAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ȴ<EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
if((frame_struct_WHYW.mark_DI0 == RW_ONLINE_TIME_D0)&&(frame_struct_WHYW.mark_DI1 == RW_ONLINE_TIME_D1))
|
|||
|
{
|
|||
|
read_oline_time_ack();
|
|||
|
}
|
|||
|
//<2F><>ˮ<EFBFBD><CBAE>ʵʱʱ<CAB1><CAB1>
|
|||
|
else if((frame_struct_WHYW.mark_DI0 == RW_METER_TIME_D0)&&(frame_struct_WHYW.mark_DI1 == RW_METER_TIME_D1))
|
|||
|
{
|
|||
|
read_meter_time_ack();
|
|||
|
}
|
|||
|
//<2F><>ˮ<EFBFBD><CBAE><EFBFBD>Զ<EFBFBD><D4B6>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD>ݵ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
else if((frame_struct_WHYW.mark_DI0 == RW_UPLOAD_TIME_ID0)&&(frame_struct_WHYW.mark_DI1 == RW_UPLOAD_TIME_ID1))
|
|||
|
{
|
|||
|
read_upload_time();
|
|||
|
}
|
|||
|
//<2F><>ȡˮ<C8A1><CBAE><EFBFBD><EFBFBD><EFBFBD>ݲɼ<DDB2><C9BC><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
else if((frame_struct_WHYW.mark_DI0 == RW_INTERVAL_TIME_ID0)&&(frame_struct_WHYW.mark_DI1 == RW_INTERVAL_TIME_ID1))
|
|||
|
{
|
|||
|
read_interval_time_ack();
|
|||
|
}
|
|||
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>
|
|||
|
else if((frame_struct_WHYW.mark_DI0 == RW_BATTERY_D0)&&(frame_struct_WHYW.mark_DI1 == RW_BATTERY_D1))
|
|||
|
{
|
|||
|
read_battery_ack();
|
|||
|
}
|
|||
|
//<2F><>ˮ<EFBFBD><CBAE> NB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
else if((frame_struct_WHYW.mark_DI0 == RW_NB_PARA_D0)&&(frame_struct_WHYW.mark_DI1 == RW_NB_PARA_D1))
|
|||
|
{
|
|||
|
read_nb_para_ack();
|
|||
|
}
|
|||
|
//ˮ<><CBAE><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>ǰ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>֡
|
|||
|
else if((frame_struct_WHYW.mark_DI0 == UPLOAD_DATA_D0)&&(frame_struct_WHYW.mark_DI1 == UPLOAD_DATA_D1))
|
|||
|
{
|
|||
|
upload_ack();
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
g_frame_temp_len_WHYW = 0;
|
|||
|
up_deal_stat_WHYW = UP_DEAL_S0;
|
|||
|
task_complete_WHYW = PTL_PACK_FAIL;
|
|||
|
}
|
|||
|
frame_struct_WHYW.ack_ctrl = READ_CTRL_UP;
|
|||
|
}
|
|||
|
break;
|
|||
|
case WRITE_CTRL_DOWN:
|
|||
|
{
|
|||
|
//дˮ<D0B4><CBAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ȴ<EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
if((frame_struct_WHYW.mark_DI0 == RW_ONLINE_TIME_D0)&&(frame_struct_WHYW.mark_DI1 == RW_ONLINE_TIME_D1))
|
|||
|
{
|
|||
|
write_online_time_ack();
|
|||
|
}
|
|||
|
//дˮ<D0B4><CBAE>ʵʱʱ<CAB1><CAB1>
|
|||
|
else if((frame_struct_WHYW.mark_DI0 == RW_METER_TIME_D0)&&(frame_struct_WHYW.mark_DI1 == RW_METER_TIME_D1))
|
|||
|
{
|
|||
|
task_complete_WHYW = PTL_PACK_FAIL;
|
|||
|
}
|
|||
|
//дˮ<D0B4><CBAE><EFBFBD>Զ<EFBFBD><D4B6>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD>ݵ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
else if((frame_struct_WHYW.mark_DI0 == RW_UPLOAD_TIME_ID0)&&(frame_struct_WHYW.mark_DI1 == RW_UPLOAD_TIME_ID1))
|
|||
|
{
|
|||
|
write_upload_time_ack();
|
|||
|
}
|
|||
|
//дˮ<D0B4><CBAE><EFBFBD><EFBFBD><EFBFBD>ݲɼ<DDB2><C9BC><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
else if((frame_struct_WHYW.mark_DI0 == RW_INTERVAL_TIME_ID0)&&(frame_struct_WHYW.mark_DI1 == RW_INTERVAL_TIME_ID1))
|
|||
|
{
|
|||
|
write_interval_time_ack();
|
|||
|
}
|
|||
|
//д<><D0B4><EFBFBD>ص<EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>
|
|||
|
else if((frame_struct_WHYW.mark_DI0 == RW_BATTERY_D0)&&(frame_struct_WHYW.mark_DI1 == RW_BATTERY_D1))
|
|||
|
{
|
|||
|
write_battery_ack();
|
|||
|
}
|
|||
|
//дˮ<D0B4><CBAE> NB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
else if((frame_struct_WHYW.mark_DI0 == RW_NB_PARA_D0)&&(frame_struct_WHYW.mark_DI1 == RW_NB_PARA_D1))
|
|||
|
{
|
|||
|
write_nb_para_ack();
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
g_frame_temp_len_WHYW = 0;
|
|||
|
up_deal_stat_WHYW = UP_DEAL_S0;
|
|||
|
task_complete_WHYW = PTL_PACK_FAIL;
|
|||
|
}
|
|||
|
frame_struct_WHYW.ack_ctrl = WRITE_CTRL_UP;
|
|||
|
}
|
|||
|
break;
|
|||
|
default:
|
|||
|
{
|
|||
|
g_frame_temp_len_WHYW = 0;
|
|||
|
up_deal_stat_WHYW = UP_DEAL_S0;
|
|||
|
task_complete_WHYW = PTL_PACK_FAIL;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
return task_complete_WHYW;
|
|||
|
}
|
|||
|
|
|||
|
void Frame_ResetDealState_WHYW(void)
|
|||
|
{
|
|||
|
up_deal_stat_WHYW = UP_DEAL_S0;
|
|||
|
}
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD>
|
|||
|
static void Frame_ack_WHYWBase(STRUCT_FRAME_WHYW temp_struct, u8* p_temp_buf, u16 p_temp_len, u8* p_send_buf, u16* p_send_len)
|
|||
|
{
|
|||
|
u16 i = 0;
|
|||
|
u8 temp_cs;
|
|||
|
u8* p_send_buf_start;
|
|||
|
u8* p_send_buf_end;
|
|||
|
u16 temp_len;
|
|||
|
|
|||
|
p_send_buf_start = p_send_buf;
|
|||
|
p_send_buf_end = p_send_buf;
|
|||
|
|
|||
|
*p_send_buf_end++ = FRAME_HEAD_MARK;
|
|||
|
*p_send_buf_end++ = W_METTYPE;
|
|||
|
for (i = 0; i < 7; i++)
|
|||
|
{
|
|||
|
*p_send_buf_end++ = Sys_data_object.P1.met_addr[i]; //<2F><><EFBFBD><EFBFBD>ַ
|
|||
|
}
|
|||
|
*p_send_buf_end++ = temp_struct.ack_ctrl;
|
|||
|
*p_send_buf_end++ = (p_temp_len+3)&0xFF; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽڣ<D6BD>di0<69><30>di1<69><31>ser
|
|||
|
*p_send_buf_end++ = ((p_temp_len+3)>>8)&0xFF;
|
|||
|
*p_send_buf_end++ = temp_struct.mark_DI0;
|
|||
|
*p_send_buf_end++ = temp_struct.mark_DI1;
|
|||
|
*p_send_buf_end++ = temp_struct.serial_num;
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
for(i = 0; i < p_temp_len; i++)
|
|||
|
{
|
|||
|
*p_send_buf_end++ = *(p_temp_buf + i);
|
|||
|
}
|
|||
|
//<2F><><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD>
|
|||
|
temp_len = (p_send_buf_end - p_send_buf_start);
|
|||
|
for(i = 0; i < temp_len; i++)
|
|||
|
{
|
|||
|
temp_cs += *p_send_buf_start;
|
|||
|
p_send_buf_start++;
|
|||
|
}
|
|||
|
*p_send_buf_end++ = temp_cs;
|
|||
|
*p_send_buf_end++ = FRAME_END_MARK;
|
|||
|
*p_send_len = (temp_len+2);
|
|||
|
}
|
|||
|
//Ӧ<><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡
|
|||
|
void Frame_ack_WHYW(u8* p_send_buf, u16* p_send_len)
|
|||
|
{
|
|||
|
Frame_ack_WHYWBase(frame_struct_WHYW, g_frame_temp_buf_WHYW, g_frame_temp_len_WHYW, p_send_buf, p_send_len);
|
|||
|
}
|
|||
|
/****************************************************************<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD>ݵĴ<DDB5><C4B4><EFBFBD>*********************************************/
|
|||
|
//<2F>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡
|
|||
|
void Frame_upload_WHYW(u8* p_send_buf, u16* p_send_len)
|
|||
|
{
|
|||
|
upload_struct_WHYW.ack_ctrl = READ_CTRL_UP;
|
|||
|
upload_struct_WHYW.mark_DI0 = UPLOAD_DATA_D0;
|
|||
|
upload_struct_WHYW.mark_DI1 = UPLOAD_DATA_D1;
|
|||
|
upload_serial_num_sy++;//<2F><><EFBFBD>к<EFBFBD><D0BA><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
upload_struct_WHYW.serial_num = upload_serial_num_sy;
|
|||
|
|
|||
|
Frame_ack_WHYWBase(upload_struct_WHYW, g_upload_temp_buf_WHYW, g_upload_temp_len_WHYW, p_send_buf, p_send_len);
|
|||
|
}
|
|||
|
|
|||
|
//UDP<44>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>֡
|
|||
|
void Upload_FrameData(void)
|
|||
|
{
|
|||
|
g_upload_temp_len_WHYW = 0;
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = upload_packet_count&0xFF; //<2F><>֡<EFBFBD><D6A1>L
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = (upload_packet_count>>8)&0xFF; //<2F><>֡<EFBFBD><D6A1>H
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = upload_packet_code&0xFF; //<2F><>֡<EFBFBD><D6A1><EFBFBD><EFBFBD>L
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = (upload_packet_code>>8)&0xFF; //<2F><>֡<EFBFBD><D6A1><EFBFBD><EFBFBD>H
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = upload_packet_data_count; //<2F><>֡<EFBFBD><D6A1><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
/***<2A><>EE<45><45>ȡ***/
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = upload_circle_rtcc_start.s.minute; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲɼ<DDB2>ʱ<EFBFBD><CAB1>-<2D><>
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = upload_circle_rtcc_start.s.hour; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲɼ<DDB2>ʱ<EFBFBD><CAB1>-ʱ
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = upload_circle_rtcc_start.s.day; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲɼ<DDB2>ʱ<EFBFBD><CAB1>-<2D><>
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = upload_circle_rtcc_start.s.month; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲɼ<DDB2>ʱ<EFBFBD><CAB1>-<2D><>
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = upload_circle_rtcc_start.s.year; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲɼ<DDB2>ʱ<EFBFBD><CAB1>-<2D><>
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = 30 ; //<2F>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD>30<33><30><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
//<2F><>ǰ<EFBFBD>ۼ<EFBFBD><DBBC><EFBFBD><EFBFBD><EFBFBD>(4 <20>ֽ<EFBFBD> BCD <20><>) :50H<30><48>56H<36><48>34H<34><48>12H <20><>ʾ<EFBFBD><CABE>ǰ<EFBFBD>ۻ<EFBFBD><DBBB><EFBFBD><EFBFBD><EFBFBD>Ϊ 123456.50 m3
|
|||
|
for(int i=0;i<upload_packet_data_count;i++)
|
|||
|
{
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = upload_circle_buf[4*i+0];
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = upload_circle_buf[4*i+1];
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = upload_circle_buf[4*i+2];
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = upload_circle_buf[4*i+3];
|
|||
|
}
|
|||
|
//35H<35><48>06H <20><>ʾ<EFBFBD><CABE>ѹֵΪ 6.35V<EFBFBD><EFBFBD>
|
|||
|
temp_data_u16.datas = HexToBcd16(PowerCheckValueSys());
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = temp_data_u16.data_buf[0];//<2F><><EFBFBD>ص<EFBFBD>ѹL
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = temp_data_u16.data_buf[1];//<2F><><EFBFBD>ص<EFBFBD>ѹH
|
|||
|
|
|||
|
//CSQ BCD<43><44>ʽ
|
|||
|
NbiotGetCSQ(&temp_data_u8);
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = HEX2BCD(temp_data_u8);//sys_get_single.to_uint8[0];
|
|||
|
|
|||
|
//<2F><>ȡRSRP hex 2 <20>ֽ<EFBFBD>,<2C><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>D0-D14 <20><>ʾ<EFBFBD><CABE><EFBFBD>ź<EFBFBD><C5BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>7BH<42><48>80H <20><>ʾ<EFBFBD>ź<EFBFBD><C5BA><EFBFBD><EFBFBD><EFBFBD>ֵΪ-123dBm<42><6D>
|
|||
|
NbiotGetRSRP(&s_temp_data);
|
|||
|
temp_data_u16.datas = -(s_temp_data/10);
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = temp_data_u16.data_buf[0];
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = temp_data_u16.data_buf[1]|0x80;
|
|||
|
|
|||
|
//<2F><>ȡSNR hex 19H<39><48>00H <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 25dB<64><42>
|
|||
|
NbiotGetSNR(&s_temp_data);
|
|||
|
if(s_temp_data<0)
|
|||
|
{
|
|||
|
temp_data_u16.datas = (-s_temp_data/10)|0x8000;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
temp_data_u16.datas = s_temp_data/10;
|
|||
|
}
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = temp_data_u16.data_buf[0];
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = temp_data_u16.data_buf[1];
|
|||
|
|
|||
|
//<2F><>ȡECL
|
|||
|
NbiotGetECL(&s_temp_data);
|
|||
|
temp_data_u16.datas = s_temp_data;
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = temp_data_u16.data_buf[0];
|
|||
|
|
|||
|
//PCI 2 <20>ֽ<EFBFBD> BCD <20>룬<EFBFBD><EBA3AC>λ<EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>ǰ<EFBFBD><C7B0>05H<35><48>04H <20><> ʾ PCI <20><><EFBFBD><EFBFBD>Ϊ 504<30><34>
|
|||
|
NbiotGetPCI(&temp_data);
|
|||
|
temp_data_u16.datas = temp_data;
|
|||
|
temp_data_u16.datas = HexToBcd16(temp_data_u16.datas);
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = temp_data_u16.data_buf[0];
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = temp_data_u16.data_buf[1];
|
|||
|
|
|||
|
//IMEI <20><>: 08H<38><48>23H<33><48>25H<35><48>89H<39><48>67H<37><48>31H<31><48>09H<39><48>60H <20><>ʾ NB ģ<><C4A3><EFBFBD><EFBFBD> IMEI <20><>Ϊ 823258967310960<36><30>
|
|||
|
NbiotGetIMEI((char*)temp_buf1);
|
|||
|
temp_buf2[0] = temp_buf1[0] - 0x30;
|
|||
|
for(int 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(int i = 0; i < 8; i++)
|
|||
|
{
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = temp_buf2[i];;
|
|||
|
}
|
|||
|
//IMSI <20><>: 09H<39><48>12H<32><48>34H<34><48>79H<39><48>68H<38><48>56H<36><48>07H<37><48>80H <20><>ʾ SIM <20><><EFBFBD><EFBFBD> IMSI <20><>Ϊ 912347968560780
|
|||
|
NbiotGetIMSI((char*)temp_buf1);
|
|||
|
temp_buf2[0] = temp_buf1[0] - 0x30;
|
|||
|
for(int 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(int i = 0; i < 8; i++)
|
|||
|
{
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = temp_buf2[i];
|
|||
|
}
|
|||
|
//<2F><><EFBFBD>߳ɹ<DFB3>/ʧ<>ܴ<EFBFBD><DCB4><EFBFBD>
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = whyw_ee.Data.ee_upload_count_success.data_buf[0];
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = whyw_ee.Data.ee_upload_count_success.data_buf[1];
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = whyw_ee.Data.ee_upload_count_fail.data_buf[0];
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = whyw_ee.Data.ee_upload_count_fail.data_buf[1];
|
|||
|
//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
DateTime sys_rtcc_time;
|
|||
|
RtccGetDateTime(&sys_rtcc_time);
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = sys_rtcc_time.s.second;
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = sys_rtcc_time.s.minute;
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = sys_rtcc_time.s.hour;
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = sys_rtcc_time.s.day;
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = sys_rtcc_time.s.month;
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = sys_rtcc_time.s.year;
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = 0x20;
|
|||
|
//״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
temp_data_u8 = 0;
|
|||
|
if(UPLOAD_TYPE_FIX_TIME == GetEventUploadType()|| (UPLOAD_TYPE_RETRY_AGAIN == GetEventUploadType()))//<2F><>ʱ<EFBFBD>ϴ<EFBFBD>
|
|||
|
{
|
|||
|
temp_data_u8 &=~ 0x80;//<2F>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
temp_data_u8 |= 0x80;//<2F><><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
temp_state = FrameGetByte();
|
|||
|
if(temp_state.stat1bits.low_battery_voltage)
|
|||
|
{
|
|||
|
temp_data_u8 |= 0x04;//<2F><><EFBFBD><EFBFBD>Ƿѹ
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
temp_data_u8 &=~0x04;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
temp_data_u8 &=~ 0x02;//<2F><><EFBFBD>巧<EFBFBD>Ź<EFBFBD><C5B9>ϱ<EFBFBD>־
|
|||
|
if(temp_state.stat1bits.valve_state==0)
|
|||
|
{
|
|||
|
temp_data_u8 &=~ 0x01;//<2F><><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
else if(temp_state.stat1bits.valve_state==1)
|
|||
|
{
|
|||
|
temp_data_u8 |= 0x01;//<2F>ط<EFBFBD>
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
temp_data_u8 |= 0x02;//<2F><><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = temp_data_u8;//state0;
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = 0x03;//state1; 03H:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE>
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = 3;//warning0;
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = 4;//warning1;
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = 5;//warning2;
|
|||
|
//Ӳ<><D3B2><EFBFBD>汾
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = HARDWARE_VERSION_USED;
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = 0;
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>汾
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = (PROGRAME_VERSION>>16)&0xFF;
|
|||
|
g_upload_temp_buf_WHYW[g_upload_temp_len_WHYW++] = (PROGRAME_VERSION>>24)&0xFF;
|
|||
|
}
|
|||
|
|
|||
|
/********************************************************************************
|
|||
|
GetCircleDateTimeStart
|
|||
|
˵ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݼ<EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼʱ<EFBFBD><EFBFBD>
|
|||
|
********************************************************************************/
|
|||
|
u8 GetCircleDateTimeStart(DateTime* startTime, DateTime endTime, u32 dataCnt, u8 intervalTime)
|
|||
|
{
|
|||
|
struct tm tmdt;
|
|||
|
struct tm *ldt;
|
|||
|
time_t ctt;
|
|||
|
|
|||
|
tmdt.tm_year = (endTime.s.year >> 4) * 10 + (endTime.s.year & 0x0F) + 100;
|
|||
|
tmdt.tm_mon = (endTime.s.month >> 4) * 10 + (endTime.s.month & 0x0F) - 1;
|
|||
|
tmdt.tm_mday = (endTime.s.day >> 4) * 10 + (endTime.s.day & 0x0F);
|
|||
|
tmdt.tm_hour = (endTime.s.hour >> 4) * 10 + (endTime.s.hour & 0x0F);
|
|||
|
tmdt.tm_min = (endTime.s.minute >> 4) * 10 + (endTime.s.minute & 0x0F);
|
|||
|
tmdt.tm_sec = (endTime.s.second >> 4) * 10 + (endTime.s.second & 0x0F);
|
|||
|
tmdt.tm_isdst = 0;
|
|||
|
ctt = mktime(&tmdt);
|
|||
|
ctt -= (dataCnt*intervalTime*60);
|
|||
|
ldt = localtime(&ctt);
|
|||
|
|
|||
|
startTime->s.year = ((*ldt).tm_year - 100) / 10 * 16 + ((*ldt).tm_year - 100) % 10;
|
|||
|
startTime->s.month = ((*ldt).tm_mon + 1) / 10 * 16 + ((*ldt).tm_mon + 1) % 10;
|
|||
|
startTime->s.day = ((*ldt).tm_mday) / 10 * 16 + ((*ldt).tm_mday) % 10;
|
|||
|
startTime->s.weekday = ((*ldt).tm_wday) / 10 * 16 + ((*ldt).tm_wday) % 10;
|
|||
|
startTime->s.hour = ((*ldt).tm_hour) / 10 * 16 + ((*ldt).tm_hour) % 10;
|
|||
|
startTime->s.minute = ((*ldt).tm_min) / 10 * 16 + ((*ldt).tm_min) % 10;
|
|||
|
startTime->s.second = ((*ldt).tm_sec) / 10 * 16 + ((*ldt).tm_sec) % 10;
|
|||
|
|
|||
|
return Rtcc_Check_DateTime(startTime);
|
|||
|
}
|
|||
|
|
|||
|
void GetUploadDataResetState_WHYW(void)
|
|||
|
{
|
|||
|
upload_frame_stat_whyw =WHYW_STATE_S0;
|
|||
|
task_upload_complete_whyw = PTL_PACK_BUSY;
|
|||
|
}
|
|||
|
u8 GetUploadDataCheckIdle_WHYW(void)
|
|||
|
{
|
|||
|
if(WHYW_STATE_S0 == upload_frame_stat_whyw)
|
|||
|
{
|
|||
|
return TASK_IDLE;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return TASK_BUSY;
|
|||
|
}
|
|||
|
}
|
|||
|
u8 GetUploadDataCheckTask_WHYW(void)
|
|||
|
{
|
|||
|
return task_upload_complete_whyw;
|
|||
|
}
|
|||
|
|
|||
|
int GetUploadDataCount(void)
|
|||
|
{
|
|||
|
if (whyw_ee.Data.u_circle_store_index_w.datas >= whyw_ee.Data.u_circle_store_index_r.datas)
|
|||
|
return (whyw_ee.Data.u_circle_store_index_w.datas - whyw_ee.Data.u_circle_store_index_r.datas);
|
|||
|
else
|
|||
|
return (whyw_ee.Data.u_circle_store_index_w.datas + STORE_DATA_COUNT_CIRCLE - whyw_ee.Data.u_circle_store_index_r.datas);
|
|||
|
}
|
|||
|
|
|||
|
void GetUploadDataMachine_WHYW(u8 data_step, u8* p_send_buf, u16* p_send_len)
|
|||
|
{
|
|||
|
switch(upload_frame_stat_whyw)
|
|||
|
{
|
|||
|
case WHYW_STATE_S0:
|
|||
|
{
|
|||
|
if(data_step == UPLOAD_FRAME_REQUEST_NEW)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>
|
|||
|
{
|
|||
|
whyw_online_wait_flag=0;//<2F><><EFBFBD>ߵȴ<DFB5><C8B4><EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD>
|
|||
|
temp_upload_step = 0;
|
|||
|
upload_frame_retry_times = 0;
|
|||
|
upload_count_flag = 0;
|
|||
|
upload_frame_stat_whyw = WHYW_STATE_S1;
|
|||
|
}
|
|||
|
else if(data_step == UPLOAD_FRAME_UPLOAD_OK)//<2F><><EFBFBD>ͳɹ<CDB3>
|
|||
|
{
|
|||
|
if(upload_count_flag == 0)//<2F><>¼һ<C2BC><D2BB><EFBFBD>ϱ<EFBFBD><CFB1>ɹ<EFBFBD>
|
|||
|
{
|
|||
|
upload_count_flag = 1;
|
|||
|
whyw_ee.Data.ee_upload_count_success.datas++;//<2F>ϱ<EFBFBD><CFB1>ɹ<EFBFBD><C9B9>ܴ<EFBFBD><DCB4><EFBFBD>
|
|||
|
}
|
|||
|
if(temp_upload_step == WHYW_STATE_S10)//<2F><><EFBFBD>ڼ<EFBFBD>¼<EFBFBD><C2BC><EFBFBD>ݷ<EFBFBD><DDB7>ͳɹ<CDB3>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
upload_frame_stat_whyw = WHYW_STATE_S13;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
|||
|
}
|
|||
|
else if(temp_upload_step == WHYW_STATE_S20)//<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD><DDB7>ͳɹ<CDB3>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
upload_frame_stat_whyw = WHYW_STATE_S5;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ
|
|||
|
}
|
|||
|
upload_frame_retry_times = 0;
|
|||
|
SystemClearUploadAgain();//<2F>ش<EFBFBD><D8B4><EFBFBD>0
|
|||
|
}
|
|||
|
else if(data_step == UPLOAD_FRAME_UPLOAD_RETRY)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD>
|
|||
|
{
|
|||
|
if(temp_upload_step == WHYW_STATE_S10)//<2F><><EFBFBD>ڼ<EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ط<EFBFBD>
|
|||
|
{
|
|||
|
upload_frame_stat_whyw = WHYW_STATE_S4;
|
|||
|
}
|
|||
|
else if(temp_upload_step == WHYW_STATE_S20)//<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ط<EFBFBD>
|
|||
|
{
|
|||
|
upload_frame_stat_whyw = WHYW_STATE_S4;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
task_upload_complete_whyw = PTL_PACK_FAIL;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
upload_frame_stat_whyw = WHYW_STATE_S0;
|
|||
|
}
|
|||
|
}
|
|||
|
else if(data_step == UPLOAD_FRAME_ONLINE_FAIL) //<2F><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
|
|||
|
{
|
|||
|
if(UPLOAD_TYPE_FIX_TIME == GetEventUploadType()||
|
|||
|
(UPLOAD_TYPE_RETRY_AGAIN == GetEventUploadType()))//<2F><>ʱ<EFBFBD>ϴ<EFBFBD>
|
|||
|
{
|
|||
|
SystemAddUploadAgain();//<2F>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
whyw_ee.Data.ee_upload_count_fail.datas++;//ʧ<>ܴ<EFBFBD><DCB4><EFBFBD>
|
|||
|
task_upload_complete_whyw = PTL_PACK_FAIL;
|
|||
|
upload_frame_stat_whyw = WHYW_STATE_S0;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
task_upload_complete_whyw = PTL_PACK_FAIL;
|
|||
|
upload_frame_stat_whyw = WHYW_STATE_S0;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
case WHYW_STATE_S1://<2F><>ȡ<EFBFBD><C8A1>¼ʱ<C2BC><CAB1>
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
EepRead(EEP_ADDR_WHYW_LAST_RTCC, &upload_circle_rtcc_end.b[0], 7, &s_eep_complete_WHYW);
|
|||
|
upload_frame_stat_whyw = WHYW_STATE_S2;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
case WHYW_STATE_S2://<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
upload_data_count = GetUploadDataCount();
|
|||
|
if(upload_data_count > 0)
|
|||
|
{
|
|||
|
upload_packet_count = (upload_data_count/UPLOAD_CIRCLE_MAX_COUNT)+1;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><D6A1>
|
|||
|
upload_packet_code = 0;//֡<><D6A1><EFBFBD>ų<EFBFBD>ʼ<EFBFBD><CABC>
|
|||
|
upload_frame_stat_whyw = WHYW_STATE_S10;
|
|||
|
}
|
|||
|
else//<2F><>û<EFBFBD>м<EFBFBD>¼,<2C>ϱ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
upload_frame_stat_whyw = WHYW_STATE_S20;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
/*>>>>>>>>>>><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݼ<EFBFBD>¼<EFBFBD>Ķ<EFBFBD>ȡ>>>>>>>>>>>>>>*/
|
|||
|
case WHYW_STATE_S10://<2F><>ȡһ<C8A1><D2BB><EFBFBD><EFBFBD><EFBFBD>ڴ洢<DAB4><E6B4A2><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
temp_upload_step = WHYW_STATE_S10;
|
|||
|
|
|||
|
upload_data_count = GetUploadDataCount();
|
|||
|
if(upload_data_count >0)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
if((upload_data_count/UPLOAD_CIRCLE_MAX_COUNT)>0)
|
|||
|
{
|
|||
|
upload_packet_data_count = UPLOAD_CIRCLE_MAX_COUNT;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
upload_packet_data_count = (upload_data_count%UPLOAD_CIRCLE_MAX_COUNT);
|
|||
|
}
|
|||
|
if((whyw_ee.Data.u_circle_store_index_r.datas + upload_packet_data_count) < STORE_DATA_COUNT_CIRCLE)//û<>г<EFBFBD><D0B3><EFBFBD><EFBFBD>߽<EFBFBD>,<2C><>һ<EFBFBD><D2BB>
|
|||
|
{
|
|||
|
uTemp_ee_addr = EEP_ADDR_WHYW_STORE_CIRCLE + whyw_ee.Data.u_circle_store_index_r.datas*4;
|
|||
|
uTemp_read_len = upload_packet_data_count*STORE_DATA_SIZE_CIRCLE;
|
|||
|
EepRead(uTemp_ee_addr, &upload_circle_buf[0], uTemp_read_len, &s_eep_complete_WHYW);
|
|||
|
upload_frame_stat_whyw = WHYW_STATE_S12;
|
|||
|
}
|
|||
|
else//<2F><><EFBFBD><EFBFBD><EFBFBD>߽<EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
uTemp_ee_addr = EEP_ADDR_WHYW_STORE_CIRCLE + whyw_ee.Data.u_circle_store_index_r.datas*4;
|
|||
|
uTemp_read_len = (whyw_ee.Data.u_circle_store_index_r.datas + upload_packet_data_count - STORE_DATA_COUNT_CIRCLE)*STORE_DATA_SIZE_CIRCLE;
|
|||
|
EepRead(uTemp_ee_addr, &upload_circle_buf[0], uTemp_read_len, &s_eep_complete_WHYW);
|
|||
|
upload_frame_stat_whyw = WHYW_STATE_S11;
|
|||
|
}
|
|||
|
}
|
|||
|
else//û<><C3BB><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD><DDB7><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
upload_frame_stat_whyw = WHYW_STATE_S5;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case WHYW_STATE_S11://<2F>ȴ<EFBFBD><C8B4><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>1
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
uTemp_ee_addr = EEP_ADDR_WHYW_STORE_CIRCLE;
|
|||
|
EepRead(uTemp_ee_addr, &upload_circle_buf[uTemp_read_len], (upload_packet_data_count - uTemp_read_len), &s_eep_complete_WHYW);
|
|||
|
upload_frame_stat_whyw = WHYW_STATE_S12;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
case WHYW_STATE_S12://<2F>ȴ<EFBFBD><C8B4><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>2
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
upload_packet_code++;//֡<><D6A1><EFBFBD><EFBFBD>
|
|||
|
if(ERROR == GetCircleDateTimeStart(&upload_circle_rtcc_start, upload_circle_rtcc_end, (upload_data_count-1), 30))//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
{
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>ȷ,<2C><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>дָ<D0B4><D6B8>,<2C>ϱ<EFBFBD><CFB1><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
|
|||
|
whyw_ee.Data.u_circle_store_index_w.datas = 0;
|
|||
|
whyw_ee.Data.u_circle_store_index_r.datas = 0;
|
|||
|
upload_frame_stat_whyw = WHYW_STATE_S20;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
upload_frame_stat_whyw = WHYW_STATE_S3;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
case WHYW_STATE_S13://<2F>洢<EFBFBD><E6B4A2>ָ<EFBFBD><D6B8>,<2C>յ<EFBFBD><D5B5>ϱ<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD>洢
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
whyw_ee.Data.u_circle_store_index_r.datas += upload_packet_data_count;
|
|||
|
whyw_ee.Data.u_circle_store_index_r.datas %= STORE_DATA_COUNT_CIRCLE;//Խ<><D4BD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼλ<CABC>ü<EFBFBD><C3BC><EFBFBD>
|
|||
|
EepWrite(whyw_ee.Data.u_circle_store_index_r.data_buf, EEP_ADDR_WHYW_CIRCLE_INDEX_R, 2, &s_eep_complete_WHYW);
|
|||
|
upload_frame_stat_whyw = WHYW_STATE_S10;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
/*>>>>>>>>>>><3E><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>>>>>>>>>>>>>>>*/
|
|||
|
case WHYW_STATE_S20://<2F>ϱ<EFBFBD><CFB1><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
temp_upload_step = WHYW_STATE_S20;
|
|||
|
upload_packet_count = 1;//<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>֡<EFBFBD><D6A1>
|
|||
|
upload_packet_code = 1;//<2F><>֡<EFBFBD><D6A1><EFBFBD><EFBFBD>
|
|||
|
upload_packet_data_count = 1;//<2F><>֡<EFBFBD><D6A1>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
|
|||
|
temp_float_data.gp22_u32 = Gp30CheckDataApp(2);
|
|||
|
temp_CircleData = (u32)(temp_float_data.gp22_float);
|
|||
|
temp_bcd_CircleData.datas = HexToBcd32(temp_CircleData);
|
|||
|
for(int i=0;i<4;i++)
|
|||
|
{
|
|||
|
upload_circle_buf[i] = temp_bcd_CircleData.data_buf[i];
|
|||
|
}
|
|||
|
RtccGetDateTime(&upload_circle_rtcc_start);//<2F><>ǰʱ<C7B0><CAB1><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲɼ<DDB2>ʱ<EFBFBD>䡱
|
|||
|
upload_frame_stat_whyw = WHYW_STATE_S3;
|
|||
|
}
|
|||
|
break;
|
|||
|
/*>>>>>>>>>>><3E><><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD>֡>>>>>>>>>>>>>>*/
|
|||
|
case WHYW_STATE_S3://<2F><><EFBFBD>ϴ<EFBFBD>֡
|
|||
|
{
|
|||
|
Upload_FrameData();
|
|||
|
Frame_upload_WHYW(p_send_buf,p_send_len);
|
|||
|
task_upload_complete_whyw = PTL_PACK_SUCCESS;
|
|||
|
upload_frame_stat_whyw = WHYW_STATE_S0;
|
|||
|
}
|
|||
|
break;
|
|||
|
/*>>>>>>>>>>><3E><><EFBFBD>ݷ<EFBFBD><DDB7><EFBFBD>ʧ<EFBFBD>ܺ<EFBFBD><DCBA><EFBFBD><EFBFBD><EFBFBD>>>>>>>>>>>>>>>*/
|
|||
|
case WHYW_STATE_S4://<2F><><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
if(upload_frame_retry_times < 2)
|
|||
|
{
|
|||
|
upload_frame_retry_times++;
|
|||
|
upload_frame_stat_whyw = WHYW_STATE_S3;
|
|||
|
}
|
|||
|
else//<2F><><EFBFBD>·<EFBFBD><C2B7><EFBFBD>ʧ<EFBFBD><CAA7>2<EFBFBD>εĴ<CEB5><C4B4><EFBFBD>
|
|||
|
{
|
|||
|
if((UPLOAD_TYPE_FIX_TIME == GetEventUploadType())|| //<2F><>ʱ<EFBFBD>ϴ<EFBFBD>
|
|||
|
(UPLOAD_TYPE_RETRY_AGAIN == GetEventUploadType()))//<2F>ش<EFBFBD>
|
|||
|
{
|
|||
|
SystemAddUploadAgain();//<2F>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
whyw_ee.Data.ee_upload_count_fail.datas++;//ʧ<>ܴ<EFBFBD><DCB4><EFBFBD>
|
|||
|
task_upload_complete_whyw = PTL_PACK_FAIL;
|
|||
|
upload_frame_stat_whyw = WHYW_STATE_S0;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
/*>>>>>>>>>>><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>>>>>>>>>>>>>>>*/
|
|||
|
case WHYW_STATE_S5://<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
if(whyw_online_wait_flag == 1)//<2F><>Ҫ<EFBFBD><D2AA><EFBFBD>ߵȴ<DFB5>
|
|||
|
{
|
|||
|
whyw_online_wait_flag = 0;
|
|||
|
if(whyw_ee.Data.ee_nb_online_keep_time>30)
|
|||
|
{
|
|||
|
whyw_ee.Data.ee_nb_online_keep_time = 15;
|
|||
|
}
|
|||
|
Set100msTimer(TIMER_100MS_UPLOAD_MONITOR, 10*whyw_ee.Data.ee_nb_online_keep_time);
|
|||
|
upload_frame_stat_whyw = WHYW_STATE_S6;
|
|||
|
}
|
|||
|
else//<2F><><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD>
|
|||
|
{
|
|||
|
task_upload_complete_whyw = PTL_PACK_FAIL;
|
|||
|
upload_frame_stat_whyw = WHYW_STATE_S0;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
case WHYW_STATE_S6://<2F>ȴ<EFBFBD>ʱ<EFBFBD>䵽
|
|||
|
{
|
|||
|
if(whyw_online_wait_flag == 1)//<2F><><EFBFBD>¼<EFBFBD>ʱ
|
|||
|
{
|
|||
|
whyw_online_wait_flag = 0;
|
|||
|
if(whyw_ee.Data.ee_nb_online_keep_time>30)
|
|||
|
{
|
|||
|
whyw_ee.Data.ee_nb_online_keep_time = 15;
|
|||
|
}
|
|||
|
Set100msTimer(TIMER_100MS_UPLOAD_MONITOR, 10*whyw_ee.Data.ee_nb_online_keep_time);
|
|||
|
}
|
|||
|
else if(whyw_online_wait_flag == 2)//<2F>ȴ<EFBFBD><C8B4>ڼ<EFBFBD><DABC>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
{
|
|||
|
whyw_online_wait_flag = 0;
|
|||
|
task_upload_complete_whyw = PTL_PACK_FAIL;
|
|||
|
upload_frame_stat_whyw = WHYW_STATE_S0;
|
|||
|
}
|
|||
|
if(0 == Check100msTimer(TIMER_100MS_UPLOAD_MONITOR))
|
|||
|
{
|
|||
|
task_upload_complete_whyw = PTL_PACK_FAIL;
|
|||
|
upload_frame_stat_whyw = WHYW_STATE_S0;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
default:
|
|||
|
{
|
|||
|
task_upload_complete_whyw = PTL_PACK_FAIL;
|
|||
|
upload_frame_stat_whyw = WHYW_STATE_S0;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
u8 NB_SS_Control_GetPara(NB_SS_ControlParaTypeDef paraType)
|
|||
|
{
|
|||
|
switch(paraType)
|
|||
|
{
|
|||
|
case NB_HistroyReadIndex://<2F><>ʷ<EFBFBD><CAB7><EFBFBD>ݵĶ<DDB5>ָ<EFBFBD><D6B8>
|
|||
|
{
|
|||
|
return Sys_data_object.P1.histroy_w;
|
|||
|
}
|
|||
|
case NB_UploadFailTimes://ʧ<>ܴ<EFBFBD><DCB4><EFBFBD>
|
|||
|
{
|
|||
|
u8 temp_fail_times=0;
|
|||
|
temp_fail_times = GetUploadDataCount();
|
|||
|
return temp_fail_times;
|
|||
|
}
|
|||
|
default:
|
|||
|
break;
|
|||
|
}
|
|||
|
return 0;
|
|||
|
}
|
|||
|
|
|||
|
/*************************************************************<2A><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>************/
|
|||
|
static void WHYW_Store_InitApp(void)
|
|||
|
{
|
|||
|
TYP_STATE_WHYW tmp_init_stat;
|
|||
|
|
|||
|
if(Sys_data_object.P3.FirstPowerOnFlag == FIRST_POWER_ON_FLAG)
|
|||
|
{
|
|||
|
tmp_init_stat = WHYW_STATE_S10;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
tmp_init_stat = WHYW_STATE_S20;
|
|||
|
}
|
|||
|
while (tmp_init_stat != WHYW_STATE_S0)
|
|||
|
{
|
|||
|
switch (tmp_init_stat)
|
|||
|
{
|
|||
|
case WHYW_STATE_S0:
|
|||
|
{
|
|||
|
}
|
|||
|
break;
|
|||
|
//<2F><>һ<EFBFBD><D2BB><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
case WHYW_STATE_S10:
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
whyw_ee.Data.u_circle_store_index_w.datas = 0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ洢<DDB4><E6B4A2>λ<EFBFBD><CEBB>
|
|||
|
whyw_ee.Data.u_circle_store_index_r.datas = 0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݶ<EFBFBD>ȡ<EFBFBD><C8A1>λ<EFBFBD><CEBB>
|
|||
|
RtccGetDateTime(&whyw_ee.Data.store_circle_rtcc_end);//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>ʱ<EFBFBD><CAB1>7<EFBFBD>ֽ<EFBFBD>
|
|||
|
whyw_ee.Data.ee_nb_online_keep_time = 10;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1> 1<>ֽ<EFBFBD> 10s
|
|||
|
whyw_ee.Data.ee_nb_acq_interval = 30;//<2F><><EFBFBD><EFBFBD><EFBFBD>ݲɼ<DDB2><C9BC><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> 1<>ֽ<EFBFBD> <20>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD>30<33><30><EFBFBD><EFBFBD>
|
|||
|
whyw_ee.Data.ee_battery_pra[0]=0x00;//<2F><><EFBFBD>ص<EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>
|
|||
|
whyw_ee.Data.ee_battery_pra[1]=0x03;
|
|||
|
whyw_ee.Data.ee_battery_pra[2]=0x00;
|
|||
|
whyw_ee.Data.ee_battery_pra[3]=0x03;
|
|||
|
whyw_ee.Data.ee_upload_count_success.datas =0;//<2F>ϱ<EFBFBD><CFB1>ɹ<EFBFBD><C9B9>ܴ<EFBFBD><DCB4><EFBFBD>
|
|||
|
whyw_ee.Data.ee_upload_count_fail.datas = 0;//<2F>ϱ<EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD>
|
|||
|
EepWrite(&whyw_ee.data_buf[0], EEP_ADDR_WHYW_CIRCLE_INDEX_W, EE_PRA_SIZE_WHYW, &s_eep_complete_WHYW);
|
|||
|
tmp_init_stat = WHYW_STATE_S1;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
//<2F>ǵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ϵ<EFBFBD>
|
|||
|
case WHYW_STATE_S20:
|
|||
|
{
|
|||
|
if (TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
EepRead(EEP_ADDR_WHYW_CIRCLE_INDEX_W, &whyw_ee.data_buf[0], EE_PRA_SIZE_WHYW, &s_eep_complete_WHYW);
|
|||
|
tmp_init_stat = WHYW_STATE_S21;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
case WHYW_STATE_S21:
|
|||
|
{
|
|||
|
if (TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
if((u_circle_store_index_w.datas>=STORE_DATA_COUNT_CIRCLE)||(u_circle_store_index_r.datas>=STORE_DATA_COUNT_CIRCLE))
|
|||
|
{
|
|||
|
whyw_ee.Data.u_circle_store_index_w.datas = 0;
|
|||
|
whyw_ee.Data.u_circle_store_index_r.datas = 0;
|
|||
|
RtccGetDateTime(&whyw_ee.Data.store_circle_rtcc_end);
|
|||
|
EepWrite(&whyw_ee.data_buf[0], EEP_ADDR_WHYW_CIRCLE_INDEX_W, EE_PRA_SIZE_WHYW, &s_eep_complete_WHYW);
|
|||
|
}
|
|||
|
tmp_init_stat = WHYW_STATE_S1;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case WHYW_STATE_S1:
|
|||
|
{
|
|||
|
if (TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
tmp_init_stat = WHYW_STATE_S0;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
default:
|
|||
|
{
|
|||
|
tmp_init_stat = WHYW_STATE_S0;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
EepMachineDriver();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ洢״̬<D7B4><CCAC>
|
|||
|
static void WHYWStore_Machine(void)
|
|||
|
{
|
|||
|
switch(step_circle_data_store)
|
|||
|
{
|
|||
|
case WHYW_STATE_S0:
|
|||
|
{
|
|||
|
if (RtccCheckMsgApp(RtccMsg_OtherProtl))
|
|||
|
{
|
|||
|
RtccClearMsgApp(RtccMsg_OtherProtl);
|
|||
|
RtccGetDateTime(&whyw_protl_rtcc_time);
|
|||
|
if((whyw_protl_rtcc_time.s.minute==0x00)||(whyw_protl_rtcc_time.s.minute==0x30))//<2F><>Сʱ
|
|||
|
{
|
|||
|
FrameSetMsgApp(MsgShenYang_CircleSave);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ洢
|
|||
|
}
|
|||
|
}
|
|||
|
if(FrameCheckMsgApp(MsgShenYang_CircleSave))//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ洢<DDB4><E6B4A2>Ϣ
|
|||
|
{
|
|||
|
FrameClearMsgApp(MsgShenYang_CircleSave);
|
|||
|
step_circle_data_store = WHYW_STATE_S1;
|
|||
|
}
|
|||
|
else if(FrameCheckMsgApp(Msg_ClearHisOther))//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
FrameClearMsgApp(Msg_ClearHisOther);
|
|||
|
step_circle_data_store = WHYW_STATE_S10;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
case WHYW_STATE_S1://<2F>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
//<2F><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
|
|||
|
temp_float_data.gp22_u32 = Gp30CheckDataApp(2);
|
|||
|
temp_CircleData = (u32)(temp_float_data.gp22_float);
|
|||
|
temp_bcd_CircleData.datas = HexToBcd32(temp_CircleData);
|
|||
|
if(whyw_ee.Data.u_circle_store_index_w.datas >= STORE_DATA_COUNT_CIRCLE)
|
|||
|
{
|
|||
|
whyw_ee.Data.u_circle_store_index_w.datas = 0;
|
|||
|
}
|
|||
|
uTemp_ee_addr = EEP_ADDR_WHYW_STORE_CIRCLE + whyw_ee.Data.u_circle_store_index_w.datas*STORE_DATA_SIZE_CIRCLE;
|
|||
|
EepWrite(temp_bcd_CircleData.data_buf, uTemp_ee_addr, STORE_DATA_SIZE_CIRCLE, &s_eep_complete_WHYW);
|
|||
|
step_circle_data_store = WHYW_STATE_S2;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
case WHYW_STATE_S2: //<2F>洢ָ<E6B4A2><D6B8>
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
whyw_ee.Data.u_circle_store_index_w.datas++;
|
|||
|
if(whyw_ee.Data.u_circle_store_index_w.datas >= STORE_DATA_COUNT_CIRCLE)
|
|||
|
{
|
|||
|
whyw_ee.Data.u_circle_store_index_w.datas = 0;
|
|||
|
}
|
|||
|
EepWrite(whyw_ee.Data.u_circle_store_index_w.data_buf, EEP_ADDR_WHYW_CIRCLE_INDEX_W, 2, &s_eep_complete_WHYW);
|
|||
|
step_circle_data_store = WHYW_STATE_S3;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
case WHYW_STATE_S3: //<2F>洢ʱ<E6B4A2><CAB1>
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
RtccGetDateTime(&whyw_ee.Data.store_circle_rtcc_end);
|
|||
|
EepWrite(&whyw_ee.Data.store_circle_rtcc_end.b[0], EEP_ADDR_WHYW_LAST_RTCC, 7, &s_eep_complete_WHYW);
|
|||
|
step_circle_data_store = WHYW_STATE_S4;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
case WHYW_STATE_S4: //<2F>洢<EFBFBD>ɹ<EFBFBD>ʧ<EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD>
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
whyw_ee.Data.ee_upload_count_fail.datas++;//ʧ<>ܴ<EFBFBD><DCB4><EFBFBD>
|
|||
|
EepWrite(&whyw_ee.Data.ee_upload_count_success.data_buf[0], EEP_ADDR_WHYW_UPLOAD_SUCCESS, 4, &s_eep_complete_WHYW);
|
|||
|
step_circle_data_store = WHYW_STATE_S5;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
case WHYW_STATE_S5: //<2F>ȴ<EFBFBD><C8B4>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
//RtccAdjustDateTime(1,1800-10);//debug
|
|||
|
step_circle_data_store = WHYW_STATE_S0;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case WHYW_STATE_S10://<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>ʼֵ
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
whyw_ee.Data.u_circle_store_index_w.datas = 0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ洢<DDB4><E6B4A2>λ<EFBFBD><CEBB>
|
|||
|
whyw_ee.Data.u_circle_store_index_r.datas = 0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݶ<EFBFBD>ȡ<EFBFBD><C8A1>λ<EFBFBD><CEBB>
|
|||
|
RtccGetDateTime(&whyw_ee.Data.store_circle_rtcc_end);//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>ʱ<EFBFBD><CAB1>7<EFBFBD>ֽ<EFBFBD>
|
|||
|
whyw_ee.Data.ee_nb_online_keep_time = 10;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1> 1<>ֽ<EFBFBD> 10s
|
|||
|
whyw_ee.Data.ee_nb_acq_interval = 30;//<2F><><EFBFBD><EFBFBD><EFBFBD>ݲɼ<DDB2><C9BC><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> 1<>ֽ<EFBFBD> <20>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD>30<33><30><EFBFBD><EFBFBD>
|
|||
|
whyw_ee.Data.ee_battery_pra[0]=0x00;//<2F><><EFBFBD>ص<EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>
|
|||
|
whyw_ee.Data.ee_battery_pra[1]=0x03;
|
|||
|
whyw_ee.Data.ee_battery_pra[2]=0x00;
|
|||
|
whyw_ee.Data.ee_battery_pra[3]=0x03;
|
|||
|
whyw_ee.Data.ee_upload_count_success.datas =0;//<2F>ϱ<EFBFBD><CFB1>ɹ<EFBFBD><C9B9>ܴ<EFBFBD><DCB4><EFBFBD>
|
|||
|
whyw_ee.Data.ee_upload_count_fail.datas = 0;//<2F>ϱ<EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD>
|
|||
|
EepWrite(&whyw_ee.data_buf[0], EEP_ADDR_WHYW_CIRCLE_INDEX_W, EE_PRA_SIZE_WHYW, &s_eep_complete_WHYW);
|
|||
|
step_circle_data_store = WHYW_STATE_S0;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
default:
|
|||
|
{
|
|||
|
step_circle_data_store = WHYW_STATE_S0;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
//<2F><>Լ<EFBFBD><D4BC><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD>ֳ<EFBFBD>ʼ<EFBFBD><CABC>
|
|||
|
void DataStoreInit(void)
|
|||
|
{
|
|||
|
Quanzhou_Store_InitApp();
|
|||
|
WHYW_Store_InitApp();
|
|||
|
}
|
|||
|
//<2F><>Լ<EFBFBD><D4BC><EFBFBD>ݴ洢״̬<D7B4><CCAC>
|
|||
|
void DataStoreMachine(void)
|
|||
|
{
|
|||
|
Quanzhou_Store_Machine();//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ洢
|
|||
|
WHYWStore_Machine();
|
|||
|
}
|
|||
|
|
|||
|
//<2F><>Լ<EFBFBD><D4BC><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
u8 DataStoreIfIdle(void)
|
|||
|
{
|
|||
|
if(step_circle_data_store == WHYW_STATE_S0)
|
|||
|
{
|
|||
|
return TRUE;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return FALSE;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
#endif
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|