save heart rate oxygen blood pressure limit value.
authorTrillGates <williamtrillgates@gmail.com>
Sat, 17 Jul 2021 06:40:03 +0000 (14:40 +0800)
committerTrillGates <williamtrillgates@gmail.com>
Sat, 17 Jul 2021 06:40:03 +0000 (14:40 +0800)
app/src/main/java/com/enqualcomm/support/service/HeartRateManager.java
app/src/main/java/com/ic/protocols/protocol_s123.java

index 13d6a9c..011890d 100644 (file)
@@ -161,6 +161,10 @@ public class HeartRateManager extends AbstractInvokeHandlerService {
                 ICLogger.d("result invalidate...");
                 return;
             }
+            //TODO:BY TrillGates
+            //判断是否有超出阀值
+            //如果超出的话,插入一条警告通知
+            //TODO:
             runtime.getHRS().setHeartrateStat(heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_TEST_SUCCESS);
             runtime.getHRS().setLastHeartrate(heartRate.getHeartRate(), heartRate.getBloodHeight(), heartRate.getBloodLow(), heartRate.getOxygen());
             uploadResult();
index f422817..313b06d 100644 (file)
@@ -1855,7 +1855,7 @@ public class protocol_s123 {
     public void handleBP89(String cmd, Connection connection) {
 
         //示例:
-        //IWBP89, 353456789012345, 080835,50,90,80,90,110,140#
+        //IWBP89, 353456789012345, 080835,50,90,80,90,110,140,95#
         //说明:
         //IW:标识符
         //BP89 : 命令字符
@@ -1863,10 +1863,11 @@ public class protocol_s123 {
         //080835 :指令流水号
         //50: 心率低阀值,低于该阀值上传心率,如果未设置,则留空
         //90: 心率高阀值,高于该阀值上传心率,如果未设置,则留空
-        //80: 低压阀值,低压低于该阀值上传血压,如果未设置,则留空
-        //90: 低压阀值,低压高于该阀值上传血压,如果未设置,则留空
-        //110: 高压阀值,高压低于该阀值上传血压,如果未设置,则留空
-        //140: 高压阀值,高压高于该阀值上传血压,如果未设置,则留空
+        //80: 血压低压阀值,低压低于该阀值上传血压,如果未设置,则留空
+        //90: 血压低压阀值,低压高于该阀值上传血压,如果未设置,则留空
+        //110: 血压高压阀值,高压低于该阀值上传血压,如果未设置,则留空
+        //140: 血压高压阀值,高压高于该阀值上传血压,如果未设置,则留空
+        //95 血氧阈值,低于该阈值终端立即显示报警,并上传血氧消息,如果未设置,则留空(新增)
         String[] list = cmd.split(CMDSPLIT);
         if (list.length == 9) {
             String index = list[2];
@@ -1876,16 +1877,41 @@ public class protocol_s123 {
             String BPH_L = list[6];
             String BPL_H = list[7];
             String BPL_L = list[8];
+            String OXYGEN = list[9];
             connection.send(AP89(index));
-
-
-            ICLogger.i("收到服务器指令:心率/血压阀值 " + PPGH + "," + PPGL + "," + BPH_H + "," + BPH_L + "," + BPL_H + "," + BPL_L);
+            ICLogger.i("收到服务器指令:心率/血压阀值 "
+                    + PPGH + ","
+                    + PPGL + ","
+                    + BPH_H + ","
+                    + BPH_L + ","
+                    + BPL_H + ","
+                    + BPL_L + ","
+                    + OXYGEN);
+            //保存记录到全局设置中
+            //每次测完血压/血氧/心率进行比对
+            //如果超出了阀值,那么就创建警告通知
+            updateIcSettingsValue("heart_rate_bottom_limit_value", PPGH);
+            updateIcSettingsValue("heart_rate_top_limit_value", PPGL);
+            updateIcSettingsValue("blood_pressure_low_bottom_limit_value", BPL_L);
+            updateIcSettingsValue("blood_pressure_low_top_limit_value", BPL_H);
+            updateIcSettingsValue("blood_pressure_high_bottom_limit_value", BPH_L);
+            updateIcSettingsValue("blood_pressure_high_top_limit_value", BPH_H);
+            updateIcSettingsValue("blood_oxygen_limit_value", OXYGEN);
         } else {
             ICLogger.i("BP89 format error!");
         }
+    }
 
+    private void updateIcSettingsValue(String key, String value) {
+        ContentResolver resolver = mRuntime.getContextProxy().getResolver();
+        ContentValues values = new ContentValues();
+        values.put(ICDatabaseHelper.sKey, key);
+        //把值保存到数据库中,相机会就监听数据库值的变化,做出响应
+        values.put(ICDatabaseHelper.sValue, value);
+        resolver.insert(Uri.parse(ICGlobalSettingsProvider.SETTINGS), values);
     }
 
+
     //体温间隔测量 (后台测试体温)(下行协议号:BPTE,响应:APTE)
     public static StringMessage APTE(String index, int freq) {