国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種多平臺(tái)可移植的數(shù)字對講機(jī)顯控模塊的實(shí)現(xiàn)方法

2024-12-31 00:00:00白婭娟
無線互聯(lián)科技 2024年20期

摘要:數(shù)字對講機(jī)是警用和民用數(shù)字集群通信系統(tǒng)終端類設(shè)備,可為公安消防、城市駐軍、邊海防部隊(duì)等在執(zhí)勤巡邏、訓(xùn)練演習(xí)、反恐維穩(wěn)時(shí)提供語音、短信息和數(shù)據(jù)等指揮調(diào)度通信保障。隨著對講機(jī)產(chǎn)品的更新升級(jí),軟件、硬件迭代,支持單一平臺(tái)系統(tǒng)的顯控模塊無法滿足多平臺(tái)的開發(fā)升級(jí)。文章詳細(xì)介紹了一種多平臺(tái)可移植的數(shù)字對講機(jī)顯控模塊的實(shí)現(xiàn)方法,以為開發(fā)者提供便利。

關(guān)鍵詞:顯控模塊;多平臺(tái);可移植;數(shù)字對講機(jī)

中圖分類號(hào):TN319 "文獻(xiàn)標(biāo)志碼:A

0 引言

數(shù)字對講機(jī)系統(tǒng)是安防系統(tǒng)的重要組成部分,具備全呼、組呼、個(gè)呼、緊急呼叫等功能,在日常安保、組織協(xié)調(diào)及突發(fā)事件處置中具有不可替代的作用[1]。特別是當(dāng)突發(fā)事件發(fā)生時(shí),使用無線對講系統(tǒng)可以迅速實(shí)現(xiàn)相關(guān)人員之間的應(yīng)急指揮、人員調(diào)度。

數(shù)字對講機(jī)(手持終端)軟件被劃分為精簡指令集(Advanced RISC Machine,ARM)端控制部件和數(shù)字信號(hào)處理端(Digital Signal Processing,DSP)算法部件2個(gè)部分。其中,ARM端控制部件包括ARM端平臺(tái)、主機(jī)、顯控軟件和數(shù)字集群協(xié)議棧的媒體接入控制層(Unit Medium Access Control Layer,UMAC),DSP端算法部件包括DSP端平臺(tái)和數(shù)字集群協(xié)議棧的UMAC[2]。

數(shù)字對講機(jī)系統(tǒng)軟件設(shè)計(jì)如圖1所示,其分為平臺(tái)、主機(jī)、顯控和數(shù)字集群協(xié)議棧4個(gè)模塊。各模塊的具體實(shí)現(xiàn)功能定義如下:

(1) 平臺(tái)模塊主要實(shí)現(xiàn)了硬件平臺(tái)的驅(qū)動(dòng)控制和各模塊間的接口通信功能;

(2) 主機(jī)模塊主要實(shí)現(xiàn)了工廠模式下程序下載和文件系統(tǒng)功能;

(3) 顯控模塊主要實(shí)現(xiàn)了顯示/鍵盤等人機(jī)接口響應(yīng)、數(shù)字集群和脫網(wǎng)直通控制、寫頻處理、自檢和定位等功能;

(4) 數(shù)字集群協(xié)議棧模塊主要實(shí)現(xiàn)了數(shù)字集群信令控制和所有集群業(yè)務(wù)功能。

目前,常見的數(shù)字對講機(jī)基本上都是基于單一平臺(tái)開發(fā)實(shí)現(xiàn)的,這種實(shí)現(xiàn)方式具有很大的弊端,即一旦系統(tǒng)或者芯片發(fā)生改變,就無法進(jìn)行快速的移植和迭代。在現(xiàn)實(shí)中,研發(fā)團(tuán)隊(duì)須要花費(fèi)較高的人力成本進(jìn)行重新開發(fā)和設(shè)計(jì),不能快速地滿足用戶需求。隨著數(shù)字對講機(jī)產(chǎn)品的更新升級(jí)和軟件、硬件迭代,支持單一平臺(tái)系統(tǒng)的顯控模塊無法滿足多平臺(tái)系統(tǒng)的開發(fā)升級(jí)。因此,本文設(shè)計(jì)了一種多平臺(tái)可移植的數(shù)字對講機(jī)顯控模塊實(shí)現(xiàn)方法并將其用于項(xiàng)目實(shí)踐。實(shí)踐結(jié)果表明,所提方法能夠?yàn)殚_發(fā)者的研究提供借鑒和參考。

1 顯控模塊設(shè)計(jì)實(shí)現(xiàn)

在多平臺(tái)可移植的無線對講機(jī)系統(tǒng)中,顯控模塊的設(shè)計(jì)實(shí)現(xiàn)過程主要涉及3個(gè)部分,包括GUI棧設(shè)計(jì)、界面設(shè)計(jì)和任務(wù)設(shè)計(jì)。數(shù)字對講機(jī)軟件實(shí)現(xiàn)的過程主要分為物理層和平臺(tái),其中物理層包含協(xié)議棧,具有呼叫功能、補(bǔ)充功能、優(yōu)先級(jí)處理功能、用戶移動(dòng)性、生存性、保密功能、支持調(diào)度臺(tái)功能、短信功能。顯控是獨(dú)立于平臺(tái)和協(xié)議棧的模塊,主要包含信息提示、按鍵與菜單控制、一般手機(jī)功能、脫網(wǎng)直通、數(shù)據(jù)傳輸功能、設(shè)備自檢功能。數(shù)字對講機(jī)軟件功能,如圖2所示。

該研究的顯控單元軟件結(jié)構(gòu)包括驅(qū)動(dòng)接口、操作系統(tǒng)、調(diào)度顯示3個(gè)部分,顯控軟件運(yùn)行依賴于操作系統(tǒng)提供的應(yīng)用程序接口庫(Application Programming Interface,API),如圖3所示。

該研究設(shè)計(jì)的驅(qū)動(dòng)接口包括顯示器驅(qū)動(dòng)、串口驅(qū)動(dòng)、存儲(chǔ)單元(Flash)驅(qū)動(dòng)、輸入法實(shí)現(xiàn)。操作系統(tǒng)提供了API函數(shù),包括信號(hào)量、定時(shí)器、任務(wù)、隊(duì)列等,方便開發(fā)者有效地利用中央處理器資源(Central Processing Unit,CPU),簡化設(shè)計(jì),縮短開發(fā)時(shí)間,更好地保證了系統(tǒng)的實(shí)時(shí)性和可靠性,實(shí)現(xiàn)多任務(wù)的開發(fā)[3]。

在該研究中,顯控軟件共啟動(dòng)3項(xiàng)任務(wù)。第1項(xiàng)任務(wù)用于鍵盤掃描,掃描鍵盤通過探測電壓值來確定有無按下和按下哪個(gè)按鍵,主要包括短按鍵、長按鍵和組合按鍵,識(shí)別到的按鍵送到界面消息隊(duì)列。第2項(xiàng)任務(wù)用于監(jiān)控串口,狀態(tài)機(jī)實(shí)現(xiàn)串行線路協(xié)議(Serial Line Internet Protocol,SLIP)的解封裝,顯控軟件將綜合業(yè)務(wù)發(fā)送來的數(shù)據(jù)賦給對應(yīng)的參數(shù)和結(jié)構(gòu)體,最終實(shí)現(xiàn)數(shù)據(jù)的刷新。與此同時(shí),狀態(tài)機(jī)還實(shí)現(xiàn)SLIP的封裝,顯控軟件對待發(fā)送給綜合業(yè)務(wù)的數(shù)據(jù)進(jìn)行SLIP的封裝以及內(nèi)容的轉(zhuǎn)義[4],完成之后,將封裝好的數(shù)據(jù)通過串口傳輸給綜合業(yè)務(wù)。第3項(xiàng)任務(wù)用于處理界面的消息隊(duì)列,顯控軟件通過收到的消息實(shí)現(xiàn)繪制和調(diào)用界面,實(shí)現(xiàn)相應(yīng)界面下的按鍵響應(yīng)。本文通過對3項(xiàng)任務(wù)的優(yōu)先級(jí)和堆棧大小等參數(shù)進(jìn)行配置,合理調(diào)度CPU,實(shí)現(xiàn)友好的人機(jī)交互。顯控軟件執(zhí)行方案如圖4所示。

1.1 GUI棧設(shè)計(jì)

1.1.1 界面抽象

本文根據(jù)不同界面的結(jié)構(gòu)和行為,通過顯控軟件對界面進(jìn)行分類,同類界面必須具有相似的界面結(jié)構(gòu)和可控行為。根據(jù)這些結(jié)構(gòu)和行為,開發(fā)者為每類界面編寫通用的數(shù)據(jù)結(jié)構(gòu),同時(shí),每類界面必須配有默認(rèn)的顯示函數(shù)和消息處理函數(shù),具體如表1所示。

通常把抽象出來的界面稱為界面模板或類,此時(shí)數(shù)據(jù)結(jié)構(gòu)中的成員變量被稱為屬性,顯示函數(shù)和消息處理函數(shù)被稱為方法[5]。

依據(jù)該研究設(shè)計(jì),當(dāng)設(shè)計(jì)師須要?jiǎng)?chuàng)建一個(gè)具體界面(對象)時(shí),僅從對應(yīng)界面類的數(shù)據(jù)結(jié)構(gòu)生成即可;若有特殊應(yīng)用,則可重寫顯示函數(shù)和消息處理函數(shù)。例如:當(dāng)具體界面對某個(gè)消息的處理方式與默認(rèn)處理方式不同時(shí),設(shè)計(jì)師可以通過重寫消息處理函數(shù)來攔截對應(yīng)的消息并處理;而其他的消息則需要再次調(diào)用默認(rèn)處理函數(shù)進(jìn)行處理。

1.1.2 界面堆棧

為了簡化界面的交替操作,本文使用一個(gè)棧來存儲(chǔ)運(yùn)行中的界面。棧頂所存儲(chǔ)的界面對應(yīng)當(dāng)前顯示屏所顯示的界面。界面的橫向交替被抽象為棧頂界面的替換,界面的縱向交替被抽象為入棧和出棧操作[6]。

當(dāng)有消息到來時(shí),在系統(tǒng)處理與界面無關(guān)的消息之后,剩余的消息可以直接送給棧頂界面處理。界面堆棧是一個(gè)用于存儲(chǔ)界面指針的棧,界面位于其中的棧位置可表明其對應(yīng)于顯示屏中各界面的層疊關(guān)系。

1.1.3 界面消息隊(duì)列

消息隊(duì)列主要包含發(fā)送消息和接收消息2部分操作。須要注意,在該研究中,收發(fā)消息的操作必須進(jìn)行互斥保護(hù),這是因?yàn)橄碜圆煌蝿?wù),若沒有防重入處理則導(dǎo)致消息隊(duì)列紊亂。另外,當(dāng)用戶可以添加或者刪除預(yù)定義消息時(shí),應(yīng)注意用戶定義的消息值不能與已有的消息值和SLIP幀的序列號(hào)值重復(fù)。

1.1.4 顯存

虛擬顯示的本質(zhì)是一塊連續(xù)的內(nèi)存,不同之處在于這塊內(nèi)存的操作被封裝成特殊接口,該研究可以像操作顯示屏像素點(diǎn)一樣操作這塊內(nèi)存。這樣,每次的顯示屏數(shù)據(jù)更新將優(yōu)先在這塊內(nèi)存中完成,該研究中的顯控軟件在更新數(shù)據(jù)的過程中會(huì)計(jì)算出數(shù)據(jù)更新的區(qū)域。當(dāng)所有更新完成后,這塊內(nèi)存中被更改的數(shù)據(jù)區(qū)域就會(huì)被刷新到真實(shí)的顯示屏中。

對于用戶而言,所提設(shè)計(jì)方案可以完全屏蔽刷新的中間數(shù)據(jù)過程,用戶看到的永遠(yuǎn)是最終的界面效果,而無法看到過渡界面,界面刷新過程非常流暢,不會(huì)閃爍。同時(shí),用戶減少了顯示屏的操作,程序運(yùn)行的效率更高。

本文通過一個(gè)二維數(shù)組來定義顯存,具有如下2種不同的定義方式:行地址(y)作為數(shù)組第1索引,列地址(x)作為數(shù)組第2索引;列地址(x)作為數(shù)組第1索引,行地址(y)作為數(shù)組第2索引。

結(jié)合所使用的顯示屏像素與輸入數(shù)據(jù)的對應(yīng)關(guān)系,即每字節(jié)數(shù)據(jù)映射為顯示屏豎向8個(gè)像素,在該研究中選取第1種方式,這樣就可以保證每行點(diǎn)陣數(shù)據(jù)在內(nèi)存中是連續(xù)的,字節(jié)的最低有效位(Least Significant Bit,LSB)對應(yīng)低地址像素點(diǎn)。

1.2 界面設(shè)計(jì)

1.2.1 應(yīng)用界面

實(shí)現(xiàn)窗口主要用于實(shí)現(xiàn)消息處理函數(shù),顯控軟件通過對消息進(jìn)行分支判斷并做出相應(yīng)的處理或者響應(yīng)。在一般情況下,該研究中自定義的消息函數(shù)若沒有對消息進(jìn)行處理,則應(yīng)調(diào)用該模板對應(yīng)的默認(rèn)消息處理函數(shù)[7-8]。在某些特殊需求下,系統(tǒng)可以不調(diào)用默認(rèn)消息處理函數(shù)。還有一些情況下,系統(tǒng)無須自定義消息處理函數(shù),可以直接使用默認(rèn)消息處理函數(shù)在界面數(shù)據(jù)結(jié)構(gòu)中進(jìn)行注冊[9]。

該研究的界面數(shù)據(jù)結(jié)構(gòu)包含該界面所需的所有屬性和方法。界面數(shù)據(jù)結(jié)構(gòu)指針被送入顯示函數(shù)后,該指針會(huì)被壓入界面堆棧,此時(shí),會(huì)有4個(gè)消息被發(fā)送到界面消息隊(duì)列。

◆WIN_INIT

◆ WIN_BEFORE_PAINT

◆ WIN_UPON_PAINT

◆ WIN_AFTER_PAINT

WIN_INIT只會(huì)在界面被壓入堆棧時(shí)出現(xiàn)一次,用戶可以利用該消息來初始化界面。WIN_BEFORE_PAINT和WIN_AFTER_PAINT會(huì)在界面每次變?yōu)轫攲咏缑鏁r(shí)出現(xiàn)。WIN_BEFORE_PAINT出現(xiàn)在界面繪制前,WIN_AFTER_PAINT出現(xiàn)在界面繪制后,用戶可以根據(jù)需要調(diào)用這2個(gè)消息。

1.2.2 界面交互邏輯

本文以一個(gè)設(shè)置過程為例,說明交互過程中的數(shù)據(jù)交換以及界面流轉(zhuǎn)邏輯。圖5展示了一個(gè)完整的界面交互過程。

在用戶輸入/選擇界面,用戶填寫或選擇數(shù)據(jù),然后按下確認(rèn)鍵。此時(shí),系統(tǒng)會(huì)發(fā)送一個(gè)對應(yīng)的SLIP幀,同時(shí),界面將切換到“設(shè)置中”。在正常情況下,綜合業(yè)務(wù)單元會(huì)收到顯控發(fā)送的SLIP幀,綜合業(yè)務(wù)單元在解析SLIP幀后執(zhí)行一些操作,以SLIP幀的形式將數(shù)據(jù)返回至顯控。同時(shí),顯控在“設(shè)置中”界面會(huì)啟動(dòng)10 s的超時(shí)定時(shí)器。在規(guī)定的時(shí)間內(nèi),若顯控軟件沒有接收到來自綜合業(yè)務(wù)單元的回復(fù),則系統(tǒng)會(huì)將界面切換到“系統(tǒng)超時(shí)”提示界面。若在規(guī)定時(shí)間內(nèi)顯控軟件收到綜合業(yè)務(wù)單元的回復(fù),則超時(shí)定時(shí)器將會(huì)被關(guān)閉。若綜合業(yè)務(wù)單元能夠回復(fù)成功應(yīng)答(Acknowledge,ACK),則表明設(shè)置成功,界面提示“設(shè)置成功”并延時(shí)返回設(shè)置菜單界面。同理,若綜合業(yè)務(wù)單元能夠返回否定應(yīng)答(Negative AcKnowledgment,NACK),則界面提示“設(shè)置失敗”。在更復(fù)雜的情況下,綜合業(yè)務(wù)單元可能回復(fù)更為復(fù)雜的數(shù)據(jù)。

1.3 任務(wù)設(shè)計(jì)

1.3.1 主任務(wù)

該研究中的主任務(wù)包含消息處理和刷新界面2個(gè)主要功能。

1.3.2 鍵盤掃描任務(wù)

在該研究中,鍵盤掃描任務(wù)的功能是判斷有無按鍵按下以及按下哪個(gè)按鍵(長按鍵還是短按鍵),將用戶按鍵送入界面消息隊(duì)列。

1.3.3 SLIP幀接收任務(wù)

該研究使用消息隊(duì)列進(jìn)行SLIP幀的傳輸,若任務(wù)接收一幀完整的數(shù)據(jù),則可進(jìn)行協(xié)議解析;解析后可能須要將協(xié)議中的一些數(shù)據(jù)保存起來;最后觸發(fā)界面消息以通知界面[10-11]。

2 多平臺(tái)可移植

一般的數(shù)字對講機(jī)基于QT、安卓、ucGUI等圖形化操作系統(tǒng),芯片一旦改變,設(shè)計(jì)師就須要移植系統(tǒng)龐大的庫函數(shù),搭建編譯環(huán)境來適配當(dāng)前的新平臺(tái)。此項(xiàng)工作尤為煩瑣,只有在平臺(tái)搭建好的情況下,設(shè)計(jì)師才可根據(jù)需要修改界面。

該研究設(shè)計(jì)的數(shù)字對講機(jī)顯控軟件支持多種平臺(tái),例如Windows、VxWorks、Linux、翼輝、單片機(jī)等。其中,該軟件支持在Windows平臺(tái)的cmd或者RadioVSC軟件中模擬界面效果進(jìn)行調(diào)試。在實(shí)際應(yīng)用中,僅根據(jù)不同平臺(tái)調(diào)用入口函數(shù)啟動(dòng)顯控程序,無須移植庫函數(shù),代碼改動(dòng)少,大幅提升了移植效率。

其中,啟動(dòng)函數(shù)會(huì)初始化顯控,然后根據(jù)不同平臺(tái)創(chuàng)建顯控所需要的主線程、SLIP解析線程、鍵盤掃描線程。當(dāng)這3個(gè)線程用于系統(tǒng)啟動(dòng)后,主線程將會(huì)啟動(dòng)顯控的第一個(gè)界面,系統(tǒng)隨之進(jìn)入消息等待狀態(tài),當(dāng)系統(tǒng)接收消息時(shí),及時(shí)進(jìn)行消息處理以及界面刷新等操作。

SLIP解析線程主要進(jìn)行SLIP的接收與解碼工作,解碼的數(shù)據(jù)將用于更新顯控系統(tǒng)的參數(shù),然后該線程會(huì)生成對應(yīng)的消息通知界面。

按鍵掃描線程對鍵盤進(jìn)行掃描,將按鍵以消息的形式傳遞給界面,每個(gè)界面都有其各自的消息處理函數(shù)以處理這些不同的消息。

3 結(jié)語

數(shù)字對講機(jī)系統(tǒng)的通用和方便移植是產(chǎn)品升級(jí)迭代中的重要環(huán)節(jié),該研究設(shè)計(jì)了一種多平臺(tái)通用可移植的顯控模塊實(shí)現(xiàn)方法,該顯控模塊已在實(shí)際項(xiàng)目中被廣泛應(yīng)用。通過對相關(guān)項(xiàng)目的對比開發(fā)量和可移植性進(jìn)行驗(yàn)證,表明此方法是可行的、方便移植的,其有助于數(shù)字對講機(jī)的產(chǎn)品模塊化開發(fā),提高了設(shè)計(jì)師的開發(fā)效率,節(jié)約了開發(fā)時(shí)間。

參考文獻(xiàn)

[1]李俠宇.國內(nèi)數(shù)字集群的發(fā)展和技術(shù)比較[J].移動(dòng)通信,2007(2):17-20.

[2]鄭強(qiáng).DMR數(shù)字對講機(jī)高層協(xié)議的研究與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2013.

[3]羅超,彭玉濤.計(jì)算機(jī)軟件測試方法的研究分析[J].長江信息通信,2023(2):83-85.

[4]王馭,夏海斌,梁鴻斌.一種基于共識(shí)機(jī)制的數(shù)字集群終端防失控方案研究[J].信息安全與通信保密,2022(6):123-134.

[5]強(qiáng)云霞.淺談軟件項(xiàng)目開發(fā)過程中的需求分析[J].科學(xué)與信息化,2017(32):12-36.

[6]YUANG M,LI H M,YAO G Z. A research on developing digital trunking emergency communication of Jiangsu Province[J]. Journal of Nanjing University of Posts amp; Telecommunications,2009(15):16-32.

[7]熊永平.基于SpringBoot框架應(yīng)用開發(fā)技術(shù)的分析與研究[J].電腦知識(shí)與技術(shù),2019(36):76-77.

[8]周華,孫新平,胡盛,等.軟件設(shè)計(jì)與體系結(jié)構(gòu)[M].北京:科學(xué)出版社,2012.

[9]齊治昌,譚慶平,寧洪.軟件工程(第二版)[M].北京:高等教育出版社,2004.

[10]BLOOM L M,PEDLER P J,WRAGG G E. Implementation of enhanced areal interpolation using MapInfo[J]. Computers amp; Geosciences,1996(5):459-466.

[11]BEIROUMI M Z,IVERSEN V B. Recovery Method Based on Communicating Extended Finite State Machine (CEFSM)for Mobile Communications:Proceedings of the 10th IEEE International Conference on Engineering of Complex Computer Systems,June 16-20,2005[C]. Shanghai:IEEE,2005.

(編輯 王永超編輯)

Implementation method of multi-platform portable digital walkie-talkie

display and control module

BAI" Yajuan

(Guangdong University of Foreign Studies, Guangzhou 510420, China)

Abstract: The digital walkie-talkie is a terminal equipment of the police and civilian digital trunking communication system, which can provide voice, short message and data and other command and dispatch communication support for public security and fire protection, urban garrisons, border and coastal defense troops during patrols, training exercises, counter-terrorism and stability maintenance. With the product update and upgrading, the iteration of software and hardware, the display and control module that supports a single platform system cannot meet the development and upgrading of multiple platforms. This paper introduces in detail the implementation method of a multi-platform portable digital walkie-talkie display and control module,which provides convenience for developers.

Key words: display and control module; multi-platform port; portable; digital walkie-talkie

大兴区| 齐河县| 海盐县| 云浮市| 新田县| 象州县| 漳平市| 古浪县| 当阳市| 阿瓦提县| 韶关市| 建平县| 宜良县| 新巴尔虎左旗| 马公市| 绥棱县| 乐安县| 会东县| 民乐县| 普格县| 建水县| 长垣县| 重庆市| 乌鲁木齐市| 嵊泗县| 房产| 荃湾区| 什邡市| 巩义市| 绍兴市| 宜宾市| 龙江县| 简阳市| 安国市| 东乌珠穆沁旗| 安西县| 扎赉特旗| 灵川县| 察雅县| 吴堡县| 札达县|