📄 storage.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 + -