1379 lines
41 KiB
C
1379 lines
41 KiB
C
|
#include "sys_config.h"
|
|||
|
#if UPLOAD_MODE_1
|
|||
|
#include "UWater_frame_app.h"
|
|||
|
#include "UWater_eeprom_driver.h"
|
|||
|
#include "UWater_Timer1us_driver.h"
|
|||
|
#include "UWater_lptimer_driver.h"
|
|||
|
#include "UWater_rtcc_driver.h"
|
|||
|
#include "UWater_valve_driver.h"
|
|||
|
#include "eeprom_app.h"
|
|||
|
#include "UWater_rtcc_app.h"
|
|||
|
#include "UWater_power_app.h"
|
|||
|
#include "UWater_gp22_app.h"
|
|||
|
#include "sys_processor.h"
|
|||
|
#include "UWater_DataTools_App.h"
|
|||
|
#include "UWater_key_app.h"
|
|||
|
#include "UWater_pt_app.h"
|
|||
|
#include "UWater_DebugPrint.h"
|
|||
|
#include "UWater_Valve_app.h"
|
|||
|
#include <string.h>
|
|||
|
#include "UWater_sys.h"
|
|||
|
#include "soe.h"
|
|||
|
#include "nb_upload_monitor.h"
|
|||
|
|
|||
|
//<2F><><EFBFBD>ݷ<EFBFBD><DDB7>ͻ<EFBFBD><CDBB><EFBFBD>
|
|||
|
static u8 upload_send_buf[UPLOAD_BUF_SIZE];
|
|||
|
static u16 upload_send_len;
|
|||
|
static u8 upload_send_state;
|
|||
|
|
|||
|
static DateTime upload_skew;
|
|||
|
static TYP_MAIN_STATE_UPLOAD main_upload_state = UPLOAD_S0;
|
|||
|
static TYP_STATE_UPLOAD time_upload_state=TIME_UPLOAD_S0;
|
|||
|
static EVENT_UPLOAD_ event_upload; //<2F>¼<EFBFBD><C2BC><EFBFBD>¼
|
|||
|
static u32 g_delay_upload_time;
|
|||
|
static u8 g_jingge_time_para;
|
|||
|
static u8 upload_delay_flag = 0;
|
|||
|
static u16 g_activity_times=0;
|
|||
|
static u8 upload_frame_data_step = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD>
|
|||
|
static u8 s_upload_ack_fail_times=0;//<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
static u16 valve_close_upload_time_cnt;
|
|||
|
|
|||
|
static u8 s_upload_eep_complete=0;
|
|||
|
static u8 save_freeze_sate = SAVE_FREEZE_S0; //<2F><><EFBFBD>ݶ<EFBFBD><DDB6><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>
|
|||
|
static u8 data_save_judge_flag = FALSE; //<2F><><EFBFBD>涳<EFBFBD><E6B6B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
static u8 sys_deal_judge_flag = FALSE; //ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>
|
|||
|
static DateTime sys_rtcc_time; //<2F><><EFBFBD>ڻ<EFBFBD>ȡϵͳ<CFB5><CDB3>ǰʱ<C7B0><CAB1>
|
|||
|
static u16 sys_temp_min_hex;//<2F><><EFBFBD><EFBFBD>ת16<31><36><EFBFBD>Ƹ<EFBFBD>ʽ
|
|||
|
//RTC<54><43><EFBFBD>ϳ<EFBFBD>ʱʱ<CAB1><CAB1>
|
|||
|
static u32 rtcc_err_check_time=0;
|
|||
|
static u8 rtcc_err_check_count=0;
|
|||
|
static u8 sys_rtcc_clk_source=0;
|
|||
|
static u8 sys_rtcc_check_flag=FALSE;
|
|||
|
//ϵͳ<CFB5><CDB3>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>־
|
|||
|
static u8 sys_inite_flag=FALSE;
|
|||
|
//<2F><>ɢ<EFBFBD>Ͳ<EFBFBD><CDB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʊ<EFBFBD><C6B1><EFBFBD>
|
|||
|
#define __no_init __attribute__((zero_init))
|
|||
|
__no_init volatile u8 upload_again_cnt_copy __attribute__((section(".ARM.__at_0x20007F34")));
|
|||
|
static u8 up_delay_count_flag=0; //<2F><><EFBFBD><EFBFBD>,˳<><CBB3>20<32><30><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF>ִֻ<D6BB><D6B4>һ<EFBFBD><D2BB>
|
|||
|
static u8 up_time_check_2hour=120;//<2F><><EFBFBD><EFBFBD>,<2C><>ֹNBУʱ<D0A3><CAB1><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>,2Сʱ<D0A1>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/****************************************ʱ<><CAB1>ɨ<EFBFBD>衢<EFBFBD><E8A1A2>Ϣ<EFBFBD>ַ<EFBFBD>**********************/
|
|||
|
void MinuteEventScan(void)
|
|||
|
{
|
|||
|
if (0x02 == (RtccCheckMsg() & 0x02))//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
{
|
|||
|
RtccClearMsg(1);
|
|||
|
RtccSetMsgApp(RtccMsg_UploadInTime); //RTCC<43><43>ʱ<EFBFBD>ϱ<EFBFBD>
|
|||
|
RtccSetMsgApp(RtccMsg_OtherProtl); //<2F><EFBFBD><D7B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
FrameSetMsgApp(Msg_FrozenStore); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
data_save_judge_flag = TRUE; //<2F><><EFBFBD>涳<EFBFBD><E6B6B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
sys_deal_judge_flag = TRUE; //ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>
|
|||
|
RtccSetMsgApp(RtccMsg_ValveActive);
|
|||
|
}
|
|||
|
}
|
|||
|
//ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>
|
|||
|
void SysDealAppMachine(void)
|
|||
|
{
|
|||
|
if(sys_deal_judge_flag)
|
|||
|
{
|
|||
|
sys_deal_judge_flag = FALSE;
|
|||
|
rtcc_err_check_count=0;
|
|||
|
RtccGetDateTime(&sys_rtcc_time);
|
|||
|
if(0 == sys_rtcc_time.s.minute) //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
{
|
|||
|
FrameSetMsgApp(MsgTouchKeyReset);//<2F><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
if(PSM_STATE_SLEEP == getPsmState())
|
|||
|
{
|
|||
|
FrameSetMsgApp(Msg_PsmPowerCheck);//PSMģʽ<C4A3><CABD>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
if (sys_rtcc_time.s.hour == 0x00)//0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
FrameSetMsgApp(MsgTchKey_ClearKeyLimit);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƴ<EFBFBD><C6B4><EFBFBD>
|
|||
|
sys_rtcc_check_flag = TRUE;//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ʱ<EFBFBD><CAB1>
|
|||
|
up_delay_count_flag=0;
|
|||
|
}
|
|||
|
if(sys_rtcc_time.s.hour == 0x02) //ÿ<><C3BF>2<EFBFBD><32><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
|
|||
|
{
|
|||
|
RtccSetMsgApp(RtccMsg_Transducer_Check);
|
|||
|
if(TRUE == CheckDiftofCalibrationFlag())
|
|||
|
{
|
|||
|
RtccSetMsgApp(RtccMsg_DiftofCalibration);//ÿ<><C3BF>2<EFBFBD><32><EFBFBD><EFBFBD>У<D0A3><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
//<2F>Ǽ춨<C7BC><ECB6A8>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>߷<EFBFBD><DFB7><EFBFBD>
|
|||
|
if (10 == LcdCheckStateApp()) //<2F>Ǽ춨״̬
|
|||
|
{
|
|||
|
PowerUnSleepSumAddSys();
|
|||
|
}
|
|||
|
}
|
|||
|
/**
|
|||
|
<EFBFBD>ⲿ32768<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧЧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
1<EFBFBD><EFBFBD>main<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڼ<EFBFBD><EFBFBD>ղ<EFBFBD><EFBFBD><EFBFBD>RTC<EFBFBD><EFBFBD><EFBFBD>жϻ<EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD>Ź<EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>RTCʱ<EFBFBD>ӡ<EFBFBD>
|
|||
|
2<EFBFBD><EFBFBD><EFBFBD>춨<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڼ<EFBFBD>ͨ<EFBFBD><EFBFBD>1us<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>䳬<EFBFBD><EFBFBD>2<EFBFBD><EFBFBD><EFBFBD>Ӷ<EFBFBD><EFBFBD>ղ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>RTCʱ<EFBFBD>ӡ<EFBFBD>
|
|||
|
3<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ӣ<EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD>ⲿʱ<EFBFBD><EFBFBD><EFBFBD>ָֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
if(Timer1usGetTick() - rtcc_err_check_time > 1000000)//1<><31>,<2C><>ֹ<EFBFBD>춨<EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>
|
|||
|
{
|
|||
|
rtcc_err_check_time = Timer1usGetTick();
|
|||
|
rtcc_err_check_count++;
|
|||
|
if(rtcc_err_check_count > 120)
|
|||
|
{
|
|||
|
rtcc_err_check_count = 0;
|
|||
|
Meter_ResetCountAdd(0x08);
|
|||
|
NVIC_SystemReset();
|
|||
|
}
|
|||
|
}
|
|||
|
if((sys_rtcc_check_flag==TRUE)&&(LcdCheckStateApp() == 10))//<2F>Ǽ춨״̬
|
|||
|
{
|
|||
|
sys_rtcc_check_flag = FALSE;
|
|||
|
if(RTC_ClkSource() == 1)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD>RC
|
|||
|
{
|
|||
|
sys_rtcc_clk_source = RtccInit();
|
|||
|
if(sys_rtcc_clk_source == 0)//<2F><><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ⲿRC
|
|||
|
{
|
|||
|
LPTimer1Init(sys_rtcc_clk_source);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
void SysDealAppPreSleep(void)
|
|||
|
{
|
|||
|
rtcc_err_check_count = 0;
|
|||
|
if(sys_inite_flag==FALSE)
|
|||
|
{
|
|||
|
sys_inite_flag = TRUE;
|
|||
|
if(Sys_data_object.P1.func_cfg_bytes[0] > 0)//<2F><><EFBFBD><EFBFBD><EFBFBD>ڳ<EFBFBD><DAB3><EFBFBD>ʱ<EFBFBD><CAB1>,<2C><>λ<EFBFBD><CEBB>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DFBB>Ѻ<EFBFBD>ִ<EFBFBD><D6B4>һ<EFBFBD>γ<EFBFBD><CEB3><EFBFBD><EFBFBD>ϱ<EFBFBD>
|
|||
|
{
|
|||
|
FrameSetMsgApp(Msg_FactoryUpload);//<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>Ϣ
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
/*******************************************************************************
|
|||
|
* @fun_name: UploadSkewTimeCount
|
|||
|
* @brief :<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
<EFBFBD><EFBFBD>ʱ<EFBFBD>ϴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>巽<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ϴ<EFBFBD>ʱ<EFBFBD><EFBFBD> + <EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>3λ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> + 60<EFBFBD>롣
|
|||
|
* @param[in] : None
|
|||
|
* @param[out]: None
|
|||
|
* @retval :
|
|||
|
* @other :
|
|||
|
******************************************************************************/
|
|||
|
void UploadSkewTimeCount(void)
|
|||
|
{
|
|||
|
if((0 == sys_rtcc_time.s.hour) && (0 == sys_rtcc_time.s.minute))//0<><30><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD><EFBFBD>0
|
|||
|
{
|
|||
|
upload_again_cnt_copy = 0;
|
|||
|
}
|
|||
|
if(UPLOAD_MODE_HOUR == Sys_data_object.P1.Time_upload_2006.s.type) //Сʱģʽ
|
|||
|
{
|
|||
|
g_delay_upload_time = 0;
|
|||
|
if(upload_again_cnt_copy > Sys_data_object.P1.report_retry_times)
|
|||
|
{
|
|||
|
upload_again_cnt_copy = 0;
|
|||
|
}
|
|||
|
g_delay_upload_time = (Sys_data_object.P1.met_addr[0] >> 4) * 10 + (Sys_data_object.P1.met_addr[0] & 0x0F);
|
|||
|
g_delay_upload_time *= Sys_data_object.P1.report_step_len.datas;//<2F><><EFBFBD>ƺ<EFBFBD><C6BA><EFBFBD>λx<CEBB><78><EFBFBD><EFBFBD>ֵ
|
|||
|
g_delay_upload_time += (u32)MINUTE_TO_SECOND * BCD2HEX(Sys_data_object.P1.Time_upload_2006.s.period); //<2F>ϴ<EFBFBD><CFB4>趨<EFBFBD>ķ<EFBFBD>
|
|||
|
g_delay_upload_time += (u32)MINUTE_TO_SECOND * 20 * upload_again_cnt_copy;//<2F>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
g_delay_upload_time %= HOUR_TO_SECOND; //<2F><>ɢ<EFBFBD><C9A2>1h<31><68>
|
|||
|
upload_skew.s.minute = g_delay_upload_time / MINUTE_TO_SECOND;
|
|||
|
upload_skew.s.minute = HEX2BCD(upload_skew.s.minute);
|
|||
|
//Ƶ<><C6B5><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>Сʱģʽ<C4A3><CABD><EFBFBD><EFBFBD>50<35><30><EFBFBD><EFBFBD>ʱ,<2C>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>Ϊ(5x-50)
|
|||
|
if(Sys_data_object.P1.Time_upload_2006.s.period>0x52)
|
|||
|
{
|
|||
|
upload_skew.s.minute = (BCD2HEX(sys_rtcc_time.s.minute)/(Sys_data_object.P1.Time_upload_2006.s.period - 0x50))*(Sys_data_object.P1.Time_upload_2006.s.period - 0x50);
|
|||
|
upload_skew.s.minute = HEX2BCD(upload_skew.s.minute);
|
|||
|
}
|
|||
|
}
|
|||
|
else //<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>ģʽ<C4A3><CABD><EFBFBD>졢<EFBFBD>ܡ<EFBFBD><DCA1><EFBFBD>
|
|||
|
{
|
|||
|
// #if defined(VALVE)
|
|||
|
// if(ValveGetUploadStateApp()==VALVE_CLOSE_UPLOAD_TIME)//<2F><><EFBFBD>ŹرյĴ<D5B5><C4B4><EFBFBD>
|
|||
|
// {
|
|||
|
// return;
|
|||
|
// }
|
|||
|
// #endif
|
|||
|
if((BCD2HEX(sys_rtcc_time.s.day) % getUploadControlPara(UP_DAY_COUNT))!=0)
|
|||
|
{
|
|||
|
return;
|
|||
|
}
|
|||
|
g_delay_upload_time = (Sys_data_object.P1.met_addr[0]&0x0F)*100 + (Sys_data_object.P1.met_addr[0] >> 4)*10+(Sys_data_object.P1.met_addr[1]&0x0F);
|
|||
|
|
|||
|
if(Sys_data_object.P1.report_step_len.datas < 15) //<2F><>ɢϵ<C9A2><CFB5><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD>ж<EFBFBD>
|
|||
|
{
|
|||
|
Sys_data_object.P1.report_step_len.datas = 15;
|
|||
|
}
|
|||
|
else if(Sys_data_object.P1.report_step_len.datas > 43)
|
|||
|
{
|
|||
|
Sys_data_object.P1.report_step_len.datas = 43;
|
|||
|
}
|
|||
|
|
|||
|
if(Sys_data_object.P1.report_retry_times > 3) //<2F>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD>ж<EFBFBD>
|
|||
|
{
|
|||
|
Sys_data_object.P1.report_retry_times = 2; //Ĭ<><C4AC>2<EFBFBD><32>
|
|||
|
}
|
|||
|
if(upload_again_cnt_copy > Sys_data_object.P1.report_retry_times)
|
|||
|
{
|
|||
|
upload_again_cnt_copy = 0;
|
|||
|
}
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>䴦<EFBFBD><E4B4A6>
|
|||
|
/*if((Sys_data_object.P1.Upload_again_interval_time.datas < 600)||(Sys_data_object.P1.Upload_again_interval_time.datas > 43200))//С<><D0A1>3Сʱ=3*3600=10800,<2C><><EFBFBD><EFBFBD>12Сʱ=12*3600=43200
|
|||
|
{
|
|||
|
Sys_data_object.P1.Upload_again_interval_time.datas = 18000; //Ĭ<><C4AC>5Сʱ=5*3600=18000
|
|||
|
}ת<EFBFBD><EFBFBD>Сʱ<EFBFBD>ж<EFBFBD>*/
|
|||
|
g_jingge_time_para = Sys_data_object.P1.Upload_again_interval_time.datas/3600;
|
|||
|
if(g_jingge_time_para < 1) // <20>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD>ж<EFBFBD>
|
|||
|
{
|
|||
|
g_jingge_time_para = 5; //Ĭ<><C4AC>5Сʱ,<2C><>ЧֵΪ1-9<><39><EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>Ϊ1ʱ<31><CAB1><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>20min<69>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>Ӧ<EFBFBD><D3A6><EFBFBD>ֵ<EFBFBD>Сʱ
|
|||
|
}
|
|||
|
else if(g_jingge_time_para >= 10)
|
|||
|
{
|
|||
|
g_jingge_time_para = 5;
|
|||
|
}
|
|||
|
|
|||
|
g_delay_upload_time *= Sys_data_object.P1.report_step_len.datas; //<2F><><EFBFBD><EFBFBD>ɢϵ<C9A2><CFB5>
|
|||
|
if(upload_again_cnt_copy==0)
|
|||
|
{
|
|||
|
if(0 == up_delay_count_flag)//ÿ<><C3BF><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ϱ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF>ִֻ<D6BB><D6B4>һ<EFBFBD><D2BB>
|
|||
|
{
|
|||
|
g_delay_upload_time += MINUTE_TO_SECOND + getUploadControlPara(UP_DELAY_COUNT)*1200; //<2F><><EFBFBD><EFBFBD>1min<69><6E>ƫ<EFBFBD><C6AB>ʱ<EFBFBD><CAB1>
|
|||
|
}
|
|||
|
}
|
|||
|
else//ƫ<>Ʋ<EFBFBD><C6B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
{
|
|||
|
g_delay_upload_time += MINUTE_TO_SECOND;
|
|||
|
}
|
|||
|
g_delay_upload_time += (u32) HOUR_TO_SECOND * BCD2HEX(Sys_data_object.P1.Time_upload_2006.s.hour); //<2F>ϴ<EFBFBD><CFB4>趨<EFBFBD><E8B6A8>ʱ
|
|||
|
g_delay_upload_time += (u32) MINUTE_TO_SECOND * BCD2HEX(Sys_data_object.P1.Time_upload_2006.s.minute); //<2F>ϴ<EFBFBD><CFB4>趨<EFBFBD>ķ<EFBFBD>
|
|||
|
if(JIANGE_20_MIN == g_jingge_time_para) //<2F><>20min<69><6E><EFBFBD>ش<EFBFBD>
|
|||
|
{
|
|||
|
g_delay_upload_time += (u32)MINUTE_TO_SECOND * 20 * upload_again_cnt_copy;//<2F>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
else //<2F><>Сʱ<D0A1>ش<EFBFBD>
|
|||
|
{
|
|||
|
g_delay_upload_time += (u32)HOUR_TO_SECOND * (g_jingge_time_para) * upload_again_cnt_copy;//<2F>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
|
|||
|
g_delay_upload_time %= DAY_TO_SECOND; //<2F><>ɢ<EFBFBD><C9A2>1<EFBFBD><31><EFBFBD><EFBFBD>
|
|||
|
upload_skew.s.hour = g_delay_upload_time / HOUR_TO_SECOND;
|
|||
|
upload_skew.s.minute = (g_delay_upload_time % HOUR_TO_SECOND) / MINUTE_TO_SECOND;
|
|||
|
upload_skew.s.hour = HEX2BCD(upload_skew.s.hour);
|
|||
|
upload_skew.s.minute = HEX2BCD(upload_skew.s.minute);
|
|||
|
}
|
|||
|
}
|
|||
|
//<2F><>ѯ<EFBFBD><D1AF>ʵ<EFBFBD>ϱ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
|||
|
void SystemGetUploadTime(DateTime *pDT)
|
|||
|
{
|
|||
|
pDT->s.second = (Sys_data_object.P1.ies_valve_up_times.valve_up_times_pre * 30) - valve_close_upload_time_cnt;//<2F>ط<EFBFBD><D8B7>ϱ<EFBFBD>
|
|||
|
pDT->s.minute = upload_skew.s.minute;
|
|||
|
pDT->s.hour = upload_skew.s.hour;
|
|||
|
pDT->s.day = HEX2BCD(valve_close_upload_time_cnt%100);
|
|||
|
pDT->s.month = HEX2BCD((valve_close_upload_time_cnt/100)%100);
|
|||
|
pDT->s.year = HEX2BCD(Sys_data_object.P1.ies_valve_up_times.valve_up_times_realtime);
|
|||
|
pDT->s.weekday = 0x00;
|
|||
|
}
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>ϱ<EFBFBD>
|
|||
|
static void SetEventUploadFlag(u8 type)
|
|||
|
{
|
|||
|
if(type == UPLOAD_TYPE_FRAME_ORDER||type == UPLOAD_TYPE_FACTORY)//<2F><>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>
|
|||
|
{
|
|||
|
event_upload.event_cnt = 0;
|
|||
|
event_upload.upload_cnt =0;
|
|||
|
main_upload_state = UPLOAD_S1;//<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
main_upload_state = UPLOAD_S2;//<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
event_upload.event_cnt++;
|
|||
|
event_upload.event_cnt %= UPLOAD_EVENT_NUM;
|
|||
|
event_upload.upload_type[event_upload.event_cnt] = type;
|
|||
|
}
|
|||
|
//<2F><>ѯ<EFBFBD>¼<EFBFBD><C2BC>ϱ<EFBFBD>
|
|||
|
static u8 GetEventUploadFlag(void)
|
|||
|
{
|
|||
|
if(event_upload.event_cnt != event_upload.upload_cnt)
|
|||
|
{
|
|||
|
return TRUE;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return FALSE;
|
|||
|
}
|
|||
|
}
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>ϱ<EFBFBD>,(<28><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>,<2C><>ֹ<EFBFBD><D6B9>ʱ<EFBFBD><CAB1>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>)
|
|||
|
static void ClearEventUploadFlag(void)
|
|||
|
{
|
|||
|
event_upload.event_cnt = 0;
|
|||
|
event_upload.upload_cnt =0;
|
|||
|
}
|
|||
|
//<2F><>ѯ<EFBFBD>¼<EFBFBD><C2BC>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
u8 GetEventUploadType(void)
|
|||
|
{
|
|||
|
return event_upload.upload_type[event_upload.upload_cnt];
|
|||
|
}
|
|||
|
//<2F>п<EFBFBD><D0BF><EFBFBD>
|
|||
|
u8 FixedTimeNbIoTUploadIfIdle(void)
|
|||
|
{
|
|||
|
if(TIME_UPLOAD_S0 == time_upload_state)
|
|||
|
{
|
|||
|
return TASK_IDLE;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return TASK_BUSY;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
//<2F>ϴ<EFBFBD><CFB4><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD>ж<EFBFBD>
|
|||
|
static void UploadConditionJuge(void)
|
|||
|
{
|
|||
|
//<2F><>ʱ<EFBFBD>ϱ<EFBFBD>:
|
|||
|
if(RtccCheckMsgApp(RtccMsg_UploadInTime))
|
|||
|
{
|
|||
|
if(up_time_check_2hour<200)
|
|||
|
{
|
|||
|
up_time_check_2hour++;
|
|||
|
}
|
|||
|
DateTime sys_rtcc_time;
|
|||
|
RtccClearMsgApp(RtccMsg_UploadInTime);
|
|||
|
RtccGetDateTime(&sys_rtcc_time);
|
|||
|
UploadSkewTimeCount();//<2F><>ʱ<EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>\<5C><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
#if defined(VALVE)
|
|||
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>״̬--<2D>ر<EFBFBD>,<2C>ط<EFBFBD>״̬<D7B4><CCAC>Ƶ<EFBFBD><C6B5><EFBFBD>ϱ<EFBFBD><CFB1>Լ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
|||
|
if((VALVE_STATE_CLOSE_EMERGENCY == Sys_data_object.P1.ies_valve_paras.valve_state) ||
|
|||
|
(VALVE_STATE_CLOSE_LOCK == Sys_data_object.P1.ies_valve_paras.valve_state) ||
|
|||
|
(VALVE_STATE_CLOSE == Sys_data_object.P1.ies_valve_paras.valve_state))
|
|||
|
{
|
|||
|
if(0 == Sys_data_object.P1.ies_valve_up_times.valve_up_times_total) //Ϊ0ʱ<30><CAB1>Ĭ<EFBFBD>Ϲرոù<D5B8><C3B9><EFBFBD>
|
|||
|
{
|
|||
|
Sys_data_object.P1.func_cfg_bytes[12] &=~ 0x01;//<2F><><EFBFBD><EFBFBD>PSM<53>ϱ<EFBFBD>
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
valve_close_upload_time_cnt++;//<2F><><EFBFBD>Ӽ<EFBFBD>ʱ
|
|||
|
if(0 == Sys_data_object.P1.ies_valve_up_times.valve_up_times_pre)
|
|||
|
{
|
|||
|
Sys_data_object.P1.ies_valve_up_times.valve_up_times_pre = 2; //Ĭ<>ϰ<EFBFBD>1h
|
|||
|
}
|
|||
|
if(valve_close_upload_time_cnt >= (Sys_data_object.P1.ies_valve_up_times.valve_up_times_pre * 30))//<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>䣬<EFBFBD><E4A3AC>С30<33><30><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
valve_close_upload_time_cnt = 0;
|
|||
|
if(Sys_data_object.P1.ies_valve_up_times.valve_up_times_total > VALVE_CLOSE_UPLOAD_MAX)
|
|||
|
{
|
|||
|
Sys_data_object.P1.ies_valve_up_times.valve_up_times_total = VALVE_CLOSE_UPLOAD_MAX;
|
|||
|
}
|
|||
|
if(Sys_data_object.P1.ies_valve_up_times.valve_up_times_realtime < Sys_data_object.P1.ies_valve_up_times.valve_up_times_total)
|
|||
|
{
|
|||
|
Sys_data_object.P1.ies_valve_up_times.valve_up_times_realtime++;
|
|||
|
FrameSetMsgApp(MsgChangcha_ValveUploadCnts);//<2F>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>EE
|
|||
|
SetEventUploadFlag(UPLOAD_TYPE_VALVE_CLOSE);//<2F><><EFBFBD><EFBFBD><EFBFBD>ط<EFBFBD><D8B7>ϱ<EFBFBD><CFB1><EFBFBD>Ϣ
|
|||
|
SaveNewSoe(SOE_MANUAL_UPLOAD,0x20); //<2F><>SOE
|
|||
|
Sys_data_object.P1.func_cfg_bytes[12] |= 0x01;//ʹ<><CAB9>PSM<53>ϱ<EFBFBD>
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
Sys_data_object.P1.func_cfg_bytes[12] &=~ 0x01;//<2F><><EFBFBD><EFBFBD>PSM<53>ϱ<EFBFBD>
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
valve_close_upload_time_cnt = 0;
|
|||
|
Sys_data_object.P1.ies_valve_up_times.valve_up_times_realtime = 0;
|
|||
|
Sys_data_object.P1.func_cfg_bytes[12] &=~ 0x01;//<2F><><EFBFBD><EFBFBD>PSM<53>ϱ<EFBFBD>
|
|||
|
}
|
|||
|
#endif
|
|||
|
if(UPLOAD_MODE_HOUR == Sys_data_object.P1.Time_upload_2006.s.type) //Сʱģʽ
|
|||
|
{
|
|||
|
if(sys_rtcc_time.s.minute == upload_skew.s.minute) //<2F><>ɢʱ<C9A2><CAB1>
|
|||
|
{
|
|||
|
upload_delay_flag = 1;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if((sys_rtcc_time.s.hour == upload_skew.s.hour) && (sys_rtcc_time.s.minute == upload_skew.s.minute)) //<2F><>ɢʱ<C9A2><CAB1>
|
|||
|
{
|
|||
|
if(up_time_check_2hour < 120)//<2F><><EFBFBD>ϴζ<CFB4>ʱ<EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>2Сʱ
|
|||
|
{
|
|||
|
return;
|
|||
|
}
|
|||
|
if(UPLOAD_MODE_WEEK == Sys_data_object.P1.Time_upload_2006.s.type)//<2F><>ģʽ
|
|||
|
{
|
|||
|
if(Sys_data_object.P1.Time_upload_2006.s.period == sys_rtcc_time.s.weekday)
|
|||
|
{
|
|||
|
upload_delay_flag = 1;
|
|||
|
up_time_check_2hour=0;//<2F><><EFBFBD>¼<EFBFBD>ʱ
|
|||
|
}
|
|||
|
}
|
|||
|
else if(UPLOAD_MODE_MONTH == Sys_data_object.P1.Time_upload_2006.s.type)//<2F><>ģʽ
|
|||
|
{
|
|||
|
if(Sys_data_object.P1.Time_upload_2006.s.period == sys_rtcc_time.s.day)
|
|||
|
{
|
|||
|
upload_delay_flag = 1;
|
|||
|
up_time_check_2hour=0;//<2F><><EFBFBD>¼<EFBFBD>ʱ
|
|||
|
}
|
|||
|
}
|
|||
|
else//<2F><>ģʽ
|
|||
|
{
|
|||
|
if((BCD2HEX(sys_rtcc_time.s.day) % getUploadControlPara(UP_DAY_COUNT))!=0)
|
|||
|
{
|
|||
|
return;
|
|||
|
}
|
|||
|
up_delay_count_flag =1;
|
|||
|
upload_delay_flag = 1;
|
|||
|
up_time_check_2hour=0;//<2F><><EFBFBD>¼<EFBFBD>ʱ
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
if(upload_delay_flag==1)//<2F>ȴ<EFBFBD><C8B4><EFBFBD>ɢʱ<C9A2>䵽<EFBFBD><E4B5BD>
|
|||
|
{
|
|||
|
if(01 != LcdCheckStateApp())//<2F>Ǽ춨״̬
|
|||
|
{
|
|||
|
upload_delay_flag = 0;
|
|||
|
if(0 == upload_again_cnt_copy)
|
|||
|
{
|
|||
|
SetEventUploadFlag(UPLOAD_TYPE_FIX_TIME); //RTCC<43><43>ʱ<EFBFBD>ϱ<EFBFBD>
|
|||
|
SaveNewSoe(SOE_MANUAL_UPLOAD,0x10); //<2F><>SOE
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
SetEventUploadFlag(UPLOAD_TYPE_RETRY_AGAIN); //<2F>ش<EFBFBD><D8B4>ϱ<EFBFBD>
|
|||
|
SaveNewSoe(SOE_MANUAL_UPLOAD,0x11); //<2F><>SOE
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>:
|
|||
|
if(FrameCheckMsgApp(MsgNbUartSend))//<2F>жϴ<D0B6><CFB4>ڷ<EFBFBD><DAB7><EFBFBD><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD>Ϣ
|
|||
|
{
|
|||
|
FrameClearMsgApp(MsgNbUartSend);
|
|||
|
SetEventUploadFlag(UPLOAD_TYPE_FRAME_ORDER);
|
|||
|
SaveNewSoe(SOE_MANUAL_UPLOAD,0x01); //<2F><>SOE
|
|||
|
}
|
|||
|
else if(KeyCheckLcdMsgApp(MENU_ACTIVE_RF))//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD>Ϣ
|
|||
|
{
|
|||
|
KeyClearLcdMsgApp(MENU_ACTIVE_RF);//<2F>尴<EFBFBD><E5B0B4><EFBFBD><EFBFBD>Ϣ
|
|||
|
SetEventUploadFlag(UPLOAD_TYPE_HAND_KEY);
|
|||
|
SaveNewSoe(SOE_MANUAL_UPLOAD,0x02); //<2F><>SOE
|
|||
|
}
|
|||
|
else if(FrameCheckMsgApp(MsgNbUploadByValveStateChange))//<2F><><EFBFBD><EFBFBD>״̬<D7B4>ı䷢<C4B1><E4B7A2><EFBFBD>ϱ<EFBFBD>
|
|||
|
{
|
|||
|
FrameClearMsgApp(MsgNbUploadByValveStateChange);
|
|||
|
SetEventUploadFlag(UPLOAD_TYPE_VALVE_ACTIVE);
|
|||
|
SaveNewSoe(SOE_MANUAL_UPLOAD,0x03); //<2F><>SOE
|
|||
|
}
|
|||
|
//<2F><><EFBFBD><EFBFBD>IP:<3A><>װ<EFBFBD><D7B0><EFBFBD>ڻ<EFBFBD>ȡIMEI
|
|||
|
if(FrameCheckMsgApp(MsgNbIpPortChange))//ip<69><70><EFBFBD>˿ںŷ<DABA><C5B7><EFBFBD><EFBFBD>ı<EFBFBD>
|
|||
|
{
|
|||
|
FrameClearMsgApp(MsgNbIpPortChange);
|
|||
|
SetEventUploadFlag(UPLOAD_TYPE_SET_IP);
|
|||
|
SaveNewSoe(SOE_MANUAL_UPLOAD,0x04); //<2F><>SOE
|
|||
|
}
|
|||
|
//<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>
|
|||
|
if(FrameCheckMsgApp(MsgShenYang_NbUploadWarning))
|
|||
|
{
|
|||
|
FrameClearMsgApp(MsgShenYang_NbUploadWarning);
|
|||
|
SetEventUploadFlag(UPLOAD_TYPE_WARNING);
|
|||
|
SaveNewSoe(SOE_MANUAL_UPLOAD,0x05); //<2F><>SOE
|
|||
|
}
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>,ֻ<><D6BB><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>
|
|||
|
if(FrameCheckMsgApp(Msg_FactoryUpload))
|
|||
|
{
|
|||
|
FrameClearMsgApp(Msg_FactoryUpload);
|
|||
|
SetEventUploadFlag(UPLOAD_TYPE_FACTORY);
|
|||
|
SaveNewSoe(SOE_MANUAL_UPLOAD,0x06); //<2F><>SOE
|
|||
|
}
|
|||
|
}
|
|||
|
/*******************************************************************************
|
|||
|
* @fun_name: FixedTimeNbIoTUpload
|
|||
|
* @brief :
|
|||
|
******************************************************************************/
|
|||
|
static void FixedTimeNbIoTUpload_Ies(void)
|
|||
|
{
|
|||
|
switch(time_upload_state)
|
|||
|
{
|
|||
|
case(TIME_UPLOAD_S0):
|
|||
|
{
|
|||
|
if(TRUE == GetEventUploadFlag()) //<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
event_upload.upload_cnt++;
|
|||
|
event_upload.upload_cnt %= UPLOAD_EVENT_NUM;
|
|||
|
|
|||
|
Set100msTimer(TIMER_100MS_WAIT_SLEEP_GPRS, NB_TOTAL_WORK_TIME); //<2F><>ʱ<EFBFBD><CAB1>6min
|
|||
|
g_activity_times++; //<2F><><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>Ծ<EFBFBD><D4BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ۼ<EFBFBD>
|
|||
|
if(((FrameCheckParaApp(FramePara_FuncCfg0_3)>>16)&0xFF) == 0xAA)
|
|||
|
{
|
|||
|
OpenPrintNbDataSwitch();//<2F><EFBFBD><F2BFAABA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Թ<EFBFBD><D4B9><EFBFBD>
|
|||
|
}
|
|||
|
Sys_data_object.P3.ProductUploadFlag = 0x55;
|
|||
|
FrameClearMsgApp(MsgNbUplaod_AckOk);//<2F><><EFBFBD>յ<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>Ϣ
|
|||
|
FrameClearMsgApp(MsgNb_FlagRcvNbFrame);
|
|||
|
NbUploadParaSet();
|
|||
|
time_upload_state = TIME_UPLOAD_S1;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case(TIME_UPLOAD_S1):
|
|||
|
{
|
|||
|
if (NbiotIfOnline())//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
time_upload_state = TIME_UPLOAD_S2;
|
|||
|
}
|
|||
|
else //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
if (NbiotIfIdle())
|
|||
|
{
|
|||
|
NbiotOnlineTask(&upload_send_state);
|
|||
|
Set100msTimer(TIMER_100MS_ERROR_UPLOAD,NB_LAUNCH_TIME); //<2F>ʱ<EEB3A4><CAB1><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 5min
|
|||
|
time_upload_state = TIME_UPLOAD_S2;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
case(TIME_UPLOAD_S2):
|
|||
|
{
|
|||
|
if (NbiotIfOnline()) //<2F><><EFBFBD>߳ɹ<DFB3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>IMEI,ICCID<49><44>ECL<43><4C>SNR<4E><52>RSRP<52>Ȳ<EFBFBD><C8B2><EFBFBD>
|
|||
|
{
|
|||
|
if(UPLOAD_TYPE_FACTORY == GetEventUploadType()) //<2F>dz<EFBFBD><C7B3><EFBFBD><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
upload_frame_data_step = UPLOAD_FRAME_UPLOAD_OK;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڼ<EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ɹ<EFBFBD>
|
|||
|
time_upload_state = TIME_UPLOAD_S3;//<2F>ϱ<EFBFBD><CFB1>ɹ<EFBFBD>,<2C><>ʧ<EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD>
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
NB_NetConnectStart(Sys_data_object.P1.server_ip, Sys_data_object.P1.server_port.datas, MAIN_CONNECT_TYPE);
|
|||
|
time_upload_state = TIME_UPLOAD_S20;
|
|||
|
}
|
|||
|
}
|
|||
|
else if((upload_send_state == NBIOT_ERROR)||(0 == Check100msTimer(TIMER_100MS_ERROR_UPLOAD)))//<2F><>¼<EFBFBD><C2BC>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>ʧ<EFBFBD><CAA7>
|
|||
|
{
|
|||
|
upload_frame_data_step = UPLOAD_FRAME_ONLINE_FAIL;
|
|||
|
time_upload_state = TIME_UPLOAD_S3;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
case(TIME_UPLOAD_S20)://<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
if (ConncetIfOnline(MAIN_CONNECT_TYPE)) //<2F><><EFBFBD>߳ɹ<DFB3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>IMEI,ICCID<49><44>ECL<43><4C>SNR<4E><52>RSRP<52>Ȳ<EFBFBD><C8B2><EFBFBD>
|
|||
|
{
|
|||
|
upload_frame_data_step = UPLOAD_FRAME_REQUEST_NEW;
|
|||
|
time_upload_state = TIME_UPLOAD_S3;
|
|||
|
}
|
|||
|
else if((upload_send_state == NBIOT_ERROR)||(0 == Check100msTimer(TIMER_100MS_ERROR_UPLOAD)))//<2F><>¼<EFBFBD><C2BC>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>ʧ<EFBFBD><CAA7>
|
|||
|
{
|
|||
|
upload_frame_data_step = UPLOAD_FRAME_ONLINE_FAIL;
|
|||
|
time_upload_state = TIME_UPLOAD_S3;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case(TIME_UPLOAD_S3): //<2F>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡״̬<D7B4><CCAC>λ
|
|||
|
{
|
|||
|
GetUploadDataResetState();
|
|||
|
time_upload_state = TIME_UPLOAD_S4;
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case(TIME_UPLOAD_S4): //<2F><><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
GetUploadDataMachineProduction(upload_frame_data_step, upload_send_buf, &upload_send_len);
|
|||
|
if(GetUploadDataCheckIdleProduction() == TASK_IDLE)
|
|||
|
{
|
|||
|
if(GetUploadDataCheckTaskProduction() == PTL_PACK_SUCCESS)
|
|||
|
{
|
|||
|
time_upload_state = TIME_UPLOAD_S5;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
Set100msTimer(TIMER_100MS_NBIOT_20, NB_WAIT_5S);//5<><35><EFBFBD>ȴ<EFBFBD>
|
|||
|
time_upload_state = TIME_UPLOAD_S7;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case(TIME_UPLOAD_S5): //<2F>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD>ݷ<EFBFBD><DDB7><EFBFBD>
|
|||
|
{
|
|||
|
if (TASK_IDLE == NbiotIfIdle())
|
|||
|
{
|
|||
|
NbiotSendTask(upload_send_buf, upload_send_len, MAIN_SEND_TYPE, &upload_send_state);
|
|||
|
Set100msTimer(TIMER_100MS_NBIOT_20, COAP_UPLOAD_WAIT_ACK_TIME);//<2F>ȴ<EFBFBD>Ӧ<EFBFBD><D3A6>
|
|||
|
time_upload_state = TIME_UPLOAD_S6;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case(TIME_UPLOAD_S6): //<2F>ȴ<EFBFBD><C8B4>ϱ<EFBFBD>Ӧ<EFBFBD><D3A6>
|
|||
|
{
|
|||
|
if((FrameCheckMsgApp(MsgNbUplaod_AckOk) == 1)||(Check100msTimer(TIMER_100MS_NBIOT_20) == 0))//<2F>յ<EFBFBD><D5B5>ϴ<EFBFBD>Ӧ<EFBFBD><D3A6>֡<EFBFBD><D6A1><EFBFBD>ȴ<EFBFBD>Ӧ<EFBFBD><D3A6>ʱ<EFBFBD>䵽,<2C><>Ϊ<EFBFBD>ϱ<EFBFBD><CFB1>ɹ<EFBFBD>
|
|||
|
{
|
|||
|
FrameClearMsgApp(MsgNbUplaod_AckOk);//<2F><><EFBFBD><EFBFBD>Ϣ
|
|||
|
upload_frame_data_step = UPLOAD_FRAME_UPLOAD_OK;
|
|||
|
Sys_data_object.P3.ProductUpoadFailFlag = 0;
|
|||
|
NB_SS_Control_SetPara(NB_UploadFailTimes, 0);//<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1>ɹ<EFBFBD>,<2C><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD>
|
|||
|
time_upload_state = TIME_UPLOAD_S4;
|
|||
|
}
|
|||
|
else if(upload_send_state == NBIOT_ERROR)//<2F><><EFBFBD>ݷ<EFBFBD><DDB7><EFBFBD>ʧ<EFBFBD><CAA7>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD>
|
|||
|
{
|
|||
|
Sys_data_object.P3.ProductUpoadFailFlag = 50;
|
|||
|
upload_frame_data_step = UPLOAD_FRAME_UPLOAD_RETRY;
|
|||
|
time_upload_state = TIME_UPLOAD_S4;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case(TIME_UPLOAD_S7)://<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
if(FrameCheckMsgApp(MsgNb_FlagRcvNbFrame))//<2F>Ƿ<EFBFBD><C7B7>յ<EFBFBD>nb<6E><62><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
FrameClearMsgApp(MsgNb_FlagRcvNbFrame);
|
|||
|
Set100msTimer(TIMER_100MS_NBIOT_20, NB_WAIT_5S);
|
|||
|
}
|
|||
|
if (Check100msTimer(TIMER_100MS_NBIOT_20) == 0)//5s<35><73>ʱʱ<CAB1>䵽
|
|||
|
{
|
|||
|
if(TRUE == GetNbiotRevHandleOverFlag()) //<2F><>NB<4E><42><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>
|
|||
|
{
|
|||
|
time_upload_state = TIME_UPLOAD_PowerDown;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
//ģ<><C4A3><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
case TIME_UPLOAD_PowerDown:
|
|||
|
{
|
|||
|
if(NbiotIfIdle())
|
|||
|
{
|
|||
|
StartPowerOffTask();
|
|||
|
time_upload_state = TIME_UPLOAD_PowerDownWait;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case TIME_UPLOAD_PowerDownWait:
|
|||
|
{
|
|||
|
if(NbiotIfIdle())
|
|||
|
{
|
|||
|
time_upload_state = TIME_UPLOAD_PowerDownEnd;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case TIME_UPLOAD_PowerDownEnd:
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
if(((FrameCheckParaApp(FramePara_FuncCfg0_3)>>16)&0xFF) == 0xAA)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Կ<EFBFBD><D4BF><EFBFBD>,<2C><><EFBFBD>رպ<D8B1><D5BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
Sys_data_object.P1.func_cfg_bytes[2] = 0;
|
|||
|
s_upload_eep_complete = 0;
|
|||
|
EepWrite(&Sys_data_object.P1.func_cfg_bytes[2], (EEP_FRAME_FUNCCFGBYTES_ADDR+2), 1, &s_upload_eep_complete);
|
|||
|
Frame_Para_Init();
|
|||
|
}
|
|||
|
NbForcePowerOff();//NBǿ<42>ƹػ<C6B9>
|
|||
|
UdpEndCheckData();
|
|||
|
ClosePrintNbDataSwitch();
|
|||
|
ClearEventUploadFlag();
|
|||
|
Sys_data_object.P3.ProductUploadFlag = 0;
|
|||
|
time_upload_state = TIME_UPLOAD_S0;
|
|||
|
main_upload_state = UPLOAD_S0;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
default:
|
|||
|
{
|
|||
|
time_upload_state = TIME_UPLOAD_S0;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
//NB<4E><42>Ծʱ<D4BE>䳬ʱ<E4B3AC><CAB1><EFBFBD><EFBFBD>,<2C><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><>ǿ<EFBFBD>ƹػ<C6B9>
|
|||
|
if(TASK_BUSY == FixedTimeNbIoTUploadIfIdle())
|
|||
|
{
|
|||
|
if(0 == Check100msTimer(TIMER_100MS_WAIT_SLEEP_GPRS))
|
|||
|
{
|
|||
|
time_upload_state = TIME_UPLOAD_PowerDownEnd;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
static void FixedTimeNbIoTUpload_Other(void)
|
|||
|
{
|
|||
|
switch(time_upload_state)
|
|||
|
{
|
|||
|
case(TIME_UPLOAD_S0):
|
|||
|
{
|
|||
|
if(TRUE == GetEventUploadFlag()) //<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
event_upload.upload_cnt++;
|
|||
|
event_upload.upload_cnt %= UPLOAD_EVENT_NUM;
|
|||
|
|
|||
|
Set100msTimer(TIMER_100MS_WAIT_SLEEP_GPRS, NB_TOTAL_WORK_TIME); //<2F><>ʱ<EFBFBD><CAB1>6min
|
|||
|
g_activity_times++; //<2F><><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>Ծ<EFBFBD><D4BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ۼ<EFBFBD>
|
|||
|
if(((FrameCheckParaApp(FramePara_FuncCfg0_3)>>16)&0xFF) == 0xAA)
|
|||
|
{
|
|||
|
OpenPrintNbDataSwitch();//<2F><EFBFBD><F2BFAABA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Թ<EFBFBD><D4B9><EFBFBD>
|
|||
|
}
|
|||
|
FrameClearMsgApp(MsgNbUplaod_AckOk);//<2F><><EFBFBD>յ<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>Ϣ
|
|||
|
FrameClearMsgApp(MsgNb_FlagRcvNbFrame);
|
|||
|
NbUploadParaSet();//<2F><><EFBFBD>ݹ<EFBFBD><DDB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
time_upload_state = TIME_UPLOAD_S1;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case(TIME_UPLOAD_S1):
|
|||
|
{
|
|||
|
if(NbiotIfOnline())//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
if(PSM_STATE_OUT != getPsmState())//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PSM״̬,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PSM_STATE_SLEEP״̬<D7B4><CCAC>ʼ,<2C><><EFBFBD>Ŷ<EFBFBD><C5B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PSM_STATE_WAKE״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>
|
|||
|
{
|
|||
|
NbiotPsmWakeupTask(); //psmģʽ<C4A3><CABD><EFBFBD><EFBFBD>
|
|||
|
time_upload_state = TIME_UPLOAD_S10;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
time_upload_state = TIME_UPLOAD_S2;
|
|||
|
}
|
|||
|
}
|
|||
|
else //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
if (NbiotIfIdle())
|
|||
|
{
|
|||
|
NbiotOnlineTask(&upload_send_state);
|
|||
|
Set100msTimer(TIMER_100MS_ERROR_UPLOAD,NB_LAUNCH_TIME); //<2F>ʱ<EEB3A4><CAB1><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 5min
|
|||
|
time_upload_state = TIME_UPLOAD_S2;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case TIME_UPLOAD_S10://<2F>ȴ<EFBFBD>ģ<EFBFBD><C4A3>PSM<53><4D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
if(NbiotIfIdle()==TASK_IDLE)
|
|||
|
{
|
|||
|
if(PSM_STATE_WAKE == getPsmState())//<2F><><EFBFBD>ѳɹ<D1B3>
|
|||
|
{
|
|||
|
time_upload_state = TIME_UPLOAD_S20;
|
|||
|
}
|
|||
|
else//<2F><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>,ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
NbiotOnlineTask(&upload_send_state);
|
|||
|
Set100msTimer(TIMER_100MS_ERROR_UPLOAD,NB_LAUNCH_TIME); //<2F>ʱ<EEB3A4><CAB1><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2min
|
|||
|
time_upload_state = TIME_UPLOAD_S2;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case(TIME_UPLOAD_S2):
|
|||
|
{
|
|||
|
if (NbiotIfOnline()) //<2F><><EFBFBD>߳ɹ<DFB3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>IMEI,ICCID<49><44>ECL<43><4C>SNR<4E><52>RSRP<52>Ȳ<EFBFBD><C8B2><EFBFBD>
|
|||
|
{
|
|||
|
setUploadControlPara(UP_CGATT_FAIL, FALSE);//<2F><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>
|
|||
|
NB_NetConnectStart(Sys_data_object.P1.server_ip, Sys_data_object.P1.server_port.datas, MAIN_CONNECT_TYPE);
|
|||
|
time_upload_state = TIME_UPLOAD_S20;
|
|||
|
}
|
|||
|
else if((upload_send_state == NBIOT_ERROR)||(0 == Check100msTimer(TIMER_100MS_ERROR_UPLOAD)))//<2F><>¼<EFBFBD><C2BC>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>ʧ<EFBFBD><CAA7>
|
|||
|
{
|
|||
|
setUploadControlPara(UP_CGATT_FAIL, TRUE);//<2F><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
|
|||
|
upload_frame_data_step = UPLOAD_FRAME_ONLINE_FAIL;
|
|||
|
time_upload_state = TIME_UPLOAD_S3;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
case(TIME_UPLOAD_S20)://<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
if (ConncetIfOnline(MAIN_CONNECT_TYPE)) //<2F><><EFBFBD>߳ɹ<DFB3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>IMEI,ICCID<49><44>ECL<43><4C>SNR<4E><52>RSRP<52>Ȳ<EFBFBD><C8B2><EFBFBD>
|
|||
|
{
|
|||
|
if(PSM_STATE_WAKE == getPsmState())//<2F><><EFBFBD>ѳɹ<D1B3>
|
|||
|
{
|
|||
|
upload_frame_data_step = UPLOAD_FRAME_REQUEST_NEW;
|
|||
|
time_upload_state = TIME_UPLOAD_S3;
|
|||
|
}
|
|||
|
else if(getUploadControlPara(UP_ONLY_REV)==TRUE)
|
|||
|
{
|
|||
|
setUploadControlPara(UP_ONLY_REV, FALSE);
|
|||
|
Set100msTimer(TIMER_100MS_NBIOT_20, getUploadControlPara(UP_DELAY_TIME1));
|
|||
|
time_upload_state = TIME_UPLOAD_S7;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
upload_frame_data_step = UPLOAD_FRAME_REQUEST_NEW;
|
|||
|
time_upload_state = TIME_UPLOAD_S3;
|
|||
|
}
|
|||
|
}
|
|||
|
else if((upload_send_state == NBIOT_ERROR)||(0 == Check100msTimer(TIMER_100MS_ERROR_UPLOAD)))//<2F><>¼<EFBFBD><C2BC>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>ʧ<EFBFBD><CAA7>
|
|||
|
{
|
|||
|
upload_frame_data_step = UPLOAD_FRAME_ONLINE_FAIL;
|
|||
|
time_upload_state = TIME_UPLOAD_S3;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case(TIME_UPLOAD_S3): //<2F>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡״̬<D7B4><CCAC>λ
|
|||
|
{
|
|||
|
GetUploadDataResetState();
|
|||
|
time_upload_state = TIME_UPLOAD_S4;
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case(TIME_UPLOAD_S4): //<2F><><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
GetUploadDataMachine(upload_frame_data_step, upload_send_buf, &upload_send_len);
|
|||
|
if(GetUploadDataCheckIdle() == TASK_IDLE)
|
|||
|
{
|
|||
|
if(GetUploadDataCheckTask() == PTL_PACK_SUCCESS)
|
|||
|
{
|
|||
|
time_upload_state = TIME_UPLOAD_S5;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
Set100msTimer(TIMER_100MS_NBIOT_20, getUploadControlPara(UP_DELAY_TIME1));
|
|||
|
time_upload_state = TIME_UPLOAD_S7;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case(TIME_UPLOAD_S5): //<2F>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD>ݷ<EFBFBD><DDB7><EFBFBD>
|
|||
|
{
|
|||
|
if (TASK_IDLE == NbiotIfIdle())
|
|||
|
{
|
|||
|
NbiotSendTask(upload_send_buf, upload_send_len, MAIN_SEND_TYPE, &upload_send_state);
|
|||
|
Set100msTimer(TIMER_100MS_NBIOT_20, COAP_UPLOAD_WAIT_ACK_TIME);//<2F>ȴ<EFBFBD>Ӧ<EFBFBD><D3A6>
|
|||
|
time_upload_state = TIME_UPLOAD_S6;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case(TIME_UPLOAD_S6): //<2F>ȴ<EFBFBD><C8B4>ϱ<EFBFBD>Ӧ<EFBFBD><D3A6>
|
|||
|
{
|
|||
|
if((FrameCheckMsgApp(MsgNbUplaod_AckOk) == 1)||(Check100msTimer(TIMER_100MS_NBIOT_20) == 0))//<2F>յ<EFBFBD><D5B5>ϴ<EFBFBD>Ӧ<EFBFBD><D3A6>֡<EFBFBD><D6A1><EFBFBD>ȴ<EFBFBD>Ӧ<EFBFBD><D3A6>ʱ<EFBFBD>䵽,<2C><>Ϊ<EFBFBD>ϱ<EFBFBD><CFB1>ɹ<EFBFBD>
|
|||
|
{
|
|||
|
FrameClearMsgApp(MsgNbUplaod_AckOk);//<2F><><EFBFBD><EFBFBD>Ϣ
|
|||
|
s_upload_ack_fail_times = 0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>0
|
|||
|
upload_frame_data_step = UPLOAD_FRAME_UPLOAD_OK;
|
|||
|
Sys_data_object.P3.ProductUpoadFailFlag = 0;
|
|||
|
time_upload_state = TIME_UPLOAD_S4;
|
|||
|
}
|
|||
|
else if(upload_send_state == NBIOT_ERROR)//<2F><><EFBFBD>ݷ<EFBFBD><DDB7><EFBFBD>ʧ<EFBFBD><CAA7>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD>
|
|||
|
{
|
|||
|
upload_frame_data_step = UPLOAD_FRAME_UPLOAD_RETRY;
|
|||
|
time_upload_state = TIME_UPLOAD_S4;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case(TIME_UPLOAD_S7)://<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
if(FrameCheckMsgApp(MsgNb_FlagRcvNbFrame))//<2F>Ƿ<EFBFBD><C7B7>յ<EFBFBD>nb<6E><62><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
FrameClearMsgApp(MsgNb_FlagRcvNbFrame);
|
|||
|
Set100msTimer(TIMER_100MS_NBIOT_20, getUploadControlPara(UP_DELAY_TIME1));
|
|||
|
}
|
|||
|
else if (Check100msTimer(TIMER_100MS_NBIOT_20) == 0)//10s<30><73>ʱʱ<CAB1>䵽
|
|||
|
{
|
|||
|
if(TRUE == GetNbiotRevHandleOverFlag()) //<2F><>NB<4E><42><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>
|
|||
|
{
|
|||
|
if(TRUE == GetEventUploadFlag()) //<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
event_upload.upload_cnt++;
|
|||
|
event_upload.upload_cnt %= UPLOAD_EVENT_NUM;
|
|||
|
time_upload_state = TIME_UPLOAD_S20;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if(PSM_STATE_WAKE == getPsmState())//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PSM<53><4D><EFBFBD><EFBFBD>״̬
|
|||
|
{
|
|||
|
if((Sys_data_object.P1.func_cfg_bytes[12]&0x80)&&(Sys_data_object.P1.func_cfg_bytes[12]&0x03)) //PSMģʽ<C4A3>ϱ<EFBFBD><CFB1>ж<EFBFBD>
|
|||
|
{
|
|||
|
time_upload_state = TIME_UPLOAD_PsmSleep;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
time_upload_state = TIME_UPLOAD_UDP_S1;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if((getUploadControlPara(UP_WITH_UDP)==TRUE)&&(getUploadControlPara(UP_CGATT_FAIL)==FALSE))//<2F><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>UDP<44>ϱ<EFBFBD>
|
|||
|
{
|
|||
|
time_upload_state = TIME_UPLOAD_UDP_S1;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
time_upload_state = TIME_UPLOAD_PowerDown;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
//UDP<44>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
case TIME_UPLOAD_UDP_S1:
|
|||
|
{
|
|||
|
if(TRUE == GetNbiotRevHandleOverFlag()) //<2F><>NB<4E><42><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>
|
|||
|
{
|
|||
|
if(NbiotIfIdle())
|
|||
|
{
|
|||
|
upload_frame_data_step=0;
|
|||
|
NB_NetConnectStart(Sys_data_object.P2.server_ip, Sys_data_object.P2.server_port.datas, SLAVE_CONNECT_TYPE);
|
|||
|
Set100msTimer(TIMER_100MS_NBIOT_20, getUploadControlPara(UP_DELAY_TIME1));
|
|||
|
time_upload_state = TIME_UPLOAD_UDP_S2;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case TIME_UPLOAD_UDP_S2://<2F>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡״̬<D7B4><CCAC>λ
|
|||
|
{
|
|||
|
if(ConncetIfOnline(SLAVE_CONNECT_TYPE))
|
|||
|
{
|
|||
|
upload_frame_data_step = UPLOAD_FRAME_REQUEST_NEW;
|
|||
|
time_upload_state = TIME_UPLOAD_UDP_S3;
|
|||
|
}
|
|||
|
else if (Check100msTimer(TIMER_100MS_NBIOT_20) == 0)//5s<35><73>ʱʱ<CAB1>䵽
|
|||
|
{
|
|||
|
upload_frame_data_step = UPLOAD_FRAME_ONLINE_FAIL;
|
|||
|
time_upload_state = TIME_UPLOAD_UDP_S3;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
case(TIME_UPLOAD_UDP_S3): //<2F><><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
GetUploadDataResetState_UDP();
|
|||
|
time_upload_state = TIME_UPLOAD_UDP_S4;
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case(TIME_UPLOAD_UDP_S4): //<2F><><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
GetUploadDataMachine_UDP(upload_frame_data_step, upload_send_buf, &upload_send_len);
|
|||
|
if(GetUploadDataCheckIdle_UDP() == TASK_IDLE)
|
|||
|
{
|
|||
|
if(GetUploadDataCheckTask_UDP() == PTL_PACK_SUCCESS)
|
|||
|
{
|
|||
|
time_upload_state = TIME_UPLOAD_UDP_S5;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
Set100msTimer(TIMER_100MS_NBIOT_20, getUploadControlPara(UP_DELAY_TIME1));
|
|||
|
time_upload_state = TIME_UPLOAD_UDP_S7;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case TIME_UPLOAD_UDP_S5://<2F>ȴ<EFBFBD>UDP<44><50><EFBFBD>ݷ<EFBFBD><DDB7><EFBFBD>
|
|||
|
{
|
|||
|
if (TASK_IDLE == NbiotIfIdle())
|
|||
|
{
|
|||
|
NbiotSendTask(upload_send_buf, upload_send_len, SLAVE_SEND_TYPE, &upload_send_state);
|
|||
|
Set100msTimer(TIMER_100MS_NBIOT_20, UDP_UPLOAD_WAIT_ACK_TIME);//<2F>ȴ<EFBFBD>Ӧ<EFBFBD><D3A6>ʱ<EFBFBD><CAB1>
|
|||
|
time_upload_state = TIME_UPLOAD_UDP_S6;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case(TIME_UPLOAD_UDP_S6): //<2F>ȴ<EFBFBD>UDPӦ<50><D3A6>
|
|||
|
{
|
|||
|
if(FrameCheckMsgApp(MsgNbUplaod_AckOk) == 1)//<2F>յ<EFBFBD><D5B5>ϴ<EFBFBD>Ӧ<EFBFBD><D3A6>֡
|
|||
|
{
|
|||
|
FrameClearMsgApp(MsgNbUplaod_AckOk);//<2F><><EFBFBD><EFBFBD>Ϣ
|
|||
|
upload_frame_data_step = UPLOAD_FRAME_UPLOAD_OK;
|
|||
|
time_upload_state = TIME_UPLOAD_UDP_S4;
|
|||
|
}
|
|||
|
else if (Check100msTimer(TIMER_100MS_NBIOT_20) == 0)//<2F><>ʱ<EFBFBD><CAB1>Ӧ<EFBFBD><D3A6>
|
|||
|
{
|
|||
|
upload_frame_data_step = UPLOAD_FRAME_UPLOAD_RETRY;
|
|||
|
time_upload_state = TIME_UPLOAD_UDP_S4;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case TIME_UPLOAD_UDP_S7:
|
|||
|
{
|
|||
|
if(FrameCheckMsgApp(MsgNb_FlagRcvNbFrame)||(TRUE == UdpIfNeedReadData()))//<2F>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD>5s<35><73><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
{
|
|||
|
FrameClearMsgApp(MsgNb_FlagRcvNbFrame);
|
|||
|
Set100msTimer(TIMER_100MS_NBIOT_20, getUploadControlPara(UP_DELAY_TIME1));
|
|||
|
}
|
|||
|
if(Check100msTimer(TIMER_100MS_NBIOT_20) == 0)
|
|||
|
{
|
|||
|
if(TRUE == GetNbiotRevHandleOverFlag()) //<2F><>NB<4E><42><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>
|
|||
|
{
|
|||
|
time_upload_state = TIME_UPLOAD_PowerDown;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
case TIME_UPLOAD_PsmSleep:
|
|||
|
{
|
|||
|
if(NbiotIfIdle()==TASK_IDLE)
|
|||
|
{
|
|||
|
NbiotPsmSleepTask();
|
|||
|
time_upload_state = TIME_UPLOAD_PsmSleepWait;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
case TIME_UPLOAD_PsmSleepWait:
|
|||
|
{
|
|||
|
if(NbiotIfIdle()==TASK_IDLE)
|
|||
|
{
|
|||
|
if(PSM_STATE_SLEEP == getPsmState())//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PSM<53><4D><EFBFBD>߳ɹ<DFB3>
|
|||
|
{
|
|||
|
Sys_data_object.P3.NBSleepMode = 1;
|
|||
|
UdpEndCheckData();
|
|||
|
ClosePrintNbDataSwitch();
|
|||
|
ClearEventUploadFlag();
|
|||
|
time_upload_state = TIME_UPLOAD_S0;
|
|||
|
main_upload_state = UPLOAD_S0;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
time_upload_state= TIME_UPLOAD_PowerDown;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
//ģ<><C4A3><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
case TIME_UPLOAD_PowerDown:
|
|||
|
{
|
|||
|
if(NbiotIfIdle())
|
|||
|
{
|
|||
|
StartPowerOffTask();
|
|||
|
time_upload_state = TIME_UPLOAD_PowerDownWait;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case TIME_UPLOAD_PowerDownWait:
|
|||
|
{
|
|||
|
if(NbiotIfIdle())
|
|||
|
{
|
|||
|
time_upload_state = TIME_UPLOAD_PowerDownEnd;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case TIME_UPLOAD_PowerDownEnd:
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
if(((FrameCheckParaApp(FramePara_FuncCfg0_3)>>16)&0xFF) == 0xAA)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Կ<EFBFBD><D4BF><EFBFBD>,<2C><><EFBFBD>رպ<D8B1><D5BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
Sys_data_object.P1.func_cfg_bytes[2] = 0;
|
|||
|
s_upload_eep_complete = 0;
|
|||
|
EepWrite(&Sys_data_object.P1.func_cfg_bytes[2], (EEP_FRAME_FUNCCFGBYTES_ADDR+2), 1, &s_upload_eep_complete);
|
|||
|
Frame_Para_Init();
|
|||
|
}
|
|||
|
NbForcePowerOff();//NBǿ<42>ƹػ<C6B9>
|
|||
|
UdpEndCheckData();
|
|||
|
ClosePrintNbDataSwitch();
|
|||
|
ClearEventUploadFlag();
|
|||
|
Sys_data_object.P3.NBSleepMode = 0; //NBģ<42><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>־
|
|||
|
time_upload_state = TIME_UPLOAD_S0;
|
|||
|
main_upload_state = UPLOAD_S0;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
default:
|
|||
|
{
|
|||
|
time_upload_state = TIME_UPLOAD_S0;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
//NB<4E><42>Ծʱ<D4BE>䳬ʱ<E4B3AC><CAB1><EFBFBD><EFBFBD>,<2C><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><>ǿ<EFBFBD>ƹػ<C6B9>
|
|||
|
if(TASK_BUSY == FixedTimeNbIoTUploadIfIdle())
|
|||
|
{
|
|||
|
if(0 == Check100msTimer(TIMER_100MS_WAIT_SLEEP_GPRS))
|
|||
|
{
|
|||
|
time_upload_state = TIME_UPLOAD_PowerDownEnd;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
void FixedTimeNbIoTUpload(void)
|
|||
|
{
|
|||
|
UploadConditionJuge();
|
|||
|
switch(main_upload_state)
|
|||
|
{
|
|||
|
case UPLOAD_S0:
|
|||
|
{
|
|||
|
}
|
|||
|
break;
|
|||
|
case UPLOAD_S1://<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
FixedTimeNbIoTUpload_Ies();
|
|||
|
}
|
|||
|
break;
|
|||
|
case UPLOAD_S2://<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
FixedTimeNbIoTUpload_Other();
|
|||
|
}
|
|||
|
break;
|
|||
|
default:
|
|||
|
{
|
|||
|
main_upload_state = UPLOAD_S0;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
void SystemClearUploadAgain(void)
|
|||
|
{
|
|||
|
upload_again_cnt_copy = 0;
|
|||
|
}
|
|||
|
void SystemAddUploadAgain(void)
|
|||
|
{
|
|||
|
if(UPLOAD_TYPE_FIX_TIME == GetEventUploadType())//<2F><>ʱ<EFBFBD>ϴ<EFBFBD>
|
|||
|
{
|
|||
|
s_upload_ack_fail_times++;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
if(s_upload_ack_fail_times<10)
|
|||
|
{
|
|||
|
upload_again_cnt_copy++;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/*******************************<2A><><EFBFBD>ݴ洢******************************/
|
|||
|
|
|||
|
IES_PULSE_DAY_MAX_FLOW ies_pulse_day_max_flow;
|
|||
|
static void SysCheckFlowMinMax(DateTime alarm_time)
|
|||
|
{
|
|||
|
static u16 pulse_day_max_flow_time_temp;
|
|||
|
static u32 old_total_speed = 0;
|
|||
|
static u32 new_total_speed = 0;
|
|||
|
static u8 date_flag = 0;
|
|||
|
RTCC_To_Float temp_to_gloat;//<2F><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>ר<EFBFBD><D7A8>
|
|||
|
if((0 == alarm_time.s.hour) && (0 == alarm_time.s.minute)) //ÿ<><C3BF>0<EFBFBD><30>ˢ<EFBFBD><CBA2><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
old_total_speed = 0;
|
|||
|
pulse_day_max_flow_time_temp =0;
|
|||
|
date_flag = 0;
|
|||
|
RtccGetDateTime(&alarm_time);
|
|||
|
ies_pulse_day_max_flow.pulse_flow_time[0] = alarm_time.s.second;
|
|||
|
ies_pulse_day_max_flow.pulse_flow_time[1] = alarm_time.s.minute;
|
|||
|
ies_pulse_day_max_flow.pulse_flow_time[2] = alarm_time.s.hour;
|
|||
|
ies_pulse_day_max_flow.pulse_flow_time[3] = alarm_time.s.weekday;
|
|||
|
ies_pulse_day_max_flow.pulse_flow_time[4] = alarm_time.s.day;
|
|||
|
ies_pulse_day_max_flow.pulse_flow_time[5] = alarm_time.s.month;
|
|||
|
ies_pulse_day_max_flow.pulse_flow_time[6] = alarm_time.s.year;
|
|||
|
ies_pulse_day_max_flow.pulse_flow_time[7] = 0x20;
|
|||
|
}
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
new_total_speed = Gp30CheckDataApp(GP30_APP_INS_FLOW);
|
|||
|
if((0.9*old_total_speed) < new_total_speed < (1.1*old_total_speed))
|
|||
|
{
|
|||
|
pulse_day_max_flow_time_temp++;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
ies_pulse_day_max_flow.pulse_continue_time.to_uint16 = pulse_day_max_flow_time_temp*60;
|
|||
|
|
|||
|
temp_to_gloat.gp22_float = new_total_speed; //˲ʱ<CBB2><CAB1><EFBFBD><EFBFBD> ˲ʱ<CBB2><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λΪ0.01L/H<><48>4<EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
ies_pulse_day_max_flow.pulse_max_flow.to_uint32 = (u32)(temp_to_gloat.gp22_float / (float)65536.00)/60; //ƽ̨ת<CCA8><D7AA><EFBFBD><EFBFBD>ÿСʱ<D0A1><CAB1>ˮ<EFBFBD><CBAE>
|
|||
|
//<2F>жϿ<D0B6>ʼʱ<CABC><CAB1><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if(date_flag==1)
|
|||
|
{
|
|||
|
date_flag = 0;
|
|||
|
RtccGetDateTime(&alarm_time);
|
|||
|
ies_pulse_day_max_flow.pulse_flow_time[0] = alarm_time.s.second;
|
|||
|
ies_pulse_day_max_flow.pulse_flow_time[1] = alarm_time.s.minute;
|
|||
|
ies_pulse_day_max_flow.pulse_flow_time[2] = alarm_time.s.hour;
|
|||
|
ies_pulse_day_max_flow.pulse_flow_time[3] = alarm_time.s.weekday;
|
|||
|
ies_pulse_day_max_flow.pulse_flow_time[4] = alarm_time.s.day;
|
|||
|
ies_pulse_day_max_flow.pulse_flow_time[5] = alarm_time.s.month;
|
|||
|
ies_pulse_day_max_flow.pulse_flow_time[6] = alarm_time.s.year;
|
|||
|
ies_pulse_day_max_flow.pulse_flow_time[7] = 0x20;
|
|||
|
}
|
|||
|
}
|
|||
|
else if(new_total_speed <= (0.9*old_total_speed))//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
|
|||
|
{
|
|||
|
pulse_day_max_flow_time_temp = 0;
|
|||
|
date_flag = 1;
|
|||
|
}
|
|||
|
else if(new_total_speed >= (1.1*old_total_speed))//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
old_total_speed = new_total_speed;
|
|||
|
pulse_day_max_flow_time_temp =0;
|
|||
|
date_flag = 0;
|
|||
|
ies_pulse_day_max_flow.pulse_flow_time[0] = alarm_time.s.second;
|
|||
|
ies_pulse_day_max_flow.pulse_flow_time[1] = alarm_time.s.minute;
|
|||
|
ies_pulse_day_max_flow.pulse_flow_time[2] = alarm_time.s.hour;
|
|||
|
ies_pulse_day_max_flow.pulse_flow_time[3] = alarm_time.s.weekday;
|
|||
|
ies_pulse_day_max_flow.pulse_flow_time[4] = alarm_time.s.day;
|
|||
|
ies_pulse_day_max_flow.pulse_flow_time[5] = alarm_time.s.month;
|
|||
|
ies_pulse_day_max_flow.pulse_flow_time[6] = alarm_time.s.year;
|
|||
|
ies_pulse_day_max_flow.pulse_flow_time[7] = 0x20;
|
|||
|
}
|
|||
|
}
|
|||
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
void RtccCheck_Hight_Flow(u8 **addr)
|
|||
|
{
|
|||
|
*addr = ies_pulse_day_max_flow.byte;
|
|||
|
}
|
|||
|
|
|||
|
void SaveFreezeData(void)
|
|||
|
{
|
|||
|
switch(save_freeze_sate)
|
|||
|
{
|
|||
|
case SAVE_FREEZE_S0:
|
|||
|
{
|
|||
|
if(data_save_judge_flag)
|
|||
|
{
|
|||
|
data_save_judge_flag = FALSE;
|
|||
|
RtccGetDateTime(&sys_rtcc_time);
|
|||
|
sys_temp_min_hex = (sys_rtcc_time.s.minute >> 4)*10 + (sys_rtcc_time.s.minute & 0x0F);
|
|||
|
if(0 ==(sys_temp_min_hex % 5))//5<><35><EFBFBD>Ӽ<EFBFBD><D3BC><EFBFBD>
|
|||
|
{
|
|||
|
RtccAppCheckMiJi(sys_rtcc_time);
|
|||
|
}
|
|||
|
if(0 == sys_rtcc_time.s.minute) //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
{
|
|||
|
save_freeze_sate = SAVE_FREEZE_S1;
|
|||
|
}
|
|||
|
SysCheckFlowMinMax(sys_rtcc_time);
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
case SAVE_FREEZE_S1:
|
|||
|
{
|
|||
|
if (EepIfIdle())
|
|||
|
{
|
|||
|
Sys_data_object.ee_data.data.work_hour++;//<2F>ۼƹ<DBBC><C6B9><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
EepWrite(Sys_data_object.ee_data.byte, EE_FIRST_USE_ADDR, sizeof (RTCC_EE_DATA), &s_upload_eep_complete);
|
|||
|
save_freeze_sate = SAVE_FREEZE_S2;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
case SAVE_FREEZE_S2://<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ж<EFBFBD>
|
|||
|
{
|
|||
|
if(0 == sys_rtcc_time.s.hour) //ÿ<><C3BF>0<EFBFBD><30>
|
|||
|
{
|
|||
|
if (EepIfIdle())
|
|||
|
{
|
|||
|
if(Sys_data_object.P1.func_cfg_bytes[0] > 0)//<2F><><EFBFBD><EFBFBD>15<31><35>ʱ<EFBFBD>仹û<E4BBB9>е<EFBFBD>
|
|||
|
{
|
|||
|
Sys_data_object.P1.func_cfg_bytes[0]--;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
|
|||
|
EepWrite(&Sys_data_object.P1.func_cfg_bytes[0],ee_addr_compute((u8*)(&Sys_data_object.P1.func_cfg_bytes[0])),1,&s_upload_eep_complete);
|
|||
|
}
|
|||
|
save_freeze_sate = SAVE_FREEZE_S3;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
save_freeze_sate = SAVE_FREEZE_S0;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
case SAVE_FREEZE_S3://Сʱģʽ0<CABD><30><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>ģʽ
|
|||
|
{
|
|||
|
if (EepIfIdle())
|
|||
|
{
|
|||
|
if(UPLOAD_MODE_HOUR == Sys_data_object.P1.Time_upload_2006.s.type) //Сʱģʽ
|
|||
|
{
|
|||
|
Sys_data_object.P1.Time_upload_2006.s.type = UPLOAD_MODE_DAY;
|
|||
|
Sys_data_object.P1.Time_upload_2006.s.period = 0x00; //0x00,//report_freq_val[1]---<2D><>ģʽ<C4A3><CABD>Ч
|
|||
|
Sys_data_object.P1.Time_upload_2006.s.hour = 0x06; //0x06,//report_freq_val[2]---6<><36>
|
|||
|
Sys_data_object.P1.Time_upload_2006.s.minute = 0x00; //0x00,//report_freq_val[3]---0<><30>
|
|||
|
Sys_data_object.P1.Time_upload_2006.s.second = 0x00; //0x00,//report_freq_val[4]---0<><30>
|
|||
|
EepWrite(&Sys_data_object.P1.Time_upload_2006.buf[0], FRAME_NBIot_FREQVAL, 5, &s_upload_eep_complete);
|
|||
|
}
|
|||
|
save_freeze_sate = SAVE_FREEZE_S7;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
case SAVE_FREEZE_S7:
|
|||
|
{
|
|||
|
if (EepIfIdle())
|
|||
|
{
|
|||
|
save_freeze_sate = SAVE_FREEZE_S0;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
default:
|
|||
|
{
|
|||
|
save_freeze_sate = SAVE_FREEZE_S0;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
u8 GetMcuResetSouce(void)
|
|||
|
{
|
|||
|
u8 reset_souce;
|
|||
|
reset_souce = Reset_GetFlag(ResetFlagMskRstb);//RESET<45>Ÿ<EFBFBD>λ
|
|||
|
reset_souce <<= 1;
|
|||
|
reset_souce |= Reset_GetFlag(ResetFlagMskSysreq);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
|
|||
|
reset_souce <<= 1;
|
|||
|
reset_souce |= Reset_GetFlag(ResetFlagMskLockup);//ϵͳ<CFB5>쳣<EFBFBD><ECB3A3>λ
|
|||
|
reset_souce <<= 1;
|
|||
|
reset_souce |= Reset_GetFlag(ResetFlagMskPca);//PCA<43><41>λ
|
|||
|
reset_souce <<= 1;
|
|||
|
reset_souce |= Reset_GetFlag(ResetFlagMskWdt);//<2F><><EFBFBD>Ź<EFBFBD><C5B9><EFBFBD>λ
|
|||
|
reset_souce <<= 1;
|
|||
|
reset_souce |= Reset_GetFlag(ResetFlagMskLvd);//<2F>͵<EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD>⸴λ
|
|||
|
reset_souce <<= 1;
|
|||
|
reset_souce |= Reset_GetFlag(ResetFlagMskPor1_5V);//1.5V<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
|
|||
|
reset_souce <<= 1;
|
|||
|
reset_souce |= Reset_GetFlag(ResetFlagMskPor5V);//5V<35><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
|
|||
|
reset_souce <<= 1;
|
|||
|
|
|||
|
return reset_souce;
|
|||
|
}
|
|||
|
/*******************************************************************************
|
|||
|
* @fun_name: FrameGsmMsgManage
|
|||
|
* @brief : <EFBFBD>ϴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ洢
|
|||
|
* @param[in] : None
|
|||
|
* @param[out]: None
|
|||
|
* @retval : None
|
|||
|
* @other :
|
|||
|
******************************************************************************/
|
|||
|
void SystemProcessor(void)
|
|||
|
{
|
|||
|
MinuteEventScan();
|
|||
|
SysDealAppMachine();
|
|||
|
SaveFreezeData();
|
|||
|
FixedTimeNbIoTUpload();
|
|||
|
DataStoreMachine();
|
|||
|
}
|
|||
|
|
|||
|
void SystemProcessorInit(void)
|
|||
|
{
|
|||
|
upload_delay_flag = 0;
|
|||
|
upload_send_state=0;
|
|||
|
if(upload_again_cnt_copy >3)
|
|||
|
{
|
|||
|
upload_again_cnt_copy = 0;
|
|||
|
}
|
|||
|
SaveNewSoe(SOE_SY_SYS_RESET, GetMcuResetSouce());//ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼
|
|||
|
if(Reset_GetFlag(ResetFlagMskWdt))//<2F><><EFBFBD>Ź<EFBFBD><C5B9><EFBFBD>λ
|
|||
|
{
|
|||
|
FrameSetMsgApp(Msg_WdtReset); //<2F><><EFBFBD>ڸ<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
if(Reset_GetFlag(ResetFlagMskPor5V))//Ƿѹ<C7B7><D1B9>Ӳ<EFBFBD><D3B2>λ
|
|||
|
{
|
|||
|
FrameSetMsgApp(Msg_Por5VReset); //GP30<33><30>λ
|
|||
|
}
|
|||
|
|
|||
|
Reset_ClearFlagAll();//<2F>帴λ<E5B8B4><CEBB>ʶ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
|
|||
|
DataStoreInit();
|
|||
|
NbUploadParaSet();
|
|||
|
//KeySetLcdMsgApp(MENU_ACTIVE_RF);//<2F><><EFBFBD>߲<EFBFBD><DFB2>ԣ<EFBFBD><D4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>
|
|||
|
}
|
|||
|
|
|||
|
u8 SystemProcessorIfSleep(void)
|
|||
|
{
|
|||
|
if((FixedTimeNbIoTUploadIfIdle() == TASK_IDLE) && (DataStoreIfIdle() == TRUE))
|
|||
|
{
|
|||
|
return TRUE;
|
|||
|
}
|
|||
|
return FALSE;
|
|||
|
}
|
|||
|
#endif
|
|||
|
|