X1UWaterWmbusISK/app/SOE.h

111 lines
2.9 KiB
C
Raw Permalink Normal View History

2024-06-03 15:49:39 +08:00
#ifndef _SOE_H_
#define _SOE_H_
#include "type.h"
#include <time.h>
#include "UWater_rtcc_driver.h"
#pragma pack(1)
#define LENGTH_ONE_SOE 9
#define TOTAL_NUM_SOE 100 //<2F>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>
#define SOE_ALL_TYPE 0xFFFF
#define SOE_REMARK_NOR 0 //SOE<4F><45>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>ͨ
//#define SOE_REMARK_A_PIPE_BAD 1 //SOE<4F><45>ע<EFBFBD><D7A2>
//#define SOE_REMARK_B_PIPE_BAD 2 //SOE<4F><45>ע<EFBFBD><D7A2>
//#define SOE_VALVE_CLOSE 1 //SOE<4F><45>ע<EFBFBD><D7A2><EFBFBD>չ<EFBFBD>
//#define SOE_VALVE_CLOSE_LOCK 2 //SOE<4F><45>ע<EFBFBD><D7A2>Ȩ<EFBFBD><C8A8>
//#define SOE_VALVE_CLOSE_LOCK 2 //SOE<4F><45>ע<EFBFBD><D7A2>Ȩ<EFBFBD><C8A8>
#define SOE_NUM 10 //SOE<4F>¼<EFBFBD>ͬʱ<CDAC><CAB1><EFBFBD>Է<EFBFBD><D4B7><EFBFBD>10<31><30>
#define EEP_ADDR_SOE_BASE EEP_SOE_ADDR //0x1000
#define EEP_ADDR_SOE_WR_POINT (EEP_ADDR_SOE_BASE + TOTAL_NUM_SOE*9)
#define EEP_DATA_LEN_SOE (LENGTH_ONE_SOE*TOTAL_NUM_SOE+1)
#define MAX_NUM_READ_SOE 25 //<2F><><EFBFBD>ζ<EFBFBD>ȡSOE<4F>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
enum SOE_TYPE{
SOE_START_ID0 = 0x0000, //<2F><>ʼ<EFBFBD><CABC>ַ--<2D><>SOE
SOE_VALVE_OPEN, //<2F><>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
SOE_VALVE_OPEN_EMERGENCY, //Ӧ<><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SOE_VALVE_CLOSE, //<2F><>ͨ<EFBFBD>ط<EFBFBD>
SOE_VALVE_CLOSE_EMERGENCY, //Ӧ<><D3A6><EFBFBD>ط<EFBFBD>
SOE_VALVE_CLOSE_LOCK, //Ȩ<>޹ط<DEB9>
SOE_DEVICE_RESTART, //<2F>ն<EFBFBD><D5B6><EFBFBD><EFBFBD><EFBFBD>
SOE_BAT_LOW_LEVEL, //Ƿѹ
SOE_MAGNETIC_ATTACK, //<2F>Ÿ<EFBFBD><C5B8><EFBFBD>
SOE_OVER_FLOW, //<2F><><EFBFBD><EFBFBD>
SOE_BACK_FLOW, //<2F><>ת
SOE_MODEL_ERROE, //<2F><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SOE_TAKE_OFF_METER, //<2F><><EFBFBD><EFBFBD>
SOE_INSERT_SOMETHING, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SOE_SWITCH_INTER_OSCI, //<2F>л<EFBFBD><D0BB>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
SOE_MANUAL_UPLOAD, //<2F>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>
SOE_SET_INIT_VALUE, //<2F><><EFBFBD>õ<EFBFBD><C3B5><EFBFBD>
SOE_17_BLE_ADV_ERR,
SOE_18_BLE_ERR,
SOE_19_BLE_TRIM,
SOE_20_BLE_INIT, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
/*****<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>**********/
//<2F><><EFBFBD><EFBFBD>
SOE_SY_OVER_FLOW = 1001,//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>--
SOE_SY_NO_WATER, //<2F>չܱ<D5B9><DCB1><EFBFBD>--
SOE_SY_REVERSE_FLOW, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>--
SOE_SY_LEAK_FLOW,//©ˮ<C2A9><CBAE><EFBFBD><EFBFBD>--
SOE_SY_LOW_POWER,//<2F>͵<EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD>---
SOE_SY_TEMP_OVER,//<2F>¶ȳ<C2B6><C8B3><EFBFBD>Χ--
SOE_SY_SHELL_OPEN,//<2F>ϸDZ<CFB8><C7B1><EFBFBD><EFBFBD><EFBFBD>
SOE_SY_VALVE_ERR,//<2F><><EFBFBD>Ų<EFBFBD><C5B2><EFBFBD>ʧ<EFBFBD><CAA7>--
SOE_SY_CIRCLE_WRONG,//<2F><>·<EFBFBD><C2B7><EFBFBD><EFBFBD>--
SOE_SY_TEMP_SHORT,//<2F><><EFBFBD><EFBFBD>·--
SOE_SY_TEMP_OPEN,//<2F><><EFBFBD>¿<EFBFBD>·--
//<2F>¼<EFBFBD>
SOE_SY_VALVE_OPEN=1021,//<2F><><EFBFBD><EFBFBD>--
SOE_SY_VALVE_CLOSE,//<2F>ط<EFBFBD>--
SOE_SY_SYS_RESET,//ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>--1023
SOE_SY_FROZEN_CLEAR,//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>----
SOE_SY_CURRENT_CLEAR,//ˮ<><CBAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0----
//<2F>Զ<EFBFBD><D4B6><EFBFBD><E5B1A8><EFBFBD>¼<EFBFBD>
SOE_SY_LOW_AMP = 1101,//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>--
SOE_SY_GP30_COMERR,//GP30ͨ<30>Ź<EFBFBD><C5B9><EFBFBD>--
SOE_SY_TOF_OVER,//TOF<4F><46><EFBFBD><EFBFBD>--
SOE_END_ID0 = 0xFFF0,
//<2F>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD>¼<EFBFBD>
SOE_START_ID1 = 0xFFF8,
SOE_END_ID1,
};
enum{
SAVE_SOE_S0 = 0,
SAVE_SOE_S1,
SAVE_SOE_S2,
SAVE_SOE_S3
};
typedef struct
{
u16 soe_type[SOE_NUM];
DateTime_noweek soe_time[SOE_NUM];
u8 soe_data[SOE_NUM];
u8 soe_cnt;
u8 soe_record_cnt;
} SOE;
typedef struct
{
u16 soe_type;
DateTime_noweek soe_time;
u8 soe_data;
} ONE_SOE;
void SaveNewSoe(u16 soe_type,u8 soe_data);
u8 Check_One_Soe (u16 soe_type,DateTime_noweek *start_time,DateTime_noweek *end_time,ONE_SOE *soe_read);
void SoeInit(void);
void SoeDealApp(void);
u8 SaveSoeToEEIfIdle(void);
//#pragma pack()
#endif