add cmd end for s123 cmd.
authorTrillGates <williamtrillgates@gmail.com>
Tue, 17 Aug 2021 08:32:27 +0000 (16:32 +0800)
committerTrillGates <williamtrillgates@gmail.com>
Tue, 17 Aug 2021 08:32:27 +0000 (16:32 +0800)
app/release/ICSer_V915_2108171414_release.apk [moved from app/release/ICSer_V914_2108141935_release.apk with 77% similarity]
app/release/output.json
app/src/main/java/com/enqualcomm/support/service/HeartRateManager.java
app/src/main/java/com/enqualcomm/support/utils/BatteryUtil.java
app/src/main/java/com/ic/protocols/protocol_fzd.java
app/src/main/java/com/ic/protocols/protocol_s123.java
app/version_code.properties

similarity index 77%
rename from app/release/ICSer_V914_2108141935_release.apk
rename to app/release/ICSer_V915_2108171414_release.apk
index 4568bd5..a9e949c 100644 (file)
Binary files a/app/release/ICSer_V914_2108141935_release.apk and b/app/release/ICSer_V915_2108171414_release.apk differ
index c43d146..fe8981a 100644 (file)
@@ -1 +1 @@
-[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":914,"versionName":"2108141935","enabled":true,"outputFile":"ICSer_V914_2108141935_release.apk","fullName":"release","baseName":"release"},"path":"ICSer_V914_2108141935_release.apk","properties":{}}]
\ No newline at end of file
+[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":915,"versionName":"2108171414","enabled":true,"outputFile":"ICSer_V915_2108171414_release.apk","fullName":"release","baseName":"release"},"path":"ICSer_V915_2108171414_release.apk","properties":{}}]
\ No newline at end of file
index 92f5bdf..ca9ae2a 100644 (file)
@@ -405,10 +405,11 @@ public class HeartRateManager extends AbstractInvokeHandlerService {
         new Thread(() -> {
             try {
                 if (heartRateSensorService != null) {
-                    //判断类型,如果不是GH301的硬件,直接走全部测试
-                    String isGh301 = Util.getSystemProperties("persist.sys.is_gh301", "false");
+                    //判断类型,如果不是GH3011的硬件,直接走全部测试
+                    String isGh301 = Util.getSystemProperties("persist.sys.is_gh3011", "false");
+                    ICLogger.d("isGh301 ===> " + isGh301);
                     String customname = Util.getSystemProperties("persist.sys.customname");
-                    ICLogger.i("customname = "+customname);
+                    ICLogger.i("customname = " + customname);
                     if (!Boolean.parseBoolean(isGh301) || customname.equals("AA")) {
                         heartRateSensorService.getHeartRateInfo(from, HeartRateManager.class.getName());
                     } else {
@@ -421,6 +422,8 @@ public class HeartRateManager extends AbstractInvokeHandlerService {
                         } else if (Config.testType == HeartRateOxygenTestType.JUST_OXYGEN) {
                             //测量血氧
                             heartRateSensorService.getJustOxygenInfo(from, HeartRateManager.class.getName());
+                        } else if (Config.testType == HeartRateOxygenTestType.ALL) {
+                            heartRateSensorService.getHeartRateInfo(from, HeartRateManager.class.getName());
                         }
                     }
                 }
index 5fd2be5..e16a270 100644 (file)
@@ -175,16 +175,19 @@ public class BatteryUtil {
 
     public static void checkAndSendBatteryEvent(Context context, Runtime runtime) {
         //add by TrillGates======start
-        //保存一份到警告信息中
-        ContentValues warningMsgValues = new ContentValues();
-        //设置数据
-        warningMsgValues.put(ICDatabaseHelper.warning_msg_type, Constants.WARNING_MSG_TYPE_POWER_LOW);
-        warningMsgValues.put(ICDatabaseHelper.warning_msg_title, runtime.getContextProxy().context.getString(R.string.low_power_warning_text));
-        warningMsgValues.put(ICDatabaseHelper.warning_msg_has_read, 1);
-        warningMsgValues.put(ICDatabaseHelper.warning_msg_create_time, System.currentTimeMillis());
-        runtime.getContextProxy().getResolver().insert(Uri.parse(WarningItemProvider.WARNING_MSG),
-                warningMsgValues);
+        if (runtime.getBatterylevel() <= 20) {
+            //保存一份到警告信息中
+            ContentValues warningMsgValues = new ContentValues();
+            //设置数据
+            warningMsgValues.put(ICDatabaseHelper.warning_msg_type, Constants.WARNING_MSG_TYPE_POWER_LOW);
+            warningMsgValues.put(ICDatabaseHelper.warning_msg_title, runtime.getContextProxy().context.getString(R.string.low_power_warning_text));
+            warningMsgValues.put(ICDatabaseHelper.warning_msg_has_read, 1);
+            warningMsgValues.put(ICDatabaseHelper.warning_msg_create_time, System.currentTimeMillis());
+            runtime.getContextProxy().getResolver().insert(Uri.parse(WarningItemProvider.WARNING_MSG),
+                    warningMsgValues);
+        }
         //add by TrillGates======end
+        ICLogger.d("runtime.getBatterylevel()==> " + runtime.getBatterylevel());
         //没有充电,上次电池level > 15% , 上次电池并且不是 低电状态,则报警
         if (!runtime.isPowerConnected() && runtime.getBatterylevel() <= 15 && runtime.getBatterylevel() > 10 && !runtime.getBatteryLow()) {
             Intent intent = new Intent();
index 1f93acd..1ef67cd 100644 (file)
@@ -85,6 +85,7 @@ import static java.lang.Math.abs;
  * - 正式地址:api.xcloudtech.com
  */
 public class protocol_fzd {
+
     private static final String TAG = "ICSrv." + protocol_fzd.class.getSimpleName();
     private static final String PRIVATE_KEY = "XMQcHi0lGIdru6xzW7lygBwBT8N0c09P";
     private static final String CMD_HEADER = "[";
@@ -99,7 +100,6 @@ public class protocol_fzd {
     private final Handler mHandler;
     private static boolean isServerReady = false;  //跟声网视频说服务器已经准备好了
 
-
     /**
      * 发送语音消息,微聊的,注意转码
      *
@@ -136,7 +136,6 @@ public class protocol_fzd {
                 //fos.flush();
                 //fos.close();
                 //以上代码,验证成功,说明转换是对的
-
                 //判断远程ID,remoteNum,如果这个不为空,那么是单聊
                 //如果remoteNum为空,那么是群聊
                 ICLogger.d("remote id == > " + remoteNum);
@@ -424,6 +423,7 @@ public class protocol_fzd {
         oxygen,//血氧上传
         blood,//血压上传
         heart,//心率上传
+        oxstart,//测血氧,新指令//2021-8-17
         PRACTICE,//自由锻炼数据上传
         BRREG,//获取佰锐的ID
         AGREG,//获取声网ID
@@ -502,6 +502,7 @@ public class protocol_fzd {
         cmdMap.put(CMD_TYPE.oxygen, "oxygen");
         cmdMap.put(CMD_TYPE.blood, "blood");
         cmdMap.put(CMD_TYPE.heart, "heart");
+        cmdMap.put(CMD_TYPE.oxstart, "oxstart");
         cmdMap.put(CMD_TYPE.PRACTICE, "PRACTICE");
         cmdMap.put(CMD_TYPE.BRREG, "BRREG");
         cmdMap.put(CMD_TYPE.AGREG, "AGREG");
@@ -616,6 +617,7 @@ public class protocol_fzd {
     public boolean parserCmd(byte[] bytes) {
         ICLogger.d("source byte size == > " + bytes.length);
         String dataStr = new String(bytes);
+        ICLogger.d("dataStr ==> " + dataStr);
         //因为buffer有限,所以以[判断开头,以]判断结尾,这些数据要叠加起来
         //这样才是完整的数据
         //by TrillGates
@@ -654,6 +656,7 @@ public class protocol_fzd {
                 //如果是FZD命令,则进行处理,否则保留数据动
                 if (regexUtil.isFZDCMD(cmdMap.get(key), cmd)) {
                     ICLogger.d("key is == > " + key);
+                    ICLogger.d("cmd is == > " + cmd);
                     if (key == CMD_TYPE.TK) {
                         handlerGroupChatVoiceContent(totalByte);
                     } else if (key == CMD_TYPE.TKOne) {
@@ -661,10 +664,13 @@ public class protocol_fzd {
                     } else if (key == CMD_TYPE.TKIMG) {
                         handleImage(totalByte);
                     } else {
-                        String data = content.replace(CMD_HEADER, "").replace(cmd, "").replace(CMD_END, "");
+                        String data = content.replace(CMD_HEADER, "")
+                                .replace(cmd, "")
+                                .replace(CMD_END, "");
                         if (data.startsWith(CMD_SPLIT)) {
                             data = data.substring(1);
                         }
+                        ICLogger.d("data is == > " + data);
                         handleCmd(key, cmd, data);
                     }
                 }
@@ -1635,8 +1641,9 @@ public class protocol_fzd {
                 handleBldstart(mConnection);
                 Config.testType = HeartRateOxygenTestType.JUST_OXYGEN;
                 ICLogger.i("收到服务器血压检测命令");
-                if (mRuntime.check_stat_do_ppg_test())
+                if (mRuntime.check_stat_do_ppg_test()) {
                     HeartRateManager.getInstance().triggerPPGTest(FROM_SERVER);
+                }
                 break;
             case wdstart:
                 handleWdstart(mConnection, mRuntime, data);
@@ -1818,10 +1825,44 @@ public class protocol_fzd {
                 ICLogger.d("收到好友列表...");
                 handlerPPQ(data, mRuntime);
                 break;
+            case oxstart:
+                //测试血氧
+                ICLogger.d("收到血氧测试的指令.");
+                handleOxStart(data);
+                mConnection.send(genFZDCMD(cmdMap.get(CMD_TYPE.oxstart)));
+                break;
         }
         return ret;
     }
 
+    /**
+     * 测试血氧
+     *
+     * @param data
+     */
+    private void handleOxStart(String data) {
+        //[IC*870314001007725*0009*oxstart,1]
+        ICLogger.d("data 测试血氧间隔时间 ==> " + data);
+        // 平台发送: [XT*334588000000156*len*oxstart,x] x 为上传间隔时间,单位秒,
+        // 连续上传时最小时间不小于 300 秒,最大不超过 65535.
+        // 实例:[XT*334588000000156*len*oxstart,300]
+        // 终端会每隔 300 秒检测一次
+        // x 为 1 则代表终端单次上传,上传完后自动关闭。
+        // x 为 0 则代表终端上传关闭。
+        if ("1".equals(data)) {
+            Config.testType = HeartRateOxygenTestType.JUST_OXYGEN;
+            //血氧测量
+            HeartRateManager.getInstance().triggerPPGTest(FROM_SERVER);
+        } else if ("0".equals(data)) {
+            //处理关闭
+        } else {
+            //处理周期
+        }
+        //终端回复 [XT*334588000000156*len*oxstart]
+        //回复消息
+        //TODO:
+    }
+
     /**
      * 平台回复: [XT*YYYYYYYYYYYYYYY*LEN*PPQ,ID1,昵称 1,手机号 1,ID2,昵称 2,手机号 2]
      * 实例: [XT*8800000015*000A*e476005866e8a2a6407502b3, 5F204E0,555,8800000016, 5F204E1,556]
index d5e0467..050b170 100644 (file)
@@ -933,6 +933,7 @@ public class protocol_s123 {
                         .append(CMDSPLIT).append(ds.getBatterylevel())
                         .append(CMDSPLIT).append(ds.getLBSData())
                         .append(CMDSPLIT).append(ds.getWifiInfo())
+                        .append(CMDEND)
                         .toString());  //wifi信息数据
     }
 
@@ -2958,6 +2959,7 @@ public class protocol_s123 {
         if (TextUtils.isEmpty(responseText)) {
             responseText = "";
         }
+        ICLogger.d("responseText ==> " + responseText);
         //在UI逻辑中,只要有处理就都是已经阅读。所以不存在取消阅读的说法。
         return genStringMessage(cmdMap.get(CMD_TYPE.AP94),
                 new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP94))
index 5736cf1..dbb2a61 100644 (file)
@@ -1,2 +1,2 @@
-#Sat Aug 14 19:35:17 CST 2021\r
-VERSION_CODE=914\r
+#Tue Aug 17 14:14:00 CST 2021\r
+VERSION_CODE=915\r