📄 main.h
字号:
Status_SetupPasswordVerify, // 确认输入的密码
//
Status_SetupAddTempCardByCard, // 通过刷卡增加临时刷卡用户
Status_SetupAddTempCardByNum, // 通过输入卡号增加临时刷卡用户
Status_SetupAddTempCardDoor, // 输入该卡号所允许进入的单元号
Status_SetupAddTempCardEndTime, // 设置临时卡的使用期限
Status_SetupDelTempCardByCard, // 通过刷卡删除临时刷卡用户
Status_SetupDelTempCardByNum, // 通过输入卡号删除临时刷卡用户
//
Status_SetupDoubleClickTime, // 正在设置按键双击间隔时间
Status_SetupCheckDoorIntervalTime, // 正在设置管理机轮检门口机的时间间隔
Status_FindMenu, // 进入到查询的主菜单界面
Status_FindAlarmRecord, // 查询报警记录
Status_DelAlarmRecordFirst, // 询问是否删除当前这项报警记录
Status_DelingAlarmRecord, // 正在删除这项报警记录
Status_Busy = 0x40, // 对方忙标志,这一位置'1'表示返回方现在忙
Status_Ack = 0x80 // 应答标志,这一位置'1'表示是返回的应答信号
} e_SystemStatus;
// 定义记录刷卡用户的结构体,每条信息16字节
typedef struct
{
BYTE CardAddr[2]; // 该卡所适用的单元地址
BYTE CardNum[4]; // 存放卡号,用4位存储
t_Time EndTime; // 该卡的有效期限,6字节
BYTE NotUsed[16-2-4-sizeof(t_Time)]; // 凑齐16个字节
}t_RFCardUser;
// 定义记录存放各个单元的卡号的地址的表格项的结构体
typedef struct
{
UINT Door; // 这个单元的单元号,以xx栋xx单元来表示,高字节表示栋,低字节表示单元号
UINT Address; // 用于存放这个单元的所有卡号的I2C存储器首地址
UINT nLength; // 用于存放这个单元的所有卡号所使用的存储器空间长度
UINT NotUsed; // 凑齐8个字节
}t_DoorCard;
// 定义小区的路由信息结构体,该路由信息由计算机或EEROM提供,每条信息8字节
typedef struct
{
BYTE House; // 楼栋号
BYTE Door; // 单元号
BYTE RouteAddr; // 路由器地址
BYTE DoorAddr; // 门口机地址
BYTE StartNum; // 起始房号
BYTE EndNum; // 终止房号
BYTE Floor; // 楼层号
BYTE User; // 分机号
}t_RouteInfo;
// 定义记录报警信息的结构体,每条记录需要16字节
typedef struct
{
t_Time Time; // 报警开始时间: 年、月、日、时、分、秒
UINT Index; // 报警序号,指示这条记录是所有报警记录中的第几条报警记录
BYTE Addr[4]; // 报警的用户房号,4个字节表示,0x00、楼栋、楼层、房号
UINT PreRecord; // 上一条记录地址
UINT NextRecord; // 下一条记录地址,起始指向当前删除地址
}t_AlarmRecord;
// 定义结构体类型的系统状态
typedef struct
{
e_SystemStatus Status; // 表示的系统状态
e_SystemStatus PreStatus; // 在ShowingMessage状态取消后回到的状态
BYTE lParam; // 该状态所包含的参数,如菜单状态下第一行菜单在数组中的序号
BYTE wParam; // 该状态所包含的参数,如菜单状态下当前选中的菜单为第几行
} t_SystemStatus;
// 定义菜单结构体,包含上一级和下一级的菜单项以及该菜单项对应的执行函数
typedef struct
{
BYTE Caption[16]; // 第一行显示的提示信息
BYTE NextMenu; // 下一个菜单
BYTE Parent; // 父菜单
BYTE Child; // 子菜单
void *MenuFunction; // 选择该菜单对应执行的程序
} t_Menu;
/*----------------------------------------------------------------------------+
| Global Variables |
+----------------------------------------------------------------------------*/
extern code t_RouteInfo RouteInfoTable[];
extern bit bHandleUp; // 指示手柄是否提起,TRUE为提起状态,FALSE为压下状态
extern bit LineIdle;
extern data t_SystemStatus SystemStatus;// 系统状态
extern code UINT SystemPasswordAddress; // 用于存放系统管理员密码的I2C地址,长度为16个字节,用一页来存放
extern data UINT RS485SendWaitTimer; // RS485总线应答超时计数器,当这个数减计数到0的时候表示对方没有应答
extern data UINT MessageShowTimer; // 消息显示的时间长短计数器,当这个数减到0的时候清除显示的消息并回到之前的状态
extern data UINT BeepTimer; // 蜂鸣器发声定时器
extern idata BYTE WDT_Counter; // 看门狗狗粮
extern idata UINT RingTimeCounter; // 振铃信号持续时间,超过这个时间就会停止振铃
extern idata UINT ViewTimeCounter; // 监视定时器,当这个计数器减计数到0的时候向门口机发送取消监视请求的命令
extern idata UINT LineIdleWaitTime; // 等待485总线空闲需要等待的时间, 根据地址而各不相同
extern idata BYTE DoubleKeyPressTimer; // 设定双击按键的时间间隔,以10ms为单位
extern idata BYTE CheckDoorIntervalTimer; // 设定管理机轮检门口机的时间间隔
extern idata UINT AlarmRecordStartAddr; // 存放的报警记录的首地址
extern idata UINT AlarmRecordLength; // 存放的报警记录的长度
extern idata UINT RouteInfoStartAddr; // 用于存放各个用户的路由信息的表格在I2C存储器中的起始地址
extern idata UINT RouteInfoLength; // 用于存放各个用户的路由信息的表格的长度
extern idata UINT RFCardTabStartAddr; // 用于存放各个单元所有卡号对应的I2C地址的表格的头地址,即表格的地址
extern idata UINT RFCardTabLength; // 用于存放各个单元所有卡号对应的I2C地址的表格的长度的地址
extern xdata t_RouteInfo RouteInfo; // 路由信息缓冲区
extern xdata BYTE ConnectingAddr[4]; // 正在和管理机连接的目的地址,包括门口机地址和室内机地址
extern xdata BYTE CardBuffer[Card_BUF_LENGTH+1];
extern xdata BYTE KeyBuffer[KEY_BUF_LENGTH+1]; // 按键缓冲
extern xdata BYTE SystemPassword[MAX_SYSTEM_PASSWORD_LENGTH+1]; // 存放系统管理员密码,第一个字节为密码长度
extern xdata BYTE I2CBuffer[I2C_PAGE_SIZE]; // 读写I2C存储器的内存缓冲
extern xdata BYTE CheckDoorIntervalArray[]; // 管理机轮检各个门口机所用到的数据缓存,每一个门口机对应一个字节
extern data UINT DoorNumber; // 在I2C存储器中设置的单元的数量,根据这个数量管理机决定需要对多少个门口机进行轮检
extern xdata t_RFCardUser RFCardUser; // 定义记录刷卡用户的结构体,包括卡号,用户名
extern idata t_RFCardUser *p_RFCardUser;
extern xdata t_AlarmRecord AlarmRecord; // 报警记录缓冲区
extern idata t_AlarmRecord *pAlarmRecord; // 指向报警记录的指针
extern code BYTE NullString[]; // 常量空字符串
/*----------------------------------------------------------------------------+
| Function Prototype |
+----------------------------------------------------------------------------*/
void CopyDefaultSettings(void);
void Delayus(BYTE timer) reentrant;
void Delayms(BYTE timer);
void RS485RxFrameHandler(PMSG msg);
void RS232RxHandler(PMSG msg);
void WaitForLineIdle(void);
BOOL UartSendData(BYTE Addr, BYTE bData);
void ClearConnectingAddr(void);
/*----------------------------------------------------------------------------+
| End of header file |
+----------------------------------------------------------------------------*/
#endif // __MAIN_H__
/*------------------------ Nothing Below This Line --------------------------*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -