P8UWaterPlasticIES4G/app/sys_processor_ble.h

123 lines
3.4 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef _SYS_PROCESSOR_BLE_H_
#define _SYS_PROCESSOR_BLE_H_
#include "sys_config.h"
#if UPLOAD_MODE_2
#include "type.h"
#include "UWater_rtcc_driver.h"
#pragma pack(1) //1字节对齐
typedef struct
{
u8 retry_num; //重发次数
u8 Step_send_report;//add by wm 2017.07.19 上报步骤 1是周期上报 2是密集上报 3是补包
u8 Flag_Send_DATA;//add by wm 2017.07.19 发送指令标志 1是发送开始
u8 Supplemental_send_NO;//补包查询过程变量表示当前正在补哪一条记录在补包上送成功后要清除该记录bit
u8 Save_histroy_FLAG;
u8 Save_histroy_step;
u8 Read_histroy_FLAG;
}FRAME_SEND_CONTROL;
typedef enum
{
NB_HistroyReadIndex = 0, //历史数据的读指针
NB_UploadFailTimes = 1,//失败次数
NB_SendData_Msg = 2,//NB需要发送数据消息
NB_SS_FormatError = 3, //数据格式错误
} NB_SS_ControlParaTypeDef;
//日最高流量和持续时间
typedef union{
struct{
mtype32_ pulse_max_flow; //持续流量
mtype16_ pulse_continue_time; //持续时间
u8 pulse_flow_time[8]; //产生时间
};
u8 byte[14];
}IES_PULSE_DAY_MAX_FLOW; //日最高流量
///**********************************************************上报类型定义**************************/
#define UPLOAD_TYPE_FIX_TIME 0 //0自动定时
#define UPLOAD_TYPE_HAND_KEY 1 //1手动按键
#define UPLOAD_TYPE_FRAME_ORDER 2 //2: 规约命令发起上传
#define UPLOAD_TYPE_RETRY_AGAIN 3 //3: 重新上传
#define UPLOAD_TYPE_VALVE_CLOSE 4 //4: 阀门关闭上传
#define UPLOAD_TYPE_VALVE_ACTIVE 5 //5: 阀门动作上传
#define UPLOAD_TYPE_SET_IP 6 //6: 设置IP上传
#define UPLOAD_TYPE_TOUCH_KEY 7 //7: 触摸按键上传
#define UPLOAD_TYPE_WARNING 8 //8: 及时报警上传
#define UPLOAD_TYPE_OTHER 255 //255其他
#define UPLOAD_EVENT_NUM 10 //同时支持10个上报事件
#define VALVE_CLOSE_UPLOAD_MAX 250 //关阀后最大上报次数
#define VALVE_CLOSE_UPLOAD_MIN 48 //关阀后最小上报次数
typedef struct {
u8 upload_type[UPLOAD_EVENT_NUM];
u8 event_cnt;
u8 upload_cnt;
} EVENT_UPLOAD_; //事件
///**********************************************************重试间隔定义**************************/
#define JIANGE_20_MIN 1 //采用间隔20min
///**********************************************************数据上报状态机************************/
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;
typedef enum{
UPLOAD_S0 = 0,
UPLOAD_S1,
UPLOAD_S2
}TYP_MAIN_STATE_UPLOAD;
//存冻结数据状态机状态
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
};
/**************************************根据不同规约组上报帧**************************/
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 SystemProcessor(void);
void SystemProcessorInit(void);
u8 SystemProcessorIfSleep(void);
u8 FixedTimeNbIoTUploadIfIdle(void);
void RtccCheck_Hight_Flow(u8 **addr);
void SysDealAppPreSleep(void);
u8 BleConnectIfIdle(void);
#endif
#endif