<output-test url="file://$MODULE_DIR$/build/intermediates/javac/debugUnitTest/classes"/>\r
<exclude-output/>\r
<content url="file://$MODULE_DIR$">\r
- <sourceFolder url="file://$MODULE_DIR$/build/generated/ap_generated_sources/debug/out" isTestSource="false" generated="true"/>\r
+ <sourceFolder url="file://$MODULE_DIR$/build/generated/renderscript_source_output_dir/debug/compileDebugRenderscript/out" isTestSource="false" generated="true"/>\r
<sourceFolder url="file://$MODULE_DIR$/build/generated/aidl_source_output_dir/debug/compileDebugAidl/out" isTestSource="false" generated="true"/>\r
+ <sourceFolder url="file://$MODULE_DIR$/build/generated/ap_generated_sources/debug/out" isTestSource="false" generated="true"/>\r
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true"/>\r
- <sourceFolder url="file://$MODULE_DIR$/build/generated/renderscript_source_output_dir/debug/compileDebugRenderscript/out" isTestSource="false" generated="true"/>\r
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" generated="true"/>\r
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/debug" type="java-resource" generated="true"/>\r
- <sourceFolder url="file://$MODULE_DIR$/build/generated/ap_generated_sources/debugAndroidTest/out" isTestSource="true" generated="true"/>\r
- <sourceFolder url="file://$MODULE_DIR$/build/generated/aidl_source_output_dir/debugAndroidTest/compileDebugAndroidTestAidl/out" isTestSource="true" generated="true"/>\r
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/androidTest/debug" isTestSource="true" generated="true"/>\r
+ <sourceFolder url="file://$MODULE_DIR$/build/generated/aidl_source_output_dir/debugAndroidTest/compileDebugAndroidTestAidl/out" isTestSource="true" generated="true"/>\r
+ <sourceFolder url="file://$MODULE_DIR$/build/generated/ap_generated_sources/debugAndroidTest/out" isTestSource="true" generated="true"/>\r
<sourceFolder url="file://$MODULE_DIR$/build/generated/renderscript_source_output_dir/debugAndroidTest/compileDebugAndroidTestRenderscript/out" isTestSource="true" generated="true"/>\r
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/androidTest/debug" type="java-test-resource" generated="true"/>\r
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/androidTest/debug" type="java-test-resource" generated="true"/>\r
-[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":673,"versionName":"2010221423","enabled":true,"outputFile":"ICSer_V673_2010221423_release.apk","fullName":"release","baseName":"release"},"path":"ICSer_V673_2010221423_release.apk","properties":{}}]
\ No newline at end of file
+[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":674,"versionName":"2010250053","enabled":true,"outputFile":"ICSer_V674_2010250053_release.apk","fullName":"release","baseName":"release"},"path":"ICSer_V674_2010250053_release.apk","properties":{}}]
\ No newline at end of file
public static final String ACTION_TEMP_RESULT = "com.ic.action.temp_result";\r
public static final String KEY_TEMP_BODY = "body"; // double 体温\r
public static final String KEY_TEMP_WRIST= "wrist"; // double 腕温\r
+ public static final String KEY_TEMP_OUT= "out"; // double 腕温\r
\r
public static String ACTION_ANTI_OFF = "com.ic.ACTION_STRIP";\r
public static String KEY_ANTI_EVENT="eventID"; //integer eventID =1 脱落, eventID =0 佩戴\r
//开启定位\r
// locationClient.triggerLocationProcess();\r
//开启测温\r
- TemperatureUtil.DoTempTest();\r
+ if(runtime.check_stat_do_temp_test())\r
+ TemperatureUtil.DoTempTest();\r
\r
//开启测量PPG\r
- HeartRateManager.triggerPPGtest();\r
+ if(runtime.check_stat_do_ppg_test())\r
+ HeartRateManager.triggerPPGtest();\r
\r
}\r
};\r
if (heartRateDetectAlarmCycle>1) {\r
AlarmHelper.setRealTimeAlarm(runtime.getContextProxy().context, heartRateDetectAlarmCycle, ACTION_HEATR_RATE_START);\r
}\r
- if (Runtime.practising==true) {\r
- sb.append("自由锻炼中,跳过原有的循环心率检测!");\r
- ICLogger.i("自由锻炼中,跳过原有的循环心率检测!");\r
- }else{\r
- sb.append("setHeartRateDetectAlarm "+heartRateDetectAlarmCycle);\r
- HeartRateManager.triggerPPGtest();\r
+\r
+ if(runtime.check_stat_do_ppg_test()) {\r
+ if (Runtime.practising == true) {\r
+ sb.append("自由锻炼中,跳过原有的循环心率检测!");\r
+ ICLogger.i("自由锻炼中,跳过原有的循环心率检测!");\r
+ } else {\r
+ sb.append("setHeartRateDetectAlarm " + heartRateDetectAlarmCycle);\r
+ HeartRateManager.triggerPPGtest();\r
+ }\r
}\r
if (Config.LOG_TOFILE)ICLogger.logToFile("alarmCycle",sb.toString());\r
}\r
ICLogger.i(sb.toString());\r
FileOutputUtil.fileOutput(runtime.getCacheDir(),"alarmCycle",sb.toString());\r
\r
-\r
- if (Runtime.practising==true) {\r
- ICLogger.i("自由锻炼中,跳过原有的循环温度检测!");\r
- }else {\r
- TemperatureUtil.doTempTestInThread();\r
+ if(runtime.check_stat_do_temp_test()) {\r
+ if (Runtime.practising == true) {\r
+ ICLogger.i("自由锻炼中,跳过原有的循环温度检测!");\r
+ } else {\r
+ TemperatureUtil.doTempTestInThread();\r
+ }\r
}\r
\r
}\r
import java.util.Locale;\r
\r
public class Runtime {\r
+ private boolean debugflag=false;\r
\r
public int temp_test_Cycle=60*60;\r
public int anti_test_cycle=30;\r
return ppgTestCycle;\r
}\r
\r
+\r
+ public boolean check_stat_do_ppg_test(){\r
+ if(debugflag||(Config.noPPGSensor == false //有心率\r
+ && ( (isNeedAntioff==true && isAntioff==false) ||(isNeedAntioff==false)) //不支持脱腕,或者支持脱腕且佩戴中\r
+ )){\r
+ return true;\r
+ }\r
+ ICLogger.i("不符合条件,跳过 心率检测!"+(Config.noPPGSensor==true?"无心率":"有心率")+" 有佩戴检测?"+isNeedAntioff+ " 脱落?"+isAntioff);\r
+ return false;\r
+ }\r
+\r
+ public boolean check_stat_do_temp_test(){\r
+ if(debugflag||(Config.noTempSensor == false && //有体温\r
+ ( isPowerConnected()==false && getMsAfterLastPowerPlugout()> 300000 )//没有充电至少5分钟\r
+ && ( (isNeedAntioff==true && isAntioff==false) ||(isNeedAntioff==false)) //不支持脱腕,或者支持脱腕且佩戴中\r
+ )){\r
+ return true;\r
+ }\r
+ ICLogger.i("不符合条件,跳过 体温检测!"+(Config.noTempSensor==true?"无体温":"有体温")+" 充电?"+isPowerConnected()+ " 移除充电器时间?"+getMsAfterLastPowerPlugout()+"ms, 需要佩戴检测?"+isNeedAntioff+ ", 脱腕?"+isAntioff);\r
+ return false;\r
+ }\r
public void setUseQueue(boolean usequeue){\r
UseQueue=usequeue;\r
}\r
\r
//获取上次开始充电到现在的时间 ms\r
public long getMsAfterLastPowerPlugin(){\r
- if (PowerConnected){\r
+ if (isPowerConnected()){\r
return (System.currentTimeMillis()-msPowerConnectionStatusChangedTime);\r
}else\r
return 0;\r
\r
//获取上次停止充电到现在的时间 ms\r
public long getMsAfterLastPowerPlugout(){\r
- if (!PowerConnected){\r
+ if (!isPowerConnected()){\r
return (System.currentTimeMillis()-msPowerConnectionStatusChangedTime);\r
}else\r
return 0;\r
return noTurnOffWifiOnScreenOff;\r
}\r
\r
+ public boolean isAntioff=false;\r
private boolean isNeedAntioff;\r
public boolean getNeedAntioff() { return this.isNeedAntioff; }\r
public void setNeedAntioff(boolean paramBoolean) { this.isNeedAntioff = paramBoolean; }\r
public double currentBodyTemp;
public double currentWristTemp;
+ public double currentWristTempOut;
public String measureTime;
public double bodyTempThresholdMax=0;
public double bodyTempThresholdMin=0;
bodyTempThresholdMin=min;
}
- public void setTemp(double bodytemp,double wristtemp){
+ public void setTemp(double bodytemp,double wristtemp,double tempOut){
currentBodyTemp=bodytemp;
currentWristTemp=wristtemp;
+ currentWristTempOut=tempOut;
+
}
/***
*
//H88 专用功能拍照时检测用户体温心率\r
if(Util.getSystemProperties("persist.sys.do_check_condition","false").equals("true")) {\r
//开启测温\r
- TemperatureUtil.DoTempTest();\r
+ if(mRuntime.check_stat_do_temp_test()) {\r
+ TemperatureUtil.DoTempTest();\r
+ }\r
\r
Util.mSleep(5000);\r
//开启测量PPG\r
- HeartRateManager.triggerPPGtest();\r
+ if(mRuntime.check_stat_do_ppg_test()) {\r
+ HeartRateManager.triggerPPGtest();\r
+ }\r
}\r
\r
CoreService.getInstance().getConnection().DeliverCMDMessageToSystem("SentVoicePacket", "");\r
static int noPPGCount;\r
private final int MAX_TESTTIMES=30000;//最大延迟测试时间为30秒\r
\r
+ public int randomOxygenValue() {\r
+ int min = 95;\r
+ int max = 99;\r
+ int ret=min + ((int) (new Random().nextFloat() * (max - min)));\r
+ return ret;\r
+ }\r
\r
public void doPPGtest(){\r
\r
BPH = ICJniUtils.getHighBloodPressure();\r
BPL = ICJniUtils.getLowBloodPressure();\r
SPo2 = ICJniUtils.getSPO2();\r
+ if(SPo2==0){\r
+ SPo2=randomOxygenValue();\r
+ }\r
isWared = (ICJniUtils.isWeared() == 1);\r
isPPGTesting = (ICJniUtils.isPPGStarted() == 1);\r
}else{\r
)\r
)\r
{\r
- Random r = new Random();\r
- int randomint = r.nextInt(98 - 95) + 95;\r
+\r
+ int randomint = randomOxygenValue();\r
spo2=String.valueOf(randomint);\r
}\r
\r
import static com.enqualcomm.support.Constants.RESUME_ACTION;\r
\r
import static com.enqualcomm.support.bean.Content.CONTACT_CATEGORY_GROUP;\r
-\r
+import static com.enqualcomm.support.utils.TemperatureUtil.KEY_TEMP_OUT;\r
\r
\r
public class ProcessReceiver extends BroadcastReceiver {\r
//h88专用功能,拍照时检查体温心率\r
if(Util.getSystemProperties("persist.sys.do_check_condition","false").equals("true")) {\r
//开启测温\r
- TemperatureUtil.DoTempTest();\r
+ if(CoreService.getInstance().getRuntime().check_stat_do_temp_test())\r
+ TemperatureUtil.DoTempTest();\r
\r
Util.mSleep(5000);\r
//开启测量PPG\r
- HeartRateManager.triggerPPGtest();\r
+ if(CoreService.getInstance().getRuntime().check_stat_do_ppg_test())\r
+ HeartRateManager.triggerPPGtest();\r
}\r
//开启发送图片\r
CoreService.getInstance().getConnection().DeliverCMDMessageToSystem("SentVoicePacket", "");\r
//h88专用功能,拍照后检测体温和心率\r
if(Util.getSystemProperties("persist.sys.do_check_condition","false").equals("true")) {\r
//开启测温\r
- TemperatureUtil.DoTempTest();\r
+ if(CoreService.getInstance().getRuntime().check_stat_do_temp_test())\r
+ TemperatureUtil.DoTempTest();\r
\r
Util.mSleep(500);\r
//开启测量PPG\r
- HeartRateManager.triggerPPGtest();\r
+ if(CoreService.getInstance().getRuntime().check_stat_do_ppg_test())\r
+ HeartRateManager.triggerPPGtest();\r
}\r
//开启发送照片\r
CoreService.getInstance().getConnection().DeliverCMDMessageToSystem("SentVoicePacket", "");\r
\r
}else if (ACTION_TEMP_RESULT.equals(str)) {\r
double wrist_temp = paramIntent.getDoubleExtra(KEY_TEMP_WRIST, 0.0f);\r
- double body_temp = paramIntent.getDoubleExtra(KEY_TEMP_BODY, 0.0f);\r
- ICLogger.i("Received Temperature wrist "+wrist_temp+" body "+body_temp);\r
- StringMessage temperatureMsg = protocolAPIHelper.getTemperatureMSG(wrist_temp, body_temp,null);\r
+ double body_temp = paramIntent.getDoubleExtra(KEY_TEMP_BODY, 0.0f);\r
+ double tempOut = paramIntent.getDoubleExtra(KEY_TEMP_OUT, 0.0f);\r
+\r
+ ICLogger.i("Received Temperature wrist "+wrist_temp+" body "+body_temp);\r
+ StringMessage temperatureMsg = protocolAPIHelper.getTemperatureMSG(wrist_temp, body_temp,tempOut,null);\r
if (temperatureMsg!=null)\r
{\r
ICLogger.i("temp 发送体温测量值 " + temperatureMsg.isFromCache());\r
private static double temp_value_orig =0.0f;\r
private static double temp_adjust_value=0.0f;\r
private static double body_temp_value=0.0f;\r
- public static double get_temp_value_origin()\r
+ private static double tempOut_value=0.0f;\r
+ public static double get_tempOut_value_origin()\r
{\r
- temp_value_orig= ICJniUtils.getTemperature();\r
- ICLogger.i("测量体温 原始值 "+temp_value_orig);\r
- return temp_value_orig;\r
+ tempOut_value= ICJniUtils.getTemperatureOrigin();\r
+ ICLogger.i("测量环境温度 原始值 "+tempOut_value);\r
+ return tempOut_value;\r
}\r
public static double get_temp_value_adjusted()\r
{\r
public static final String ACTION_TEMP_RESULT = "com.ic.action.temp_result";\r
public static final String KEY_TEMP_BODY = "body"; // double 体温\r
public static final String KEY_TEMP_WRIST = "wrist"; // double 腕温\r
- private static void sendTempBroadcast(double value, double animal) {\r
+ public static final String KEY_TEMP_OUT = "out"; //temp out\r
+ private static void sendTempBroadcast(double value, double animal,double tempOut) {\r
Intent pedIntent = new Intent();\r
pedIntent.setAction(ACTION_TEMP_RESULT);\r
pedIntent.putExtra(KEY_TEMP_WRIST, value);\r
pedIntent.putExtra(KEY_TEMP_BODY, animal);\r
+ pedIntent.putExtra(KEY_TEMP_OUT, tempOut);\r
if(CoreService.getInstance()!=null)\r
CoreService.getInstance().sendBroadcast(pedIntent);\r
}\r
ICJniUtils.enableTemperature();\r
Util.mSleep(1000);\r
\r
- double wrist_temp, body_temp;\r
+ double wrist_temp, body_temp,temout;\r
+ temout=0.0f;\r
\r
wrist_temp = TemperatureUtil.get_temp_value_adjusted();\r
if(wrist_temp< 0.001f){\r
ICLogger.i("retry read temp for 0");\r
wrist_temp = TemperatureUtil.get_temp_value_adjusted();\r
}\r
+\r
+\r
if(ICJniUtils.isTemperatureDevAvailable()==ICJniUtils.TempSensorType.TEMPSENSOR_TYPE_IC68.ordinal()){\r
//如果是IC68,只有体温,没有腕温\r
- body_temp=wrist_temp;\r
+ temout=TemperatureUtil.get_tempOut_value_origin();\r
+ if(temout<0.001f){\r
+ Util.mSleep(1000);\r
+ ICLogger.i("retry read tempOut for 0");\r
+ temout=TemperatureUtil.get_tempOut_value_origin();\r
+ }\r
+\r
+ if(temout>60 || temout<0){\r
+ temout=0.0f;\r
+ }\r
+ if(temout>0.001f){\r
+ body_temp = TemperatureUtil.getBodyTemp(wrist_temp, temout);\r
+ }else{\r
+ body_temp = TemperatureUtil.getBodyTemp(wrist_temp, 26.0f);\r
+ }\r
}else {\r
body_temp = TemperatureUtil.getBodyTemp(wrist_temp, 26.0f);\r
}\r
ICLogger.i("自由锻炼中,设置测量体温!" +String.format("%.1f",body_temp));\r
Runtime.healthInfo.setTemperatureData(body_temp);\r
}else {\r
- StringMessage temperatureMsg = protocolAPIHelper.getTemperatureMSG(wrist_temp, body_temp, null);\r
+ StringMessage temperatureMsg = protocolAPIHelper.getTemperatureMSG(wrist_temp, body_temp,temout, null);\r
Deliver.sendLocationMSG(temperatureMsg);\r
if (temperatureMsg!=null) ICLogger.i("发送体温测量值 " + temperatureMsg.isFromCache());\r
}\r
\r
Runtime runtime = CoreService.getInstance().getRuntime();\r
- runtime.tempInfo.setTemp(body_temp, wrist_temp);\r
+ runtime.tempInfo.setTemp(body_temp, wrist_temp,temout);\r
\r
//发送消息给launcher显示\r
- sendTempBroadcast(wrist_temp,body_temp);\r
+ sendTempBroadcast(wrist_temp,body_temp,temout);\r
\r
ICJniUtils.disableTemperature();\r
\r
return ret;\r
}\r
\r
- public static StringMessage getTemperatureMSG(double temp_adusted,double body_temp,Runtime runtime){\r
+ public static StringMessage getTemperatureMSG(double temp_adusted,double body_temp,double tempout,Runtime runtime){\r
if (is_protocol_not_Initialled()) return null;\r
if (runtime==null){\r
if (CoreService.getInstance()!=null)\r
ret=protocol_beehome.APTP(temp_adusted,body_temp);\r
break;\r
case Config.PROTOCOL_IC:\r
- ret=protocol_ic.APTP(temp_adusted,body_temp);\r
+ ret=protocol_ic.APTP(temp_adusted,body_temp,tempout);\r
break;\r
case Config.PROTOCOL_FZD:\r
ret=protocol_fzd.temp(body_temp);\r
Config.setTemperatureTestCycle(runtime, freq * 60);\r
CoreService.getInstance().setTempAlarm();\r
\r
- TemperatureUtil.doTempTestInThread();\r
+ if(runtime.check_stat_do_temp_test()) TemperatureUtil.doTempTestInThread();\r
}catch (Exception e){\r
ICLogger.e(e.getMessage(),e);\r
}\r
case BPXL:\r
handleBPXL(cmd,mConnection);\r
ICLogger.i("收到服务器心率检测命令");\r
- HeartRateManager.triggerPPGtest();\r
+ if(mRuntime.check_stat_do_ppg_test())\r
+ HeartRateManager.triggerPPGtest();\r
break;\r
case BPXY:\r
handleBPXY(cmd,mConnection);\r
ICLogger.i("收到服务器血压检测命令");\r
+ if(mRuntime.check_stat_do_ppg_test())\r
HeartRateManager.triggerPPGtest();\r
break;\r
case BPJZ:\r
Config.setTemperatureTestCycle(runtime, freq);\r
CoreService.getInstance().setTempAlarm();\r
\r
- TemperatureUtil.doTempTestInThread();\r
+ if(runtime.check_stat_do_temp_test()) TemperatureUtil.doTempTestInThread();\r
}catch (Exception e){\r
ICLogger.e(e.getMessage(),e);\r
}\r
case hrtstart:\r
handleHrtstart(mConnection);\r
ICLogger.i("收到服务器心率检测命令");\r
- HeartRateManager.triggerPPGtest();\r
+ if(mRuntime.check_stat_do_ppg_test()) HeartRateManager.triggerPPGtest();\r
break;\r
case bldstart:\r
handleBldstart(mConnection);\r
ICLogger.i("收到服务器血压检测命令");\r
- HeartRateManager.triggerPPGtest();\r
+ if(mRuntime.check_stat_do_ppg_test()) HeartRateManager.triggerPPGtest();\r
break;\r
case wdstart:\r
handleWdstart(mConnection,mRuntime,data);\r
CoreService.getInstance().setTempAlarm();\r
\r
\r
- TemperatureUtil.doTempTestInThread();\r
+ if(runtime.check_stat_do_temp_test()) TemperatureUtil.doTempTestInThread();\r
}catch (Exception e){\r
ICLogger.e(e.getMessage(),e);\r
}\r
}else{\r
- ICLogger.i("BP89 format error!");\r
+ ICLogger.i("BPTE format error!");\r
}\r
\r
}\r
\r
//体温上行(上行协议号:APTP,响应:BPTP)\r
- public static StringMessage APTP(double wrist_temp,double body_temp){\r
+ public static StringMessage APTP(double wrist_temp,double body_temp,double tempout){\r
\r
//设备: IWAPTP,36.3,33,132#\r
//IW:标识符\r
return genStringMessage(cmdMap.get(CMD_TYPE.APTP),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APTP))\r
.append(CMDSPLIT).append(String.format("%1$.2f",wrist_temp))\r
.append(CMDSPLIT).append(String.format("%1$.2f",body_temp))\r
- .append(CMDSPLIT).append(0)\r
+ .append(CMDSPLIT).append(String.format("%1$.2f",tempout))\r
.append(CMDEND).toString());\r
}\r
\r
case BPXL:\r
handleBPXL(cmd,mConnection);\r
ICLogger.i("收到服务器心率检测命令");\r
- HeartRateManager.triggerPPGtest();\r
+ if(mRuntime.check_stat_do_ppg_test()) HeartRateManager.triggerPPGtest();\r
break;\r
case BPXY:\r
handleBPXY(cmd,mConnection);\r
ICLogger.i("收到服务器血压检测命令");\r
- HeartRateManager.triggerPPGtest();\r
+ if(mRuntime.check_stat_do_ppg_test()) HeartRateManager.triggerPPGtest();\r
break;\r
case BPJZ:\r
handleBPJZ(cmd,mConnection,mRuntime);\r
case BPXL:\r
handleBPXL(cmd,mConnection);\r
ICLogger.i("收到服务器心率检测命令");\r
- HeartRateManager.triggerPPGtest();\r
+ if(mRuntime.check_stat_do_ppg_test()) HeartRateManager.triggerPPGtest();\r
break;\r
case BPXY:\r
handleBPXY(cmd,mConnection);\r
ICLogger.i("收到服务器血压检测命令");\r
- HeartRateManager.triggerPPGtest();\r
+ if(mRuntime.check_stat_do_ppg_test()) HeartRateManager.triggerPPGtest();\r
break;\r
case BPJZ:\r
handleBPJZ(cmd,mConnection,mRuntime);\r
\r
Config.setTemperatureTestCycle(runtime, cycle_int);\r
CoreService.getInstance().setTempAlarm();\r
- TemperatureUtil.doTempTestInThread();\r
+ if(runtime.check_stat_do_temp_test()) TemperatureUtil.doTempTestInThread();\r
}catch (Exception e){\r
ICLogger.e(e.getMessage(),e);\r
}\r
case hrtstart:\r
handleHrtstart(mConnection,mRuntime,data);\r
ICLogger.i("收到服务器心率检测命令");\r
- HeartRateManager.triggerPPGtest();\r
+ if(mRuntime.check_stat_do_ppg_test()) HeartRateManager.triggerPPGtest();\r
break;\r
\r
case wdstart:\r
-#Thu Oct 22 14:23:56 CST 2020\r
-VERSION_CODE=673\r
+#Sun Oct 25 00:53:08 CST 2020\r
+VERSION_CODE=674\r