張少能,曾連蓀
(上海海事大學 信息工程學院,上海 201306)
隨著物聯網概念的不斷普及和其技術的不斷發展,物聯網越來越多地滲透到人們日常生活的各個方面。智慧旅游,也被稱為智能旅游。就是利用云計算、物聯網等新技術,通過互聯網/移動互聯網,借助便攜的智能導覽設備,主動感知旅游資源、旅游經濟、旅游活動、旅游者等方面的信息,及時發布,讓人們能夠及時了解這些信息,及時安排和調整工作與旅游計劃,從而達到對各類旅游信息的智能感知、方便利用的效果[1]。
在已經部署智慧旅游的旅游景點中,會有大量的智能導覽設備可供游客使用。而作為智能導覽設備的的提供方,越來越多的租賃和歸還信息,以及游客,員工績效等信息有必要生成系統進行管理,為此,筆者設計了一套基于身份證件掃描的智能導覽設備的租賃管理系統。
該系統采用SQL Server數據庫對景點的所有租賃設備實行標準化管理,借助OCR(Optical Character Recognition,光學字符識別)設備,建立起游客與租賃設備之間的一一對應關系,方便景點工作人員及時掌握租賃設備的使用情況。該系統的主要功能功能包括:系統登錄,導覽機租借,導覽機更換,導覽機歸還,導覽機查看,匯總統計,客戶資料,系統設置,用戶管理等。
1)系統登錄模塊:需用戶提供正確的賬戶和密碼方可進入系統。
2)導覽機租借模塊:借助身份證件掃描儀建立游客與導覽機之間的對應關系,做出出租記錄。
3)導覽機更換模塊:提供故障導覽機的更換服務,做出更換記錄。
4)導覽機歸還模塊:將已出租的設備回收等級,并做出歸還記錄。
5)導覽機查看模塊:提供導覽機租賃情況的實時查詢服務。
6)匯總統計模塊:統計匯總景點工作人員選定時間段內的工作量,工作時間等信息。
7)客戶資料模塊:提供OCR設備所掃描出的游客資料的查詢服務。
8)系統設置模塊:設置OCR設備按鍵的功能調整,掃描圖片的保存路徑等。
9)用戶管理模塊:用戶密碼修改,用戶添加和用戶刪除。
通過調用IDcard.ocx控件中的特定方法來實現掃描信息的初步獲取。以二代身份證為例,接口方法為BOOLRecog NewIDCardALL(),其實現了對二代證的掃描和識別,識別內容包括身份證號碼、姓名、性別、民族、出生日期、住址等。該方法的調用需要提供4個參數,透過這些參數來完成掃描結果的輸出。其中Content參數為識別內容選項,僅使用最低的五個比特。例如要識別姓名和證件號號,那么通過位運算0x00000001&0x00000010得值為0x00000011,即17。在本系統中,需要將掃描出來的信息全部識別出來,則Content參數的值為 0x0000001E,即 31。
ADO.NET 的名稱起源于 ADO(ActiveX Data Objects),這是一個廣泛的類組,用于在以往的Microsoft技術中訪問數據.之所以使用ADO.NET名稱,是因為Microsoft希望表明,這是在.NET編程環境中優先使用的數據訪問接口[2]。
它提供了平臺互用性和可伸縮的數據訪問。ADO.NET增強了對非連接編程模式的支持,并支持RICH XML。由于傳送的數據都是XML格式的,因此任何能夠讀取XML格式的應用程序都可以進行數據處理。事實上,接受數據的組件不一定要是ADO.NET組件,它可以是基于一個Microsoft Visual Studio的解決方案,也可以是任何運行在其他平臺上的任何應用程序。
2) 采用綜合評分法得出的土豆播種機的播種架試驗裝置的最優組合進行二次試驗,選取的主要參數為播種機架傾角α=10°、皮帶轉速ω=0.27m/s、種勺空間尺寸大小55 mm×17.5mm。試驗結果表明,優選后的排種器播種粒距合格率可達91.0%,重播率9%,漏播率2.0%,可以為土豆播種機播種架的改進提供理論支持。
ADO.NET的最重要概念之一是DataSet。DataSet是不依賴于數據庫的獨立數據集合。所謂獨立,就是:即使斷開數據鏈路,或者關閉數據庫,DataSet依然是可用的[3]。
有了DataSet,那么,ADO.NET訪問數據庫的步驟就相應地改變了:
1)創建一個數據庫鏈路;
2)請求一個記錄集合;
3)把記錄集合暫存到DataSet;
4)如果需要,返回第 2步;(DataSet可以容納多個數據集合);
5)關閉數據庫鏈路;
6)在DataSet上作所需要的操作。
本文采用了sql server express版本的數據庫,使用ADO.NET技術測試數據庫連接的部分代碼如下[4]:


一個采用了多線程技術的應用程序可以更好地利用系統資源。其主要優勢在于充分利用了CPU的空閑時間片,可以用盡可能少的時間來對用戶的要求做出響應,使得進程的整體運行效率得到較大提高,同時增強了應用程序的靈活性。更為重要的是,由于同一進程的所有線程是共享同一內存,所以不需要特殊的數據傳送機制,不需要建立共享存儲區或共享文件,從而使得不同任務之間的協調操作與運行、數據的交互、資源的分配等問題更加易于解決。
在智能導覽設備的租賃環節,需要同時進行兩項工作:1)即時響應現場工作人員關于掃描導覽設備的條碼;2)即時響應身份掃描設備的按鍵開始掃描游客證件。為此,需要借助vb.net的多線程技術。由于vb.net是基于.net框架的,而.net框架的重要組成部分CLR(Common Language Runtime,通用語言運行時)內置支持多線程應用,可以通過系統的System.Threading類直接建立多線程應用程序[5]。
多線程應用程序把程序分解為獨立的事務,它們能通過下面的途徑充分提高性能:
1)多線程技術可以使程序更容易響應,因為在其他工作繼續時用戶界面可以保持激活。
2)當前不忙的事務可以把處理器時間讓給其他事務。
3)花費大量處理時間的事務可以周期性的把時間讓給其他的事務。
4)事務可以在任何時候停止。
5)可通過把單獨事務的優先級調高或調低來優化性能。
創建和維護線程的基類是System.Threading.Thread類,它能夠創建并控制線程,設置其優先級并獲取其狀態。在創建線程前必須引用threading基類:Imports System.Threading。然后可創建一個新的線程類實例,并使用AddressOf語句為要運行的線程指定任務。接著可以利用 Start、Resume、Suspend、Sleep、Stop、Abort和 Join 等方法操縱線程,還可以通過如 IsAlive、IsBackground、Priority、ApartmentState和 ThreadState等屬性查詢和設置線程狀態。如使用Thread類的Sleep方法可以阻滯當前線程,使用Suspend方法可以掛起線程,使用Resume可以重新啟動掛起的線程,使用Abort方法可以停止一個線程,使用Join方法可以使當前線程等待其他線程運行結束[6]。
建立并啟動線程的部分代碼如下:


為了防止現場工作人員私自將導覽設備借出而不在系統記錄以謀取私利的情況發生,有必要加入導覽設備的激活認證過程。具體實現過程如下:導覽機開機后并不直接進入導覽程序,而是進入特殊的激活認證環節,監聽等待著來自管理機的激活信號;管理機也只有在完成機器條碼掃描及游客身份證件掃描后才會發出激活信號,待導覽機與管理機完成一次握手協議后導覽機便進入正常的導覽程序。而此時,管理機已經將機器的激活信息記錄下來,這樣就可以有效避免前文提到的問題發生。
完成各個功能模塊的設計后,就可以將整體融合建立可執行文件,形成一個獨立的可執行文件,再利用安裝向導或者其他打包工具把系統打包成一個安裝文件。最終實現如圖1所示的應用界面[7]。

圖1 用戶界面Fig.1 User interface
本文使用數據庫管理系統實現了對智能導覽設備的管理,目前已經應用到安徽省國家AAAA級某風景區。在使用過程中也發現了一些不足,例如單機版不能實現局域網內的多臺機器共享同一數據庫,數據的處理量有限等問題,還需要再進一步地升級和完善。
[1]徐迪威,蔡建新.物聯網及其應用剖析[J].計算機工程與應用,2011,47(15):229-231.
XU Di-wei,CAI Jian-xin.Analysis on internet of things and its application[J].Computer Engineering and Applications,2011,47(15):229-231.
[2]王寶祥.基于ADO.NET的數據庫訪問技術研究[J].計算機應用與軟件,2004(2):130-132.
WANG Bao-xiang.Study of datebase access technology using ADO.NET method[J].Computer Appiications and software,2004(2):130-132.
[3]Willis T,Newsome B.Visual Basic 2005入門經典[M].4版.北京:清華大學出版社,2006.
[4]李維杰,孫乾君.SQL Server2005數據庫原理與應用簡明教程[M].北京:清華大學出版社,2007.
[5]張躍廷.C#數據庫系統開發案例精選[M].北京:人民郵電出版社,2007.
[6]張焰林.基于VB.NET的多線程技術應用[J].計算機系統應用,2009,18(2):87-89.
ZHANG Yan-lin.Implementation of multithread technique based on VB.NET [J].Computer system&application,2009,18(2):87-89.
[7]徐振明.Visual Basic.NET程序設計與應用[M].北京:中國水利水電出版社,2007.