parse setting info.
authorTrillGates <williamtrillgates@gmail.com>
Thu, 8 Apr 2021 06:38:05 +0000 (14:38 +0800)
committerTrillGates <williamtrillgates@gmail.com>
Thu, 8 Apr 2021 06:38:05 +0000 (14:38 +0800)
app/src/main/java/com/ic/protocols/protocol_fzd.java

index 0bf981b..3928094 100644 (file)
@@ -351,6 +351,7 @@ public class protocol_fzd {
         TKQ,//获取离线语音消息(微聊)
         FLOWER,//小红花奖励
         RECORD,//拾音开关
+        INFO,//绑定时当前开关数据
         BLE,//上传蓝地址
         LK,//登录
         PING,//绑定查询
@@ -416,6 +417,7 @@ public class protocol_fzd {
         cmdMap.put(CMD_TYPE.TKQ, "TKQ");
         cmdMap.put(CMD_TYPE.FLOWER, "FLOWER");
         cmdMap.put(CMD_TYPE.RECORD, "RECORD");
+        cmdMap.put(CMD_TYPE.INFO, "INFO");
         cmdMap.put(CMD_TYPE.BLE, "BLE");
         cmdMap.put(CMD_TYPE.PING, "PING");
         cmdMap.put(CMD_TYPE.rcapture, "rcapture");
@@ -1576,11 +1578,42 @@ public class protocol_fzd {
                 handleFollow(data, mRuntime);
                 mConnection.DeliverCMDMessageToSystem("FLOWER", cmd);
                 break;
+            case INFO:
+                ICLogger.d("收到服务器更改开关配置信息.");
+                handleSettingsInfo(data);
+                mConnection.DeliverCMDMessageToSystem("INFO", cmd);
+                break;
         }
         return ret;
 
     }
 
+    /**
+     * 修改设置信息
+     * api文档:
+     * [XT*YYYYYYYYYY*LEN*INFO,PEDO,计步开关(0 为关 1 为开),LowBat,
+     * 低电开关状态(0 为 关 1 为开),FQCY,上传位置时间间隔(单位秒),Wear,
+     * 防摘开关(0 为关 1 为开),Fall,防 摔倒开关(0 为关 1 为开),Shake,
+     * 防震动开关(0 为关 1 为开)]
+     * 实例: [LH*8800000015*0016*INFO,PEDO,1,LowBat,0,FQCY,600,Wear,0,Fall,0,Shake,0]
+     * 终端回复: [XT*YYYYYYYYYY*LEN*INFO],实例: [LH*8800000015*0004*INFO]
+     * 注:有新的数据将追加在后面,所以对接的时候可根据需求抓相应数据,并兼容后续动态追加的可能性
+     *
+     * @param data
+     */
+    private void handleSettingsInfo(String data) {
+        //对数据进行切割
+        String[] split = data.split(CMDSPLIT);
+        //长度肯定是双数的,所以-1吧,
+        for (int i = 0; i < split.length - 1; i += 2) {
+            //每2个为一组
+            //分别为key-value
+            String key = split[i];
+            String value = split[i + 1];
+            ICLogger.d(key + " --> " + value);
+        }
+    }
+
     /**
      * 处理小红花奖励,保存到数据库中,谁需要,谁读取,谁关心,谁观察。
      *
@@ -1610,8 +1643,7 @@ public class protocol_fzd {
      * 监听,这里是拨号回主手机。
      */
     private void handleMONITOR() {
-
-
+        //TODO:
     }
 
     /**