翼云居前置服務(wù)在智慧酒店中的應(yīng)用_第1頁
翼云居前置服務(wù)在智慧酒店中的應(yīng)用_第2頁
翼云居前置服務(wù)在智慧酒店中的應(yīng)用_第3頁
翼云居前置服務(wù)在智慧酒店中的應(yīng)用_第4頁
翼云居前置服務(wù)在智慧酒店中的應(yīng)用_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

翼云居前置服務(wù)在智慧酒店中的應(yīng)用

0使得用戶方便切換電信寬帶和etv業(yè)務(wù)覆蓋了許多酒店。為了更好地為酒店服務(wù),提高客戶對(duì)電信業(yè)務(wù)的合作能力,天益云推出了一種sa產(chǎn)品(云居智能酒店管理系統(tǒng),以下簡(jiǎn)稱云居系統(tǒng))。目前很多酒店使用單獨(dú)的門鎖系統(tǒng),公安登記系統(tǒng),餐飲系統(tǒng),充值卡系統(tǒng),或者簡(jiǎn)易單機(jī)版的酒店管理系統(tǒng)。用戶辦理不同業(yè)務(wù)需要切換到不同的系統(tǒng),使用極不便。而翼云居系統(tǒng)將這些功能單一的系統(tǒng)作為子模塊集成到一個(gè)系統(tǒng),為用戶提供統(tǒng)一服務(wù),方便用戶操作,同時(shí)新增了OTA直連、包天影視房、翼支付聚合支付等新業(yè)務(wù)。翼云居是基于互聯(lián)網(wǎng)上的云服務(wù),酒店客戶端采用Web瀏覽器,瀏覽器頁面無法直接使用客戶端本地資源。如:門鎖制卡器、身份證讀卡器、充值卡讀寫器和打印機(jī)。通常的方法是采用ActiveX控件,但只能用在IE瀏覽器,兼容性較差,雖然瀏覽器也提供了打印功能,但是無法控制打印參數(shù),如:行間距、頁邊距、字體等,Javascript代碼的瀏覽器兼容性也差。綜合考慮,翼云居采用在酒店客戶端安裝翼云居前置服務(wù)解決設(shè)備接入問題。1前置界面設(shè)計(jì)酒店客戶端使用的全部是WINDOWS系統(tǒng),有早期的32位XP系統(tǒng),也有當(dāng)前流行的64位WIN10系統(tǒng),考慮操作系統(tǒng)兼容性、部署方便性,前置服務(wù)采用32位C++/MFC庫開發(fā)前置服務(wù)分為三個(gè)主要部分:Http接口服務(wù)、主程序和設(shè)備服務(wù)模塊,設(shè)備服務(wù)涵蓋門卡操作服務(wù)、身份證閱讀服務(wù)、充值卡操作服務(wù)和打印服務(wù)等,如圖1所示。前置實(shí)現(xiàn)Http接口服務(wù),翼云居Web客戶端通過調(diào)用前置服務(wù)的Http接口使用酒店客戶端硬件資源。翼云居Web客戶端調(diào)用前置服務(wù)的URL格式為:http://localhost:port/服務(wù)類型編碼+操作參數(shù)(Json格式)。Http接口提供了Get、Post兩種方法,Post用于參數(shù)較長(zhǎng)的調(diào)用。返回結(jié)果的基本數(shù)據(jù)有:錯(cuò)誤代碼和結(jié)果內(nèi)容,返回?cái)?shù)據(jù)UTF-8編碼轉(zhuǎn)換后發(fā)送到瀏覽器頁面服務(wù)類型采用4位數(shù)字編碼,定義前置服務(wù)各種接口功能,如“0000”標(biāo)識(shí)讀取身份證信息、“9999”標(biāo)識(shí)讀取客戶端機(jī)器碼信息、“0200”標(biāo)識(shí)充值卡讀寫服務(wù)、“1002”標(biāo)識(shí)必達(dá)門鎖免密型制卡服務(wù)等。前置主程序基于MFC對(duì)話框設(shè)計(jì),程序啟動(dòng)時(shí)讀取前置配置文件,獲取門鎖接口信息、身份證讀卡器接口信息、菜單配置信息、充值卡接口信息和Http服務(wù)端口等。創(chuàng)建Http服務(wù)線程,根據(jù)前置配置的設(shè)備接口信息加載設(shè)備接口庫、創(chuàng)建設(shè)備接口服務(wù)對(duì)象2預(yù)安裝服務(wù)設(shè)計(jì)2.1內(nèi)部組織設(shè)計(jì)主程序采用MFC基于對(duì)話框的托盤程序,啟動(dòng)后顯示主對(duì)話框,點(diǎn)擊關(guān)閉自動(dòng)隱藏到任務(wù)欄,右擊任務(wù)欄圖標(biāo)彈出菜單,點(diǎn)擊“退出”并確認(rèn)后退出前置服務(wù)程序,防止用戶誤操作關(guān)閉前置服務(wù),主程序生命周期如圖2。(1)程序啟動(dòng)后讀取前置配置文件,配置數(shù)據(jù)有:Http服務(wù)端口,充值卡讀寫器配置參數(shù)(設(shè)備類型、端口、起始讀寫扇區(qū)),身份證閱讀器配置參數(shù)(設(shè)備類型、端口),門鎖讀寫器配置參數(shù)(門鎖類型、門鎖接口配置文件名、加密數(shù)據(jù)),菜單配置參數(shù)。門鎖配置參數(shù)中涉及到酒店密碼、接口授權(quán)碼等敏感數(shù)據(jù)必須進(jìn)行加密。(2)判斷Http服務(wù)端口是否可用,若不可用,前置服務(wù)啟動(dòng)報(bào)錯(cuò)后退出。(3)前置數(shù)據(jù)庫采用sqlite內(nèi)存數(shù)據(jù)庫,數(shù)據(jù)庫表有:房間門鎖信息、房卡操作日志、打印模板、打印任務(wù),數(shù)據(jù)庫初始化主要是清空房間門鎖信息、房卡操作日志和打印任務(wù),數(shù)據(jù)庫預(yù)置了打印模板。(4)準(zhǔn)備設(shè)備接口文件,前置服務(wù)涉及的設(shè)備類型數(shù)以百計(jì),不同類型的設(shè)備接口文件名會(huì)重復(fù),因此將不同類型的設(shè)備接口文件放在相應(yīng)的文件目錄下。前置服務(wù)配置文件中配置當(dāng)前使用的設(shè)備類型,前置服務(wù)啟動(dòng)時(shí),通過設(shè)備類型參數(shù),將對(duì)應(yīng)設(shè)備類型目錄下的接口文件拷貝到主程序運(yùn)行目錄。(5)創(chuàng)建設(shè)備接口服務(wù)對(duì)象,對(duì)于門鎖制卡器涉及不同的接口類型各不相同,因此我們?cè)O(shè)計(jì)了門鎖虛基類,類中定義純虛函數(shù)作為門卡操作的基本方法,每種門鎖接口服務(wù)對(duì)象繼承該虛基類,采用該門鎖的接口實(shí)現(xiàn)父類中定義的虛函數(shù)。定義門鎖基類對(duì)象全局指針變量,主程序啟動(dòng)時(shí)根據(jù)前置配置的門鎖類型創(chuàng)建對(duì)應(yīng)的接口服務(wù)類對(duì)象,并將對(duì)象地址賦給門鎖基類全局對(duì)象指針變量。(6)啟動(dòng)Http服務(wù)線程,并在前置配置的Http端口上進(jìn)行偵聽來自翼云居Web客戶端的設(shè)備連接請(qǐng)求。(7)創(chuàng)建并顯示主對(duì)話框,用以測(cè)試身份證閱讀器。(8)主對(duì)話框退出時(shí),主程序釋放相關(guān)資源,如:關(guān)閉Http服務(wù)線程、卸載接口庫等,最后退出前置服務(wù)主程序。2.2新型安全建筑接口配置前置服務(wù)窗口基于MFC對(duì)話框設(shè)計(jì),功能界面有:主界面(測(cè)試身份證閱讀)、門鎖配置、預(yù)制卡、打印模板配置和打印參數(shù)配置。主界面生命周期即為前置服務(wù)生命周期,點(diǎn)擊對(duì)話框的“關(guān)閉”隱藏界面,雙擊托盤圖標(biāo)顯示界面。其他界面通過右擊托盤圖標(biāo)彈出的菜單即時(shí)創(chuàng)建模態(tài)對(duì)話框,點(diǎn)擊對(duì)話框的“退出”或“關(guān)閉”即銷毀對(duì)話框。托盤上彈出菜單項(xiàng)除“退出”,其他菜單項(xiàng)通過前置配置文件設(shè)置是否可選主界面通過點(diǎn)擊“讀身份證”按鈕,調(diào)用身份證閱讀器接口服務(wù)對(duì)象的基本方法,完成設(shè)備連接、尋卡、讀卡、設(shè)備斷開,并在界面上顯示操作結(jié)果:身份證基本信息(身份證號(hào)、姓名、性別、出生日期、地址、簽發(fā)機(jī)關(guān)、有效期起始和有效期終止)和照片。門鎖配置界面實(shí)現(xiàn)對(duì)門鎖接口配置文件和前置數(shù)據(jù)庫的讀寫。根據(jù)前置服務(wù)配置中的門鎖接口文件名打開門鎖接口配置文件,配置門鎖接口參數(shù),如:串口號(hào)、酒店密碼、接口授權(quán)碼等,點(diǎn)擊“保存”將數(shù)據(jù)寫到配置文件并加密敏感數(shù)據(jù),并斷開制卡器,重新使用新的接口參數(shù)初始化門鎖接口。房間門鎖信息配置包括:房號(hào)、門鎖號(hào)、房間名、樓號(hào)、層號(hào)、區(qū)域號(hào),采用全覆蓋保存,批量保存前先清空數(shù)據(jù)庫房間門鎖信息。預(yù)制卡界面實(shí)現(xiàn)在客人入住前根據(jù)客人預(yù)訂入住時(shí)間進(jìn)行制卡,主要服務(wù)于團(tuán)隊(duì)客人,當(dāng)入住人數(shù)較多時(shí),方便快捷完成入住服務(wù)。打印模板配置界面用于系統(tǒng)管理員創(chuàng)建、修改和刪除打印模板,并測(cè)試打印效果。在該窗口內(nèi)對(duì)打印模板參數(shù)的配置實(shí)現(xiàn)打印模板的管理,打印模板參數(shù)有:模板名稱、打印機(jī)名稱、打印紙張定義、打印字體定義、打印分辨率、打印方向、打印邊距、行間距、列間距、打印樣式標(biāo)簽定義。輸入打印測(cè)試樣本數(shù)據(jù)測(cè)試打印效果。打印參數(shù)配置界面用于用戶對(duì)打印模板參數(shù)進(jìn)行調(diào)整,優(yōu)化打印效果,可調(diào)整的打印模板參數(shù)有:打印頁邊距、行間距、列間距、字體大小、字體樣式,并提供打印測(cè)試2.3事件狀態(tài)下接口服務(wù)設(shè)計(jì)該接口服務(wù)接收來自同一終端上的翼云居Web客戶端的請(qǐng)求,因此接口服務(wù)設(shè)計(jì)為單個(gè)Web客戶端連接,并未設(shè)計(jì)成多客戶端連接。該接口服務(wù)為單獨(dú)的線程,在前置服務(wù)主程序啟動(dòng)時(shí)創(chuàng)建,在主界面退出時(shí),關(guān)閉服務(wù)Socket并恢復(fù)事件狀態(tài),觸發(fā)線程退出。接口服務(wù)設(shè)計(jì)流程圖(如圖3)。(1)線程啟動(dòng)時(shí)創(chuàng)建事件,初始狀態(tài)為未觸發(fā),線程等待該事件變?yōu)橛|發(fā)狀態(tài)后,結(jié)束服務(wù)線程。(2)創(chuàng)建Http接口服務(wù)Socket,并綁定到服務(wù)端口,在該端口上偵聽來自翼云居Web客戶端連接請(qǐng)求。當(dāng)Socket被關(guān)閉,接收客戶端請(qǐng)求異常,結(jié)束服務(wù)線程。(3)接收該連接上的請(qǐng)求數(shù)據(jù),采用HTTP協(xié)議格式解析請(qǐng)求數(shù)據(jù),URL解碼后解析URL參數(shù)得到請(qǐng)求的服務(wù)類型和請(qǐng)求參數(shù)。(4)根據(jù)解析出的服務(wù)類型調(diào)用相應(yīng)的設(shè)備接口服務(wù)對(duì)象的方法,并傳遞請(qǐng)求參數(shù),操作酒店終端上的硬件設(shè)備,得到操作結(jié)果,使用HTTP協(xié)議格式封裝后返回翼云居Web客戶端。(5)斷開客戶端Socket連接,繼續(xù)偵聽。3設(shè)計(jì)設(shè)備接口服務(wù)對(duì)象3.1助網(wǎng)絡(luò)鎖調(diào)soap接入翼云居系統(tǒng)的酒店設(shè)備主要有:門鎖、身份證、充值卡和打印機(jī)。除門鎖設(shè)備外,公安部對(duì)身份證閱讀器制定了標(biāo)準(zhǔn)接口,基于打印機(jī)驅(qū)動(dòng)使用MFC打印API,充值卡設(shè)備接口基本一致,而門鎖設(shè)備種類繁多,接口方式眾多,因此設(shè)計(jì)了門鎖虛基類,定義了基本的純虛函數(shù),各種門鎖接口服務(wù)類均繼承該門鎖虛基類,實(shí)現(xiàn)基類中的純虛函數(shù)。定義的純虛函數(shù)主要有:讀取房間門鎖信息、門鎖接口初始化、釋放接口資源、離線制卡、在線制卡、贈(zèng)卡、讀卡、清卡。(1)接口初始化,讀取門鎖接口配置文件相關(guān)參數(shù)。接口方式若基于DLL,導(dǎo)入門鎖接口動(dòng)態(tài)庫文件,獲取接口函數(shù)地址;若基于COM,注冊(cè)COM組件,創(chuàng)建組件實(shí)例;若基于SOCKET,創(chuàng)建SOCKET客戶端;若基于SOAP,啟動(dòng)網(wǎng)絡(luò)鎖回調(diào)SOAP服務(wù),向網(wǎng)絡(luò)鎖平臺(tái)注冊(cè)應(yīng)答回調(diào)地址;若基于HTTP,登錄門鎖網(wǎng)絡(luò)平臺(tái)獲取令牌TOKEN,作為調(diào)用其他接口的參數(shù),放在COOKIE或者URL參數(shù)中。(2)離線制卡,是指通過門鎖制卡器給房卡寫數(shù)據(jù),制卡的數(shù)據(jù)包括:門鎖號(hào)、區(qū)域號(hào)、樓號(hào)、樓層號(hào)、公共門號(hào)、卡片序號(hào)、是否允許開反鎖、入住時(shí)間和預(yù)離時(shí)間。其中房號(hào)、是否允許開反鎖和預(yù)離時(shí)間由翼云居Web客戶端請(qǐng)求參數(shù)得到,再通過房號(hào)查詢門鎖信息表得到門鎖號(hào)、區(qū)域號(hào)、樓號(hào)、樓層號(hào)、公共門號(hào),程序計(jì)數(shù)器計(jì)算得出卡片序號(hào)。制卡的入住時(shí)間使用終端機(jī)器時(shí)間,刷卡之后將頂替掉之前該房間所有房卡,制卡成功后將房號(hào)、門鎖號(hào)、入住時(shí)間、預(yù)離時(shí)間和卡ID保存到前置數(shù)據(jù)庫操作日志表。(3)在線制卡,房間的門鎖是聯(lián)網(wǎng)的,制卡數(shù)據(jù)不是寫入房卡,而是讀取房卡ID,連同門鎖號(hào)、入住時(shí)間、預(yù)離時(shí)間等數(shù)據(jù)通過網(wǎng)絡(luò)發(fā)送到對(duì)應(yīng)房間的門鎖上??腿碎_門刷卡時(shí)讀取房卡ID,對(duì)比門鎖上寫入的房卡ID、入住時(shí)間、預(yù)離時(shí)間決定能否開門。制卡成功同樣保存操作日志。密碼鎖也是一種在線制卡,雖然脫離了房卡和制卡器,這里前置服務(wù)隨機(jī)生成密碼,連同入住時(shí)間、預(yù)離時(shí)間通過門鎖網(wǎng)絡(luò)平臺(tái)發(fā)送到對(duì)應(yīng)房間門鎖。(4)贈(zèng)卡,是指給同一房間發(fā)多張門卡。在做贈(zèng)卡(副卡)時(shí),入住時(shí)間必須和主卡相同,該時(shí)間在前置數(shù)據(jù)庫中通過房號(hào)查詢最近的制卡日志表得到。(5)讀卡,讀出房卡對(duì)應(yīng)的房號(hào)、入住和預(yù)離時(shí)間,提供兩種方式,一種是使用門鎖接口讀出房卡里面的制卡數(shù)據(jù)(鎖號(hào)、入住時(shí)間和預(yù)離時(shí)間),再由鎖號(hào)反查出房號(hào);另一種是使用門鎖接口查出卡ID,再由卡ID查詢前置數(shù)據(jù)庫制卡日志,得到制卡數(shù)據(jù)。(6)清卡,離線制卡方式提供兩種方式清卡,一種是使用門鎖接口的清卡函數(shù),還有就是使用門鎖接口的寫卡函數(shù)寫入臟數(shù)據(jù)(比如過期的時(shí)間);對(duì)于在線制卡方式,通過門鎖網(wǎng)絡(luò)平臺(tái)接口刪除門鎖上的制卡數(shù)據(jù)完成清卡。3.2前置打印算法翼云居打印功能有兩種實(shí)現(xiàn)方式,一種是利用瀏覽器自帶打印功能,另一種是使用前置服務(wù)提供的打印接口。瀏覽器打印存在的缺陷是明顯的:由于前端打印功能是通過Javascript腳本實(shí)現(xiàn)的,而Javascript存在瀏覽器兼容性問題,所以打印功能也存在瀏覽器兼容性問題;打印格式就是頁面顯示格式,所以定制一個(gè)打印格式需要編寫一套Javascript腳本,相當(dāng)不方便;打印字體大小、樣式,頁面的打印邊距、行間距無法靈活修改調(diào)整。使用前置打印服務(wù)不存在瀏覽器兼容性問題,前置打印采用先進(jìn)的基于打印樣式模板的方法,通過配置打印模板快速定制打印格式,通過修改打印模板中的打印參數(shù)靈活修改字體、頁面邊距和行間距,只要給打印數(shù)據(jù)標(biāo)注上打印樣式模板中的樣式標(biāo)簽,發(fā)送給前置打印接口即可完成打印功能。這里的表格型數(shù)據(jù)是指需要打印的數(shù)據(jù)可分為若干打印行,每一行又可以分為若干打印項(xiàng)。打印樣式模板提供兩種類型的樣式標(biāo)簽:行樣式標(biāo)簽和合并項(xiàng)標(biāo)簽。行樣式標(biāo)簽定義的屬性有:行高(非必選項(xiàng),默認(rèn)為0)、行邊框(包括線條樣式),以及該行每個(gè)打印項(xiàng)屬性,包括:打印項(xiàng)類型(文本、線條、頁碼、二維碼等)、打印項(xiàng)邊框、字體大小、字體樣式、對(duì)齊方式;合并項(xiàng)標(biāo)簽定義需要合并的打印項(xiàng),標(biāo)簽屬性與打印項(xiàng)屬性相同。打印算法根據(jù)定義的模板基本參數(shù)(頁面大小、頁面邊距和行間距)和標(biāo)注上打印樣式標(biāo)簽的打印數(shù)據(jù)源,計(jì)算出所有打印項(xiàng)(包括合并項(xiàng))的打印坐標(biāo)和所有打印線段的位置坐標(biāo),并實(shí)現(xiàn)自動(dòng)分頁和頁首頁尾,調(diào)用MFC打印API進(jìn)行打印。打印服務(wù)提供的接口有:獲取終端上所有打印機(jī)列表、獲取打印機(jī)屬性、下載打印模板、打印預(yù)覽和打印。打印預(yù)覽輸出為JPG圖片,方便在Web頁面上展示。Web客戶端調(diào)用打印接口服務(wù)進(jìn)行數(shù)據(jù)打印的步驟如下:(1)利用模板打印樣式標(biāo)簽將打印測(cè)試數(shù)據(jù)標(biāo)簽化,并標(biāo)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論