P2UWaterJiangXi/app/sys_processor.h

268 lines
9.0 KiB
C
Raw Normal View History

2024-06-03 15:49:39 +08:00
#ifndef _SYS_PROCESSOR_H_
#define _SYS_PROCESSOR_H_
#include "sys_config.h"
#if UPLOAD_MODE_1
#include "type.h"
#include "UWater_rtcc_driver.h"
#pragma pack(1) //1<>ֽڶ<D6BD><DAB6><EFBFBD>
typedef struct
{
u8 retry_num; //<2F>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD>
u8 Step_send_report;//add by wm 2017.07.19 <20>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD> 2<><32><EFBFBD>ܼ<EFBFBD><DCBC>ϱ<EFBFBD> 3<>Dz<EFBFBD><C7B2><EFBFBD>
u8 Flag_Send_DATA;//add by wm 2017.07.19 <20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>־ 1<>Ƿ<EFBFBD><C7B7>Ϳ<EFBFBD>ʼ
u8 Supplemental_send_NO;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD>̱<EFBFBD><CCB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>ǰ<EFBFBD><C7B0><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͳɹ<CDB3><C9B9><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD>¼bit
u8 Save_histroy_FLAG;
u8 Save_histroy_step;
u8 Read_histroy_FLAG;
}FRAME_SEND_CONTROL;
typedef enum
{
NB_HistroyReadIndex = 0, //<2F><>ʷ<EFBFBD><CAB7><EFBFBD>ݵĶ<DDB5>ָ<EFBFBD><D6B8>
NB_UploadFailTimes = 1,//ʧ<>ܴ<EFBFBD><DCB4><EFBFBD>
NB_SendData_Msg = 2,//NB<4E><42>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
NB_SS_FormatError = 3, //<2F><><EFBFBD>ݸ<EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
} NB_SS_ControlParaTypeDef;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD>ʱ<EFBFBD><CAB1>
typedef union{
struct{
mtype32_ pulse_max_flow; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mtype16_ pulse_continue_time; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
u8 pulse_flow_time[8]; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
};
u8 byte[14];
}IES_PULSE_DAY_MAX_FLOW; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
///**********************************************************<2A><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>ģʽ<C4A3>ж<EFBFBD>**********************/
#define UPLOAD_MODE_HOUR 1 //Сʱ<D0A1>ϱ<EFBFBD>ģʽ
#define UPLOAD_MODE_DAY 2 //<2F><><EFBFBD>ϱ<EFBFBD>ģʽ
#define UPLOAD_MODE_WEEK 3 //<2F><><EFBFBD>ϱ<EFBFBD>ģʽ
#define UPLOAD_MODE_MONTH 4 //<2F><><EFBFBD>ϱ<EFBFBD>ģʽ
///**********************************************************<2A>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>**************************/
#define UPLOAD_TYPE_FIX_TIME 0 //0<><30><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD>ʱ
#define UPLOAD_TYPE_HAND_KEY 1 //1<><31><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD>
#define UPLOAD_TYPE_FRAME_ORDER 2 //2: <20><>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EEB7A2><EFBFBD>ϴ<EFBFBD>
#define UPLOAD_TYPE_RETRY_AGAIN 3 //3: <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>
#define UPLOAD_TYPE_VALVE_CLOSE 4 //4: <20><><EFBFBD>Źر<C5B9><D8B1>ϴ<EFBFBD>
#define UPLOAD_TYPE_VALVE_ACTIVE 5 //5: <20><><EFBFBD>Ŷ<EFBFBD><C5B6><EFBFBD><EFBFBD>ϴ<EFBFBD>
#define UPLOAD_TYPE_SET_IP 6 //6: <20><><EFBFBD><EFBFBD>IP<49>ϴ<EFBFBD>
#define UPLOAD_TYPE_TOUCH_KEY 7 //7: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>
#define UPLOAD_TYPE_WARNING 8 //8: <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>
#define UPLOAD_TYPE_FACTORY 9 //9: <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>
#define UPLOAD_TYPE_OTHER 255 //255<35><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define UPLOAD_EVENT_NUM 10 //ͬʱ֧<CAB1><D6A7>10<31><30><EFBFBD>ϱ<EFBFBD><CFB1>¼<EFBFBD>
#define VALVE_CLOSE_UPLOAD_MAX 250 //<2F>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>
#define VALVE_CLOSE_UPLOAD_MIN 48 //<2F>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>
typedef struct {
u8 upload_type[UPLOAD_EVENT_NUM];
u8 event_cnt;
u8 upload_cnt;
} EVENT_UPLOAD_; //<2F>¼<EFBFBD>
///**********************************************************<2A><><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**************************/
#define JIANGE_20_MIN 1 //<2F><><EFBFBD>ü<EFBFBD><C3BC><EFBFBD>20min
///**********************************************************<2A><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>״̬<D7B4><CCAC>************************/
typedef enum{
SS_STATE_S0 = 0,
SS_STATE_S1,
SS_STATE_S2,
SS_STATE_S3,
SS_STATE_S4,
SS_STATE_S5,
SS_STATE_S6,
SS_STATE_S7,
SS_STATE_S8,
SS_STATE_S9,
SS_STATE_S10,
SS_STATE_S11,
SS_STATE_S20,
SS_STATE_S21,
SS_STATE_S22,
SS_STATE_S23,
SS_STATE_S30,
SS_STATE_S31,
SS_STATE_S40,
SS_STATE_WAIT
}TYP_STATE_SS;
#define UPLOAD_BUF_SIZE UP_BUF_SIZE //<2F><><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Сһ<D0A1><D2BB>
//<2F>ȴ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define NB_LAUNCH_TIME 3000 //NB<4E><42>¼ʱ<C2BC><CAB1>-----300<30><30>
#define NB_TOTAL_WORK_TIME 3600 //NB<4E><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>---360<36><30>
#define NB_WAIT_5S 50
#define NB_WAIT_10S 100
//<2F>ϱ<EFBFBD>״̬<D7B4><CCAC>״̬
typedef enum{
TIME_UPLOAD_S0 = 0,
TIME_UPLOAD_S1,
TIME_UPLOAD_S10,
TIME_UPLOAD_S11,
TIME_UPLOAD_S2,
TIME_UPLOAD_S20,
TIME_UPLOAD_S3,
TIME_UPLOAD_S4,
TIME_UPLOAD_S5,
TIME_UPLOAD_S6,
TIME_UPLOAD_S7,
TIME_UPLOAD_S8,
TIME_UPLOAD_S9,
TIME_UPLOAD_UDP_S1,
TIME_UPLOAD_UDP_S2,
TIME_UPLOAD_UDP_S3,
TIME_UPLOAD_UDP_S4,
TIME_UPLOAD_UDP_S5,
TIME_UPLOAD_UDP_S6,
TIME_UPLOAD_UDP_S7,
// TIME_UPLOAD_PRO_S4,
// TIME_UPLOAD_PRO_S5,
// TIME_UPLOAD_PRO_S6,
// TIME_UPLOAD_PRO_S7,
TIME_UPLOAD_PsmSleep,
TIME_UPLOAD_PsmSleepWait,
TIME_UPLOAD_PowerDown,
TIME_UPLOAD_PowerDownWait,
TIME_UPLOAD_PowerDownEnd,
TIME_UPLOAD_END
}TYP_STATE_UPLOAD;
typedef enum{
UPLOAD_S0 = 0,
UPLOAD_S1,
UPLOAD_S2
}TYP_MAIN_STATE_UPLOAD;
//<2F><EFBFBD><E6B6B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>״̬
enum{
SAVE_FREEZE_S0 = 0,
SAVE_FREEZE_S1,
SAVE_FREEZE_S2,
SAVE_FREEZE_S3,
SAVE_FREEZE_S4,
SAVE_FREEZE_S5,
SAVE_FREEZE_S6,
SAVE_FREEZE_S7
};
/**************************************<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ洢״̬<D7B4><CCAC>****************************/
#define UPLOAD_DATA_IDLE 0
#define UPLOAD_DATA_READ_HIS 1
#define UPLOAD_DATA_STEP_FLOW 2
#define UPLOAD_DATA_RENEW_CURRENT 3
#define UPLOAD_DATA_SAVE_DATA 4
#define UPLOAD_DATA_SAVE_INDEX 5
#define UPLOAD_DATA_SAVE_BUBAOFLAG 6
#define UPLOAD_DATA_CLOSE_DEBUG 7
#define UPLOAD_DATA_EEP_WAIT 8
/**************************************<2A><><EFBFBD>ݲ<EFBFBD>ͬ<EFBFBD><CDAC>Լ<EFBFBD><D4BC><EFBFBD>ϱ<EFBFBD>֡**************************/
#if PRODUCT_SS
//<2F><><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>
#define GetUploadDataMachine GetUploadDataMachine_SS
#define GetUploadDataResetState GetUploadDataResetState_SS
#define GetUploadDataCheckIdle GetUploadDataCheckIdle_SS
#define GetUploadDataCheckTask GetUploadDataCheckTask_SS
//<2F><><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>
#define GetUploadDataMachine_UDP GetUploadDataMachine_IesUDP
#define GetUploadDataResetState_UDP GetUploadDataResetState_IesUDP
#define GetUploadDataCheckIdle_UDP GetUploadDataCheckIdle_IesUDP
#define GetUploadDataCheckTask_UDP GetUploadDataCheckTask_IesUDP
#elif PRODUCT_JS
#define GetUploadDataMachine GetUploadDataMachine_JX
#define GetUploadDataResetState GetUploadDataResetState_JX
#define GetUploadDataCheckIdle GetUploadDataCheckIdle_JX
#define GetUploadDataCheckTask GetUploadDataCheckTask_JX
#define GetUploadDataMachine_UDP GetUploadDataMachine_IesUDP
#define GetUploadDataResetState_UDP GetUploadDataResetState_IesUDP
#define GetUploadDataCheckIdle_UDP GetUploadDataCheckIdle_IesUDP
#define GetUploadDataCheckTask_UDP GetUploadDataCheckTask_IesUDP
#elif PRODUCT_SY
#define GetUploadDataMachine GetUploadDataMachine_ShenYangUDP
#define GetUploadDataResetState GetUploadDataResetState_ShenYangUDP
#define GetUploadDataCheckIdle GetUploadDataCheckIdle_ShenYangUDP
#define GetUploadDataCheckTask GetUploadDataCheckTask_ShenYangUDP
#define GetUploadDataMachine_UDP GetUploadDataMachine_IesUDP
#define GetUploadDataResetState_UDP GetUploadDataResetState_IesUDP
#define GetUploadDataCheckIdle_UDP GetUploadDataCheckIdle_IesUDP
#define GetUploadDataCheckTask_UDP GetUploadDataCheckTask_IesUDP
#elif PRODUCT_SHTCP
#define GetUploadDataMachine GetUploadDataMachine_SH
#define GetUploadDataResetState GetUploadDataResetState_SH
#define GetUploadDataCheckIdle GetUploadDataCheckIdle_SH
#define GetUploadDataCheckTask GetUploadDataCheckTask_SH
#define GetUploadDataMachine_UDP GetUploadDataMachine_IesUDP
#define GetUploadDataResetState_UDP GetUploadDataResetState_IesUDP
#define GetUploadDataCheckIdle_UDP GetUploadDataCheckIdle_IesUDP
#define GetUploadDataCheckTask_UDP GetUploadDataCheckTask_IesUDP
#elif PRODUCT_WHYW
#define GetUploadDataMachine GetUploadDataMachine_WHYW
#define GetUploadDataResetState GetUploadDataResetState_WHYW
#define GetUploadDataCheckIdle GetUploadDataCheckIdle_WHYW
#define GetUploadDataCheckTask GetUploadDataCheckTask_WHYW
#define GetUploadDataMachine_UDP GetUploadDataMachine_IesUDP
#define GetUploadDataResetState_UDP GetUploadDataResetState_IesUDP
#define GetUploadDataCheckIdle_UDP GetUploadDataCheckIdle_IesUDP
#define GetUploadDataCheckTask_UDP GetUploadDataCheckTask_IesUDP
#elif PRODUCT_GS
#define GetUploadDataMachine GetUploadDataMachine_GS
#define GetUploadDataResetState GetUploadDataResetState_GS
#define GetUploadDataCheckIdle GetUploadDataCheckIdle_GS
#define GetUploadDataCheckTask GetUploadDataCheckTask_GS
#define GetUploadDataMachine_UDP GetUploadDataMachine_IesUDP
#define GetUploadDataResetState_UDP GetUploadDataResetState_IesUDP
#define GetUploadDataCheckIdle_UDP GetUploadDataCheckIdle_IesUDP
#define GetUploadDataCheckTask_UDP GetUploadDataCheckTask_IesUDP
#endif
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD>ϱ<EFBFBD>֡
#define GetUploadDataMachineProduction GetUploadDataMachine_Product
#define GetUploadDataResetStateProduction GetUploadDataResetState_Product
#define GetUploadDataCheckIdleProduction GetUploadDataCheckIdle_Product
#define GetUploadDataCheckTaskProduction GetUploadDataCheckTask_Product
/**************************************<2A>ϱ<EFBFBD>֡<EFBFBD><D6A1>֡<EFBFBD><D6A1>־*****************************/
#define UPLOAD_FRAME_REQUEST_NEW 0x01
#define UPLOAD_FRAME_UPLOAD_OK 0x02
#define UPLOAD_FRAME_UPLOAD_RETRY 0x03
#define UPLOAD_FRAME_ONLINE_FAIL 0xF1
u8 NB_SS_Control_GetPara(NB_SS_ControlParaTypeDef paraType);
void NB_SS_Control_SetPara(NB_SS_ControlParaTypeDef paraType, u8 data);
u8 GetEventUploadType(void);
void SystemGetUploadTime(DateTime *pDT);
void SystemClearUploadAgain(void);
void SystemAddUploadAgain(void);
void SystemProcessor(void);
void SystemProcessorInit(void);
u8 SystemProcessorIfSleep(void);
u8 FixedTimeNbIoTUploadIfIdle(void);
void RtccCheck_Hight_Flow(u8 **addr);
void SysDealAppPreSleep(void);
#elif UPLOAD_MODE_2
#include "sys_processor_ble.h"
#endif
#endif