MIPS架構(gòu)的醫(yī)院智能導(dǎo)診系統(tǒng)設(shè)計
2 基于嵌入式Linux和MiniGUI的主控程序
2.1 嵌入式Linux
Linux是一個完全免費的開源操作系統(tǒng),內(nèi)核可以被裁剪到134 KB左右。Linux是一個能夠適應(yīng)多種CPU和硬件平臺的操作系統(tǒng),裁剪之后的Linux系統(tǒng)用于這些設(shè)備中執(zhí)行資源管理、任務(wù)調(diào)度、存儲空間分配等任務(wù)。嵌入式應(yīng)用系統(tǒng)的開發(fā)一般可以分為如下幾個步驟:交叉編譯工具的建立,Bootloader的編譯和燒寫,編譯內(nèi)核并移植到開發(fā)板,文件系統(tǒng)的編譯和燒寫。交叉編譯是嵌入式系統(tǒng)開發(fā)中需要用到的一個常見技術(shù),其主要特征是嵌入式設(shè)備上的可執(zhí)行程序通常是在另外一臺機器上編譯生成的。通常將前者稱為目標(biāo)機器(Target),后者稱為主機(Host)。主機擁有的資源豐富很適合在上面編譯機器相關(guān)的代碼,這種技術(shù)為軟件的不同平臺移植創(chuàng)造了便利條件。交叉編譯工具配置在主機(Host)上編譯及配置環(huán)境變量后,就可以用來編譯Bootloader、內(nèi)核和文件系統(tǒng)。Bootloader是一個啟動加載Linux內(nèi)核的固件程序,有點類似于PC機的BIOS程序,在完成硬件初始化以及內(nèi)存映射等操作之后,通常會將外部存儲介質(zhì)上存放的內(nèi)核鏡像加載到RAM中,然后跳轉(zhuǎn)到指定的內(nèi)存位置執(zhí)行。
2.2 MiniGUI用戶界面
GUI(Graphical User Interface)是指采用圖形方式顯示的計算機操作用戶界面。系統(tǒng)中所要闡述的高清播放機上需要提供人機交互界面,控制諸如視頻的暫停、播放、文件更新以及播放機的聲音控制和開關(guān)機控制等圖形界面。智能導(dǎo)診系統(tǒng)中使用的圖形用戶界面采用的是MiniGUI。MiniGUI是一個跨平臺的面向嵌入式系統(tǒng)的輕量級圖形用戶界面支持系統(tǒng),可在Linux/μClinux、eCos、μC/OS-II、VxWorks、pSOS、ThreadX等操作系統(tǒng)以及Win32平臺上運行,廣泛應(yīng)用于手持信息終端、機頂盒、工業(yè)控制系統(tǒng)、便攜式多媒體播放器機等產(chǎn)品和領(lǐng)域。
3 播放機軟件系統(tǒng)設(shè)計
3.1 智能導(dǎo)診系統(tǒng)的軟件架構(gòu)
SMP8654為應(yīng)用開發(fā)提供分層服務(wù)架構(gòu),軟件系統(tǒng)設(shè)計主要根據(jù)SMP8654分層服務(wù)模型,找出最優(yōu)化的設(shè)計方案。智能導(dǎo)診通過研究DCC的控制邏輯,及Sigma公司的SDK文檔,設(shè)計出了如圖2所示的SMP8654高清播放機的軟件系統(tǒng)架構(gòu)。智能導(dǎo)診系統(tǒng)首先對硬件平臺初始化,接著初始化有線或者無線網(wǎng)絡(luò)(這部分主要作用是網(wǎng)絡(luò)接口卡初始化操作,日志部分初始化是跟蹤和調(diào)試應(yīng)用程序的重要組成部分);接著創(chuàng)建MiniGUI主窗口,最后進(jìn)入消息循環(huán)。本文引用地址:http://m.butianyuan.cn/article/160634.htm
當(dāng)MiniGUI接收到MSG_CLOSE消息時,由HWNDDESKTOP向主窗口發(fā)送退出消息,至此程序結(jié)束,播放機被關(guān)閉;當(dāng)播放機接收到圖片顯示命令時,將命令消息存入到消息隊列中,這里要創(chuàng)建消息隊列是因為MiniGUI在接收到用戶的各種不同命令時,都會將命令解析并且存入到任務(wù)隊列中,由任務(wù)派發(fā)器將任務(wù)發(fā)送到不同模塊處理。MiniGUI的主程序會根據(jù)用戶選擇的視頻及音頻文件,選擇將消息發(fā)送到視頻解碼進(jìn)程處理,當(dāng)用戶選擇打開某個高清的圖片時,消息隊列中會保留圖片大小、圖片格式、圖片的顯示時間等控制信息。這里要使用任務(wù)隊列的原因其實很簡單,分離出播放器的一個個任務(wù),讓不同的軟件服務(wù)模塊處理。如果要播放視頻,調(diào)度程序會將任務(wù)隊列中的視頻播放任務(wù)派發(fā)給視頻解碼進(jìn)程處理。如果要使用GFX引擎高效率繪制圖片,則任務(wù)被分派到高清圖片處理進(jìn)程處理。
智能導(dǎo)診系統(tǒng)服務(wù)進(jìn)程主要負(fù)責(zé)從醫(yī)院HIS信息系統(tǒng)的接口函數(shù)中獲得當(dāng)前病人的掛號信息,并且通過TCP發(fā)送到高清播放機上,最后通過MiniGUI的Draw Text函數(shù)將相關(guān)病人信息以列表的方式顯示在預(yù)先定義的排隊隊列中。這里的視頻解碼進(jìn)程是獨立的進(jìn)程,主控程序和此進(jìn)程的通信是通過Linux的消息隊列機制實現(xiàn)的。消息隊列是一種內(nèi)核標(biāo)示,兩個進(jìn)程之間的交互是通過調(diào)用msgsnd和msgrecv這樣的函數(shù)實現(xiàn)的,只要兩個進(jìn)程的消息隊列標(biāo)識是一致的,進(jìn)程之間就可以交互。當(dāng)MiniGUI接收到退出消息時,會向視頻解碼進(jìn)程發(fā)送退出消息,讓視頻解碼進(jìn)程清空所占用的系統(tǒng)資源。
光耦相關(guān)文章:光耦原理
萬用表相關(guān)文章:萬用表怎么用
dc相關(guān)文章:dc是什么
手機電池相關(guān)文章:手機電池修復(fù)
c語言相關(guān)文章:c語言教程
linux相關(guān)文章:linux教程
c++相關(guān)文章:c++教程
評論