优化 心率和体温的检测周期 设定
authorsnickersun <scy@incartech.cn>
Fri, 23 Oct 2020 02:26:27 +0000 (10:26 +0800)
committersnickersun <scy@incartech.cn>
Fri, 23 Oct 2020 02:26:27 +0000 (10:26 +0800)
app/src/main/AndroidManifest.xml
app/src/main/java/com/enqualcomm/support/CoreService.java
app/src/main/java/com/enqualcomm/support/service/Deliver.java
app/src/main/java/com/enqualcomm/support/service/HeartRateManager.java
app/src/main/java/com/enqualcomm/support/utils/ProcessReceiver.java
app/src/main/java/com/ic/protocols/protocol_ic.java

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