?? 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 + -