軟件工程畢業(yè)論文-寵物店管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
已閱讀1頁(yè),還剩29頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  本科畢業(yè)論文</b></p><p><b> ?。?0 屆)</b></p><p>  寵物店管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)</p><p><b>  摘要</b></p><p>  隨著城市經(jīng)濟(jì)的高速發(fā)展,城市治安管理面臨的壓力也越來(lái)越大,傳統(tǒng)的

2、以人力防范和事后處理為主的公安管理模式已經(jīng)開(kāi)始制約城市治安管理水平的進(jìn)一步提高。城市公安管理部門(mén)迫切需要采取更多的技術(shù)防犯手段來(lái)提高管理的范圍和效率,彌補(bǔ)人力管理資源缺乏和效率低下的缺點(diǎn)。</p><p>  隨著城市寬帶網(wǎng)覆蓋范圍的擴(kuò)大和使用費(fèi)用的降低,城市公安管理部門(mén)提出了逐步整合完善公安部門(mén)原有的各種監(jiān)控系統(tǒng),構(gòu)建一個(gè)城市統(tǒng)一的一體化綜合監(jiān)控管理平臺(tái)的需求。</p><p>  本系

3、統(tǒng)是一套用于“平安城市”視頻監(jiān)控的綜合調(diào)度平臺(tái),目標(biāo)是將“平安城市”中所有的視頻矩陣——無(wú)論是大型矩陣,還是社區(qū)和單位的小型矩陣——全部統(tǒng)合到一個(gè)平臺(tái)上使用和管理,使得用戶(hù)能夠使用一個(gè)鍵盤(pán)將城市中任何一臺(tái)攝像機(jī)的圖像顯示在任何一塊監(jiān)控屏幕上。</p><p>  本系統(tǒng)率先將先進(jìn)的物聯(lián)網(wǎng)技術(shù)應(yīng)用于“平安城市”視頻監(jiān)控領(lǐng)域。通過(guò)將城市中所有現(xiàn)存的攝像機(jī)進(jìn)行統(tǒng)一使用和管理,使得每一個(gè)角落都能被實(shí)時(shí)監(jiān)控到,在預(yù)防、發(fā)現(xiàn)

4、、控制和打擊違法犯罪、提供破案線(xiàn)索、固定違法犯罪證據(jù)等方面發(fā)揮著人防、物防所不可替代的重要作用,真正實(shí)現(xiàn)“平安城市”。</p><p>  關(guān)鍵詞:“平安城市”;物聯(lián)網(wǎng);視頻監(jiān)控系統(tǒng) </p><p><b>  Abstract</b></p><p>  With the rapid development of the urban eco

5、nomy, public security administration faces growing pressure. Traditional management mode of public security, which emphasis on prevention and post-processing, has begun restricting to further improve the management level

6、 of public security. Public security administration is urgently needed to improve the scope and efficiency of management. They want to take more guard against technical means and makes up for the disadvantages of manpowe

7、r resources and i</p><p>  With the expansion of urban broadband network coverage and lower costs, urban public security administration proposes to build a city unified integrated management platform needs.&

8、lt;/p><p>  This paper implements a video monitor platform for the SAFE CITYT program. The platform collects the entire video matrix--regardless of large matrix, also is community and units of small matrix. Th

9、rough this platform, users can manage all kinds of public security videos by using one keyboard. </p><p>  As far as I know, it is the first time to apply Internet of Things technologies in the area of

10、public security video monitor system. By unified all the existing cameras in use and management, every corner can be monitored in real time. It makes the platform playing an important role in preventing, detecting, cont

11、rolling and combating crime, providing a clue, fixing plays defense, such as criminal evidence, which makes important contributions to the SAFE CITY program. </p><p>  Keywords:SAFE CITY program;Internet of

12、Things;video monitor system</p><p><b>  目 錄  </b></p><p>  1系統(tǒng)概述及軟件開(kāi)發(fā)背景技術(shù)1</p><p><b>  1.1系統(tǒng)概述1</b></p><p>  1.2軟件開(kāi)發(fā)背景技術(shù)2</p&

13、gt;<p>  1.2.1 可配置的矩陣接入技術(shù)2</p><p>  1.2.2 自主研發(fā)的多協(xié)議命令路由技術(shù)3</p><p>  2 系統(tǒng)需求分析4</p><p>  2.1功能性需求4</p><p>  2.1.1切換視頻4</p><p>  2.1.2 控制攝像機(jī)4</

14、p><p>  2.1.3 后臺(tái)管理4</p><p>  2.1.4日志系統(tǒng)5</p><p>  2.2非功能性需求5</p><p>  2.2.1可靠性5</p><p>  2.2.2實(shí)時(shí)性5</p><p>  2.2.3魯棒性5</p><p>&l

15、t;b>  3 系統(tǒng)設(shè)計(jì)6</b></p><p>  3.1 軟件的整體發(fā)明內(nèi)容6</p><p>  3.2軟件的功能模塊及意外應(yīng)對(duì)機(jī)制6</p><p>  3.2.1服務(wù)器6</p><p>  3.2.2Message消息傳遞系統(tǒng)9</p><p>  3.2.3異步傳輸API1

16、0</p><p>  3.3軟件的具體實(shí)施方式13</p><p>  3.3.1應(yīng)用系統(tǒng)協(xié)調(diào)器13</p><p>  3.3.2登錄界面14</p><p>  3.3.3軟鍵盤(pán)15</p><p>  3.3.4 攝像機(jī)陣列16</p><p>  3.3.5 收藏組18&l

17、t;/p><p>  3.3.6 巡航21</p><p>  3.3.7 配置22</p><p><b>  結(jié)論23</b></p><p><b>  參考文獻(xiàn)24</b></p><p><b>  致謝25</b></p>

18、<p>  1 系統(tǒng)概述及軟件開(kāi)發(fā)背景技術(shù)</p><p><b>  1.1系統(tǒng)概述</b></p><p>  本系統(tǒng)是一套用于“平安城市”視頻監(jiān)控的綜合調(diào)度平臺(tái),目標(biāo)是將“平安城市”中所有的視頻矩陣——無(wú)論是大型矩陣,還是社區(qū)和單位的小型矩陣——全部統(tǒng)合到一個(gè)平臺(tái)上使用和管理,使得用戶(hù)能夠使用一個(gè)鍵盤(pán)將城市中任何一臺(tái)攝像機(jī)的圖像顯示在任何一塊監(jiān)控屏幕

19、上。</p><p>  本產(chǎn)品率先將先進(jìn)的物聯(lián)網(wǎng)技術(shù)應(yīng)用于“平安城市”視頻監(jiān)控領(lǐng)域,在國(guó)內(nèi)尚屬首創(chuàng)。本系統(tǒng)可以將城市中所有現(xiàn)存的攝像機(jī)進(jìn)行統(tǒng)一使用和管理,使得每一個(gè)角落都能被實(shí)時(shí)監(jiān)控到,在預(yù)防、發(fā)現(xiàn)、控制和打擊違法犯罪、提供破案線(xiàn)索、固定違法犯罪證據(jù)等方面發(fā)揮著人防、物防所不可替代的重要作用,真正實(shí)現(xiàn)“平安城市”。</p><p>  圖1.1 整體系統(tǒng)結(jié)構(gòu)圖</p>&

20、lt;p>  圖1.2 Pad鍵盤(pán)軟件系統(tǒng)結(jié)構(gòu)圖</p><p>  整個(gè)系統(tǒng)分為傳輸服務(wù)層、服務(wù)層和應(yīng)用層三個(gè)層次。傳輸服務(wù)層用于與服務(wù)器之間傳遞異步消息。服務(wù)層使用底層的異步傳輸服務(wù)和本地?cái)?shù)據(jù)庫(kù)操作API,將業(yè)務(wù)邏輯封裝成了KeyPress傳輸服務(wù)、認(rèn)證授權(quán)服務(wù)、數(shù)據(jù)服務(wù)和Log服務(wù),為應(yīng)用層提供服務(wù)API。應(yīng)用層主要包含各項(xiàng)UI,用于捕獲用戶(hù)輸入和顯示系統(tǒng)內(nèi)部狀態(tài)。</p><p

21、>  1.2軟件開(kāi)發(fā)背景技術(shù)</p><p>  1.2.1 可配置的矩陣接入技術(shù)</p><p>  傳統(tǒng)的矩陣接入方案,需要向程序代碼中添加接入矩陣的對(duì)應(yīng)的命令解析代碼,這種方案具有以下兩個(gè)弊端:</p><p>  可擴(kuò)展性差。不同品牌的矩陣通常具有不同的通信協(xié)議,與配套的控制鍵盤(pán)相對(duì)應(yīng)。由于歷史原因,監(jiān)控網(wǎng)絡(luò)中存在著大量不同廠(chǎng)家的矩陣和鍵盤(pán),為了實(shí)現(xiàn)這

22、些監(jiān)控網(wǎng)絡(luò)中視頻的調(diào)度,傳統(tǒng)方案中必須包含處理所有通信協(xié)議的程序代碼。當(dāng)新的矩陣或者鍵盤(pán)接入網(wǎng)絡(luò)時(shí),就需要在原有代碼中增加所需的處理代碼,修改原有程序,擴(kuò)展性差。</p><p>  低魯棒性。由于每一次新品牌的矩陣或者鍵盤(pán)接入網(wǎng)絡(luò)后,都需要重新修改程序處理代碼,在一個(gè)大規(guī)模的監(jiān)控網(wǎng)絡(luò)中,這種修改為程序的安全運(yùn)行帶來(lái)了極大的風(fēng)險(xiǎn),在某些情況下,很可能造成核心程序運(yùn)行錯(cuò)誤,系統(tǒng)無(wú)法正常工作。</p>

23、<p>  可配置的矩陣接入技術(shù),將軟件系統(tǒng)的擴(kuò)展接口留在了矩陣端。當(dāng)新矩陣接入監(jiān)控系統(tǒng)的時(shí)候,通過(guò)添加新矩陣對(duì)應(yīng)的配置文件,極大的方便了系統(tǒng)的擴(kuò)展。</p><p>  統(tǒng)的時(shí)候,通過(guò)添加新矩陣對(duì)應(yīng)的配置文件,極大的方便了系統(tǒng)的擴(kuò)展。</p><p>  1.2.2 自主研發(fā)的多協(xié)議命令路由技術(shù)</p><p>  在大型的監(jiān)控系統(tǒng)中,由于存在不同的矩陣

24、,并且不同矩陣之間的通信協(xié)議不同,系統(tǒng)中的攝像頭通過(guò)矩陣進(jìn)行聯(lián)網(wǎng)時(shí),控制鍵盤(pán)發(fā)出的命令必須要正確的路由到目標(biāo)攝像頭。</p><p>  大型監(jiān)控網(wǎng)絡(luò)中,要求每個(gè)鍵盤(pán)要控制任何目標(biāo)攝像頭,這帶來(lái)兩個(gè)問(wèn)題</p><p>  控制鍵盤(pán)發(fā)出的命令必須能夠被目標(biāo)攝像頭所在的矩陣正確識(shí)別</p><p>  控制鍵盤(pán)發(fā)出的命令必須能夠正確路由到目標(biāo)攝像頭所在矩陣</p

25、><p>  多協(xié)議命令路由技術(shù),通過(guò)將各種控制鍵盤(pán)的命令轉(zhuǎn)換為系統(tǒng)設(shè)定的統(tǒng)一的控制命令集,并且根據(jù)控制命令中目標(biāo)攝像頭所在矩陣,將控制命令傳送至目標(biāo)矩陣。</p><p>  多協(xié)議命令路由技術(shù)的使用,極大提升了系統(tǒng)的兼容性,有效地保護(hù)了歷史投資。</p><p><b>  2 系統(tǒng)需求分析</b></p><p>&l

26、t;b>  2.1功能性需求</b></p><p>  系統(tǒng)的主要功能是實(shí)現(xiàn)視頻監(jiān)視人員使用鍵盤(pán)將任意攝像機(jī)的視頻流顯示在任意顯示器上,并且能夠控制攝像機(jī)的轉(zhuǎn)動(dòng)。</p><p><b>  2.1.1切換視頻</b></p><p>  操作人員可以按照2.1小節(jié)描述的規(guī)則和優(yōu)先級(jí)順序,通過(guò)一個(gè)鍵盤(pán),切換顯示在任何顯示器上

27、的視頻源。</p><p>  用戶(hù)在鍵盤(pán)上的一般性操作是:</p><p>  在鍵盤(pán)上輸入任意機(jī)頂盒編號(hào);</p><p>  在鍵盤(pán)上輸入任意攝像機(jī)編號(hào);</p><p><b>  在鍵盤(pán)上確認(rèn)。</b></p><p>  用戶(hù)的輸入不僅限于這種模式,鍵盤(pán)上的前后切換鍵也可以被用于切換視

28、頻。</p><p>  系統(tǒng)響應(yīng)用戶(hù)操作,按照約定的“視頻切換的優(yōu)先級(jí)規(guī)則”進(jìn)行視頻切換;系統(tǒng)通過(guò)處理和轉(zhuǎn)發(fā)鍵盤(pán)命令到合適的矩陣來(lái)完成真正的切換操作。系統(tǒng)將操作的執(zhí)行結(jié)果(包括矩陣的執(zhí)行結(jié)果)返回給鍵盤(pán)。</p><p>  2.1.2 控制攝像機(jī)</p><p>  操作人員可以通過(guò)鍵盤(pán)上的搖桿控制當(dāng)前接入的攝像機(jī),包括云臺(tái)轉(zhuǎn)動(dòng)、攝像機(jī)變焦、光圈、聚焦調(diào)整。&l

29、t;/p><p>  當(dāng)前接入的攝像機(jī)編號(hào)為鍵盤(pán)最后輸入的攝像機(jī)編號(hào),或者為當(dāng)前接入的機(jī)頂盒對(duì)應(yīng)的攝像機(jī)編號(hào)。當(dāng)兩者都不存在時(shí),系統(tǒng)對(duì)鍵盤(pán)返回錯(cuò)誤碼。</p><p>  操作人員移動(dòng)搖桿時(shí),鍵盤(pán)將發(fā)出一系列命令。系統(tǒng)將對(duì)這一系列命令進(jìn)行處理和響應(yīng)。系統(tǒng)通過(guò)處理和轉(zhuǎn)發(fā)鍵盤(pán)命令到合適的矩陣完成真正的控制操作。</p><p>  2.1.3 后臺(tái)管理</p>

30、<p>  后臺(tái)管理功能包括1)系統(tǒng)管理員用戶(hù)登陸和密碼修改、2)設(shè)備管理,包括設(shè)備配置信息和狀態(tài)的查看,以及增刪改設(shè)備配置信息。</p><p>  設(shè)備包括攝像機(jī)、攝像機(jī)矩陣、鍵盤(pán)、機(jī)頂盒。各設(shè)備的詳細(xì)配置字段請(qǐng)參看“數(shù)據(jù)庫(kù)設(shè)計(jì)”章節(jié)。</p><p>  系統(tǒng)管理員可配置系統(tǒng)中鍵盤(pán)與矩陣之間的應(yīng)用層協(xié)議,以支持多種鍵盤(pán)。</p><p>  系統(tǒng)管

31、理員通過(guò)服務(wù)器提供的Web頁(yè)面完成配置工作。</p><p><b>  2.1.4日志系統(tǒng)</b></p><p>  每一次鍵盤(pán)操作都應(yīng)該被詳細(xì)記錄下來(lái),包括時(shí)間戳、原始命令、處理后的命令、鍵盤(pán)信息、矩陣信息、攝像機(jī)信息、機(jī)頂盒信息。</p><p>  每一次登陸和對(duì)配置項(xiàng)的增刪改操作都需要被記錄下來(lái),包括時(shí)間戳、用戶(hù)信息、配置項(xiàng)目名稱(chēng)、

32、配置項(xiàng)目的原值和新值。</p><p>  系統(tǒng)管理員可以通過(guò)服務(wù)器提供的Web界面查看日志。</p><p><b>  2.2非功能性需求</b></p><p><b>  2.2.1可靠性</b></p><p>  作為系統(tǒng)的關(guān)鍵節(jié)點(diǎn),系統(tǒng)監(jiān)控服務(wù)器需要7*24小時(shí)在線(xiàn)。</p>

33、;<p><b>  2.2.2實(shí)時(shí)性</b></p><p>  鍵盤(pán)操作應(yīng)該實(shí)時(shí)得到反饋結(jié)果,因此要求系統(tǒng)能夠快速轉(zhuǎn)發(fā)鍵盤(pán)命令,盡量減少延遲。</p><p><b>  2.2.3魯棒性</b></p><p>  操作人員的誤操作應(yīng)該被系統(tǒng)識(shí)別并且避免導(dǎo)致錯(cuò)誤后果。</p><p&

34、gt;<b>  3 系統(tǒng)設(shè)計(jì)</b></p><p>  3.1 軟件的整體發(fā)明內(nèi)容</p><p>  我們通過(guò)該軟件在A(yíng)ndroid Pad上實(shí)現(xiàn)視頻監(jiān)控軟鍵盤(pán),同時(shí)完成更多人性化和安全功能:</p><p>  1. 實(shí)現(xiàn)視頻監(jiān)控軟鍵盤(pán);</p><p>  2. 更多的人性化功能;</p><

35、;p>  3. 更多更好的權(quán)限控制功能;</p><p>  4. 功能個(gè)性化定制。</p><p>  3.2軟件的功能模塊及意外應(yīng)對(duì)機(jī)制</p><p><b>  3.2.1服務(wù)器</b></p><p>  服務(wù)器端控制程序的主要功能是搭建鍵盤(pán)與矩陣之間的信息交互平臺(tái),同時(shí)要求可以兼容接入不同類(lèi)型的鍵盤(pán)和矩

36、陣。</p><p>  系統(tǒng)采用Proxy模型為主體架構(gòu),即每個(gè)鍵盤(pán)和矩陣都通過(guò)一個(gè)代理(KeyboardProxy和MatrixProxy)實(shí)體接入一個(gè)統(tǒng)一的信息交換結(jié)構(gòu)(SwitchFabric)。代理實(shí)體在軟件上抹平了不同種鍵盤(pán)及矩陣的差異;信息交換結(jié)構(gòu)則描述了網(wǎng)絡(luò)的結(jié)構(gòu),實(shí)現(xiàn)了鍵盤(pán)與矩陣間的信息交換。</p><p>  圖3 – 圖3.1 服務(wù)器端系統(tǒng)模型</p>

37、<p>  從上圖中可以看出,系統(tǒng)模型由三部分構(gòu)成:</p><p>  第一部分:按鍵解碼過(guò)程,負(fù)責(zé)將收到的字節(jié)流識(shí)別為一個(gè)一個(gè)KeyPress,即一個(gè)一個(gè)的按鍵動(dòng)作,然后將這些按鍵動(dòng)作組合翻譯成一種標(biāo)準(zhǔn)描述。</p><p>  服務(wù)器程序從鍵盤(pán)收到的信息是斷續(xù)的字節(jié)流,按鍵解碼過(guò)程的第一步是將這些字節(jié)流分割成一個(gè)一個(gè)有意義的按鍵動(dòng)作,即KeyPress。</p>

38、;<p>  KeyPress指鍵盤(pán)的一次按鍵動(dòng)作,例如“按鍵1被按一次”,對(duì)應(yīng)類(lèi)KeyPress。需要區(qū)分的是,鍵盤(pán)上的每一個(gè)鍵稱(chēng)之為Key Code,對(duì)應(yīng)類(lèi)KeyCode;KeyCode代表鍵本身,是固定不變的;KeyPress是一次動(dòng)作,它在鍵盤(pán)的按鍵被按下后產(chǎn)生,是動(dòng)態(tài)產(chǎn)生的。</p><p>  識(shí)別出單獨(dú)一個(gè)KeyPress在很多時(shí)候并不能表示出用戶(hù)的完整意圖,例如,用戶(hù)需要連續(xù)按“sc

39、reen”,一系列數(shù)字鍵,最后按一個(gè)“return”鍵之后,才能表示“選中某個(gè)屏幕(或機(jī)頂盒)”。因此,我們需要定義一個(gè)結(jié)構(gòu)來(lái)表示用戶(hù)的每個(gè)完整的意圖。這個(gè)結(jié)構(gòu)就是Command。</p><p>  Command是服務(wù)器程序內(nèi)部表示用戶(hù)的一個(gè)完整意圖的結(jié)構(gòu)。它與任何特定類(lèi)型的鍵盤(pán)或特定類(lèi)型的矩陣都無(wú)關(guān),是一套通用的鍵盤(pán)與矩陣間的標(biāo)準(zhǔn)協(xié)議。任何一種特定的鍵盤(pán)或矩陣都可以將自己的特定協(xié)議映射到這個(gè)協(xié)議上來(lái);它也可

40、以轉(zhuǎn)化為任何一種特定鍵盤(pán)和矩陣的之間的協(xié)議。</p><p>  按鍵解碼過(guò)程第二步就是將一個(gè)或者多個(gè)KeyPress翻譯成標(biāo)準(zhǔn)結(jié)構(gòu)來(lái)表示完整的用戶(hù)意圖,即Command。</p><p>  這一部分實(shí)際上處理的是“鍵盤(pán)輸入什么”,做法是:無(wú)論鍵盤(pán)輸入什么,都將被翻譯成一種標(biāo)準(zhǔn)格式,即Command。這樣,任何鍵盤(pán)都可以被接入系統(tǒng)中,而不影響其它部分。</p><p&

41、gt;  第二部分:內(nèi)部處理過(guò)程。用戶(hù)意圖在被識(shí)別成Command之后,接下來(lái)是如何“投遞”用戶(hù)意圖的過(guò)程。</p><p>  圖3.2 優(yōu)先級(jí)規(guī)則判定流程實(shí)際上是用戶(hù)意圖的“投遞”流程</p><p>  這一部分處理的是“如何將鍵盤(pán)的命令送到合適的矩陣和機(jī)頂盒”,實(shí)際上處理的是系統(tǒng)內(nèi)各組件的連接方式。當(dāng)然,更加復(fù)雜的邏輯也可以在這里實(shí)現(xiàn)。</p><p>  

42、需要注意的是,由于這一過(guò)程處于純粹的Command環(huán)境中,與鍵盤(pán)和矩陣的硬件細(xì)節(jié)完全隔離開(kāi),僅僅需要考慮設(shè)備之間的邏輯連接關(guān)系即可。</p><p>  第三部分:信號(hào)重新編碼過(guò)程。確定用戶(hù)意圖(即Command)的投遞方向之后,需要將Command翻譯成目標(biāo)設(shè)備(即特定類(lèi)型的矩陣)可接受的信號(hào)模式,序列化成字節(jié)流發(fā)送到目標(biāo)設(shè)備。</p><p>  這一部分處理的是“矩陣能接受的命令格式

43、”,做法是:將標(biāo)準(zhǔn)格式翻譯成Matrix要求的特定格式。這樣,任何可控裝置都可以被接入系統(tǒng)中,而不影響其他部分。</p><p>  最后,矩陣返回的ACK信號(hào)的處理模型同KeyPress模型是一樣的,只是信號(hào)傳遞的方向不同。</p><p>  綜合以上所述,服務(wù)器端的控制程序整體實(shí)現(xiàn)如下:</p><p>  圖5 – 圖3.3 服務(wù)器端控制程序的實(shí)現(xiàn)</

44、p><p>  圖3.4 服務(wù)器模型:數(shù)據(jù)處理流程</p><p>  連接器確定了Pad如何連接到主控服務(wù)器。目前通過(guò)兩種方式:藍(lán)牙和Wifi。藍(lán)牙方式實(shí)際上是連接到附加電路板的藍(lán)牙上,附加電路板后面有一個(gè)透明通道可以讓Pad和服務(wù)器直接通信,此時(shí)Pad就像直接連接到了服務(wù)器上一樣。Wifi方式則是直接通過(guò)TCP/IP連接到服務(wù)器上。</p><p>  連接器的主要

45、工作就是將一個(gè)字節(jié)流發(fā)送到服務(wù)器的對(duì)等連接器上。這些字節(jié)流(byte[])將被直接交給連接器后端的Message系統(tǒng),由MessageCodec進(jìn)行編解碼,獲得具體的Message。</p><p>  在連接斷開(kāi)時(shí),連接器將試圖自動(dòng)重新建立連接。</p><p>  3.2.2Message消息傳遞系統(tǒng)</p><p>  系統(tǒng)的消息傳遞系統(tǒng)由如下三部分構(gòu)成:&l

46、t;/p><p>  1. Message基類(lèi);</p><p>  2. MessageCodec,Message編解碼器;</p><p>  3. Message系統(tǒng)的使用者(即系統(tǒng)中其它模塊)自定義的Message子類(lèi)。</p><p>  Message消息系統(tǒng)的設(shè)計(jì)目標(biāo)是:</p><p>  1. 允許用戶(hù)自

47、定義任意形式的Message子類(lèi),能夠無(wú)縫接入Messag基本系統(tǒng);</p><p>  2. 允許用戶(hù)自定義Message子類(lèi)的編解碼過(guò)程,該過(guò)程能夠無(wú)縫接入Messag基本系統(tǒng);</p><p>  3. 用戶(hù)僅僅需要定義以上兩項(xiàng),即可直接實(shí)現(xiàn)自定Message子類(lèi)的編解碼——即從byte[]組裝出Message子類(lèi)對(duì)象,將Message子類(lèi)對(duì)象轉(zhuǎn)換成byte[]。</p>

48、<p>  Message是整個(gè)Message系統(tǒng)的基類(lèi),所有需要Codec編解碼的類(lèi)都必須繼承自它:</p><p>  1. Message基類(lèi)中定義了Message的基本結(jié)構(gòu),同時(shí)實(shí)現(xiàn)了該基礎(chǔ)結(jié)構(gòu)的編解碼方法;</p><p>  2. Message基類(lèi)中最重要的方法是setPayload和getPayload方法,子類(lèi)必須實(shí)現(xiàn)這兩個(gè)函數(shù),以實(shí)現(xiàn)子類(lèi)本身的解碼和編碼過(guò)

49、程——實(shí)際上,Message基類(lèi)在完成自身基礎(chǔ)結(jié)構(gòu)的編解碼之后,將調(diào)用子類(lèi)的setPayload和getPayload方法來(lái)編解碼其自身的payload域。</p><p>  編解碼器用于1)將Message編碼成字節(jié)流,2)從連接器接收到的字節(jié)流中解碼出Message。</p><p><b>  字節(jié)流的格式采用:</b></p><p>

50、;  {前導(dǎo)字符} {長(zhǎng)度} {序列號(hào)} {回復(fù)序列號(hào)} {類(lèi)型} {負(fù)載} {校驗(yàn)碼} {結(jié)尾字符}</p><p>  其中,長(zhǎng)度定義為去除前導(dǎo)和結(jié)尾字符之外的byte數(shù)。</p><p>  Message包含一個(gè)虛的getType和getPayload方法,分別獲得類(lèi)型和負(fù)載的字節(jié)數(shù)組,子類(lèi)需要實(shí)現(xiàn)這兩個(gè)函數(shù)。getPayload方法用于對(duì)Message子類(lèi)對(duì)象的payload進(jìn)行

51、編碼。</p><p>  如果異步API沒(méi)有設(shè)置Message的序列號(hào),Codec會(huì)自動(dòng)設(shè)置。</p><p>  解碼時(shí),Codec使用PacketSlicer從字節(jié)流中切出合法的包,然后識(shí)別其中的序列號(hào)和類(lèi)型。Codec需要依據(jù)類(lèi)型從MessageCodec類(lèi)的Message子類(lèi)注冊(cè)信息中獲得一個(gè)Message實(shí)例(采用克隆模式),然后調(diào)用其setPayload方法來(lái)解析其負(fù)載內(nèi)容,

52、并獲得真正的Message子類(lèi)。</p><p>  MessageCodec使用Register和Clone模式構(gòu)建,這樣可以使得其可以直接從輸入的byte[]中解碼出Message的子類(lèi)對(duì)象,而不僅僅是Message這個(gè)基類(lèi)。</p><p><b>  其實(shí)現(xiàn)方法是:</b></p><p>  1. 外部組件需要向MessageCode

53、c注冊(cè)其所實(shí)現(xiàn)的Message子類(lèi)類(lèi)型(即其type字段),同時(shí)注冊(cè)一個(gè)子類(lèi)對(duì)象;這些注冊(cè)信息全局可用;所有的Message子類(lèi)的注冊(cè)代碼位于cybertrue-commons-base工程的KeyboardCodec4Message函數(shù)中。</p><p>  2. MessageCodec解碼時(shí),將根據(jù)輸入的byte[]中解出來(lái)的type信息從子類(lèi)注冊(cè)表中查找對(duì)應(yīng)的Message子類(lèi)對(duì)象;一旦查到,則克隆該對(duì)

54、象,作為解碼出的返回對(duì)象;如果查不到注冊(cè)信息,則直接返回新建的Message對(duì)象;</p><p>  3. 在注冊(cè)信息中查到Message子類(lèi)對(duì)象之后,MessageCodec的解碼過(guò)程將把Message的payload字節(jié)數(shù)組交由該子類(lèi)對(duì)象的setPayload方法來(lái)進(jìn)行進(jìn)一步的解碼操作。這樣,MessageCodec能夠完全解碼輸入的byte[]:獲得準(zhǔn)確的Message子類(lèi)對(duì)象,同時(shí)解碼出Message子

55、類(lèi)中所有的成員變量。</p><p>  Message子類(lèi)對(duì)象的編碼和解碼過(guò)程可以使用一個(gè)叫做Transmitter的工具類(lèi)輕松實(shí)現(xiàn),該類(lèi)封裝了對(duì)基礎(chǔ)數(shù)據(jù)類(lèi)型的編碼(transimit)和解碼(parse)操作。這樣,Message子類(lèi)的編解碼操作實(shí)際上變成了在setPayload和getPaylaod函數(shù)中簡(jiǎn)單使用Transmitter工具針對(duì)每個(gè)成員變量的編解碼過(guò)程。需要注意的是,編解碼操作必須一一對(duì)應(yīng),以

56、保證編解碼的正確性。</p><p>  對(duì)等體屬于基礎(chǔ)結(jié)構(gòu),服務(wù)器端的對(duì)等體與Pad端的是一樣的。實(shí)現(xiàn)方式是:</p><p>  1. 連接器發(fā)現(xiàn)連接斷開(kāi)時(shí),觸發(fā)連接斷開(kāi)事件,這個(gè)事件將調(diào)用”destroyed”函數(shù);</p><p>  2. 重連機(jī)制捕獲這一事件,啟動(dòng)一個(gè)Timer,不斷嘗試重新連到服務(wù)器(藍(lán)牙模式下是附加電路板)上;</p>

57、<p>  3. 一旦重新建立了連接,連接器將觸發(fā)連接建立事件;</p><p>  4. 重連機(jī)制捕獲這一事件,停止重連Timer。</p><p>  3.2.3異步傳輸API</p><p>  異步傳輸API用于在Pad與服務(wù)器之間異步地傳輸Message——即雙方在發(fā)送Message之后可以直接返回,等待回復(fù)Message或者超時(shí)。</p&

58、gt;<p>  通過(guò)異步API發(fā)送Message時(shí),它會(huì)確定該Message是否需要回復(fù)——當(dāng)Message需要回復(fù)時(shí),它需要指定一個(gè)MessageReceiveHandler來(lái)等待回復(fù)Message;那么當(dāng)Message指定了自身的MessageReceiveHandler時(shí),我們認(rèn)為該Message是需要回復(fù)的。</p><p>  如果Message需要回復(fù),那么異步API會(huì)記錄下該Mess

59、age,并且等待收到“回復(fù)序列號(hào)”與該Message相同的Message。一旦收到,那么它會(huì)將兩個(gè)Message通過(guò)先前指定的MessageReceiveHandler向外部組件匯報(bào)。如果長(zhǎng)時(shí)間收不到,則發(fā)出超時(shí)消息給該MessageReceiveHandler。</p><p>  異步API需要維護(hù)Message的序列號(hào)。一般而言,異步API會(huì)自動(dòng)按順序增加自己所發(fā)送的Message的序列號(hào)。</p&g

60、t;<p>  如果上層需要針對(duì)某個(gè)收到的Message作出回復(fù),則在調(diào)用異步API發(fā)送回復(fù)Message時(shí),需要指定該回復(fù)Message是對(duì)哪個(gè)已經(jīng)收到的Message的回復(fù),異步API據(jù)此維護(hù)回復(fù)Message的“回復(fù)序列號(hào)”,即將回復(fù)Message的回復(fù)序列號(hào)設(shè)定為收到的Message的序列號(hào)。</p><p>  當(dāng)異步傳輸API接收到Message時(shí),為了尋找合適的接收者,它將:</

61、p><p>  1. 依據(jù)“回復(fù)序列號(hào)”查找注冊(cè)的Message,據(jù)此查到ResponseReceiver,傳遞Message;</p><p>  2. 依據(jù)Message的類(lèi)型,查找注冊(cè)的MessageReceiver列表,傳遞Message;</p><p>  3. 依據(jù)Message的類(lèi)型,查找注冊(cè)的MessageSniffer列表,傳遞Message。<

62、;/p><p>  無(wú)法確定Message的接收者時(shí),丟棄該Message。</p><p>  Pad鍵盤(pán)端如果在大量數(shù)據(jù)突發(fā)時(shí)發(fā)送速率過(guò)快,可能:</p><p>  對(duì)藍(lán)牙造成壓力,導(dǎo)致數(shù)據(jù)丟失;</p><p>  對(duì)服務(wù)器造成壓力,導(dǎo)致響應(yīng)變慢。</p><p>  因此,我們需要在Pad鍵盤(pán)端建立流控機(jī)制,抹平

63、突發(fā)的數(shù)據(jù)流。</p><p>  Zc-connector-base包中的FlowControlledXmitter和CreditBasedFlowController建立了一種基于漏桶的流控機(jī)制:</p><p>  每隔一定時(shí)間FlowController產(chǎn)生一個(gè)Credit;</p><p>  FlowController維護(hù)一個(gè)Credit隊(duì)列,存儲(chǔ)產(chǎn)生

64、的Credit;</p><p>  Xmitter需要發(fā)送數(shù)據(jù)時(shí),需要先向FlowController申請(qǐng)一個(gè)Credit,即獲得允許;</p><p>  如果FlowController的允許Xmitter發(fā)送(即Credit隊(duì)列不為空),那么Xmitter將立即將數(shù)據(jù)發(fā)送出去,并且消耗這一個(gè)Credit(即FlowController丟棄一個(gè)Credit);</p>

65、<p>  如果FlowController不允許Xmitter發(fā)送(即Credit隊(duì)列為空),那么Xmitter將數(shù)據(jù)緩存起來(lái),等待FlowController通知其發(fā)送數(shù)據(jù);</p><p>  FlowController的Credit隊(duì)列中每次添加第一個(gè)Credit時(shí)(即隊(duì)列本來(lái)為空,時(shí)間間隔到了時(shí)產(chǎn)生了一個(gè)新的Credit),會(huì)觸發(fā)“允許發(fā)送”事件,這個(gè)事件將通知Xmitter啟動(dòng)數(shù)據(jù)發(fā)送流程

66、。</p><p>  所有的服務(wù)層都提供:</p><p>  1. 保存自身的狀態(tài),并且提供對(duì)狀態(tài)的查詢(xún);</p><p><b>  2. 服務(wù)動(dòng)作;</b></p><p><b>  3. 通知。</b></p><p>  Pad需要向服務(wù)器證實(shí)自己的合法性,并且

67、依據(jù)自己的身份獲得相應(yīng)的數(shù)據(jù)信息。</p><p>  認(rèn)證的目標(biāo)應(yīng)該是服務(wù)器端的連接端子,即服務(wù)器要附加一個(gè)賬號(hào)信息到服務(wù)器端的一個(gè)連接上,通過(guò)該連接發(fā)起的其它請(qǐng)求都具有該賬號(hào)所具有的權(quán)限。</p><p>  登陸/認(rèn)證/授權(quán)機(jī)制在連接建立后開(kāi)始啟動(dòng)。當(dāng)Pad無(wú)法確定自己的身份時(shí),它會(huì)彈出一個(gè)事件,要求用戶(hù)輸入賬號(hào)和密碼。登陸成功后,Pad下次啟動(dòng)時(shí)自動(dòng)會(huì)使用原有的賬號(hào)信息??梢栽赑a

68、d的設(shè)置欄中清除記錄的賬號(hào)信息。</p><p><b>  認(rèn)證授權(quán)服務(wù)提供:</b></p><p>  1. 對(duì)Pad鍵盤(pán)的認(rèn)證,即login函數(shù);包括一個(gè)autoLogin函數(shù),用于自動(dòng)登錄;</p><p>  2.認(rèn)證完成/認(rèn)證超時(shí)事件通知;</p><p>  3. 對(duì)當(dāng)前登陸狀態(tài)的查詢(xún)服務(wù),即認(rèn)證授權(quán)服務(wù)

69、的狀態(tài)查詢(xún),狀態(tài)包括服務(wù)器端臨時(shí)分配的Keyboard信息。</p><p>  如果登錄失敗,則進(jìn)不去主界面。</p><p>  實(shí)際上,Pad登錄的主要目的是向服務(wù)器請(qǐng)求一個(gè)具有對(duì)應(yīng)權(quán)限的臨時(shí)Keyboard。服務(wù)器端的KeyboardUser對(duì)象(即存儲(chǔ)Pad用戶(hù)信息的類(lèi))附加有一個(gè)Keyboard對(duì)象,該Keyboard對(duì)象具有已經(jīng)定義好的設(shè)備權(quán)限。</p><

70、;p>  當(dāng)多個(gè)Pad使用同一個(gè)用戶(hù)名和密碼登陸時(shí),服務(wù)器將為每個(gè)Pad分配一個(gè)具有同樣權(quán)限的臨時(shí)Keyboard。在服務(wù)器端,采用Clone模式實(shí)現(xiàn):每次接納一個(gè)Pad,則克隆一個(gè)對(duì)應(yīng)的KeyboardUser.keyboard,并且為它分配一個(gè)新的keybaord.no,同時(shí)注冊(cè)到系統(tǒng)的數(shù)據(jù)服務(wù)和設(shè)備權(quán)限管理服務(wù)中,使得它可以像普通的鍵盤(pán)一樣被系統(tǒng)其它部分接納。</p><p>  數(shù)據(jù)服務(wù)向上層提供對(duì)

71、本地?cái)?shù)據(jù)庫(kù)的CRUD的操作,尤其是對(duì)同步自服務(wù)器的數(shù)據(jù)進(jìn)行查詢(xún)服務(wù):</p><p>  1. 提供對(duì)本地?cái)?shù)據(jù)庫(kù)的CRUD接口;</p><p>  2. 提供本地?cái)?shù)據(jù)庫(kù)更新事件通知;</p><p>  3. 提供對(duì)本地?cái)?shù)據(jù)狀態(tài)(包括版本)的查詢(xún)操作。</p><p>  KeyPress傳輸服務(wù)顧名思義負(fù)責(zé)傳輸KeyPress,包括:&l

72、t;/p><p>  1. 對(duì)KeyPress編碼,并且通過(guò)異步傳輸API將KeyPress發(fā)送到服務(wù)器;</p><p>  2. 對(duì)KeyPressAck解碼,并且將之廣播給監(jiān)聽(tīng)者。</p><p>  本地?cái)?shù)據(jù)管理主要是將服務(wù)器上的數(shù)據(jù)同步到本地?cái)?shù)據(jù)庫(kù)中,供上層應(yīng)用程序使用。</p><p><b>  a)數(shù)據(jù)同步的內(nèi)容<

73、/b></p><p><b>  包括:</b></p><p>  1. 授權(quán)用戶(hù)所能夠切換或控制的Camera、Matrix、Channel和STB信息;</p><p>  2. 系統(tǒng)配置的收藏組信息,例如每個(gè)派出所就在一個(gè)系統(tǒng)收藏組內(nèi)。</p><p><b>  b)數(shù)據(jù)同步的時(shí)機(jī)</b

74、></p><p>  服務(wù)器將維護(hù)系統(tǒng)內(nèi)部數(shù)據(jù)的版本號(hào),如果Pad上的數(shù)據(jù)庫(kù)版本號(hào)與之不相等,則將觸發(fā)自動(dòng)數(shù)據(jù)同步:</p><p>  Pad鍵盤(pán)使用一個(gè)單獨(dú)的Meta數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)一些信息:</p><p>  上次登錄使用的username和password——如果用戶(hù)上次選擇了“自動(dòng)登錄”,那么下次啟動(dòng)時(shí)將使用這些賬號(hào)信息自動(dòng)登錄;</p>

75、<p>  每個(gè)賬號(hào)都對(duì)應(yīng)一個(gè)設(shè)備數(shù)據(jù)庫(kù),以及該數(shù)據(jù)庫(kù)的數(shù)據(jù)版本號(hào);</p><p>  登陸后,加載該username對(duì)應(yīng)的設(shè)備數(shù)據(jù)庫(kù),并更新該數(shù)據(jù)庫(kù)。這樣,一個(gè)Pad上可以存儲(chǔ)多個(gè)賬號(hào)的設(shè)備數(shù)據(jù)信息,當(dāng)用戶(hù)使用不同的賬號(hào)登陸時(shí),不會(huì)每次都去重新下載數(shù)據(jù)庫(kù);</p><p>  Pad鍵盤(pán)啟動(dòng)時(shí),認(rèn)證完成之后,將向服務(wù)器詢(xún)問(wèn)最新數(shù)據(jù)版本號(hào);</p><p

76、>  如果版本號(hào)低于服務(wù)器,則刪除本地已經(jīng)加載的數(shù)據(jù)庫(kù),重新從服務(wù)器加載,同時(shí)將其信息存入Meta數(shù)據(jù)庫(kù)中備用。</p><p><b>  c)對(duì)等體</b></p><p>  非對(duì)稱(chēng)體,服務(wù)器端的對(duì)等體需要實(shí)現(xiàn)完全不同的功能。</p><p>  服務(wù)器需要依據(jù)Pad鍵盤(pán)的認(rèn)證信息確定發(fā)給Pad鍵盤(pán)什么樣的數(shù)據(jù)。</p>

77、<p>  當(dāng)服務(wù)器上的數(shù)據(jù)發(fā)生版本變化時(shí),將主動(dòng)要求Pad鍵盤(pán)更新本地?cái)?shù)據(jù)。</p><p>  服務(wù)器發(fā)送數(shù)據(jù)時(shí),數(shù)據(jù)量比較多,因此需要在附加電路板的轉(zhuǎn)發(fā)通道上控制數(shù)據(jù)的完整性,防止數(shù)據(jù)丟失。</p><p><b>  Log服務(wù)用于:</b></p><p>  1. 提供記錄本地操作日志的接口;</p>&

78、lt;p>  2. 統(tǒng)計(jì)本地日志;</p><p>  3. 向外提供本地日志統(tǒng)計(jì)信息。</p><p>  3.3軟件的具體實(shí)施方式</p><p>  3.3.1應(yīng)用系統(tǒng)協(xié)調(diào)器</p><p>  協(xié)調(diào)器包括至少2部分功能:</p><p>  1. 保存和維護(hù)應(yīng)用系統(tǒng)的公共內(nèi)部狀態(tài),該項(xiàng)內(nèi)部狀態(tài)裝載了對(duì)整個(gè)

79、Pad鍵盤(pán)軟件系統(tǒng)的描述,這些狀態(tài)在不同的應(yīng)用之間共享,至少包括:</p><p>  a. 當(dāng)前的M、C和CH;</p><p>  2. 協(xié)調(diào)各個(gè)應(yīng)用之間的相互調(diào)用、畫(huà)面切換和配合;</p><p>  3. 處理Pad的硬按鍵,配置、回退。</p><p>  目前,系統(tǒng)內(nèi)部狀態(tài)由KeyboardAuthService的內(nèi)部變量Keyb

80、oard代為存儲(chǔ),在整個(gè)系統(tǒng)范圍內(nèi)都可以隨時(shí)訪(fǎng)問(wèn)內(nèi)部狀態(tài)。</p><p><b>  3.3.2登錄界面</b></p><p><b>  圖3.5 登陸界面</b></p><p>  a. 提供類(lèi)似QQ的登陸界面,其中包括“記住用戶(hù)名和密碼”以及“自動(dòng)登錄”多選框,用戶(hù)選定后,將本次本次登陸使用的用戶(hù)名和密碼存入數(shù)

81、據(jù)庫(kù)中,以便下次自動(dòng)登錄時(shí)使用;</p><p>  b. 如果只選擇“記住用戶(hù)名和密碼”,那么在登陸界面,用戶(hù)可在username選擇下拉框中選擇使用哪個(gè)帳號(hào),而不需要每次都重新輸入;</p><p>  c. 一個(gè)Pad上可能有不同的用戶(hù)使用不同的賬號(hào)登陸,最后一個(gè)選擇了“自動(dòng)登錄”的賬號(hào)將自動(dòng)登錄;</p><p>  d. 對(duì)用戶(hù)名輸入框的修改會(huì)消除密碼框中

82、的內(nèi)容;</p><p>  e. 登陸界面,正在從服務(wù)器取數(shù)據(jù)時(shí),顯示“正在從服務(wù)器加載用戶(hù)數(shù)據(jù)”;</p><p>  f. 登錄界面,如果發(fā)現(xiàn)連接沒(méi)有建立,應(yīng)該使用popup提示框提示用戶(hù),“無(wú)法連接到服務(wù)器,請(qǐng)稍后再?lài)L試登錄”。</p><p>  g.登錄界面,點(diǎn)擊“登錄”后,隱藏系統(tǒng)軟鍵盤(pán)。</p><p><b>  

83、3.3.3軟鍵盤(pán)</b></p><p><b>  圖3.6 鍵盤(pán)UI</b></p><p>  1. 每一個(gè)按鍵都將觸發(fā)相應(yīng)的事件,這些事件的處理函數(shù)需要:</p><p>  a. 向認(rèn)證授權(quán)服務(wù)詢(xún)問(wèn)確認(rèn)Pad鍵盤(pán)已經(jīng)登錄并且仍然有效;</p><p>  b. 將按鍵名傳遞給KeyPress傳輸服務(wù)

84、,觸發(fā)KeyPress傳輸過(guò)程;</p><p>  c. 更新內(nèi)部狀態(tài)。</p><p>  2.F1~F3按鈕用于功能自定義,將為現(xiàn)有的一些功能生成快捷入口,用戶(hù)可以通過(guò)F1~F3鍵進(jìn)入這些快捷入口。</p><p><b>  內(nèi)部狀態(tài):</b></p><p>  1. UI顯示的的M、C和CH;</p&g

85、t;<p>  2. 搖桿快慢模式;</p><p><b>  接收的事件包括:</b></p><p>  1. 收到KeyPressAck;</p><p>  2. 收到應(yīng)用系統(tǒng)公共內(nèi)部狀態(tài)更新通知;</p><p>  3. 畫(huà)面切換通知;</p><p>  3.3.4

86、攝像機(jī)陣列</p><p>  圖3.7 攝像機(jī)陣列</p><p>  1. C+/C-和P+/P-處理方式與軟鍵盤(pán)按鍵處理方式相同;</p><p>  2. 攝像機(jī)編號(hào)按鈕:</p><p>  a. 能夠顯示在這里的攝像機(jī)編號(hào)都是已經(jīng)經(jīng)過(guò)認(rèn)證的,不需要再進(jìn)行權(quán)限驗(yàn)證;</p><p>  b. 點(diǎn)擊時(shí),自動(dòng)取當(dāng)

87、前M值,同時(shí)從Button的關(guān)聯(lián)數(shù)據(jù)中取出C值,嘗試切換;</p><p>  c. 在嘗試切換過(guò)程中,當(dāng)前的Camera按鈕變成背景淺橘紅色;上一個(gè)Camera,即當(dāng)前正在顯示的Camera按鈕顏色不變;</p><p>  d. 如果切換成功,背景變成橘紅色,上一個(gè)Camera變成普通灰色;再次點(diǎn)擊時(shí),出現(xiàn)快捷云臺(tái)控制面板;</p><p>  e. 如果切換失

88、敗,變回普通灰色;</p><p>  f. 長(zhǎng)按攝像機(jī)按鈕,彈出菜單,包括“添加到組”,如下圖;</p><p>  圖3.8 攝像機(jī)陣列添加到組</p><p>  g. 攝像機(jī)陣列添加到收藏時(shí),字體變大;</p><p>  h. 添加到組菜單項(xiàng)中包括用戶(hù)自定義的組,用戶(hù)可選擇一個(gè)加入。</p><p>  3.

89、 右側(cè)的快捷過(guò)濾按鈕:</p><p>  a. 點(diǎn)擊時(shí),在中上部的快速查找欄中填入相應(yīng)的數(shù)字,同時(shí)過(guò)濾攝像機(jī)按鈕;</p><p>  b. 點(diǎn)擊高清/標(biāo)清/全部時(shí),將兩個(gè)條件疊加起來(lái)過(guò)濾;</p><p>  c. 中部快速查找欄右側(cè)的X能夠清空先前輸入的快速過(guò)濾條件。</p><p>  4. 攝像機(jī)陣列界面上的每個(gè)按鈕,除了其編號(hào)之外

90、,還需要顯示其他信息,獲得這些信息的方法是:首先嘗試獲得camera.name,如果為空則嘗試獲得camera.location,如果還是為空則嘗試獲得 camera.owner。</p><p>  5. 攝像機(jī)陣列界面?zhèn)让妗案咔濉焙汀皹?biāo)清”過(guò)濾按鈕功能。這兩個(gè)按鈕所代表的過(guò)濾條件和下面的數(shù)字所代表的過(guò)濾條件是疊加的,即如果按“高清”和“98”,顯示的是包含98數(shù)字的所有高清攝像機(jī)。另外,“高清”和“標(biāo)清”按鈕

91、按下去之后不會(huì)立即彈起來(lái),而是變成橘色,表示該項(xiàng)過(guò)濾條件是有效的;再次按下時(shí)恢復(fù)成黑色,表示該項(xiàng)過(guò)濾條件無(wú)效?!案咔濉焙汀皹?biāo)清”兩個(gè)同時(shí)只有一個(gè)能夠被按下,即當(dāng)一個(gè)被按時(shí),另一個(gè)需要馬上彈起來(lái)恢復(fù)到黑色,并且清除其過(guò)濾條件。</p><p>  6. 攝像機(jī)陣列頁(yè)面,點(diǎn)擊攝像機(jī)按鈕向服務(wù)器發(fā)送切換消息,如果服務(wù)器返回消息表明沒(méi)有正確切換(即返回的camera不是剛才點(diǎn)擊的camera),那么清除剛才點(diǎn)擊的攝像機(jī)按

92、鈕,高亮顯示返回的camera的那個(gè)按鈕。</p><p><b>  內(nèi)部狀態(tài):</b></p><p>  1. UI顯示的的當(dāng)前的M、C和CH;</p><p>  2. 搖桿快慢模式;</p><p>  3. 目前選中的攝像機(jī)按鈕;</p><p>  4. 當(dāng)前的快速查找欄狀態(tài)——高清

93、/標(biāo)清/全部,過(guò)濾數(shù)字;</p><p>  5. 當(dāng)前顯示的組或者預(yù)案。</p><p><b>  接收的事件包括:</b></p><p>  1. 收到KeyPressAck;</p><p>  2. 收到應(yīng)用系統(tǒng)公共內(nèi)部狀態(tài)更新通知;</p><p>  3. 畫(huà)面切換通知;</

94、p><p><b>  3.3.5 收藏組</b></p><p><b>  收藏組分為兩類(lèi):</b></p><p>  1. CameraGroup,是一個(gè)Camera集;</p><p>  2. ChannelGroup,是一個(gè)Channel集。</p><p>  同

95、時(shí),收藏組的來(lái)源也分為兩部分:</p><p>  1. 來(lái)自于服務(wù)器的賬戶(hù)公用的組,其邊框和文字是藍(lán)色;</p><p>  2. 用戶(hù)自定義的私有的組。</p><p>  當(dāng)Pad鍵盤(pán)加載這收藏組時(shí),需要:</p><p>  1. 從本地?cái)?shù)據(jù)庫(kù)中讀取用戶(hù)自定義的組;</p><p>  2. 從服務(wù)器獲取公用收

96、藏組。</p><p>  公用收藏組并非全部都是公用的,不同賬號(hào)能夠訪(fǎng)問(wèn)的收藏組不一樣,這個(gè)權(quán)限設(shè)置應(yīng)當(dāng)在KeyboardUser即賬號(hào)中存儲(chǔ)。</p><p><b>  圖3.9 組陣列</b></p><p>  1. C+/C-和P+/P-處理方式與軟鍵盤(pán)按鍵處理方式相同;</p><p><b> 

97、 2. 組按鈕:</b></p><p>  a. 顯示組名和組內(nèi)攝像機(jī)的概況;</p><p>  b. 點(diǎn)擊時(shí),切換到攝像機(jī)陣列;</p><p>  c. 選中的收藏組,背景橘紅色;</p><p>  d. 長(zhǎng)按2秒,彈出組編輯菜單;</p><p>  e. 空的收藏組長(zhǎng)按不出現(xiàn)任何修改框;<

98、;/p><p>  f. 系統(tǒng)組為空時(shí),不再顯示在屏幕上。</p><p><b>  3. 組添加按鈕:</b></p><p>  a. 點(diǎn)擊時(shí),彈出空白組添加類(lèi)型如下圖</p><p><b>  圖3.10 添加組</b></p><p>  b.選擇組添加類(lèi)型后可根據(jù)所

99、選類(lèi)型添加攝像機(jī)或頻道如下圖</p><p>  圖3.11 組編輯彈出菜單</p><p>  1. UI顯示的的當(dāng)前的M、C和CH;</p><p>  2. 當(dāng)前選中的組;</p><p><b>  接收的事件包括:</b></p><p>  1. 收到應(yīng)用系統(tǒng)公共內(nèi)部狀態(tài)更新通知;&l

100、t;/p><p>  2. 畫(huà)面切換通知;</p><p><b>  3.3.6 巡航</b></p><p>  圖3.12 選擇巡航組菜單</p><p>  點(diǎn)擊“巡航”按鈕,跳到組頁(yè)面并彈出選擇巡航組提示。</p><p>  點(diǎn)擊要巡航的組,程序自動(dòng)從組的第一個(gè)位置開(kāi)始巡航,巡航時(shí),會(huì)依次

101、切換攝像機(jī)畫(huà)面。</p><p>  系統(tǒng)默認(rèn)巡航中每個(gè)攝像機(jī)畫(huà)面停留5s,也可以在設(shè)置界面設(shè)置攝像機(jī)畫(huà)面停留時(shí)間。</p><p><b>  3.3.7 配置</b></p><p>  圖3.13 設(shè)置界面</p><p>  點(diǎn)擊WIFI鏈接模式開(kāi)關(guān),使用WIFI鏈接系統(tǒng)監(jiān)控服務(wù)器實(shí)現(xiàn)鍵盤(pán)控制功能;</p&

102、gt;<p>  點(diǎn)擊藍(lán)牙鏈接模式開(kāi)關(guān),使用藍(lán)牙連接到機(jī)頂盒的附加電路板上的藍(lán)牙接收模塊,通過(guò)藍(lán)牙信號(hào)轉(zhuǎn)換模塊將請(qǐng)求信號(hào)通過(guò)網(wǎng)口鏈接到視頻監(jiān)控服務(wù)器實(shí)現(xiàn)鍵盤(pán)控制功能;</p><p>  啟動(dòng)時(shí),依據(jù)配置信息在ConnectorLayer調(diào)用相應(yīng)的連接建立函數(shù);</p><p>  當(dāng)用戶(hù)所選的網(wǎng)絡(luò)不存在時(shí)(wifi沒(méi)有接入或者藍(lán)牙沒(méi)有配對(duì)時(shí)),跳到系統(tǒng)對(duì)應(yīng)的配置頁(yè)面,而不是

103、直接退出。</p><p><b>  結(jié)論</b></p><p>  本系統(tǒng)是一套用于“平安城市”視頻監(jiān)控的綜合調(diào)度平臺(tái),目標(biāo)是將“平安城市”中所有的視頻矩陣——無(wú)論是大型矩陣,還是社區(qū)和單位的小型矩陣——全部統(tǒng)合到一個(gè)平臺(tái)上使用和管理,使得用戶(hù)能夠使用一個(gè)鍵盤(pán)將城市中任何一臺(tái)攝像機(jī)的圖像顯示在任何一塊監(jiān)控屏幕上。</p><p>  本產(chǎn)

104、品率先將先進(jìn)的物聯(lián)網(wǎng)技術(shù)應(yīng)用于“平安城市”視頻監(jiān)控領(lǐng)域,在國(guó)內(nèi)尚屬首創(chuàng)。本系統(tǒng)可以將城市中所有現(xiàn)存的攝像機(jī)進(jìn)行統(tǒng)一使用和管理,使得每一個(gè)角落都能被實(shí)時(shí)監(jiān)控到,在預(yù)防、發(fā)現(xiàn)、控制和打擊違法犯罪、提供破案線(xiàn)索、固定違法犯罪證據(jù)等方面發(fā)揮著人防、物防所不可替代的重要作用,真正實(shí)現(xiàn)“平安城市”。</p><p>  它不僅可以滿(mǎn)足治安管理,城市管理,應(yīng)急指揮等的需求,而且還能兼顧災(zāi)難事故與交警,安全生產(chǎn)監(jiān)控,環(huán)境等方面對(duì)

105、視頻圖像的需求,對(duì)于提升城市可視化管理水平和政府應(yīng)急處置能力,建立社會(huì)治安防控體系具有十分重大的意義。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 陳靜,《移動(dòng)辦公與管理》,第一版,對(duì)外經(jīng)貿(mào)大學(xué)出版社,2012-04出版;</p><p>  [2]羅振候王浩棟,《輕松實(shí)現(xiàn)移動(dòng)辦公》,第一版,上??茖W(xué)普及出版社,

106、2009.01.01;</p><p>  [3]Lauren Darcey,Shane Conder,《Android移動(dòng)應(yīng)用開(kāi)發(fā)》,第三版卷Ⅱ,人民郵電出版社2012-10出版;</p><p>  [4]李寧,《Android開(kāi)發(fā)完全講義,第二版,水利水電出版社,2012-04-01出版;</p><p>  [5]鄧凡平,《深入理解Android》,第一版卷

107、Ⅰ,機(jī)械工業(yè)出版社,2011-09-01出版;</p><p>  [6]牛溫佳,《移動(dòng)網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)》,第一版,電子工業(yè)出版社,2013-01-01出版;</p><p>  [7]雷玉堂,《安防視頻監(jiān)控實(shí)用技術(shù)》,第一版,電子工業(yè)出版社,2012-01-01出版;</p><p><b>  致謝</b></p><p

108、>  歷時(shí)將近兩個(gè)月的時(shí)間終于將這篇論文寫(xiě)完,在論文的寫(xiě)作過(guò)程中遇到了無(wú)數(shù)的困難和障礙,都在同學(xué)和老師的幫助下度過(guò)了。尤其要強(qiáng)烈感謝我的論文指導(dǎo)老師—王克儉老師,她對(duì)我進(jìn)行了無(wú)私的指導(dǎo)和幫助,不厭其煩的幫助進(jìn)行論文的修改和改進(jìn)。另外,在北京澤創(chuàng)天地技術(shù)有限公司實(shí)習(xí)期間,各位同事也給了我很多方面的支持與幫助。在此向幫助和指導(dǎo)過(guò)我的各位老師及同事表示最衷心的感謝! 感謝這篇論文所涉及到的各位學(xué)者。本文引用了數(shù)位學(xué)者的研究文獻(xiàn),

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論