X1UWaterWmbusISK/app/UWater_SY_Store_App.h

371 lines
12 KiB
C
Raw Permalink Normal View History

2024-06-03 15:49:39 +08:00
#ifndef __UWater_SY_STORE_APP_H
#define __UWater_SY_STORE_APP_H
#ifdef __cplusplus
extern "C" {
#endif
/* Includes ------------------------------------------------------------------*/
#include "sys_config.h"
#if PRODUCT_SY
#include "UWater_frame_app.h"
#include "UWater_Rtcc_driver.h"
#define STORE_SIZE_DATA_CIRCLE 16 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define STORE_SIZE_DATA_FROZEN 32 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define EEP_DATA_LEN_CIRCLE (STORE_SIZE_DATA_CIRCLE*24*6)//2352//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ洢<DDB4><E6B4A2>ָ<EFBFBD><EFBFBD><EBB3A4>
#define EEP_ADDR_SY_STORE_CIRCLE FRAME_SHENYANG_STORE_ADD //0x7300~0x7C00 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>16*24*6=2304=0x900
#define EEP_ADDR_SY_STORE_INDEX_CIRCLE (EEP_ADDR_SY_STORE_CIRCLE + STORE_SIZE_DATA_CIRCLE*24*6) //<2F><><EFBFBD>ݴ洢ָ<E6B4A2><D6B8>_<EFBFBD><5F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_48BYTE
#define EEP_ADDR_SY_STORE_INDEX_DAILY (EEP_ADDR_SY_STORE_INDEX_CIRCLE + 66)////<2F><><EFBFBD>ݴ洢ָ<E6B4A2><D6B8>_<EFBFBD>ն<EFBFBD><D5B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_1BYTE
#define EEP_ADDR_SY_STORE_INDEX_MONTH (EEP_ADDR_SY_STORE_INDEX_DAILY + 1)////<2F><><EFBFBD>ݴ洢ָ<E6B4A2><D6B8>_<EFBFBD><EFBFBD><C2B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_1BYTE
#define EEP_ADDR_SY_STORE_INDEX_YEAR (EEP_ADDR_SY_STORE_INDEX_MONTH + 1)////<2F><><EFBFBD>ݴ洢ָ<E6B4A2><D6B8>_<EFBFBD><EFBFBD><EAB6B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_1BYTE
#define EEP_ADDR_SY_FIRST_PWON (EEP_ADDR_SY_STORE_INDEX_YEAR + 1)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B4A2>ַ
#define EEP_ADDR_SY_TLVDATA (EEP_ADDR_SY_FIRST_PWON+1) //104<30>ֽ<EFBFBD>
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#define EEP_DATA_LEN_FROZEN (STORE_SIZE_DATA_FROZEN*31)//995//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ洢<DDB4><E6B4A2>ָ<EFBFBD><EFBFBD><EBB3A4>
#define EEP_ADDR_SY_STORE_FROZEN_DAILY EEP_RTCC_APP_HISTORY_ADDR //0x440 <20>ն<EFBFBD><D5B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(32*7)
#define EEP_ADDR_SY_STORE_FROZEN_MONTH (EEP_ADDR_SY_STORE_FROZEN_DAILY + STORE_SIZE_DATA_FROZEN*7) //<2F><EFBFBD><C2B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(32*18)
#define EEP_ADDR_SY_STORE_FROZEN_YEAR (EEP_ADDR_SY_STORE_FROZEN_MONTH + STORE_SIZE_DATA_FROZEN*18) //<2F><EFBFBD><EAB6B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(32*6)
#define SY_FIRST_POWERON_FLAG 0x56
typedef union //ǿ<><C7BF>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
u32 gp22_u32;
float gp22_float;
u8 buf[4];
}SY_U32_To_Float;
//<2F><><EFBFBD>ݴ洢ָ<E6B4A2><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef enum
{
SY_StoreCurIndex_Daily = 0,//<2F>ն<EFBFBD><D5B6><EFBFBD><EFBFBD>洢ָ<E6B4A2><D6B8>
SY_StoreCurIndex_Month = 1,//<2F><EFBFBD><C2B6><EFBFBD><EFBFBD>洢ָ<E6B4A2><D6B8>
SY_StoreCurIndex_Year = 2//<2F><EFBFBD><C2B6><EFBFBD><EFBFBD>洢ָ<E6B4A2><D6B8>
} SY_ParaTypeDef;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽṹ<DDBD><E1B9B9>
typedef union
{
struct
{
u32 CurrentFlow;//<2F><><EFBFBD><EFBFBD><EFBFBD>ۼ<EFBFBD><DBBC><EFBFBD><EFBFBD><EFBFBD>
u32 CurrentFlowReverse;//<2F><><EFBFBD><EFBFBD><EFBFBD>ۼ<EFBFBD><DBBC><EFBFBD><EFBFBD><EFBFBD>
u32 InstantaneousFlow;//˲ʱ<CBB2><CAB1><EFBFBD><EFBFBD>
u16 Presure;//ѹ<><D1B9>
u16 Temprature;//<2F><EFBFBD>
}Data;
u8 data_buf[STORE_SIZE_DATA_CIRCLE];
}UNION_SY_STORE_CIRCLE;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1B9B9>
typedef union
{
struct
{
DateTime CircleDataTime;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ(<28><><EFBFBD><EFBFBD>),<2C><><EFBFBD><EFBFBD>Ϊ0,ʹ<><CAB9>DateTime<6D><65>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DateTime_noweek<65><6B>ʽ,<2C>ѱ<EFBFBD><D1B1>ڼ<EFBFBD><DABC><EFBFBD>
u8 CircleCntStart;
u8 CircleCntEnd;
u8 ReadStart; //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʹ<CAB1><CAB9>
u8 ReadEnd;
}Data;
u8 data_buf[11];
}TYPE_CIRCLE_INDEX;
typedef union
{
TYPE_CIRCLE_INDEX CircleIndex[6];
u8 data_buf[66];
}UNION_SY_STORE_CIRCLE_INDEX;
//<2F><><EFBFBD>ݴ洢ָ<E6B4A2><D6B8>
#define SIZE_SY_STORE_INDEX (11*6+3+1)//70
typedef union
{
struct
{
UNION_SY_STORE_CIRCLE_INDEX Circle;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ洢ָ<E6B4A2><D6B8>
u8 Daily;//<2F>ն<EFBFBD><D5B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ洢ָ<E6B4A2><D6B8>
u8 Month;//<2F><EFBFBD><C2B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ洢ָ<E6B4A2><D6B8>
u8 Year;//<2F><EFBFBD><EAB6B3><EFBFBD><EFBFBD><EFBFBD>ݴ洢ָ<E6B4A2><D6B8>
u8 firstPowerOn;//<2F><>һ<EFBFBD><D2BB><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD>־
}Data;
u8 data_buf[SIZE_SY_STORE_INDEX];
}UNION_SY_STORE_INDEX;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽṹ<DDBD><E1B9B9>
/**
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 3
ʱ<EFBFBD><EFBFBD> 3
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ۼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ۼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4
<EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4
<EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD> 3
<EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>ѹ 6
ˮ<EFBFBD><EFBFBD>״̬ 1
ˮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬ 1
Ԥ<EFBFBD><EFBFBD> 1
У<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1
<EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><EFBFBD><EFBFBD> 32
*/
typedef union
{
struct
{
DateTime_noweek FrozenDataTime; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> 6
u32 CurrentFlow;//<2F><><EFBFBD><EFBFBD><EFBFBD>ۼ<EFBFBD><DBBC><EFBFBD><EFBFBD><EFBFBD> 4
u32 CurrentFlowReverse;//<2F><><EFBFBD><EFBFBD><EFBFBD>ۼ<EFBFBD><DBBC><EFBFBD><EFBFBD><EFBFBD> 4
u32 PeakCurrentFlow;//<2F><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD> 4
u8 PeakCurrentFlowTime[3];//ʱ<><CAB1><EFBFBD><EFBFBD> 3
u8 BatPower[6];//<2F><><EFBFBD>ص<EFBFBD>ѹ 6
u8 MeterState;//ˮ<><CBAE>״̬ 1
u8 MeterFault;//ˮ<><CBAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1
u8 ValveState;//<2F><><EFBFBD><EFBFBD>״̬ 1
u8 Reverse; //Ԥ<><D4A4> 1
u8 CheckSum;// 1
}Data;
u8 data_buf[STORE_SIZE_DATA_FROZEN];
}UNION_SY_STORE_FROZEN;
/**TLV <20><><EFBFBD>ݸ<EFBFBD>ʽ<EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>**/
typedef enum
{
TagWarningId = 0, //<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ID
TagOverFlowCurrent = 1, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>λ0.1L/H
TagOverFlowMinute = 2, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
TagReverseFlowCurrent = 3, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>λ0.1L/H
TagReverseFlowMinute = 4, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
TagLeakFlowMinute = 5, //©ˮ<C2A9><CBAE><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
TagPowerLow001V = 6, //<2F><>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
TagNoWaterMinute = 7, //<2F>չܱ<D5B9><DCB1><EFBFBD>ʱ<EFBFBD><CAB1>
TagValveState = 8, //<2F><><EFBFBD><EFBFBD>״̬
TagUploadStartTime = 12, //<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>ʼʱ<CABC><CAB1>a
TagCircleData5Minutes = 13,//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>a
TagDataFrozenTimeDailay = 14,//<2F>ն<EFBFBD><D5B6><EFBFBD>ʱ<EFBFBD><CAB1>
TagDataFrozenTimeMonth = 15, //<2F><EFBFBD><C2B6><EFBFBD>ʱ<EFBFBD><CAB1>
TagUploadRetryTimes = 16,//<2F>ϱ<EFBFBD><CFB1>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD>
TagUploadRetryDelayMinite = 17,//<2F>ط<EFBFBD><D8B7><EFBFBD>ʱʱ<CAB1><CAB1>
TagUploadIntervalHour = 18,//<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>a
TagServerIpPort = 21, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַa
TagAPN = 22, //APN<50><4E>Ϣ
TagWorkTime = 31 //ˮ<><CBAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
}TypeDef_TLVTag;
typedef enum
{
LenWarningId = 2, //<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ID-----------------------------2
LenOverFlowCurrent = 4, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>λ0.1L/H-------4
LenOverFlowMinute = 1, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>----------------------1
LenReverseFlowCurrent = 4, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>λ0.1L/H----4
LenReverseFlowMinute = 1, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>---------------1
LenLeakFlowMinute = 1, //©ˮ<C2A9><CBAE><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>----------------------1
LenPowerLow001V = 2, //<2F><>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ------------------------2
LenNoWaterMinute = 1, //<2F>չܱ<D5B9><DCB1><EFBFBD>ʱ<EFBFBD><CAB1>-----------------------1
LenValveState = 7, //<2F><><EFBFBD><EFBFBD>״̬---------------------------7
LenUploadStartTime = 4, //<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>ʼʱ<CABC><CAB1>a-------------4
LenCircleData5Minutes = 1, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>a-------------1
LenDataFrozenTimeDailay = 1, //<2F>ն<EFBFBD><D5B6><EFBFBD>ʱ<EFBFBD><CAB1>------------------1
LenDataFrozenTimeMonth = 2, //<2F><EFBFBD><C2B6><EFBFBD>ʱ<EFBFBD><CAB1>----------------2
LenUploadRetryTimes = 1, //<2F>ϱ<EFBFBD><CFB1>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD>--------------------1
LenUploadRetryDelayMinite = 1, //<2F>ط<EFBFBD><D8B7><EFBFBD>ʱʱ<CAB1><CAB1>--------------1
LenUploadIntervalHour = 1, //<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>a-------------1
LenServerIpPort = 32, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַa--------------------32
LenAPN = 32, //APN<50><4E>Ϣ---------------------------------32
LenWorkTime = 6 //ˮ<><CBAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>-------------------------6
}TypeDef_TLVDataLen;
//ˮ<><CBAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define TLV_VALUE_LEN 104
typedef union
{
struct
{
u8 ValueWarningId[2];//<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ID--------------------------2
u8 ValueOverFlowCurrent[4];//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>λ0.1L/H----4
u8 ValueOverFlowMinute;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>----------------------1
u8 ValueReverseFlowCurrent[4];//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>λ0.1L/H-4
u8 ValueReverseFlowMinute;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>---------------1
u8 ValueLeakFlowMinute;//©ˮ<C2A9><CBAE><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>----------------------1
u8 ValuePowerLow001V[2];//<2F><>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ---------------------2
u8 ValueNoWaterMinute;//<2F>չܱ<D5B9><DCB1><EFBFBD>ʱ<EFBFBD><CAB1>-----------------------1
u8 ValueValveState[7];//<2F><><EFBFBD><EFBFBD>״̬---------------------------7
u8 ValueUploadStartTime[4];//<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>ʼʱ<CABC><CAB1>a-------------4
u8 ValueCircleData5Minutes;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>a-------------1
u8 ValueDataFrozenTimeDailay;//<2F>ն<EFBFBD><D5B6><EFBFBD>ʱ<EFBFBD><CAB1>------------------1
u8 ValueDataFrozenTimeMonth[2];//<2F><EFBFBD><C2B6><EFBFBD>ʱ<EFBFBD><CAB1>----------------2
u8 ValueUploadRetryTimes;//<2F>ϱ<EFBFBD><CFB1>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD>--------------------1
u8 ValueUploadRetryDelayMinite;//<2F>ط<EFBFBD><D8B7><EFBFBD>ʱʱ<CAB1><CAB1>--------------1
u8 ValueUploadIntervalHour;//<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>a-------------1
u8 ValueServerIpPort[32];//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַa--------------------32
u8 ValueAPN[32];//APN<50><4E>Ϣ---------------------------------32
u8 ValueWorkTime[6];//ˮ<><CBAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>-------------------------6
}s;
u8 data_buf[TLV_VALUE_LEN];
}Type_TLVValue;
typedef enum
{
AddrWarningId = 0, //<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ID-----------------------------2
AddrOverFlowCurrent = 2, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>λ0.1L/H-------4
AddrOverFlowMinute = 6, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>----------------------1
AddrReverseFlowCurrent = 7, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>λ0.1L/H----4
AddrReverseFlowMinute = 11,//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>---------------1
AddrLeakFlowMinute = 12,//©ˮ<C2A9><CBAE><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>----------------------1
AddrPowerLow001V = 13,//<2F><>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ------------------------2
AddrNoWaterMinute = 15,//<2F>չܱ<D5B9><DCB1><EFBFBD>ʱ<EFBFBD><CAB1>-----------------------1
AddrValveState = 16,//<2F><><EFBFBD><EFBFBD>״̬---------------------------7
AddrUploadStartTime = 23, //<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>ʼʱ<CABC><CAB1>a-------------4
AddrCircleData5Minutes = 27,//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>a-------------1
AddrDataFrozenTimeDailay = 28,//<2F>ն<EFBFBD><D5B6><EFBFBD>ʱ<EFBFBD><CAB1>------------------1
AddrDataFrozenTimeMonth = 29, //<2F><EFBFBD><C2B6><EFBFBD>ʱ<EFBFBD><CAB1>----------------2
AddrUploadRetryTimes = 31,//<2F>ϱ<EFBFBD><CFB1>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD>--------------------1
AddrUploadRetryDelayMinite = 32,//<2F>ط<EFBFBD><D8B7><EFBFBD>ʱʱ<CAB1><CAB1>--------------1
AddrUploadIntervalHour = 33,//<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>a-------------1
AddrServerIpPort = 34, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַa--------------------32
AddrAPN = 66, //APN<50><4E>Ϣ---------------------------------32
AddrWorkTime = 98 //ˮ<><CBAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>-------------------------6
}TypeDef_TLVDataAddr;
typedef struct
{
const TypeDef_TLVTag Tag;
const TypeDef_TLVDataLen Len;
TypeDef_TLVDataAddr ValueAddr;
u8 EditFlag;//<2F>Ƿ<EFBFBD><C7B7>޸<EFBFBD>,0<><30><EFBFBD>޸<EFBFBD>, 1<>޸<EFBFBD>
} TypeDef_TLVStruct;
#define TLV_STR_BUF_LEN 19
static TypeDef_TLVStruct TlvStrBuf[TLV_STR_BUF_LEN]={
{TagWarningId, LenWarningId, AddrWarningId, 0},
{TagOverFlowCurrent, LenOverFlowCurrent, AddrOverFlowCurrent, 0},
{TagOverFlowMinute, LenOverFlowMinute, AddrOverFlowMinute, 0},
{TagReverseFlowCurrent, LenReverseFlowCurrent, AddrReverseFlowCurrent, 0},
{TagReverseFlowMinute, LenReverseFlowMinute, AddrReverseFlowMinute, 0},
{TagLeakFlowMinute, LenLeakFlowMinute, AddrLeakFlowMinute, 0},
{TagPowerLow001V, LenPowerLow001V, AddrPowerLow001V, 0},
{TagNoWaterMinute, LenNoWaterMinute, AddrNoWaterMinute, 0},
{TagValveState, LenValveState, AddrValveState, 0},
{TagUploadStartTime, LenUploadStartTime, AddrUploadStartTime, 0},
{TagCircleData5Minutes, LenCircleData5Minutes, AddrCircleData5Minutes, 0},
{TagDataFrozenTimeDailay, LenDataFrozenTimeDailay, AddrDataFrozenTimeDailay, 0},
{TagDataFrozenTimeMonth, LenDataFrozenTimeMonth, AddrDataFrozenTimeMonth, 0},
{TagUploadRetryTimes, LenUploadRetryTimes, AddrUploadRetryTimes, 0},
{TagUploadRetryDelayMinite, LenUploadRetryDelayMinite, AddrUploadRetryDelayMinite,0},
{TagUploadIntervalHour, LenUploadIntervalHour, AddrUploadIntervalHour, 0},
{TagServerIpPort, LenServerIpPort, AddrServerIpPort, 0},
{TagAPN, LenAPN, AddrAPN, 0},
{TagWorkTime, LenWorkTime, AddrWorkTime, 0}
};
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>־λ
0 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
1 <EFBFBD>չܱ<EFBFBD><EFBFBD><EFBFBD>
2 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
3 ©ˮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
4 <EFBFBD>͵<EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
5 <EFBFBD>ȳ<EFBFBD><EFBFBD><EFBFBD>Χ
6 <EFBFBD>ϸDZ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
7 <EFBFBD><EFBFBD><EFBFBD>Ŷ<EFBFBD><EFBFBD><EFBFBD>
8-11 Ԥ<EFBFBD><EFBFBD>
12-15 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD>
*/
typedef enum
{
UPLOAD_OVER_FLOW = 0,//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>--
UPLOAD_NO_WATER, //<2F>չܱ<D5B9><DCB1><EFBFBD>--
UPLOAD_REVERSE_FLOW, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>--
UPLOAD_LEAK_FLOW,//©ˮ<C2A9><CBAE><EFBFBD><EFBFBD>--
UPLOAD_LOW_POWER,//<2F>͵<EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD>---
UPLOAD_TEMP_OVER,//<2F>¶ȳ<C2B6><C8B3><EFBFBD>Χ--
UPLOAD_SHELL_OPEN,//<2F>ϸDZ<CFB8><C7B1><EFBFBD><EFBFBD><EFBFBD>
UPLOAD_VALVE_CHANGE//<2F><><EFBFBD>Ŷ<EFBFBD><C5B6><EFBFBD>--
}TypeDef_UploadWarning;
/*״̬<D7B4><CCAC>*/
typedef enum{
SY_STATE_S0 = 0,
SY_STATE_S1,
SY_STATE_S2,
SY_STATE_S3,
SY_STATE_S4,
SY_STATE_S5,
SY_STATE_S6,
SY_STATE_S7,
SY_STATE_S8,
SY_STATE_S9,
SY_STATE_S10,
SY_STATE_S11,
SY_STATE_S12,
SY_STATE_S13,
SY_STATE_S20,
SY_STATE_S21,
SY_STATE_S22,
SY_STATE_S30,
SY_STATE_S31,
SY_STATE_S32,
SY_STATE_S40,
SY_STATE_S41,
SY_STATE_S42,
SY_STATE_S50,
SY_STATE_S51,
SY_STATE_S52,
SY_STATE_S60,
SY_STATE_S61,
SY_STATE_S62,
SY_STATE_S70,
SY_STATE_S71,
SY_STATE_S72,
SY_STATE_S80,
SY_STATE_S81,
SY_STATE_S82,
SY_STATE_S90,
SY_STATE_S91,
SY_STATE_S92
}TYP_STATE_SY;
void ShenYang_Store_InitApp(void);
void ShenYang_Store_Machine(void);
void ShenYang_SOE_Machine(void);
u8 get_SY_StorePara(SY_ParaTypeDef paraType);
u8 ShenYangStore_IfSleep(void);
//int NB_SY_Frame_Upload_Warning(u8 *pBuf);
u8 getSY_StoreCircleIndex(void);
u8 getSY_CircleUploadPackets(void);
u8 getSY_ThisCirclePacket_Index(u8 current_packet);
int NB_SY_Frame_Upload_Data(u8 index, u8 *pBuf);
int NB_SY_Frame_Upload_CurrentData(u8 *pBuf);
void SY_GetCircleDateTime(DateTime *pDT, u8 index, u8 UploadOrRead);
u8 SY_GetCircleReadStartEnd(u8 index, u8 StartOrEnd);
int ShenYang_CircleDataStore_ClearUploadIndex(u8 index);
void ShenYang_TlvDataStoreMachine(void);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD>ʱ<EFBFBD><CAB1>,<2C><><EFBFBD><EFBFBD>
DateTime getBackDateTime(u8 backDays);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD>ʱ<EFBFBD><CAB1>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DateTime_noweek getBackDateTimeNoWeek(u8 backDays);
u8 getSY_CircleDataPackets(u8 readDays, u8 *pIndexBuf);
u8 checkWarningUploadState(TypeDef_UploadWarning tWarningType);
u8 GetTLVData(u8 Tag, u8 Len, u8* pValue);
u8 SetTLVData(u8 Tag, u8 Len, u8* pValue);
u8 getTlvTagIndex(u8 inTag);
u8 getWaterState(void);
#endif
#ifdef __cplusplus
}
#endif
#endif /* __UWater_JIANGXISTORE_APP_H */
/***************************************************************END OF FILE****/