MIPS架構的醫院智能導診系統設計
2 基于嵌入式Linux和MiniGUI的主控程序
2.1 嵌入式Linux
Linux是一個完全免費的開源操作系統,內核可以被裁剪到134 KB左右。Linux是一個能夠適應多種CPU和硬件平臺的操作系統,裁剪之后的Linux系統用于這些設備中執行資源管理、任務調度、存儲空間分配等任務。嵌入式應用系統的開發一般可以分為如下幾個步驟:交叉編譯工具的建立,Bootloader的編譯和燒寫,編譯內核并移植到開發板,文件系統的編譯和燒寫。交叉編譯是嵌入式系統開發中需要用到的一個常見技術,其主要特征是嵌入式設備上的可執行程序通常是在另外一臺機器上編譯生成的。通常將前者稱為目標機器(Target),后者稱為主機(Host)。主機擁有的資源豐富很適合在上面編譯機器相關的代碼,這種技術為軟件的不同平臺移植創造了便利條件。交叉編譯工具配置在主機(Host)上編譯及配置環境變量后,就可以用來編譯Bootloader、內核和文件系統。Bootloader是一個啟動加載Linux內核的固件程序,有點類似于PC機的BIOS程序,在完成硬件初始化以及內存映射等操作之后,通常會將外部存儲介質上存放的內核鏡像加載到RAM中,然后跳轉到指定的內存位置執行。
2.2 MiniGUI用戶界面
GUI(Graphical User Interface)是指采用圖形方式顯示的計算機操作用戶界面。系統中所要闡述的高清播放機上需要提供人機交互界面,控制諸如視頻的暫停、播放、文件更新以及播放機的聲音控制和開關機控制等圖形界面。智能導診系統中使用的圖形用戶界面采用的是MiniGUI。MiniGUI是一個跨平臺的面向嵌入式系統的輕量級圖形用戶界面支持系統,可在Linux/μClinux、eCos、μC/OS-II、VxWorks、pSOS、ThreadX等操作系統以及Win32平臺上運行,廣泛應用于手持信息終端、機頂盒、工業控制系統、便攜式多媒體播放器機等產品和領域。
3 播放機軟件系統設計
3.1 智能導診系統的軟件架構
SMP8654為應用開發提供分層服務架構,軟件系統設計主要根據SMP8654分層服務模型,找出最優化的設計方案。智能導診通過研究DCC的控制邏輯,及Sigma公司的SDK文檔,設計出了如圖2所示的SMP8654高清播放機的軟件系統架構。智能導診系統首先對硬件平臺初始化,接著初始化有線或者無線網絡(這部分主要作用是網絡接口卡初始化操作,日志部分初始化是跟蹤和調試應用程序的重要組成部分);接著創建MiniGUI主窗口,最后進入消息循環。本文引用地址:http://www.cqxgywz.com/article/160634.htm

當MiniGUI接收到MSG_CLOSE消息時,由HWNDDESKTOP向主窗口發送退出消息,至此程序結束,播放機被關閉;當播放機接收到圖片顯示命令時,將命令消息存入到消息隊列中,這里要創建消息隊列是因為MiniGUI在接收到用戶的各種不同命令時,都會將命令解析并且存入到任務隊列中,由任務派發器將任務發送到不同模塊處理。MiniGUI的主程序會根據用戶選擇的視頻及音頻文件,選擇將消息發送到視頻解碼進程處理,當用戶選擇打開某個高清的圖片時,消息隊列中會保留圖片大小、圖片格式、圖片的顯示時間等控制信息。這里要使用任務隊列的原因其實很簡單,分離出播放器的一個個任務,讓不同的軟件服務模塊處理。如果要播放視頻,調度程序會將任務隊列中的視頻播放任務派發給視頻解碼進程處理。如果要使用GFX引擎高效率繪制圖片,則任務被分派到高清圖片處理進程處理。
智能導診系統服務進程主要負責從醫院HIS信息系統的接口函數中獲得當前病人的掛號信息,并且通過TCP發送到高清播放機上,最后通過MiniGUI的Draw Text函數將相關病人信息以列表的方式顯示在預先定義的排隊隊列中。這里的視頻解碼進程是獨立的進程,主控程序和此進程的通信是通過Linux的消息隊列機制實現的。消息隊列是一種內核標示,兩個進程之間的交互是通過調用msgsnd和msgrecv這樣的函數實現的,只要兩個進程的消息隊列標識是一致的,進程之間就可以交互。當MiniGUI接收到退出消息時,會向視頻解碼進程發送退出消息,讓視頻解碼進程清空所占用的系統資源。
光耦相關文章:光耦原理
萬用表相關文章:萬用表怎么用
dc相關文章:dc是什么
手機電池相關文章:手機電池修復
c語言相關文章:c語言教程
linux相關文章:linux教程
c++相關文章:c++教程















評論