張恩陽,趙明,劉傳銀,周龍甫,
1.四川長虹電器股份有限公司 技術中心,四川 綿陽 621000;2.成都軍區總醫院 中心實驗室,四川 成都 610083
智能可穿戴設備已經成為當前小型醫療設備開發設計領域熱點之一[1-5]。智能可穿戴設備由硬件裝置和智能移動終端應用程序兩部分構成[1-2,6-8]。兩者之間實現數據互聯互通、實時采集顯示等[9-10],為使用者提供實時、動態、可視化的數據監測[11-12]。
開發設計智能移動終端應用程序,與項目組所開發的基于北斗全球定位信息系統的智能可穿戴人體生命體征及環境信息監測裝置協同工作。該應用程序具備以下主要功能:① 通過低功耗藍牙,實時接收監測硬件裝置所采集的多傳感器數據,并且存儲、分析與可視化展示;② 北斗定位與通信能力;③ 通過連接無線電臺自組內網實現語音通話和消息傳輸。
Xamarin是由Mono項目演變而來,是一個跨平臺開發框架[13],開發人員通過Xamarin Studio或Visual Studio開發工具,使用C#編程語言,搭配.NET Framework,開發iOS、Mac、Android 及Windows多平臺的原生應用程序。Xamarin特點包括[14]:① 快速建立原生行動裝置應用程序;② 程序代碼可共享,具有跨平臺開發能力;③ 與Visual Studio整合;④ 效能可與原生模式開發的應用程序媲美。
Xamarin.Android是Xamarin平臺下負責開發Android應用程序的解決方案,它可以在Visual Studio或Xamarin Studio中創建、編譯、調試和部署Android應用程序。Xamarin獨特的高性能代碼編譯器使開發者可以方便訪問Android SDK中原生的API,最終快速創建原生的Android應用程序。在Xamarin.Android中使用Nuget、Xamarin Component Store也可為開發者帶來豐富的第三方組件,甚至可以通過創建Java Bindings Library項目來重用一些第三方jar包。
自Xamarin.Android 4.2版本后Xamarin Mono引入了綁定Java庫(.jar文件)的技術[15-16],同時引入了一種叫做Java Bindings Library Project的新項目模板,這種通過將jar文件轉化為dll文件的技術擴展增強了Xamarin Mono的類庫功能。
Adnroid生態系統下的第三方類庫十分豐富,在Xamarin.Android中有兩種方法來使用這些已有的類庫[15-16]:一種是通過JNI(Java Native Interface)來直接調用,另外一種就是前面提到的通過創建綁定項目來達到重用這些類庫的目的。
整個程序分為3個大的功能區:北斗功能區,藍牙功能區以及主功能區。系統功能層次結構,見圖1。北斗功能區包括了北斗時間申請模塊、北斗定位申請模塊、北斗用戶機串口速率申請模塊、北斗IC卡檢測模塊、北斗用戶機自檢模塊、發送所有北斗命令模塊。藍牙功能區包括了藍牙管理模塊以及藍牙連接模塊。主功能區包括了可穿戴設備曲線圖展示模塊、北斗短報文聊天模塊、基于北斗用戶機的百度地圖定位模塊、北斗用戶機自檢模塊等。

圖1 系統功能層次結構圖
Android端APP由5個核心模塊實現:數據通訊管理器、數據處理管理器、數據存儲管理器、數據可視化管理器、Android系統管理。每一個核心模塊的職責劃分明確,并且核心模塊和組件是完全獨立于底層的傳感器技術和通信技術。Android APP的系統架構設計,見圖2。

圖2 系統架構設計圖
北斗功能區包括了北斗時間申請模塊、北斗定位申請模塊、北斗用戶機串口速率申請模塊、北斗IC卡檢測模塊、北斗用戶機自檢模塊、北斗用戶機版本讀取模塊、發送所有北斗命令模塊,這些模塊的設計都遵循了北斗命令申請協議的定義。流程邏輯,見圖3。

圖3 北斗功能區流程邏輯圖
在具體的設計實現這些模塊功能時,最核心部分屬于北斗協議的生成和解析,實現IBeiDouProtocol北斗協議接口,并且繼承自BaseBeidouProtocol北斗協議基類。北斗協議接口要求所有的北斗申請或解析命令必須強制實現自身的數據校驗和功能,保證了北斗數據的正確性。
目前主要局限性在于,由于北斗衛星網絡自身信號微弱的原因,如果想正確的運行程序必須將北斗用戶機放置于正南朝向的無遮擋露天區域下。
藍牙功能區包括藍牙連接模塊和藍牙管理模塊兩大部分。其中藍牙連接模塊的主要功能是負責發現周圍可連接或已配對的藍牙設備;而藍牙管理模塊的主要功能是接收并解析已連接藍牙設備發送而來的數據,然后將解析后的傳感器數據進行圖形化展示。流程邏輯,見圖4。
4.2.1 藍牙連接模塊
如圖4所示,藍牙的核心類包括了:BluetoothLeService、SampleGattAttributes、BGattCallback以及LoacalBinder,在這些類的協同作用下實現了低功耗藍牙的連接以及數據傳輸等核心功能。在實現業務層面的功能時通過DeviceScanActivity、LeDeviceListAdapter、ViewHolder類 來 實 現, 其 中DeviceScanActivity和ViewHolder為藍牙設備搜索結果的界面控制器類,LeDeviceListAdapter為藍牙搜索結果的數據適配器。

圖4 藍牙功能區流程邏輯圖
4.2.2 藍牙管理模塊
藍牙管理模塊包括了可穿戴設備通信協議子模塊、數據可視化子模塊和可穿戴設備傳感器數據列表子模塊。可穿戴設備通信協議子模塊主要負責可穿戴設備數據的解析工作,數據可視化子模塊將解析后的數據進行實時的可視化展示,可穿戴設備傳感器數據列表子模塊為用戶展示所有可用的傳感器名稱及最新數據列表。
可穿戴設備數據可視化子模塊主要的功能是對已解析的藍牙通信數據流進行實時的可視化曲線圖形展示。
百度地圖在本項目中用作北斗用戶機的定位結果展示,以及北斗用戶機運行路線的展示,以百度地圖JAVA版本SDK庫文件為基礎,在Xamarin mono項目中使用百度SDK進行二次開發。通過創建JAVA庫文件的綁定項目進行轉化。以下內容為詳細的轉化過程:
(1)創建jar的綁定程序集。首先獲取百度地圖的SDK庫文件;然后在Visual Studio主菜單中選擇Mono for Android下的“Java Binding Library”,命名新建項目為“BaiduMapSDK”;把baidumapapi_v2_1_1.jar放到Jars文件夾下,選中jar文件,將“生成操作”屬性設置為“EmbeddedJar”,生成解決方案。
(2)引用綁定程序集并編譯為dll程序集。選擇Mono for Android下的“Android Application”創建一個Android項目。在項目列表中選擇第一步創建的“BaiduMapSDK”。把libapp_BaiduMapApplib_v2_1_1.so、libvi_voslib.so這兩個庫文件放到MapTest項目中,并且把so文件的“生成操作”設置為“AndroidNativeLibrary”。在MapTest項目中創建一個libs文件夾,并且在libs文件夾下創建一個armeabi文件夾,然后把libapp_BaiduMapApplib_v2_1_1.so、libvi_voslib.so放到這個文件夾下。如果運行到armeabi-v7a CPU下,還需要同樣創建一份armeabi-v7a文件夾;同樣如果運行在x86CPU下則同樣需要創建x86文件夾。
(3)如果在編譯過程中發生錯誤,修改EnumFields.xml 、EnumMethods.xml或Metadata.xml的文件內容。將dll程序集導入項目并設置權限:在axml中添加地圖視圖控件BaiduMapView。
AChartEngine是為Android應用而設計的繪圖工具庫。可用于繪制多種圖表。本項目中將 AChartEngine應用于收集傳感器數據,利用這些數據進行曲線圖或是其他圖形的繪制,以便給決策者更加直觀的數據展示。
所設計應用程序主要界面,見圖5。

圖5 應用程序主要界面
移動智能終端應用程序作為可穿戴移動監測裝備的重要組成部分,已經成為國內外應用研究的熱點之一。各種移動智能APP應用軟件切實將可穿戴智能裝備推進應用市場。
本系統的優點在于能夠生成和解析北斗協議,實現IBeiDouProtocol北斗協議接口。為進一步將我國自主研發的北斗全球定位系統應用于可穿戴設備領域進行了有益地嘗試。所設計的應用軟件集Wi-Fi通訊技術、北斗短報文通訊技術、藍牙通訊技術以及串口通訊技術于一身,滿足不同通信場景中與醫學監測硬件系統數據互聯的需求。整套系統能夠有效提高特殊環境下醫療衛生保障水平,能夠為相關部門決策提供基礎數據。不足之處在于目前僅可用于北斗用戶機能夠接收到信號區域,距離廣泛市場應用尚有一定距離。
可穿戴式智能設備為醫學監測、遙測提供了新的工具。隨著傳感器、衛星通信、計算機軟件等相關技術的發展,必然會為小型化、家庭化便攜醫療設備研發增添新內容。作為具有完全自主產權的北斗全球定位系統,在各個領域的應用開發進一步值得探索、研究。
[1] 周旺,賈天震,陳賢詳,等.可穿戴醫療健康監護現狀與展望[J].中國醫療設備,2017,32(6):1-5.
[2] Health Monitoring and Diagnostic Medical Devices Market Expected to Reach USD 8.03Billion Globally in 2019 Transparency Market Research[EB/OL].http://www.digitaljournal.com/pr/1877980.
[3] 顏延,鄒浩,周林,等.可穿戴技術的發展[J].中國生物醫學工程學報,2015,(6):12-15.
[4] Lee KM,Lee SM,Park KS.Belt-type wireless and non-contact electrocardiogram monitoring system using flexible active electrode[J].Int J Bioelectromagn,2010,(12):153-157.
[5] Fong EM,Kwon TH,Chung WY.Seamless and non-contact health monitoring system in cloud computing[A].Consumer Electronics (ICCE),2013 IEEE International Conference on[C].New York:IEEE,2013:530-531.
[6] 溫煦,袁冰,李華,等.論智能可穿戴設備在我國體力活動大數據分析中的應用[J].中國體育科技,2017,(2):65-67.
[7] 許鑫.可穿戴計算機設備的領域應用及其對信息服務的影響[J].圖書情報工作,2015,13:338-341.
[8] 黃海誠,汪豐.可穿戴技術在醫療中的研究與應用[J].中國醫療設備,2015,(1):4-9.
[9] Misra V,Bozkurt A,Calhoun B,et al.Flexible technologies for self-powered wearable health and environmental sensing[J].Pro IEEE,2015,103(4):665-681.
[10] 溫川雪,周洪建,張俊飛.基于智能手機與移動網絡的遠程生命體征監測系統的設計[J].生物醫學工程學雜志,2015,(1):5-9.
[11] Rachim VP,Chung WY.Wearable noncontact armband for mobile ECG monitoring system[J].IEEE Trans Biom Cir Sys,2016,10(6):1112-1118.
[12] 李峰.遠程智能心率監測儀的研制[J].中國醫學裝備,2014,(8):26-29.
[13] Moretz C,Zhou Y,Dhamane AD,et al.Development and validation of a predictive model to identify individuals likely to have undiagnosed chronic obstructive pulmonary disease using an administrative claims database[J].J Manag Care Spec Phar,2015,21(12):1149-1159.
[14] 郭海鵬.基于WBSW技術的人體生命體征監控應用研究[J].長春理工大學學報,2013,(11):124-128.
[15] 李剛.瘋狂Android講義[M].北京:電子工業出版社,2011:6.
[16] 鄧勇,劉威,李桐萱.移動醫療APP運行現狀及其法律監管問題初探[J].中國醫療設備,2015,(8):72-75.