新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 基于Zigbee的病房護理機遠程監控系統的設計與實現

        基于Zigbee的病房護理機遠程監控系統的設計與實現

        作者: 時間:2012-05-15 來源:網絡 收藏

        2 上位機監控軟件
        2.1 API的Windows多線程串口通信
        多線程是指同一個程序中可以同時執行多個任務,通過多線程可以將整個任務分成幾個線程,同時執行,從而提高系統的效率。在多線程環境下,許多線程需要訪問同一資源,而且事件發生往往有先后順序,因此,線程間需要通信控制。本系統數據庫的存取以及公共變量的訪問,都涉及到線程間的通信,必須使用同步化機制,防止線程訪問沖突。在實際過程中,系統利用了臨界區,它是保證在同一時間只有一個線程可以訪問某一資源的有效方法。在使用臨界區時,需要給各線程提供一個共享的臨界區對象。臨界區具體使用步驟如下:1)聲明對象;2)初始化對象;3)進入臨界區;4)離開臨界區。同樣在本系統中,為了保證線程訪問安全,設置了多個臨界區對象,包括:串口通信臨界區m_csCommunicationSync、數據庫ADO組件訪問臨界區critical for ado、機結構鏈表臨界區對象critical for list等。為保證串口收發數據的高效性,在充分分析多線程技術和API異步操作串口方式的特點之后,本系統將串口的數據收發采用單獨的線程處理。
        系統串口通信采用事件通知方式,該方式是Windows下效率較高的一種方式。主線程在打開串口后首先設置要監視的串口通信事件,然后將監視線程打開,用來監視主線程設置的這些串口通信事件是否發生,當其中的某個事件發生后,監視線程要能根據不同的事件類型進行處理。
        2.2 機監控功能的
        按照機的無線監控要求,在上位監控PC機中需要完成以下功能:
        (1)重要監測參數的顯示。在監控界面的顯示區能實時顯示護理機的重要監測信息(護理機所在科室及床位號、檢測數據、工作狀態、報警狀態等)。
        (2)系統配置。管理員(如護士長)能“動態”地完成系統通信端口的配置和使用單位名稱(如醫院名稱)配置。
        (3)用戶管理配置。管理員能“動態”地增添用戶,并設置用戶的權限和初始密碼,管理員能注銷除了“當前登錄管理員”以外的所有用戶。所有用戶在登錄后可以修改自己的登錄密碼。
        (4)網絡設備配置。管理員能“動態”地向無線網絡中“注冊”或“注銷”某一護理機(包括該護理機的ID號、所屬科室名稱、所處號和床位號)。
        (5)具有數據報表查詢和打印功能。系統能對監控過程中重要事件進行記錄,并能對這些信息的條件查詢和打印功能。這些重要事件包括用戶登錄或退出時的用戶名及時間;護理機狀態改變及時間。任何當前用戶均能點擊監控主界面的“報表查詢”菜單,能分別按“時間”、“用戶名”、“床位號”查詢以往所有數據庫中記錄的值班期間的所有監測信息。此功能的實現主要是通過數據庫結合報表的來實現的。
        通過對上位機監控軟件的功能分析,首先確定其由“主線程”、“通信處理線程”、“語音處理線程”等部分組成,然后進行各部分功能細化,最后,按照模塊化功能用C++Builder編程實現。為提高數據處理效率,在通信處理軟件部分,開辟了單獨的“數據接收線程”和“數據處理線程”,處理線程將接收線程接收的下位機所有數據進行校驗處理,并將下位機工作數據存入數據庫,最后根據與上次工作數據比較,確定是否更新“主線程目錄樹”。主線程根據用戶需求,實時地從數據庫調取數據顯示,同時主線程還要能完成護理機“入網注冊”、“注銷”、“操作員的配置”以及對下位機數據的“按條件報表查詢”等功能。此外,考慮到現在的PC機通常采用USB通信方式,因此針對ZigBee網絡的協調器與上位機的連結采用了“USB轉串口”方式,本系統還設計了USB串口熱插拔功能,當更換不同的USB連接口時,上位機通過C++Builder編程能自動獲取串口COM的串口號,使上位機監控軟件的應用非常通用化。圖4為用C++Builder編寫的上位機監控主界面,鑒于篇幅因素,本文以具有代表性的“護理機監測參數顯示”和“護理機動態注冊注銷功能”為例,介紹其實現過程。

        本文引用地址:http://www.104case.com/article/154965.htm

        e.jpg


        2.2.1 護理機監測參數的顯示
        系統要求當點擊“按病床位瀏覽”顯示的目錄樹時,只有點擊注冊護理機對應的床位時,才能顯示該護理機的重要信息,并且要顯示護理機所在科室及床位號;當點擊“按號瀏覽”目錄頁時,只有點擊注冊護理機對應的號時才會顯示在此病房下所有護理機的信息。除了護理機重要工作參數需要顯示外,護理機報警狀態、離線狀態也需要突出顯示。其中,報警信息采用了紅色字體閃爍方式顯示;離線狀態采用了灰色字體顯示。
        該功能的實現用到了TreeView目錄樹的單擊事件,此外,系統有專門負責根據節點信息,調取數據庫中對應節點護理機信息的定時器,通過定時器不斷獲取節點最新數據進行顯示;通過單擊事件處理函數,判斷是否是單擊的對應節點,如果點擊的是按病房瀏覽方式中的病房節點,則先取出該病房下第一個子節點信息,并將第一個GroupBox設置為可視,再取后面的子節點,操作類似,直到第四個子節點。當點擊的是“按床位瀏覽”方式下的床位節點時,先獲取此節點數據信息,然后將第一個GroupBox設為可視,最后根據節點信息,定時器會查詢數據庫中對應護理機的工作參數進行數據顯示。其操作流程如圖5所示,實時監測參數顯示界面如圖4所示。

        f.jpg



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 广平县| 容城县| 张家口市| 东光县| 康定县| 龙游县| 竹北市| 井冈山市| 格尔木市| 玉林市| 轮台县| 封丘县| 凌云县| 兴业县| 江孜县| 台中县| 定边县| 金阳县| 南召县| 徐汇区| 彰化市| 墨竹工卡县| 舒兰市| 岳普湖县| 社会| 南澳县| 全南县| 固原市| 岑溪市| 宁安市| 新余市| 西贡区| 博白县| 观塘区| 固始县| 吉首市| 宕昌县| 清河县| 襄垣县| 镇江市| 湘潭县|