parse cmd
authorTrillGates <williamtrillgates@gmail.com>
Thu, 24 Jun 2021 03:48:01 +0000 (11:48 +0800)
committerTrillGates <williamtrillgates@gmail.com>
Thu, 24 Jun 2021 03:48:01 +0000 (11:48 +0800)
app/src/main/java/com/ic/protocols/protocol_ic.java
app/version_code.properties

index 8dd6de0..f8b4385 100644 (file)
@@ -191,6 +191,7 @@ public class protocol_ic {
         APGJ,//关机前的确定
         APFX,//飞行模式开关
         UNKNOWN_CMD,
+        BP75,//闹钟
     }
 
     private static HashMap<CMD_TYPE, String> cmdMap;
@@ -298,6 +299,7 @@ public class protocol_ic {
         cmdMap.put(CMD_TYPE.APTQ, "APTQ");
         cmdMap.put(CMD_TYPE.BPTQ, "BPTQ");
         cmdMap.put(CMD_TYPE.APAT, "APAT");
+        cmdMap.put(CMD_TYPE.BP75, "BP75");
         cmdMap.put(CMD_TYPE.BPAT, "BPAT");
         cmdMap.put(CMD_TYPE.APBT, "APBT");
         cmdMap.put(CMD_TYPE.BPBT, "BPBT");
@@ -388,10 +390,10 @@ public class protocol_ic {
         String last_inCompletecmd = "";
         String cmd_msgbuf = new String(bytes);
         ICLogger.d("bytes.size " + bytes.length);
-//        cmdbuf.append(cmd_msgbuf);
+        //cmdbuf.append(cmd_msgbuf);
         cmdbuf.append(cmd_msgbuf);
         ICLogger.d("cmdbuf.size " + cmdbuf.length() + " " + cmdbuf.toString());
-    /*
+        /*
         如果不是 #结尾,就认为 接收数据不全,置位。
          */
         if (cmdbuf.toString().endsWith(CMDEND)) {
@@ -3012,31 +3014,55 @@ public class protocol_ic {
         if (Config.LOG_TOFILE) ICLogger.logToFile("APILog", " recv " + cmd);
         cmd = cmd.replace(" ", "");
         switch (type) {
+            case AP00:
+                break;
             case BP00: //登录包
                 handleBP00(mRuntime, cmd);
                 ICLogger.i("服务器收到登录包AP00");
                 mConnection.DeliverCMDMessageToSystem("login", cmd);//通知下面线程状态变化
                 break;
+            case AP01:
+                break;
             case BP01: //gps定位包
                 handleBP01(cmd);
                 ICLogger.i("服务器收到定位AP01");
                 mConnection.DeliverCMDMessageToSystem("AP01", cmd);//通知下面线程状态变化
                 break;
+            case AP02:
+                break;
             case BP02:// wifi定位包
                 handleBP02(cmd);
                 ICLogger.i("服务器收到定位AP02");
                 mConnection.DeliverCMDMessageToSystem("AP02", cmd);//通知下面线程状态变化
                 break;
+            case AP92:
+                break;
+            case BP92:
+                break;
+            case AP94:
+                break;
+            case BP94:
+                break;
+            case AP03:
+                break;
             case BP03: //心跳包
                 handleBP03(cmd);
                 ICLogger.i("服务器收到心跳包AP03");
                 mConnection.DeliverCMDMessageToSystem("heartbeat", cmd);//通知下面线程状态变化
                 break;
 
+            case AP05:
+                break;
+            case BP05:
+                break;
+            case AP07:
+                break;
             case BP07:
                 //收到发送的语音包
                 handleBP07(cmd, mConnection);
                 break;
+            case AP10:
+                break;
             case BP10:
                 //报警包
                 mConnection.DeliverCMDMessageToSystem("AP10", cmd);//通知下面线程状态变化
@@ -3144,6 +3170,12 @@ public class protocol_ic {
                 handleBPJZ(cmd, mConnection, mRuntime);
                 ICLogger.i("收到服务器血压校准命令");
                 break;
+            case AP49:
+                break;
+            case BP49:
+                break;
+            case APHT:
+                break;
             case BPHT:
                 ICLogger.i("服务器收到上传的心率血压");
                 mConnection.DeliverCMDMessageToSystem("APHT", cmd);//通知下面线程状态变化
@@ -3226,6 +3258,10 @@ public class protocol_ic {
                 mConnection.DeliverCMDMessageToSystem("APMK", cmd);//通知下面线程状态变化
                 handleBPMK(mRuntime, cmd);
                 break;
+            case BP75:
+                ICLogger.d("收到闹钟设置指令BP75");
+                handleBP75(mConnection, mRuntime, cmd);
+                break;
             case BPDH:
                 ICLogger.i("聆听");
                 handleBPDH(mConnection, mRuntime, cmd);
@@ -3251,12 +3287,174 @@ public class protocol_ic {
                 break;
 
 
+            case APTM:
+                break;
+            case APCH:
+                break;
+            case BPCH:
+                break;
+            case APBR:
+                break;
+            case AP12:
+                break;
+            case AP14:
+                break;
+            case AP15:
+                break;
+            case AP16:
+                break;
+            case AP17:
+                break;
+            case AP18:
+                break;
+            case AP21:
+                break;
+            case BP21:
+                break;
+            case AP28:
+                break;
+            case BP28:
+                break;
+            case AP31:
+                break;
+            case AP33:
+                break;
+            case AP34:
+                break;
+            case AP40:
+                break;
+            case AP68:
+                break;
+            case APXL:
+                break;
+            case APXY:
+                break;
+            case APJZ:
+                break;
+            case AP84:
+                break;
+            case AP85:
+                break;
+            case AP86:
+                break;
+            case AP87:
+                break;
+            case AP88:
+                break;
+            case AP89:
+                break;
+            case APTE:
+                break;
+            case APTP:
+                break;
+            case APX1:
+                break;
+            case APS4:
+                break;
+            case APHP:
+                break;
+            case APDE:
+                break;
+            case APDG:
+                break;
+            case APTU:
+                break;
+            case APSL:
+                break;
+            case AP46:
+                break;
+            case APDH:
+                break;
+            case AP99:
+                break;
+            case BP99:
+                break;
+            case APTQ:
+                break;
+            case APAT:
+                break;
+            case APBT:
+                break;
+            case APBS:
+                break;
+            case APWL:
+                break;
+            case AP65:
+                break;
+            case AP47:
+                break;
+            case APGJ:
+                break;
+            case APFX:
+                break;
+            case UNKNOWN_CMD:
+                break;
         }
 
         return ret;
 
     }
 
+    /**
+     * 闹钟数据
+     *
+     * @param mConnection
+     * @param mRuntime
+     * @param cmd
+     */
+    private void handleBP75(Connection mConnection, Runtime mRuntime, String cmd) {
+        //解析数据
+        ICLogger.d("cmd is == > " + cmd);
+        // IWBP75,
+        // 867282038639874,
+        // 97145,
+        // 1,
+        // 6,
+        // 403836f63d09192,1045,1234567,1
+        // @5403836f63d09192,1230,1234567,1
+        // @5403836f63d09192,,1234567,0
+        // @559d6c3463d09192,,1234567,0
+        // @559d6c3463d09192,,1234567,0
+        // @559d6c3463d09192,,1234567,0
+        try {
+            String[] split = cmd.split(CMDSPLIT);
+            int cmdLen = 0;
+            cmdLen += split[0].length() + 1;
+            cmdLen += split[1].length() + 1;
+            String streamCode = split[2];
+            cmdLen += streamCode.length() + 1;
+            ICLogger.d("streamCode == > " + streamCode);
+            String isAllOpen = split[3];
+            cmdLen += isAllOpen.length() + 1;
+            ICLogger.d("isAllOpen == > " + isAllOpen);
+            String alarmCount = split[4];
+            ICLogger.d("alarmCount = > " + alarmCount);
+            cmdLen += alarmCount.length() + 1;
+            String substring = cmd.substring(cmdLen);
+            String[] alarmItemArray = substring.split("@");
+            for (String itemStr : alarmItemArray) {
+                ICLogger.d("itemStr==> " + itemStr);
+                String[] itemDetail = itemStr.split(CMDSPLIT);
+                //第一个是名称
+                String alarmName = Util.decodeUnicode2Utf8(itemDetail[0]);
+                ICLogger.d("alarmName == > " + alarmName);
+                //第二个是时间
+                String alarmTime = itemDetail[1];
+                ICLogger.d("alarmTime == > " + alarmTime);
+                //第三个是循环星期
+                String weekItem = itemDetail[2];
+                ICLogger.d("weekItem == > " + weekItem);
+                //第四个是开关
+                String isOpen = itemDetail[3];
+                ICLogger.d("isOpen == > " + isOpen);
+                //添加到闹钟数据库中
+                //TODO:
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
 
     /**
      * 处理麦克风的指令
index 6d4187d..fa513ec 100644 (file)
@@ -1,5 +1,5 @@
-#Thu Jun 24 10:47:50 CST 2021
+#Thu Jun 24 11:46:15 CST 2021
 >>>>>>>=b405d1184f3616d4e894d199cee0eb91613a68db
-VERSION_CODE=839
+VERSION_CODE=843
 =\=\=\=\=\=\=
 <<<<<<<=HEAD