From: TrillGates Date: Tue, 17 Aug 2021 08:32:27 +0000 (+0800) Subject: add cmd end for s123 cmd. X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=04fc56f838a4e77b82eb0b821d09bb5a3ee84397;p=icsupport.git add cmd end for s123 cmd. --- diff --git a/app/release/ICSer_V914_2108141935_release.apk b/app/release/ICSer_V915_2108171414_release.apk similarity index 77% rename from app/release/ICSer_V914_2108141935_release.apk rename to app/release/ICSer_V915_2108171414_release.apk index 4568bd5e..a9e949ce 100644 Binary files a/app/release/ICSer_V914_2108141935_release.apk and b/app/release/ICSer_V915_2108171414_release.apk differ diff --git a/app/release/output.json b/app/release/output.json index c43d1466..fe8981ab 100644 --- a/app/release/output.json +++ b/app/release/output.json @@ -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 diff --git a/app/src/main/java/com/enqualcomm/support/service/HeartRateManager.java b/app/src/main/java/com/enqualcomm/support/service/HeartRateManager.java index 92f5bdf5..ca9ae2a3 100644 --- a/app/src/main/java/com/enqualcomm/support/service/HeartRateManager.java +++ b/app/src/main/java/com/enqualcomm/support/service/HeartRateManager.java @@ -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()); } } } diff --git a/app/src/main/java/com/enqualcomm/support/utils/BatteryUtil.java b/app/src/main/java/com/enqualcomm/support/utils/BatteryUtil.java index 5fd2be51..e16a270e 100644 --- a/app/src/main/java/com/enqualcomm/support/utils/BatteryUtil.java +++ b/app/src/main/java/com/enqualcomm/support/utils/BatteryUtil.java @@ -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(); diff --git a/app/src/main/java/com/ic/protocols/protocol_fzd.java b/app/src/main/java/com/ic/protocols/protocol_fzd.java index 1f93acd7..1ef67cd1 100644 --- a/app/src/main/java/com/ic/protocols/protocol_fzd.java +++ b/app/src/main/java/com/ic/protocols/protocol_fzd.java @@ -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] diff --git a/app/src/main/java/com/ic/protocols/protocol_s123.java b/app/src/main/java/com/ic/protocols/protocol_s123.java index d5e0467a..050b1700 100644 --- a/app/src/main/java/com/ic/protocols/protocol_s123.java +++ b/app/src/main/java/com/ic/protocols/protocol_s123.java @@ -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)) diff --git a/app/version_code.properties b/app/version_code.properties index 5736cf10..dbb2a619 100644 --- a/app/version_code.properties +++ b/app/version_code.properties @@ -1,2 +1,2 @@ -#Sat Aug 14 19:35:17 CST 2021 -VERSION_CODE=914 +#Tue Aug 17 14:14:00 CST 2021 +VERSION_CODE=915