添加BP86和BP89的协议解析响应。没有实际设置Alarm 。
authorsnickersun <snickersun@qq.com>
Tue, 28 Jan 2020 17:34:55 +0000 (01:34 +0800)
committersnickersun <snickersun@qq.com>
Tue, 28 Jan 2020 17:34:55 +0000 (01:34 +0800)
BP86设置心率血压周期有测试,BP89没有apk接口,未测试。

app/src/main/java/com/ic/protocol/adapter/protocolAPIHelper.java
app/src/main/java/com/ic/protocol/service/Deliver.java
app/src/main/java/com/ic/protocol/utils/NettyConnection.java

index b7f5374..dd7d004 100644 (file)
@@ -1066,6 +1066,83 @@ public static String AP15(String index){
 \r
     }\r
 \r
+    //17.设置心率/血压测量周期(下行协议号:BP86,响应:AP86)\r
+    public static String AP86(String index){\r
+\r
+        //设备响应:      IWAP86, 080835#\r
+        //080835:指令流水号\r
+        return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP86))\r
+                .append(CMDSPLIT).append(index)\r
+                .append(CMDEND).toString();\r
+    }\r
+\r
+    public void handleBP86(String cmd,Connection connection){\r
+\r
+        //示例:\r
+        //IWBP86, 353456789012345, 080835,1,720#\r
+        //说明:\r
+        //IW:标识符\r
+        //BP86 : 命令字符\r
+        //353456789012345:IMEI号,设备唯一ID\r
+        //080835 :指令流水号\r
+        //1: 表示心率周期;2 :表示血压周期\r
+        //720: 表示720分钟\r
+\r
+        String[] list=cmd.split(CMDSPLIT);\r
+\r
+        if (list.length==5){\r
+            String index=list[2];\r
+            String type=list[3];\r
+            String cycle=list[4];\r
+            connection.send(protocolAPIHelper.genStringMessage("AP86",AP86(index)));\r
+            Logger.i("收到服务器指令:设置"+(type.equals("1")?"心率周期 ":"血压周期 ")+cycle+"分钟");\r
+        }else{\r
+            Logger.i("BP86 format error!");\r
+        }\r
+\r
+    }\r
+\r
+    //18.18.设置心率/血压阀值(下行协议号:BP89,响应:AP89)\r
+    public static String AP89(String index){\r
+\r
+        //设备响应:      IWAP89, 080835#\r
+        //080835:指令流水号\r
+        return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP89))\r
+                .append(CMDSPLIT).append(index)\r
+                .append(CMDEND).toString();\r
+    }\r
+\r
+    public void handleBP89(String cmd,Connection connection){\r
+\r
+        //示例:\r
+        //IWBP89, 353456789012345, 080835,50,90,80,90,110,140#\r
+        //说明:\r
+        //IW:标识符\r
+        //BP89 : 命令字符\r
+        //353456789012345:IMEI号,设备唯一ID\r
+        //080835 :指令流水号\r
+        //50: 心率低阀值,低于该阀值上传心率,如果未设置,则留空\r
+        //90: 心率高阀值,高于该阀值上传心率,如果未设置,则留空\r
+        //80: 低压阀值,低压低于该阀值上传血压,如果未设置,则留空\r
+        //90: 低压阀值,低压高于该阀值上传血压,如果未设置,则留空\r
+        //110: 高压阀值,高压低于该阀值上传血压,如果未设置,则留空\r
+        //140: 高压阀值,高压高于该阀值上传血压,如果未设置,则留空\r
+        String[] list=cmd.split(CMDSPLIT);\r
+        if (list.length==9){\r
+            String index=list[2];\r
+            String PPGH=list[3];\r
+            String PPGL=list[4];\r
+            String BPH_H=list[5];\r
+            String BPH_L=list[6];\r
+            String BPL_H=list[7];\r
+            String BPL_L=list[8];\r
+            connection.send(protocolAPIHelper.genStringMessage("AP89",AP89(index)));\r
+            Logger.i("收到服务器指令:心率/血压阀值 "+PPGH+","+PPGL+","+BPH_H+","+BPH_L+","+BPL_H+","+BPL_L);\r
+        }else{\r
+            Logger.i("BP89 format error!");\r
+        }\r
+\r
+    }\r
     public interface CmdHandler\r
     {\r
 \r
index 7f5135f..ee5cca0 100644 (file)
@@ -142,7 +142,7 @@ public class Deliver extends AbstractConnectionService {
         if ("1".equals(arrayOfString4[1])) {\r
           int j = paramRuntime.getContextProxy().getTelephonyManager().getCallState();\r
           if (1 != j && 2 != j && !isSilence(paramRuntime)) {\r
-            paramRuntime.getContextProxy().startSearchActivity();\r
+//            paramRuntime.getContextProxy().startSearchActivity();\r
             return true;\r
           } \r
         } else {\r
index dae6480..37767a3 100644 (file)
@@ -151,6 +151,14 @@ public class NettyConnection implements Connection {
                                 API.handleBP84(cmd,NettyConnection.this);\r
                                 Logger.i("收到服务器白名单命令");\r
                                 break;\r
+\r
+                            case BP86:\r
+                                API.handleBP86(cmd,NettyConnection.this);\r
+//                                Logger.i("");\r
+                                break;\r
+                            case BP89:\r
+                                API.handleBP89(cmd,NettyConnection.this);\r
+                                break;\r
                         }\r
 \r
                         return ret;\r