515 lines
14 KiB
C
515 lines
14 KiB
C
|
#include "sys_config.h"
|
|||
|
|
|||
|
#if PRODUCT_JS
|
|||
|
#include "sys_processor.h"
|
|||
|
|
|||
|
#include "UWater_eeprom_driver.h"
|
|||
|
#include "UWater_timer1uS_driver.h"
|
|||
|
#include "UWater_DataTools_App.h"
|
|||
|
#include "UWater_JX_Store_App.h"
|
|||
|
#include "UWater_frame_func_ReplyNB.h"
|
|||
|
#include "UWater_frame_func_ReplyJiangShui.h"
|
|||
|
|
|||
|
static u8 s_eep_complete_JiangShui=0;
|
|||
|
static u8 task_complete_JiangShui = PTL_PACK_BUSY;
|
|||
|
static u8 g_frame_temp_buf_JiangShui[UP_BUF_SIZE]; //<2F><><EFBFBD>ݲ<EFBFBD><DDB2>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
static u16 g_frame_temp_len_JiangShui=0;
|
|||
|
|
|||
|
static STRUCT_FRAME_IES frame_struct_JiangShui; //<2F><>Լ<EFBFBD><D4BC>Ϣ
|
|||
|
static u8 *new_message_data_rev_JiangShui;
|
|||
|
static u8 up_deal_stat_JiangShui = UP_DEAL_S0;//<2F><>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD>״̬<D7B4><CCAC>
|
|||
|
/*******<2A><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD><D8B1><EFBFBD>*****************************************/
|
|||
|
static u16 upload_serial_num_JiangShui=0;
|
|||
|
static STRUCT_FRAME_IES upload_struct_JiangShui; //<2F><>Լ<EFBFBD><D4BC>Ϣ
|
|||
|
static u8 upload_frame_stat_JiangShui=0; //<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>֡״̬
|
|||
|
static u8 upload_task_complete_JiangShui = PTL_PACK_FAIL;
|
|||
|
static u8 temp_format_error;//<2F>ϱ<EFBFBD><CFB1><EFBFBD>ʽ<EFBFBD>쳣<EFBFBD><ECB3A3>־
|
|||
|
static u8 jx_upload_fail_times=0;
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
static u8 upload_temp_buf_JiangShui[PACK_NUM_GPRS_TOTAL];
|
|||
|
static u16 upload_temp_len_JiangShui=0;//<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
|||
|
static u16 jx_upload_record_cnts = 0;//<2F><>Ҫ<EFBFBD>ϱ<EFBFBD><CFB1>ļ<EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
|
|||
|
static u8 jx_upload_total_packs=0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD>ܰ<EFBFBD><DCB0><EFBFBD>
|
|||
|
static u8 jx_upload_cur_pack=0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ϱ<EFBFBD><CFB1>ĵ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
|
|||
|
static u16 s_upload_connect_time=0;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
//<2F>ϴ<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
static void frame_func_reply_NB_AckUpload(void)
|
|||
|
{
|
|||
|
g_frame_temp_len_JiangShui =0;
|
|||
|
u8 sernum0 = upload_serial_num_JiangShui&0xFF;
|
|||
|
u8 sernum1 = (upload_serial_num_JiangShui>>8)&0xFF;
|
|||
|
if(*(new_message_data_rev_JiangShui + 6) == 1)//<2F>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD>ݸ<EFBFBD>ʽ<EFBFBD>쳣
|
|||
|
{
|
|||
|
if(frame_struct_JiangShui.serial_num0 == sernum0)
|
|||
|
{
|
|||
|
if(frame_struct_JiangShui.serial_num1 == sernum1)
|
|||
|
{
|
|||
|
FrameSetMsgApp(MsgNbUplaod_AckOk);//<2F><><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Է<EFBFBD><D4B7>ظ<EFBFBD>ʽ<EFBFBD>쳣,Ӧ<>жϹ<D0B6>
|
|||
|
NB_SS_Control_SetPara(NB_SS_FormatError, 1);//<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>ʽ<EFBFBD>쳣<EFBFBD><ECB3A3>־
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if(frame_struct_JiangShui.serial_num0 == sernum0)
|
|||
|
{
|
|||
|
if(frame_struct_JiangShui.serial_num1 == sernum1)
|
|||
|
{
|
|||
|
FrameSetMsgApp(MsgNbUplaod_AckOk);
|
|||
|
}
|
|||
|
}
|
|||
|
NB_SS_Control_SetPara(NB_SS_FormatError, 0);//<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>ʽ<EFBFBD>쳣<EFBFBD><ECB3A3>־
|
|||
|
}
|
|||
|
task_complete_JiangShui = PTL_PACK_FAIL;//<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>Ӧ<EFBFBD><D3A6>֡,<2C><><EFBFBD>ش<EFBFBD><D8B4><EFBFBD>,<2C><><EFBFBD>Ʋ<EFBFBD>Ӧ<EFBFBD><D3A6>
|
|||
|
}
|
|||
|
|
|||
|
//<2F><>¼֡------------------------<2D>жϵ<D0B6>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD><D6A3><EFBFBD><EFBFBD><EFBFBD>PTL_PACK_FAIL
|
|||
|
static void frame_func_reply_NB_AckLogin(void)
|
|||
|
{
|
|||
|
FrameSetMsgApp(MsgNbUplaod_AckLoginOk);
|
|||
|
}
|
|||
|
//<2F><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD>
|
|||
|
static void frame_func_s3_NB_ClearFailTimes(void)
|
|||
|
{
|
|||
|
static u8 temp_clear_buf[4];
|
|||
|
if(TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
g_frame_temp_len_JiangShui = 0;
|
|||
|
NB_SS_Control_SetPara(NB_SS_FormatError, 0);
|
|||
|
NB_SS_Control_SetPara(NB_UploadFailTimes, 0);
|
|||
|
temp_clear_buf[0]=0;
|
|||
|
temp_clear_buf[1]=0;
|
|||
|
temp_clear_buf[2]=0;
|
|||
|
temp_clear_buf[3]=0;
|
|||
|
EepWrite(temp_clear_buf, FRAME_NBIot_BUBAO_FLAG, 4, &s_eep_complete_JiangShui);
|
|||
|
task_complete_JiangShui = PTL_PACK_SUCCESS;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE>:<3A><><EFBFBD><EFBFBD><EFBFBD>ܼ<EFBFBD><DCBC>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD>
|
|||
|
static void frame_func_s3_NB_SetStorageFrequency(void)
|
|||
|
{
|
|||
|
switch(up_deal_stat_JiangShui)
|
|||
|
{
|
|||
|
case UP_DEAL_S0:
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())//<2F>洢<EFBFBD><E6B4A2><EFBFBD>ݵ<EFBFBD>EEPROM
|
|||
|
{
|
|||
|
g_frame_temp_len_JiangShui = 0;
|
|||
|
if(*new_message_data_rev_JiangShui> 0x5A) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>90min
|
|||
|
{
|
|||
|
task_complete_JiangShui = PTL_PACK_FAIL;
|
|||
|
return;
|
|||
|
}
|
|||
|
Sys_data_object.P1.storage_frequency = *(new_message_data_rev_JiangShui);
|
|||
|
EepWrite(&Sys_data_object.P1.storage_frequency, EEP_FRAME_STORAGE_FREQUENCY, 1, &s_eep_complete_JiangShui);
|
|||
|
Frame_Para_Init();
|
|||
|
task_complete_JiangShui = PTL_PACK_SUCCESS;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
default:
|
|||
|
{
|
|||
|
up_deal_stat_JiangShui = UP_DEAL_S0;
|
|||
|
task_complete_JiangShui = PTL_PACK_FAIL;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE>:<3A><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>Ƶ<EFBFBD><C6B5>
|
|||
|
static void frame_func_s3_NB_SetSamplingFrequecy(void)
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())//<2F>洢<EFBFBD><E6B4A2><EFBFBD>ݵ<EFBFBD>EEPROM
|
|||
|
{
|
|||
|
g_frame_temp_len_JiangShui = 0;
|
|||
|
Sys_data_object.P1.jx_sampling_frequency[0] = *(new_message_data_rev_JiangShui + 0);
|
|||
|
Sys_data_object.P1.jx_sampling_frequency[1] = *(new_message_data_rev_JiangShui + 1);
|
|||
|
EepWrite(&Sys_data_object.P1.jx_sampling_frequency[0], EEP_FRAME_JX_SAMPLING_FREQUENCY_ADDR, 2, &s_eep_complete_JiangShui);
|
|||
|
Frame_Para_Init();
|
|||
|
task_complete_JiangShui = PTL_PACK_SUCCESS;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE>:<3A><><EFBFBD><EFBFBD>NBģ<42><C4A3>ΪPSM<53><4D><EFBFBD>ϵ<EFBFBD>ģʽ
|
|||
|
static void frame_func_s3_NB_SetPsmOrPwDown(void)
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
g_frame_temp_len_JiangShui = 0;
|
|||
|
Sys_data_object.P1.jx_psm_pwdown = *new_message_data_rev_JiangShui;
|
|||
|
EepWrite(&Sys_data_object.P1.jx_psm_pwdown, EEP_FRAME_JX_PSM_PWDOWN_ADDR, 1, &s_eep_complete_JiangShui);
|
|||
|
Frame_Para_Init();
|
|||
|
task_complete_JiangShui = PTL_PACK_SUCCESS;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/************************************************************************************************************/
|
|||
|
//<2F><><EFBFBD><EFBFBD>Լ
|
|||
|
u8 crack_frame_JiangShui(u16 frame_lenth,u8 *frame_buffer)
|
|||
|
{
|
|||
|
u8 temp_res = crack_frame_IES_Base(frame_lenth, frame_buffer, &frame_struct_JiangShui);
|
|||
|
if(temp_res == SUCCESS_IES)
|
|||
|
{
|
|||
|
frame_struct_JiangShui.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>
|
|||
|
frame_struct_JiangShui.DI0 = *(frame_buffer + frame_struct_JiangShui.head_site + 12);
|
|||
|
frame_struct_JiangShui.DI1 = *(frame_buffer + frame_struct_JiangShui.head_site + 13);
|
|||
|
frame_struct_JiangShui.serial_num0 = *(frame_buffer + frame_struct_JiangShui.head_site + 14);
|
|||
|
frame_struct_JiangShui.serial_num1 = *(frame_buffer + frame_struct_JiangShui.head_site + 15);
|
|||
|
new_message_data_rev_JiangShui = frame_buffer + frame_struct_JiangShui.head_site + 16;
|
|||
|
frame_lenth = 0;
|
|||
|
return SUCCESS_IES;
|
|||
|
}
|
|||
|
return ERROR_IES;
|
|||
|
}
|
|||
|
|
|||
|
//<2F><>ˮ<EFBFBD><CBAE>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD>:<3A><>չ<EFBFBD><D5B9><EFBFBD>ɹ<EFBFBD>Լ
|
|||
|
u8 up_deal_code_JiangShui(void)
|
|||
|
{
|
|||
|
task_complete_JiangShui = PTL_PACK_BUSY;
|
|||
|
switch(frame_struct_JiangShui.ctrl)
|
|||
|
{
|
|||
|
case SS_ACK_UPLOAD_CTRL:
|
|||
|
{
|
|||
|
frame_func_reply_NB_AckUpload();
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case SS_ACK_SIGN_IN_CTRL:
|
|||
|
{
|
|||
|
frame_func_reply_NB_AckLogin();
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case SS_CLEAR_FAIL_TIMES_CTRL:
|
|||
|
{
|
|||
|
frame_func_s3_NB_ClearFailTimes();;
|
|||
|
frame_struct_JiangShui.ack_ctrl = SS_ACK_CLEAR_FAIL_TIMES_CTRL;
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case FM_SET_MJJI_SPACE_TIME_CTRL:
|
|||
|
{
|
|||
|
frame_func_s3_NB_SetStorageFrequency();;
|
|||
|
frame_struct_JiangShui.ack_ctrl = FM_SET_MJJI_SPACE_TIME_REPLY_CTRL;
|
|||
|
}
|
|||
|
break;
|
|||
|
case FM_SET_SAMPLING_FREQUENCY_CTRL:
|
|||
|
{
|
|||
|
frame_func_s3_NB_SetSamplingFrequecy();;
|
|||
|
frame_struct_JiangShui.ack_ctrl = FM_SET_SAMPLING_FREQUENCY_REPLY_CTRL;
|
|||
|
}
|
|||
|
break;
|
|||
|
case FM_SET_PSM_PWDOWN_CTRL:
|
|||
|
{
|
|||
|
frame_func_s3_NB_SetPsmOrPwDown();;
|
|||
|
frame_struct_JiangShui.ack_ctrl = FM_SET_PSM_PWDOWN_REPLY_CTRL;
|
|||
|
}
|
|||
|
break;
|
|||
|
default:
|
|||
|
{
|
|||
|
up_deal_stat_JiangShui = UP_DEAL_S0;
|
|||
|
task_complete_JiangShui = PTL_PACK_FAIL;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
return task_complete_JiangShui;
|
|||
|
}
|
|||
|
|
|||
|
void Frame_ResetDealState_JiangShui(void)
|
|||
|
{
|
|||
|
up_deal_stat_JiangShui = UP_DEAL_S0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><D5B9>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD>״̬<D7B4><CCAC>λ
|
|||
|
}
|
|||
|
//Ӧ<><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡
|
|||
|
void Frame_ack_JiangShui(u8* p_send_buf, u16* p_send_len)
|
|||
|
{
|
|||
|
STRUCT_FRAME_IES temp_struct;
|
|||
|
|
|||
|
temp_struct.ack_ctrl = frame_struct_JiangShui.ack_ctrl;
|
|||
|
temp_struct.DI0 = frame_struct_JiangShui.DI0;
|
|||
|
temp_struct.DI1 = frame_struct_JiangShui.DI1;
|
|||
|
temp_struct.sta = frame_struct_JiangShui.sta;
|
|||
|
temp_struct.serial_num0 = frame_struct_JiangShui.serial_num0;
|
|||
|
temp_struct.serial_num1 = frame_struct_JiangShui.serial_num1;
|
|||
|
|
|||
|
Frame_ack_IesBase(temp_struct,g_frame_temp_buf_JiangShui, g_frame_temp_len_JiangShui, p_send_buf, p_send_len);
|
|||
|
}
|
|||
|
/****************************************************************<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD>ݵĴ<DDB5><C4B4><EFBFBD>*********************************************/
|
|||
|
static u8 upload_frame_retry_times=0;
|
|||
|
//static u8 temp_upload_step=0;
|
|||
|
|
|||
|
void GetUploadDataResetState_JX(void)
|
|||
|
{
|
|||
|
upload_frame_stat_JiangShui =UP_DEAL_S0;
|
|||
|
upload_task_complete_JiangShui = PTL_PACK_BUSY;
|
|||
|
}
|
|||
|
u8 GetUploadDataCheckIdle_JX(void)
|
|||
|
{
|
|||
|
if(UP_DEAL_S0 == upload_frame_stat_JiangShui)
|
|||
|
{
|
|||
|
return TASK_IDLE;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return TASK_BUSY;
|
|||
|
}
|
|||
|
}
|
|||
|
u8 GetUploadDataCheckTask_JX(void)
|
|||
|
{
|
|||
|
return upload_task_complete_JiangShui;
|
|||
|
}
|
|||
|
|
|||
|
/***********************************************
|
|||
|
<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>
|
|||
|
***********************************************/
|
|||
|
u16 GetUploadConnectTime_JX(u8 type)
|
|||
|
{
|
|||
|
if(type == 0)
|
|||
|
{
|
|||
|
return s_upload_connect_time;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return (Get100msTimer(TIMER_100MS_WAIT_SLEEP_GPRS)/1000000);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
void GetUploadDataMachine_JX(u8 data_step, u8* p_send_buf, u16* p_send_len)
|
|||
|
{
|
|||
|
switch(upload_frame_stat_JiangShui)
|
|||
|
{
|
|||
|
case UP_DEAL_S0:
|
|||
|
{
|
|||
|
if(data_step == UPLOAD_FRAME_REQUEST_NEW)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>
|
|||
|
{
|
|||
|
s_upload_connect_time = Get100msTimer(TIMER_100MS_WAIT_SLEEP_GPRS)/1000000;
|
|||
|
upload_frame_retry_times = 0;
|
|||
|
upload_frame_stat_JiangShui = UP_DEAL_S1;
|
|||
|
}
|
|||
|
else if(data_step == UPLOAD_FRAME_UPLOAD_OK)//<2F><><EFBFBD>ͳɹ<CDB3>
|
|||
|
{
|
|||
|
jx_upload_fail_times = 0;
|
|||
|
upload_frame_retry_times = 0;
|
|||
|
SystemClearUploadAgain();//<2F>ش<EFBFBD><D8B4><EFBFBD>0
|
|||
|
upload_frame_stat_JiangShui = UP_DEAL_S10;//<2F><>ȡ<EFBFBD><C8A1>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
else if(data_step == UPLOAD_FRAME_UPLOAD_RETRY)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD>
|
|||
|
{
|
|||
|
upload_frame_stat_JiangShui = UP_DEAL_S21;
|
|||
|
}
|
|||
|
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>
|
|||
|
}
|
|||
|
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
|
|||
|
{
|
|||
|
jx_upload_fail_times++;//ʧ<>ܴ<EFBFBD><DCB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
upload_task_complete_JiangShui = PTL_PACK_FAIL;
|
|||
|
upload_frame_stat_JiangShui = UP_DEAL_S0;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
upload_task_complete_JiangShui = PTL_PACK_FAIL;
|
|||
|
upload_frame_stat_JiangShui = UP_DEAL_S0;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
case UP_DEAL_S1://<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>,<2C><>ȡ<EFBFBD><C8A1>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
if(Copy_R_W_Count() == SUCCESS)//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>Ĵ洢<C4B4><E6B4A2><EFBFBD><EFBFBD>дָ<D0B4><D6B8>
|
|||
|
{
|
|||
|
jx_upload_record_cnts = get_com_rx_num_copy(); //<2F><>ȡ<EFBFBD><C8A1>Ҫ<EFBFBD>ϴ<EFBFBD><CFB4>ļ<EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
|
|||
|
if(jx_upload_record_cnts >0)
|
|||
|
{
|
|||
|
jx_upload_total_packs = (jx_upload_record_cnts/JX_ONE_PACKET_COUNTS);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD>ܰ<EFBFBD><DCB0><EFBFBD>,45<34><35><EFBFBD><EFBFBD>¼һ<C2BC><D2BB>
|
|||
|
if(jx_upload_record_cnts % JX_ONE_PACKET_COUNTS)
|
|||
|
{
|
|||
|
jx_upload_total_packs += 1;
|
|||
|
}
|
|||
|
if(jx_upload_total_packs > MAX_PACKS_TOUPLOAD)//<2F><><EFBFBD><EFBFBD>65<36><35>
|
|||
|
{
|
|||
|
jx_upload_total_packs = MAX_PACKS_TOUPLOAD;
|
|||
|
}
|
|||
|
}
|
|||
|
else//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>
|
|||
|
{
|
|||
|
jx_upload_total_packs = 1;//<2F>ܰ<EFBFBD><DCB0><EFBFBD>
|
|||
|
}
|
|||
|
jx_upload_cur_pack = 1;//<2F><>ǰ<EFBFBD><C7B0><EFBFBD>Ŵ<EFBFBD>1<EFBFBD><31>ʼ
|
|||
|
upload_frame_stat_JiangShui = UP_DEAL_S2;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
case UP_DEAL_S10://<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>ָ<EFBFBD><D6B8>,<2C><>ȡ<EFBFBD><C8A1>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
if(Renew_Rcount() == SUCCESS)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
|||
|
{
|
|||
|
jx_upload_cur_pack += 1;//<2F>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD>ݰ<EFBFBD><DDB0><EFBFBD>1
|
|||
|
if(jx_upload_cur_pack > jx_upload_total_packs)//<2F>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
upload_task_complete_JiangShui = PTL_PACK_FAIL;//ʧ<><CAA7>
|
|||
|
upload_frame_stat_JiangShui = UP_DEAL_S0;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
jx_upload_record_cnts = get_com_rx_num_copy();//<2F><>ȡ<EFBFBD><C8A1>Ҫ<EFBFBD>ϴ<EFBFBD><CFB4>ļ<EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
|
|||
|
upload_frame_stat_JiangShui = UP_DEAL_S2;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
case UP_DEAL_S2://<2F><>ȡ<EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD>֡
|
|||
|
{
|
|||
|
if(get_com_rx_data() == SUCCESS)//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
NB_JX_Frame_Upload_Data(upload_temp_buf_JiangShui, &upload_temp_len_JiangShui, jx_upload_total_packs, jx_upload_cur_pack);//<2F><><EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD>
|
|||
|
|
|||
|
upload_struct_JiangShui.ack_ctrl = SS_UPLOAD_CTRL;
|
|||
|
upload_struct_JiangShui.DI0 = SS_UPLOAD_CTRL_ID0;
|
|||
|
upload_struct_JiangShui.DI1 = SS_UPLOAD_CTRL_ID1;
|
|||
|
upload_struct_JiangShui.sta = 0x03;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>
|
|||
|
upload_serial_num_JiangShui++;
|
|||
|
upload_struct_JiangShui.serial_num0 = upload_serial_num_JiangShui&0xFF;
|
|||
|
upload_struct_JiangShui.serial_num1 = (upload_serial_num_JiangShui>>8)&0xFF;
|
|||
|
|
|||
|
Frame_ack_IesBase(upload_struct_JiangShui, upload_temp_buf_JiangShui, upload_temp_len_JiangShui, p_send_buf, p_send_len);
|
|||
|
|
|||
|
upload_task_complete_JiangShui = PTL_PACK_SUCCESS;// <20>ɹ<EFBFBD>
|
|||
|
upload_frame_stat_JiangShui = UP_DEAL_S0;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case UP_DEAL_S21://<2F><><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
if(upload_frame_retry_times < 1) //<2F><>Ϊ<EFBFBD>ط<EFBFBD>1<EFBFBD><31>
|
|||
|
{
|
|||
|
upload_frame_retry_times++;
|
|||
|
upload_frame_stat_JiangShui = UP_DEAL_S2;
|
|||
|
}
|
|||
|
else//<2F><><EFBFBD>·<EFBFBD><C2B7><EFBFBD>ʧ<EFBFBD><CAA7>3<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>
|
|||
|
}
|
|||
|
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
|
|||
|
{
|
|||
|
jx_upload_fail_times++;//ʧ<>ܴ<EFBFBD><DCB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
upload_task_complete_JiangShui = PTL_PACK_FAIL;
|
|||
|
upload_frame_stat_JiangShui = UP_DEAL_S0;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
default:
|
|||
|
{
|
|||
|
upload_task_complete_JiangShui = PTL_PACK_FAIL;
|
|||
|
upload_frame_stat_JiangShui = UP_DEAL_S0;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
/*******************************************************************************
|
|||
|
* @fun_name:NB_SS_Control_GetPara
|
|||
|
* @brief :
|
|||
|
* @param[in] :<EFBFBD><EFBFBD>ȡ<EFBFBD>ϱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param[out]: None
|
|||
|
* @retval : None
|
|||
|
* @other :
|
|||
|
******************************************************************************/
|
|||
|
u8 NB_SS_Control_GetPara(NB_SS_ControlParaTypeDef paraType)
|
|||
|
{
|
|||
|
switch(paraType)
|
|||
|
{
|
|||
|
// case NB_UploadFailTimes://<2F><>Ҫ<EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// {
|
|||
|
// u8 temp_fail_times=JiangXiStore_UploadPacks();
|
|||
|
// return temp_fail_times;
|
|||
|
// }
|
|||
|
case NB_UploadFailTimes://ʧ<>ܴ<EFBFBD><DCB4><EFBFBD>
|
|||
|
{
|
|||
|
u8 temp_fail_times=0;
|
|||
|
if(Sys_data_object.P3.ProductUpoadFailFlag)//<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>ʧ<EFBFBD><CAA7>
|
|||
|
{
|
|||
|
temp_fail_times = Sys_data_object.P3.ProductUpoadFailFlag;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
temp_fail_times = jx_upload_fail_times;
|
|||
|
}
|
|||
|
return temp_fail_times;
|
|||
|
}
|
|||
|
case NB_SS_FormatError://<2F>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD>ݸ<EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
return temp_format_error;
|
|||
|
}
|
|||
|
default:
|
|||
|
break;
|
|||
|
}
|
|||
|
return 0;
|
|||
|
}
|
|||
|
/*******************************************************************************
|
|||
|
* @fun_name:NB_SS_Control_SetPara
|
|||
|
* @brief :
|
|||
|
* @param[in] :<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param[out]: None
|
|||
|
* @retval : None
|
|||
|
* @other :
|
|||
|
******************************************************************************/
|
|||
|
void NB_SS_Control_SetPara(NB_SS_ControlParaTypeDef paraType, u8 data)
|
|||
|
{
|
|||
|
switch(paraType)
|
|||
|
{
|
|||
|
case NB_SS_FormatError://<2F>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD>ݸ<EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
temp_format_error = data;
|
|||
|
break;
|
|||
|
}
|
|||
|
case NB_UploadFailTimes://ʧ<>ܴ<EFBFBD><DCB4><EFBFBD>
|
|||
|
{
|
|||
|
SystemClearUploadAgain();
|
|||
|
Sys_data_object.P3.ProductUpoadFailFlag = 0;
|
|||
|
jx_upload_fail_times = 0;
|
|||
|
break;
|
|||
|
}
|
|||
|
default:
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
//<2F><>Լ<EFBFBD><D4BC><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD>ֳ<EFBFBD>ʼ<EFBFBD><CABC>
|
|||
|
void DataStoreInit(void)
|
|||
|
{
|
|||
|
JiangXiStore_InitApp();
|
|||
|
}
|
|||
|
//<2F><>Լ<EFBFBD><D4BC><EFBFBD>ݴ洢״̬<D7B4><CCAC>
|
|||
|
void DataStoreMachine(void)
|
|||
|
{
|
|||
|
JiangXiStore_Machine();
|
|||
|
}
|
|||
|
//<2F><>Լ<EFBFBD><D4BC><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
u8 DataStoreIfIdle(void)
|
|||
|
{
|
|||
|
return JiangXiStore_IfSleep();
|
|||
|
}
|
|||
|
|
|||
|
#endif
|
|||
|
|