From: snickersun Date: Fri, 23 Oct 2020 02:26:27 +0000 (+0800) Subject: 优化 心率和体温的检测周期 设定 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=d29825d94be5089e7ffa6f76fe98d399916bff83;p=protocol_srv.git 优化 心率和体温的检测周期 设定 --- diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index b716572b..2e5ed1d2 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -123,6 +123,7 @@ + diff --git a/app/src/main/java/com/enqualcomm/support/CoreService.java b/app/src/main/java/com/enqualcomm/support/CoreService.java index 3f3765f7..985fc8d7 100644 --- a/app/src/main/java/com/enqualcomm/support/CoreService.java +++ b/app/src/main/java/com/enqualcomm/support/CoreService.java @@ -186,10 +186,11 @@ public class CoreService extends Service { if (ACTION_SEND_EMEGENCY_LOCATION_START.equals(param1Intent.getAction())){ runtime.getLocationInstance().setWorkingMod(EMERGNECY_MOD); - runtime.setPpgTestCycle(1); + //runtime.setPpgTestCycle(1); setLocationAlarm(runtime.getLocationInstance().getWorkingMod()); - setHeartRateDetectAlarm(runtime.getPpgTestCycle()); + //触发一次心率检测 + setHeartRateDetectAlarm(1); setEmegencyLocationSTOPAlarm(5); @@ -200,8 +201,8 @@ public class CoreService extends Service { // if( param1Intent.getIntExtra("type", 1) == 1) { boolean needHRSTestOnSOS = Util.getSystemProperties("persist.sys.needHRSOnSOS","false").equals("true"); if(needHRSTestOnSOS) { - setHeartRateDetectAlarm(runtime.getPpgTestCycle()); - HeartRateManager.triggerPPGtest(); + //触发一次心率检测 + setHeartRateDetectAlarm(1); } runtime.setAlarmType(Runtime.AlarmType.ALARM_SOS); //trigger AP10 报警定位 @@ -215,8 +216,8 @@ public class CoreService extends Service { //SOS模式,心率测试1分钟一次,持续5分钟 if(needHRSTestOnSOS) { - runtime.setPpgTestCycle(1); - setHeartRateDetectAlarm(runtime.getPpgTestCycle()); + //只触发一次心率检测 + setHeartRateDetectAlarm(1); } //设置5分钟后结束紧急定位模式 setEmegencyLocationSTOPAlarm(5); @@ -1139,26 +1140,10 @@ public class CoreService extends Service { return Service.START_STICKY; } } else if (TEMP_ALARM.equals(paramIntent.getAction())) { - if (this.mKeepAlive != null) { - if (connection.isServerConnected() && runtime.isServerProtocolConnected()) { - //测试温度并上报 - - if (Runtime.practising==true) { - ICLogger.i("自由锻炼中,跳过原有的循环温度检测!"); - }else { - TemperatureUtil.doTempTestInThread(); - } -// double wrist_temp=TemperatureUtil.get_temp_value_adjusted(); -// double body_temp=TemperatureUtil.getBodyTemp(wrist_temp,26.0f); -// String temperatureMsg=getTemperatureMSG(wrist_temp,body_temp); -// ICLogger.i("发送体温测量值 "+temperatureMsg); -// Deliver.sendLocationMSG(temperatureMsg); - } - setTempAlarm(); - if (Config.LOG_TOFILE) - ICLogger.logToFile("alarmCycle", "TEMP_ALARM alarmCycle "); - return Service.START_STICKY; - } + + setTempAlarm(); + + return Service.START_STICKY; } else if (HEART_ALARM.equals(paramIntent.getAction())) { locationClient.updateStepCount(); @@ -1202,8 +1187,16 @@ public class CoreService extends Service { } else if (ACTION_HEATR_RATE_START.equals(paramIntent.getAction())) { //此处消息从timer来 - setHeartRateDetectAlarm(runtime.getPpgTestCycle()); - + //此消息来源于BroadCaset,收到开始测试的消息。 + //此时需要重置HeartRateDetect Timer + //倘若有 参数 PPGTestCycle,则根据这个数值进行设置 + int ppgtestCycle=paramIntent.getIntExtra("PPGTestCycle",-1); + if (ppgtestCycle >0){ + Config.setPPGTestCycle(runtime.getContextProxy().context,ppgtestCycle); + runtime.setPpgTestCycle(Config.getPPGTestCycle(runtime.getContextProxy().context)); + ICLogger.i("get and set PPGTestCycle "+ppgtestCycle); + } + setHeartRateDetectAlarm(runtime.getPpgTestCycle());//重置心率检测周期,并触发一次检测 } else if (ACTION_SEND_EMEGENCY_LOCATION_STOP.equals(paramIntent.getAction())) { //stop Emegency location Stop @@ -1231,10 +1224,21 @@ public class CoreService extends Service { } public void setHeartRateDetectAlarm(int heartRateDetectAlarmCycle){ - if (Config.noPPGSensor) - return ; - if (heartRateDetectAlarmCycle>1) - AlarmHelper.setRealTimeAlarm(runtime.getContextProxy().context,heartRateDetectAlarmCycle,ACTION_HEATR_RATE_START); + if (Config.noPPGSensor) { + return; + } + StringBuilder sb=new StringBuilder(); + if (heartRateDetectAlarmCycle>1) { + AlarmHelper.setRealTimeAlarm(runtime.getContextProxy().context, heartRateDetectAlarmCycle, ACTION_HEATR_RATE_START); + } + if (Runtime.practising==true) { + sb.append("自由锻炼中,跳过原有的循环心率检测!"); + ICLogger.i("自由锻炼中,跳过原有的循环心率检测!"); + }else{ + sb.append("setHeartRateDetectAlarm "+heartRateDetectAlarmCycle); + HeartRateManager.triggerPPGtest(); + } + if (Config.LOG_TOFILE)ICLogger.logToFile("alarmCycle",sb.toString()); } public void setAntiCheckAlarm(){ AlarmHelper.setRealTimeAlarmInMicorSeconds(runtime.getContextProxy().context,500,ACTION_CHECK_ANTIOFF_EVENT); @@ -1336,7 +1340,13 @@ public class CoreService extends Service { ICLogger.i(sb.toString()); FileOutputUtil.fileOutput(runtime.getCacheDir(),"alarmCycle",sb.toString()); -// AlarmHelper.setRealTimeAlarm(runtime.getContextProxy().context,1, HEART_ALARM); + + if (Runtime.practising==true) { + ICLogger.i("自由锻炼中,跳过原有的循环温度检测!"); + }else { + TemperatureUtil.doTempTestInThread(); + } + } public void setUpLocationDataAlarm(long paramLong) { AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE); diff --git a/app/src/main/java/com/enqualcomm/support/service/Deliver.java b/app/src/main/java/com/enqualcomm/support/service/Deliver.java index e12aeeb1..e3da0443 100644 --- a/app/src/main/java/com/enqualcomm/support/service/Deliver.java +++ b/app/src/main/java/com/enqualcomm/support/service/Deliver.java @@ -389,6 +389,7 @@ public class Deliver extends AbstractConnectionService { if (CoreService.getInstance().getConnection()!=null) { + //H88 专用功能拍照时检测用户体温心率 if(Util.getSystemProperties("persist.sys.do_check_condition","false").equals("true")) { //开启测温 TemperatureUtil.DoTempTest(); 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 0a28a4cd..9c6ccb38 100644 --- a/app/src/main/java/com/enqualcomm/support/service/HeartRateManager.java +++ b/app/src/main/java/com/enqualcomm/support/service/HeartRateManager.java @@ -209,26 +209,6 @@ public class HeartRateManager extends AbstractInvokeHandlerService implements Se } - private BroadcastReceiver PPGStartReceiver = new BroadcastReceiver() { - public void onReceive(Context param1Context, Intent param1Intent) { - if (ACTION_HEATR_RATE_START.equals(param1Intent.getAction())) { - - //此消息来源于BroadCaset,收到开始测试的消息。 - //此时需要重置HeartRateDetect Timer - //倘若有 参数 PPGTestCycle,则根据这个数值进行设置 - int ppgtestCycle=param1Intent.getIntExtra("PPGTestCycle",-1); - if (ppgtestCycle >0){ - Config.setPPGTestCycle(runtime.getContextProxy().context,ppgtestCycle); - runtime.setPpgTestCycle(Config.getPPGTestCycle(runtime.getContextProxy().context)); - ICLogger.i("get and set PPGTestCycle "+ppgtestCycle); - } - CoreService.getInstance().setHeartRateDetectAlarm(runtime.getPpgTestCycle()); - HeartRateManager.this.startPPG(); - } - - - } - }; private void sendBroadcastPPGResult(){ Intent intent=new Intent(ACTION_BROADCAST_PPG); @@ -239,16 +219,7 @@ public class HeartRateManager extends AbstractInvokeHandlerService implements Se intent.putExtra("time",runtime.getHRS().getTestTime()); runtime.getContextProxy().context.sendBroadcast(intent); } - public void regReceiver(){ - //注册“网络变化”的广播接收器 - IntentFilter intentFilter = new IntentFilter(); - intentFilter.addAction(ACTION_HEATR_RATE_START); - runtime.getContextProxy().context.registerReceiver(PPGStartReceiver, intentFilter); - } - public void unRegReceiver(){ - runtime.getContextProxy().context.unregisterReceiver(PPGStartReceiver); - } private SensorManager mSensorManager; private Sensor mHeartRate; int PPG; @@ -418,32 +389,32 @@ public class HeartRateManager extends AbstractInvokeHandlerService implements Se public void onAttach(Connection paramConnection, Runtime paramRuntime) { // this.mSignalUtil = SimSignalUtil.getInstance((paramRuntime.getContextProxy()).context); - regReceiver(); + } public void onDetach(Connection paramConnection, Runtime paramRuntime) { - unRegReceiver(); + } public boolean onUserRequest(Intent paramIntent, Connection paramConnection, final Runtime runtime) { - String str = paramIntent.getAction(); - if (ACTION_HEATR_RATE_START.equals(str)) { -// this.mSignalUtil = SimSignalUtil.getInstance((runtime.getContextProxy()).context); -// str = paramIntent.getStringExtra("filepath"); -// String str1 = paramIntent.getStringExtra("number"); - StringBuilder stringBuilder = new StringBuilder(); - stringBuilder.append("PPG Started on Action "+ACTION_HEATR_RATE_START); -// stringBuilder.append(str); -// stringBuilder.append("number == "); -// stringBuilder.append(str1); - ICLogger.i(stringBuilder.toString()); - //周期测量执行 - if (Runtime.practising==true) { - ICLogger.i("自由锻炼中,跳过原有的循环心率检测!"); - return false; - } - startPPG(); - } +// String str = paramIntent.getAction(); +// if (ACTION_HEATR_RATE_START.equals(str)) { +//// this.mSignalUtil = SimSignalUtil.getInstance((runtime.getContextProxy()).context); +//// str = paramIntent.getStringExtra("filepath"); +//// String str1 = paramIntent.getStringExtra("number"); +// StringBuilder stringBuilder = new StringBuilder(); +// stringBuilder.append("PPG Started on Action "+ACTION_HEATR_RATE_START); +//// stringBuilder.append(str); +//// stringBuilder.append("number == "); +//// stringBuilder.append(str1); +// ICLogger.i(stringBuilder.toString()); +// //周期测量执行 +// if (Runtime.practising==true) { +// ICLogger.i("自由锻炼中,跳过原有的循环心率检测!"); +// return false; +// } +// startPPG(); +// } return false; } diff --git a/app/src/main/java/com/enqualcomm/support/utils/ProcessReceiver.java b/app/src/main/java/com/enqualcomm/support/utils/ProcessReceiver.java index 3227790b..02c557e3 100644 --- a/app/src/main/java/com/enqualcomm/support/utils/ProcessReceiver.java +++ b/app/src/main/java/com/enqualcomm/support/utils/ProcessReceiver.java @@ -291,6 +291,7 @@ public class ProcessReceiver extends BroadcastReceiver { //trigger 分包发送 if (CoreService.getInstance().getConnection()!=null) { + //h88专用功能,拍照时检查体温心率 if(Util.getSystemProperties("persist.sys.do_check_condition","false").equals("true")) { //开启测温 TemperatureUtil.DoTempTest(); @@ -342,6 +343,7 @@ public class ProcessReceiver extends BroadcastReceiver { //trigger 分包发送 if (CoreService.getInstance().getConnection()!=null) { + //h88专用功能,拍照后检测体温和心率 if(Util.getSystemProperties("persist.sys.do_check_condition","false").equals("true")) { //开启测温 TemperatureUtil.DoTempTest(); diff --git a/app/src/main/java/com/ic/protocols/protocol_ic.java b/app/src/main/java/com/ic/protocols/protocol_ic.java index ca72bdb7..9b497fb6 100644 --- a/app/src/main/java/com/ic/protocols/protocol_ic.java +++ b/app/src/main/java/com/ic/protocols/protocol_ic.java @@ -2646,7 +2646,7 @@ public class protocol_ic { break; case BP86: - //绑定解绑消息 + //心率周期 handleBP86(cmd,mConnection,mRuntime); mConnection.DeliverCMDMessageToSystem("AP86",cmd);//通知下面线程状态变化