freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

智能家居門禁系統(tǒng)方案設(shè)計方案(已修改)

2025-05-08 06:53 本頁面
 

【正文】 智能家居門禁系統(tǒng)方案設(shè)計方案. 文檔介紹 文檔目的本文檔旨在詳細(xì)說明智能家居系統(tǒng)中門禁系統(tǒng)和linux下的模塊程序開發(fā)過程,通過此文檔 的描述,希望可以達(dá)到具有同等技術(shù)的開發(fā)人員按此介紹可以完全重現(xiàn)此技術(shù)。 文檔范圍智能控制系統(tǒng),嵌入式linux系統(tǒng)等。 讀者對象嵌入式系統(tǒng)開發(fā)人員 參考文獻(xiàn)無 術(shù)語與縮寫解釋縮寫、術(shù)語解 釋CPLDCPLD是一種用戶根據(jù)各自需要而自行構(gòu)造邏輯功能的數(shù)字集成電路。其基本設(shè)計方法是借助集成開發(fā)軟件平臺,用原理圖、硬件描述語言等方法,生成相應(yīng)的目標(biāo)文件,通過下載電纜(“在系統(tǒng)”編程)將代碼傳送到目標(biāo)芯片中,實(shí)現(xiàn)設(shè)計的數(shù)字系統(tǒng)。WiegandWiegand協(xié)議是國際上統(tǒng)一的標(biāo)準(zhǔn),有很多格式,標(biāo)準(zhǔn)的26bit 應(yīng)該是最常用的格式zigbee紫蜂技術(shù)1. 模塊命名規(guī)則本文檔模塊名稱與具體實(shí)現(xiàn)的功能函數(shù)采取一致的表示方法。2. 模塊匯總設(shè)備管理,策略管理,人員管理,定時管理,設(shè)備底層操作,串口設(shè)備層操作,串口底層操作庫,配置文件解析,以及UI通訊等模塊。同時包括門禁控制系統(tǒng)模塊,家居控制模塊和環(huán)境探測模塊以及人機(jī)交互界面設(shè)計模塊。 模塊匯總表設(shè)備管理()模塊名稱功能簡述init_dev初始化設(shè)備根節(jié)點(diǎn)add_dev添加入網(wǎng)設(shè)備del_dev刪除鏈表中設(shè)備init_dev_policy_table按照設(shè)備類新初始化策略表update_dev_policy_table按照各個設(shè)備類型,更新鏈表中的各個設(shè)備策略表get_dev_policy_table_size按照設(shè)備節(jié)點(diǎn)的類型返回對應(yīng)設(shè)備類型的策略表大小策略管理()模塊名稱功能簡述tempmon_policy_table_init初始化溫度計類型設(shè)備的策略表。tempmon_policy_table_set_warn根據(jù)參數(shù)傳過來的狀態(tài)設(shè)置設(shè)備報警狀態(tài)。tempmon_policy_table_update調(diào)用底層設(shè)備控制取得當(dāng)前設(shè)備狀態(tài)更新對應(yīng)設(shè)備的策略表。設(shè)備底層操作接口 ()tempmon_get_dev_stat取得溫度計設(shè)備狀態(tài)tempmon_get_cur_temp取得溫度計設(shè)備溫度tempmon_set_hi_level設(shè)置溫度計最高報警溫度tempmon_set_low_levl設(shè)置溫度計最低報警溫度用戶認(rèn)證()auth_user根據(jù)傳來的用戶名和密碼,返回驗證結(jié)果change_pass根據(jù)傳來的用戶名和密碼,更改密碼文件里對應(yīng)項目。)del_pass根據(jù)傳來的用戶名,刪除密碼文件中的對應(yīng)用戶行add_user根據(jù)傳來的參數(shù),在密碼文件中加入對應(yīng)用戶行配置文件處理()load_parm解析器的前端,根據(jù)解析器的結(jié)果,拋出對應(yīng)得錯誤。do_paser根據(jù)傳進(jìn)來的文件描述符,將文件中相應(yīng)的參數(shù)解析到參數(shù)結(jié)構(gòu)體。save_parm將參數(shù)結(jié)構(gòu)體按照對應(yīng)格式寫入配置文件。getnline從文件中取得最大長度為n一行,并將回車翻譯為字符串結(jié)尾符trim刨去傳入字符串開頭和結(jié)尾的空格和tab配置文件參數(shù)處理 ()temp_hi_level設(shè)置參數(shù)結(jié)構(gòu)體的temp_hi_level參數(shù)temp_low_level設(shè)置參數(shù)結(jié)構(gòu)體的temp_low_level參數(shù)帶頭節(jié)點(diǎn)的雙向鏈表 () 移植自linux內(nèi)核list_add_node插入節(jié)點(diǎn)list_del_node刪除節(jié)點(diǎn)is_empty_list判斷鏈表是否為空is_last_node判斷是否為最后一個節(jié)點(diǎn)offsetof宏取得結(jié)構(gòu)體元素相對于結(jié)構(gòu)體開始的偏移量container_of宏通過結(jié)構(gòu)體元素的指針取得結(jié)構(gòu)體的指針循環(huán)緩沖區(qū)() 移植自linux內(nèi)核min宏返回兩個數(shù)中的最小值init_loop_buf初始化循環(huán)緩沖區(qū)release_loop_buf釋放循環(huán)緩沖區(qū)里的線程鎖get_loop_buf從循環(huán)緩沖區(qū)中獲取數(shù)據(jù)put_loop_buf向循環(huán)緩沖區(qū)中放置數(shù)據(jù)lock_buf循環(huán)緩沖區(qū)線程鎖加鎖unlock_buf循環(huán)緩沖區(qū)中線程鎖解鎖loop_buf_reset循環(huán)緩沖區(qū)指針復(fù)位loop_buf_len返回循環(huán)緩沖區(qū)剩余長度串口設(shè)備層操作()init_uart調(diào)用底層串口庫初始化串口_monitor串口監(jiān)視線程,負(fù)責(zé)監(jiān)視并接受串口上數(shù)據(jù)。pre_frame_proces對串口接受數(shù)據(jù)預(yù)處理,調(diào)用相應(yīng)的操作函數(shù)read_uart_one_frame從串口讀取完整一楨read_uart_buf從緩沖區(qū)讀取數(shù)據(jù),沒有數(shù)據(jù)則休眠等待下次信號喚醒。串口操作庫()open_uart打開相應(yīng)串口設(shè)備文件read_uart讀取串口數(shù)據(jù)。write_uart將數(shù)據(jù)寫入串口set_uart_speed設(shè)置串口工作速度set_uart_parity設(shè)置串口的工作特性,例如停止位奇偶流控等。read_uart_timeout帶有超時的串口讀取操作處理。UI通信()init_mui初始化ui通信各個參數(shù)。mui_monitor套接字監(jiān)視線程,監(jiān)視套接字是否有命令數(shù)據(jù)到來。get_cmd_line從描述符中取得一行命令行warn_ui向ui發(fā)起報警命令處理程序()run_cmd命令解析器,調(diào)用對應(yīng)命令的處理程序。error根據(jù)錯誤碼,將返回對應(yīng)得錯誤信息。命令處理程序handler()xxx_and_handler對應(yīng)各個命令的處理程序。門禁控制模塊ReadWiegand讀取用戶卡信息SendWiegand發(fā)送用戶卡信息SendCmd發(fā)送控制指令家居控制系統(tǒng)和環(huán)境探測模塊GetTem采集環(huán)境信息SendTem封包發(fā)送采集數(shù)據(jù)RecTem解析采集數(shù)據(jù)信息SendLedData發(fā)送led顯示數(shù)據(jù)GetTemFromCDLed模塊收取并解析溫度數(shù)據(jù)DisplayTem發(fā)送并顯示信息OpenLamp打開繼電器CloseLamp關(guān)閉繼電器 模塊關(guān)系圖模塊名稱init_dev功能描述初始化設(shè)備根節(jié)點(diǎn)接口與屬性void init_dev(void)。數(shù)據(jù)結(jié)構(gòu)與算法struct dev { pthread_mutex_lock mutex。 unsigned int nr_dev。 struct list list。}。補(bǔ)充說明包含設(shè)備編號和鏈表的線程鎖模塊名稱add_dev功能描述向設(shè)備鏈表中添加設(shè)備節(jié)點(diǎn)接口與屬性int add_dev(char dev_type, char dev_no, char *ieee_addr)。數(shù)據(jù)結(jié)構(gòu)與算法struct dev_node { char dev_type。 char dev_no。 char ieee_addr[8]。 char alive。 char failed。 void *policy_table。 struct list list。}。補(bǔ)充說明根據(jù)傳來的設(shè)備類型設(shè)備號及IEEE地址,分配新的設(shè)備節(jié)點(diǎn),并填寫相應(yīng)的項目然后調(diào)用模塊名稱del_dev功能描述從設(shè)備鏈表中刪除設(shè)備節(jié)點(diǎn)接口與屬性int del_dev(char dev_type, char dev_no)。數(shù)據(jù)結(jié)構(gòu)與算法struct dev_node { char dev_type。 char dev_no。 char ieee_addr[8]。 char alive。 char failed。 void *policy_table。 struct list list。}。補(bǔ)充說明模塊名稱init_dev_policy_table功能描述初始化設(shè)備策略表接口與屬性void init_dev_policy_table(struct dev_node *node)。數(shù)據(jù)結(jié)構(gòu)與算法同上補(bǔ)充說明模塊名稱renew_dev_policy_table功能描述將全局參數(shù)表的參數(shù)對應(yīng)節(jié)點(diǎn)的參數(shù)刷新到設(shè)備的策略表里接口與屬性void renew_dev_policy_table(struct dev_node *node)數(shù)據(jù)結(jié)構(gòu)與算法無補(bǔ)充說明模塊名稱renew_all_dev_policy_table功能描述將全局參數(shù)表的參數(shù)刷新到所有設(shè)備的策略表里接口與屬性void renew_all_dev_policy_table(struct dev_node *node)數(shù)據(jù)結(jié)構(gòu)與算法無補(bǔ)充說明模塊名稱update_dev_policy_table功能描述通過調(diào)用設(shè)備控制層相關(guān)方法,取得設(shè)備對應(yīng)狀態(tài),更新相應(yīng)策略表接口與屬性void update_dev_policy_table(struct dev_node *node)數(shù)據(jù)結(jié)構(gòu)與算法struct dev_node { char dev_type。 char dev_no。 char ieee_addr[8]。 char alive。 char failed。 void *policy_table。 struct list list。}。補(bǔ)充說明模塊名稱update_all_dev_policy_table功能描述更新所有設(shè)備策略表接口與屬性void update_all_dev_policy_table(struct dev_node *node)。數(shù)據(jù)結(jié)構(gòu)與算法同上補(bǔ)充說明模塊名稱check_dev_type功能描述檢查設(shè)備類型是否合法接口與屬性int check_dev_type(unsigned char dev_type)數(shù)據(jù)結(jié)構(gòu)與算法同上補(bǔ)充說明模塊名稱is_dev_exist功能描述檢查設(shè)備是否存在接口與屬性int is_dev_exist(unsigned char dev_type, unsigned char dev_no)數(shù)據(jù)結(jié)構(gòu)與算法同上補(bǔ)充說明模塊名稱get_dev_node功能描述根據(jù)設(shè)備類型和設(shè)備號返回設(shè)備節(jié)點(diǎn)指針接口與屬性struct dev_node *get_dev_node(unsigned char dev_type, unsigned char dev_no)數(shù)據(jù)結(jié)構(gòu)與算法同上補(bǔ)充說明4. 策略管理模塊設(shè)計模塊名稱tempmon_policy_table_init功能描述溫度計策略表初始化接口與屬性void tempmon_policy_table_init(struct dev_node *node)。數(shù)據(jù)結(jié)構(gòu)與算法struct __dev_table { unsigned char dev_type。 void (*policy_table_init)(struct dev_node *)。 void (*policy_table_load_parm)(struct dev_node *)。 void (*policy_table_update)(struct dev_node *)。 void (*policy_table_warn)(struct dev_node *, char)。 void (*parm_table_save)(struct dev_parm *, FILE *fp)。}。struct tempmon_policy { char hi_level。 char low_level。 char cur_temp。 char temp_warn。}。補(bǔ)充說明為設(shè)備節(jié)點(diǎn)鐘的策略表指針分配內(nèi)存,并使用參數(shù)表中的值初始化對應(yīng)得設(shè)備。模塊名稱tempmon_policy_table_upd
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1