128 lines
4.4 KiB
C
128 lines
4.4 KiB
C
#ifndef __FILEDATA_H
|
|
#define __FILEDATA_H
|
|
|
|
#define DEBUG_FILEI2C
|
|
#define IIC_WATEPLUS_ADDR (1)
|
|
#define IIC_CUR_TIME_ADDR (1024)
|
|
#define IIC_WATERDATA_ADDR (10) //存放数据是否有效
|
|
#define IIC_DAYDATA_ADDR (2048) //每日数据存放空间
|
|
#define IIC_PAGE_NUM (128)
|
|
|
|
#define DATA_VALID_AA (0xAA)
|
|
|
|
#define DATA_DAY_MAX (30)
|
|
#define WATERDATA_LEN (31)
|
|
#define CUR_TIME_LEN (13)
|
|
#define VALID_DATA_LEN (7)
|
|
#define DEC_YEAR (2000-1900)
|
|
#define CUR_YEAR (121)
|
|
|
|
#define uint8_t u8
|
|
#define uint16_t u16
|
|
#define uint32_t u32
|
|
#define HT_PRINT printf
|
|
|
|
#define COLLECT_DENSITY_15 (1) //15分钟
|
|
#define COLLECT_DENSITY_30 (2) //30分钟
|
|
#define COLLECT_DENSITY_60 (3) //一小时
|
|
|
|
|
|
#pragma pack(1)
|
|
|
|
struct waterdata_struct
|
|
{
|
|
uint8_t invalid; //是否有效, 1
|
|
uint8_t current[5]; //取水口流量 5
|
|
uint8_t sum[5]; //取水口累计流量 5
|
|
uint8_t surplus[6]; //水表1剩余水量 6
|
|
u8 ala[4]; //遥测状态及报警信息 4
|
|
u8 vol[2]; //蓄电池电压 2
|
|
u8 csq; //信号强度CSQ 1
|
|
uint32_t year; // 4
|
|
uint8_t mon; // 1
|
|
uint8_t day; // 1
|
|
uint8_t hour; // 1
|
|
uint8_t min; // 1
|
|
uint8_t crc;
|
|
};
|
|
|
|
struct curtime_struct
|
|
{
|
|
uint32_t time; //当天时间 秒数
|
|
uint32_t year;
|
|
uint8_t mon;
|
|
uint8_t day;
|
|
uint8_t hour;
|
|
uint8_t min;
|
|
uint8_t sec;
|
|
uint8_t crc;
|
|
};
|
|
|
|
struct valid_struct
|
|
{
|
|
uint8_t valid; //当天数据是否有效
|
|
uint32_t year;
|
|
uint8_t mon;
|
|
uint8_t day;
|
|
uint8_t crc;
|
|
};
|
|
|
|
/* Exported types ------------------------------------------------------------*/
|
|
typedef struct
|
|
{
|
|
uint8_t Year; /*!<RTC 年*/
|
|
uint8_t Month; /*!<RTC 月*/
|
|
uint8_t Date; /*!<RTC 日*/
|
|
uint8_t Hour; /*!<RTC 时*/
|
|
uint8_t Minute; /*!<RTC 分*/
|
|
uint8_t Second; /*!<RTC 秒*/
|
|
uint8_t Week; /*!<RTC 周*/
|
|
|
|
}RTC_TimeDateTypeDef,RTC_StampTmieTypeDef;
|
|
|
|
#pragma pack()
|
|
|
|
|
|
void file_write_delay();
|
|
void file_i2c_write(uint32_t addr,uint8_t * buf,uint16_t len);
|
|
void file_i2c_read(uint32_t addr,uint8_t * buf,uint16_t len);
|
|
|
|
|
|
uint8_t get_ck(uint8_t *val, uint16_t len);
|
|
uint8_t get_period_day();
|
|
uint32_t get_curtime();
|
|
void file_curtime_write(uint8_t * buf,uint8_t len);
|
|
void file_curtime_read(uint8_t * buf,uint8_t len);
|
|
|
|
void file_validflag_write(uint8_t day,uint8_t * buf,uint8_t len);
|
|
void file_validflag_read(uint8_t day,uint8_t * buf,uint8_t len);
|
|
|
|
void validflag_read(uint8_t day);
|
|
void validflag_write(uint32_t year,uint8_t mon,uint8_t date,uint8_t day);
|
|
uint8_t get_validflag();
|
|
uint32_t get_validyear();
|
|
uint8_t get_validmon();
|
|
uint8_t get_validday();
|
|
uint8_t get_realday(uint8_t day);
|
|
|
|
void file_waterdata_write(uint8_t day,uint8_t hour,uint8_t min,uint8_t * buf,uint16_t len);
|
|
void file_waterdata_read(uint8_t day,uint8_t hour,uint8_t min,uint8_t * buf,uint16_t len);
|
|
|
|
void get_complete_curtime(uint32_t *curyear,uint8_t *curmon,uint8_t *curday,uint8_t *curhour,uint8_t *curmin);
|
|
uint8_t bcd_to_dec(uint8_t val);
|
|
uint8_t get_space_day(uint32_t oldtime,uint32_t newtime);
|
|
unsigned long mktime (unsigned int year, unsigned int mon,
|
|
unsigned int day, unsigned int hour,
|
|
unsigned int min, unsigned int sec);
|
|
void waterdata_write(uint32_t year,uint8_t mon,uint8_t day,uint8_t hour,uint8_t min,uint8_t sec);
|
|
|
|
|
|
|
|
#define IIC_DATA_ADDR (4096*4)
|
|
#define WATERDATA_ONE_LEN (sizeof(struct waterdata_struct))
|
|
|
|
#endif
|
|
|
|
|
|
|