P2UWaterJiangXi/app/UWater_rtcc_app.h

144 lines
5.1 KiB
C
Raw Normal View History

2024-06-03 15:49:39 +08:00
/*
* File: __GP22LoRa_RTCC_APP_H
* Author:
*
* Created on<EFBFBD><EFBFBD>2015-5-18
*/
#ifndef __UWater_RTCC_APP_H
#define __UWater_RTCC_APP_H
#include "type.h"
#include "UWater_rtcc_driver.h"
#include "UWater_frame_app.h"
/************************************RTCCӦ<43>ò<EFBFBD><C3B2><EFBFBD>״̬<D7B4><CCAC>Ϣ************************************************/
//#define HEATING_STATE 1//<2F><>ů<EFBFBD><C5AF>״̬<D7B4><CCAC>Ϣ BIT0
#define RTCC_ERROR_STATE 2//RTCC<43>쳣 BIT1
#define RTCC_APP_SWITCH_ALRM_S0 0
#define RTCC_APP_SWITCH_ALRM_S1 1
#define RTCC_APP_SWITCH_ALRM_S2 2
#define RTCC_APP_SWITCH_ALRM_S3 3
#define RTCC_APP_SWITCH_ALRM_S4 4
/************************************RTCCӦ<43>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>Ϣ************************************************/
//#define GP22_SAMPLE_MSG 1//GP22<32><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ BIT0
#define RTCC_FIRST_FLAG 0x88
#define RTCC_TIME_ERROR_HOUR ((long)100*3600)
#define VALVE_CL_UPLOAD_TIMES 24//<2F>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD>
//#define EE_FIRST_USE_ADDR 0xB8
//
//#define EE_ERROR_HISTORY_ADDR (EE_FIRST_USE_ADDR+sizeof(RTCC_EE_DATA))
//#define EE_DAY_HISTORY_ADDR (EE_ERROR_HISTORY_ADDR+sizeof(RTCC_HISTORY_DATA))
//#define EE_MONTH_HISTORY_ADDR (EE_DAY_HISTORY_ADDR+14*31*sizeof(RTCC_HISTORY_DATA))
//#define EE_OTHER_ADDR (EE_MONTH_HISTORY_ADDR+24*sizeof(RTCC_HISTORY_DATA))
//#define EE_FIRST_USE_ADDR 0x100 //<2F>ۼƹ<DBBC><C6B9><EFBFBD>ʱ<EFBFBD><CAB1>+<2B>ϵ<EFBFBD><CFB5><EFBFBD>־<EFBFBD>֣<EFBFBD><D6A3><EFBFBD>EEPROM<4F><4D><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0x100-0x10F <20><>32<33>ֽ<EFBFBD>
//#define EE_MONTH_HISTORY_ADDR 0x120 //EEPROM<4F><4D><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0x120-0x30F <20><>496<39>ֽ<EFBFBD>
//#define EE_DAY_HISTORY_ADDR 0x310 //EEPROM<4F><4D><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0x310-0x78F <20><>1152<35>ֽ<EFBFBD>
//#define EE_END_HISTORY_ADDR 0x790 //78F+1
////#define EE_OTHER_ADDR (EE_END_HISTORY_ADDR - EE_MONTH_HISTORY_ADDR) //1648
//#define EE_OTHER_ADDR (EE_END_HISTORY_ADDR - EE_MONTH_HISTORY_ADDR + 206) //1648 2015-6-16 <20><>ͬ<EFBFBD>¼<EFBFBD><C2BC><EFBFBD>¼һ<C2BC><D2BB><EFBFBD><EFBFBD>
//#define FRAME_NBIot_ADDR_BASE (EE_OTHER_ADDR + 130)
#define EE_FIRST_USE_ADDR EEP_RTCC_APP_USE_ADDR//0x180 //<2F>ۼƹ<DBBC><C6B9><EFBFBD>ʱ<EFBFBD><CAB1>+<2B>ϵ<EFBFBD><CFB5><EFBFBD>־<EFBFBD>֣<EFBFBD><D6A3><EFBFBD>EEPROM<4F><4D><EFBFBD><EFBFBD>
//#define EE_MONTH_HISTORY_ADDR 0x200 //EEPROM<4F><4D><EFBFBD><EFBFBD><EFBFBD><EFBFBD> EEPROM: 0x200-0x43F 576<37>ֽ<EFBFBD><><D4A4>)
//#define EE_DAY_HISTORY_ADDR EEP_RTCC_APP_HISTORY_ADDR //0x440 //EEPROM<4F><4D><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ƻ<EFBFBD>26<32>ֽ<EFBFBD>*62<36><32> = 1612 EEPROM<4F><4D><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0x440-0xC3F <20><>2048<34>ֽ<EFBFBD>
//ʵ<>ʴ洢31<33><31><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>ǰ31<33>죬ѭ<ECA3AC><D1AD><EFBFBD><EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD> 26<32>ֽ<EFBFBD>*31<33><31> = 806<30>ֽ<EFBFBD>
//#define EE_END_HISTORY_ADDR 0x766 //0x440 - 0x765
//#define EE_OTHER_ADDR (EE_END_HISTORY_ADDR - EE_MONTH_HISTORY_ADDR + 18) //(1382 +18) / 200 = 7,18<31>ֽڴո<DAB4><D5B8><EFBFBD>
//#define EE_OTHER_ADDR (EE_END_HISTORY_ADDR - EE_MONTH_HISTORY_ADDR + 206) //1648 2015-6-16 <20><>ͬ<EFBFBD>¼<EFBFBD><C2BC><EFBFBD>¼һ<C2BC><D2BB><EFBFBD><EFBFBD>
#define CLEAR_HIS_BUF_LEN 256//<2F><><EFBFBD><EFBFBD>ʷ<EFBFBD><CAB7><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><E6B3A4>
#pragma pack(1)
typedef union {
struct {
u32 most_high_flow;
u16 most_high_flow_total_time;
u32 most_high_flow_begin_time1;
u32 most_high_flow_begin_time2;
}s;
u8 byte[14];
} RTCC_HISTORY_DATA;
typedef union //u32<33><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
u32 rtcc_u32;
u8 rtcc_u8[4];
}To_u32_Rtcc;
typedef union //ǿ<><C7BF>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
u32 gp22_u32;
float gp22_float;
u8 buf[4];
} RTCC_To_Float;
typedef union
{
struct
{
u8 data0;
u8 data1;
} datas_map;
u16 datas;
} RTCC_UNION_2U8TOU16;
#define MINUTE_TO_SECOND 60
#define HOUR_TO_SECOND 3600
#define DAY_TO_SECOND 86400
typedef enum
{
RtccMsg_Search_Card =0,
RtccMsg_MiJiCaiJi=1,//<2F>ܼ<EFBFBD><DCBC>ɼ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>գ<EFBFBD><D5A3><EFBFBD>4h<34>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD>MSG
RtccMsg_DataSave=2,//<2F><>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4B5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD>ݴ洢<DDB4><E6B4A2>msg
RtccMsg_UploadInTime = 3, //<2F>ö<EFBFBD>ʱ<EFBFBD>ϴ<EFBFBD>ʱ<EFBFBD>䵽MSG
RtccMsg_DiftofCalibration = 4,//<2F>ö<EFBFBD>ʱУ׼MSG
RtccMsg_Transducer_Check = 5,//<2F>ö<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><ECB3A3>MSG
RtccMsg_ValveActive = 6,//<2F><>ʱ<EFBFBD><EFBFBD><EEB6AF><EFBFBD><EFBFBD>MSG
RtccMsg_OtherProtl=7//<2F>׸<EFBFBD><D7B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD>Ϣ
} Rtcc_MsgTypeDef;
u8 RtccCheckMsgApp(Rtcc_MsgTypeDef msg_bit);
void RtccClearMsgApp(Rtcc_MsgTypeDef clear_bit);
void RtccSetMsgApp(Rtcc_MsgTypeDef set_bit);
void RtccInitApp(void);
void RtccMachineApp(void);
void RtccResetWorkHourApp(void);
u32 RtccGetWorkHourApp(void);
void RtccStartSampleApp(u8 span);
void RtccStopSampleApp(void);
u8 RtccGetStateApp(void);
u8 RtccIfSleepApp(void);
u16 RtccDayHisAddrApp(void);
u32 RtccJSDataApp(void);
u8 RtccIsError(void);
void RtccClearError(void);
//u8 RtccCheckStateApp();
void Gp30CheckMiJiDataApp(u8 **addr);
void Gp30CheckJianGeDataApp(u8 **addr);
void RtccCheck_MAX_MIN_Temprature(u16 **addr);
//void RtccStartSampleApp(u8 span);
//void RtccStopSampleApp();
u8 Rtcc_Check_Upload(void);
void RtccAppCheckMiJi(DateTime alarm_time);
void RtccAppCheckMostFloat(DateTime alarm_time);
#endif /* __UWater_RTCC_APP_H */