⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 storage.h

📁 小区巡检系统,MSPF437,里面主要参考的内容为TI单片机的低功耗处理,仅供参考,不能用于商业.
💻 H
字号:
/* storage.h */

#ifndef STORAGE_H
#define STORAGE_H

#include "sys_time.h"

#ifdef __cplusplus
extern "C"
{
#endif

// check record(18 bytes)
typedef struct _chk_record_
{
    unsigned char person_id[4];  // checker id  - 2 bytes
    unsigned short line_num;  // line number  - 1 byte
    unsigned char type;  // type  -1 byte
    unsigned char station_id[4];  // station id  - 4 bytes
    unsigned char chk_time[7];  // check time  - 7 bytes
    unsigned char station_state;  // station's state - 1 byte
}_chk_record;

/* data address */
#define ADDR_PATROL_ID 0  // patrol id + chksum = 5 bytes
#define ADDR_PERSON_ID  (ADDR_PATROL_ID+LEN_PATROL_ID+OFFSET_CHKSUM)  // person  + chksum = 5 bytes
#define ADDR_LINE_NUM  (ADDR_PERSON_ID+LEN_PERSON_ID+OFFSET_CHKSUM)  // line number + chksum = 2 bytes
#define ADDR_PATROL_MASK (ADDR_LINE_NUM+LEN_LINE_NUM+OFFSET_CHKSUM)  // patrol status + chksum = 5 bytes
#define ADDR_PATROL_PASSWORD (ADDR_PATROL_MASK+LEN_PATROL_MASK+OFFSET_CHKSUM)  // patrol password + chksum = 5 bytes
#define ADDR_RECORD_CNT (ADDR_PATROL_PASSWORD+LEN_PATROL_PASSWORD+OFFSET_CHKSUM)  // record count + chksum = 5 bytes
#define ADDR_RECORD_CNT_BAK (ADDR_RECORD_CNT+LEN_RECORD_CNT+OFFSET_CHKSUM)  // bak of record count + chksum = 5 bytes
#define ADDR_NEW_RECORD_CNT (ADDR_RECORD_CNT_BAK+LEN_RECORD_CNT_BAK+OFFSET_CHKSUM)  // new record count + chksum = 5 bytes
#define ADDR_NEW_RECORD_CNT_BAK (ADDR_NEW_RECORD_CNT+LEN_NEW_RECORD_CNT+OFFSET_CHKSUM)  // bak of new record count + chksum = 5 bytes
#define ADDR_RECORD (ADDR_NEW_RECORD_CNT_BAK+LEN_NEW_RECORD_CNT_BAK+OFFSET_CHKSUM)  // record - 18 bytes

/* data lengh */
#define LEN_PATROL_ID 4
#define LEN_PERSON_ID 4
#define LEN_LINE_NUM 2
#define LEN_PATROL_MASK 4
#define LEN_PATROL_PASSWORD 4
#define LEN_RECORD_CNT 4
#define LEN_RECORD_CNT_BAK 4
#define LEN_NEW_RECORD_CNT 4
#define LEN_NEW_RECORD_CNT_BAK 4
#define LEN_RECORD 19

/* max record count */
#define MAX_RECORD_COUNT 25000

/* offset of checksum */
#define OFFSET_CHKSUM 1

/* flag of save record count */
#define SAVE_RECORD_COUNT BIT0
#define SAVE_NEW_RECORD_COUNT BIT1

extern unsigned long _record_cnt[3];
extern unsigned char _person_id[5];
extern unsigned short _line_num[2];
extern _chk_record _NewRecord;

extern unsigned char load_record_count(unsigned long *count);
extern unsigned char save_record_count(unsigned char flag);
extern unsigned char save_record(void);

#ifdef __cplusplus
}
#endif


#endif /* STORAGE_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -