基于ZigBee的藥品庫存實時管理系統的設計與實現
2.2 ZigBee數據傳輸模塊
在本系統中,手持藥監碼采集設備群以自組織形式構成網絡,并最終將數據傳送到與PC鏈接的數據基站,然后通過互聯網上傳至遠端的數據中心。結合藥房的實際使用情況,手持終端設備可能會有多個,所以ZigBee通信系統采用星形網絡結構。星形結構是一個輻射形狀的網絡結構,所有的數據都需要匯聚到中心節點(ZigBee協調器)而其他的節點之間不能進行數據通信,如圖3所示。本文引用地址:http://www.104case.com/article/153527.htm
在此網絡結構中ZigBee協調器接收到終端節點的數據信息之后,首先對數據信息進行數據包解析,確認該信息為數據信息后對此信息負載進行提取,并將獲得的數據信息通過串口顯示到倉庫PC的系統當中。
ZigBee終端節點在網絡組建過程中擔任兩項工作:發起加入協調器所在的網絡請求;接收協調器的廣播信息并向協調器傳送藥監碼數據。
(1)手持數據終端節點入網設計。終端節點上電初始化之后向整個ZigBee網絡發送信標(Beacon)請求,當協調器接收到信標響應后,終端節點再對發送信標響應的節點發送連接請求,協調器得到鏈接請求響應正確,那么表示節點入網成功,負責,節點入網失敗,并且給出失敗提示。
(2)手持終端ZigBee節點數據發送設計。設計一個數據發送函數,此函數負責應用測(APL)與下層之間的參數和數據傳遞,數據傳輸格式為20位的藥監碼。當終端在發送數據時,數據包自頂向下進行幀格式化,各層負責為其數據包添加各層數據包頭,最后到達PHY層將數據發送出去。
2.3 庫存管理系統模塊
2.3.1 開發語言及模式
上位機的庫存管理系統采用java語言編程,使用struts1.2框架,在My Eclipse中開發調試,對系統的設計如下:本系統結構上采用3層B/S結構,前臺用戶顯示層使用JSP和Servlet在瀏覽器上實現,中間使用Java Bean組件實現企業業務邏輯,后臺使用action完成用戶請求及相關操作跳轉。為了方便數據的存儲查詢,使用SQL Server2008數據庫,通過JDBC建立系統與數據庫的連接。
2.3.2 系統功能結構
由系統的需求功能看,本系統主要分為4類用戶和5大模塊。4類用戶為:總管理員,省級管理員,市級管理員,分銷商管理員。5大模塊為:庫存信息管理模塊,分銷商信息管理模塊,藥品信息管理模塊,用戶信息管理模塊以及數據傳遞模塊。不同類型的用戶擁有不同的管理權限和子功能,其中總管理員擁有系統的最高權限。其中數據傳遞模塊為分銷商管理員特有模塊,用于從串口接受下位機傳遞的藥監碼數據,并進行相關判斷和處理后存入數據庫。串口通信應用javax.comm.SerialPort類實現,它用于描述一個RS 232串行通信端口的底層接口,定義了串口通信所需的最小功能集。用戶可以直接對串口進行讀、寫及設置操作。串口通信應用程序采用事件監聽模式,實現Serial Port Event Listener接口,當串口有數據到達時,可以在serialEvent中接收并處理所收到的數據。
系統中的庫存查詢界面采用級聯下拉列表形式,通過Java Script實現動態鏈接。庫存查詢結果頁面采用Ajax技術實現實時刷新功能。在Ajax中主要通過XMLHttpRequest對象處理發送異步請求和回應,創建前要先確定用戶當前使用的瀏覽器類型,然后根據瀏覽器類型創建合適的XMLHttpRequest對象,調用指定方法,最終通過Java Script將內容設置到指定的顯示區域。
2.3.3 數據庫結構
根據本藥品庫存管理系統需求,圖4所示為數據庫信息表的關系結構。各個數據表之間通過不同列建立關聯,實現多個數據表的聯合查詢。
(1)藥品-庫存-分銷商。PC機串口接收藥品信息后,系統在藥品信息表中查詢對應的產品信息,并檢索庫存信息表,修改相應庫存狀態,或添加新記錄。
用戶查詢庫存信息時,系統根據所選用戶的編號檢索庫存信息表,按照藥品產品編號分類,統計各包裝級別的庫存數量。
(2)用戶一分銷商。用戶表中存儲用戶的類型及管理范圍,登錄時,系統根據用戶類型進入不同的主界面,根據用戶的管理范圍顯示不同的管理功能。其中分銷商和管理員之間為一對一關系。
(3)分銷商-市-省。分銷商信息表,市信息表,省信息表通過編號相互關聯,構成一個3級下拉列表菜單。
評論