From: TrillGates Date: Thu, 3 Mar 2022 03:06:03 +0000 (+0800) Subject: 修改了工具类.算法 X-Git-Url: http://git.snicker.com.cn/sitemap.xml?a=commitdiff_plain;h=c1345a85597d5fb9742c9865a920d88ac4fcf33d;p=icworkservice.git 修改了工具类.算法 --- diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 9bba60d..526b4c2 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -4,7 +4,7 @@ diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml deleted file mode 100644 index 7f68460..0000000 --- a/.idea/runConfigurations.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/src/main/java/com/ic/work/hardware/BloodInfoHelper.java b/app/src/main/java/com/ic/work/hardware/BloodInfoHelper.java index 891c763..d5450fe 100644 --- a/app/src/main/java/com/ic/work/hardware/BloodInfoHelper.java +++ b/app/src/main/java/com/ic/work/hardware/BloodInfoHelper.java @@ -1,5 +1,7 @@ package com.ic.work.hardware; +import static android.content.Context.SENSOR_SERVICE; + import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; @@ -15,8 +17,6 @@ import com.ic.work.utils.IcLog; import java.util.Random; -import static android.content.Context.SENSOR_SERVICE; - /** * 此工具类获取血氧,血压,心率等信息,结果通过: */ @@ -106,7 +106,7 @@ public class BloodInfoHelper implements SensorEventListener { ppgLooper.postDelayed(mTimeoutTask, TIME_OUT_VALUE); } - public static int MaxTestCount = 10; + public static int MaxTestCount = 40; //10秒还没有数据回来,那么就结束测试 public static final int TIME_OUT_VALUE = 10 * 1000; diff --git a/app/src/main/java/com/ic/work/utils/AlgorithmUtils.java b/app/src/main/java/com/ic/work/utils/AlgorithmUtils.java index 9dd0df3..e53555d 100644 --- a/app/src/main/java/com/ic/work/utils/AlgorithmUtils.java +++ b/app/src/main/java/com/ic/work/utils/AlgorithmUtils.java @@ -43,6 +43,20 @@ public class AlgorithmUtils { return result; } + public static double generalTransfer(double wristTemp, double envTemp) { + if (wristTemp < 31.0f) { + return 0; + } + if (envTemp < 5.0f || envTemp > 45.0f) { + return 0; + } + double result = 0.02411 * wristTemp * wristTemp * wristTemp - 2.288 * wristTemp * wristTemp - 0.004356 * wristTemp * wristTemp * envTemp + 0.2851 * wristTemp * envTemp - 4.702 * envTemp + 72.46 * wristTemp - 728.9 + 0.5; + if (result < 36.0f) { + result = 36.0f; + } + return result; + } + //对数据进行处理=======================================================start // 环境温度计算公式: @@ -140,7 +154,7 @@ public class AlgorithmUtils { private int zeroTime = 0; public double MW13C(double wristTemp, - double boardTemp, double batteryTemp,double envTemp) throws TempValueException { + double boardTemp, double batteryTemp, double envTemp) throws TempValueException { if (wristTemp == 0.0) { zeroTime++; return 0.0; diff --git a/app/src/main/java/com/ic/work/utils/TemperatureUtil.java b/app/src/main/java/com/ic/work/utils/TemperatureUtil.java index 9232b6d..ff1d0c2 100644 --- a/app/src/main/java/com/ic/work/utils/TemperatureUtil.java +++ b/app/src/main/java/com/ic/work/utils/TemperatureUtil.java @@ -117,8 +117,6 @@ public class TemperatureUtil { ICLogger.d("envTemp ==> " + envTemp); ICLogger.d("wristTemp ==> " + wristTemp); String property = Utils.getSystemProperties("persist.sys.id_num", null); - double resultEnvTemp = -100; - double resultWristTemp = 0; ICLogger.d("property == > " + property); double lastBodyTemp = 0.0; if ("l004pt".equals(property)) { @@ -133,21 +131,13 @@ public class TemperatureUtil { ICLogger.d("final wrist temp == > " + bodyTempResult); } } else if ("q3ft".equals(property)) { - resultEnvTemp = AlgorithmUtils.s123GetEnvData(envTemp, boardTemp); - resultWristTemp = AlgorithmUtils.s123GetBodyTemp(wristTemp, boardTemp); - if (resultEnvTemp > 0.0f) { - lastBodyTemp = TemperatureUtil.getBodyTemp(resultWristTemp, resultEnvTemp); - } else { - lastBodyTemp = TemperatureUtil.getBodyTemp(resultWristTemp, 26.0f); + //要体温和环境温度都有值 + if (wristTemp > 0 && envTemp > 0) { + lastBodyTemp = AlgorithmUtils.generalTransfer(wristTemp, envTemp); + IcLog.d(TAG, "evnTemp == > " + envTemp + "bodyTemp == > " + wristTemp + " resultWristTemp = > " + lastBodyTemp); } - - IcLog.d(TAG, "evnTemp == > " + envTemp + " resultEnvTemp = > " + resultEnvTemp); - IcLog.d(TAG, "bodyTemp == > " + wristTemp + " resultWristTemp = > " + lastBodyTemp); } else if ("L56A".equals(property)) { double bodyTempResult = AlgorithmUtils.l56A(wristTemp, envTemp); - wristTemp = bodyTempResult; - resultEnvTemp = AlgorithmUtils.s123GetEnvData(envTemp, boardTemp); - resultWristTemp = AlgorithmUtils.s123GetBodyTemp(wristTemp, boardTemp); ICLogger.d("bodyTempResult == > " + bodyTempResult); if (bodyTempResult != -1) { //越接近34.1越准确 @@ -163,12 +153,9 @@ public class TemperatureUtil { if (wristTemp == 0) { return null; } - resultWristTemp = wristTemp; - resultEnvTemp = envTemp; lastBodyTemp = ICJniUtils.getBodyTempFromWristTemp(wristTemp, envTemp); ICLogger.d("lastBodyTemp ==> " + lastBodyTemp); } else { - resultWristTemp = wristTemp; // double bodyTempResult = AlgorithmUtils.l004Pt(bodyTemp, evnTemp); ICLogger.d("wrist TempResult == > " + wristTemp); if (wristTemp != -1) { @@ -181,18 +168,20 @@ public class TemperatureUtil { return null; } try { - //发送消息给launcher显示 - TemperatureItem temperatureItem = new TemperatureItem( - String.format("%.01f", resultWristTemp), - String.format("%.01f", lastBodyTemp), - String.format("%.01f", cpuTemp), - String.format("%.01f", resultEnvTemp), - String.format("%.01f", gpuTemp), - "0.00", - String.format("%.01f", boardTemp), - "0.00"); - ICLogger.d("temperatureItem ==> " + temperatureItem); - return temperatureItem; + if (envTemp > 0 && wristTemp > 0) { + //发送消息给launcher显示 + TemperatureItem temperatureItem = new TemperatureItem( + String.format("%.01f", wristTemp), + String.format("%.01f", lastBodyTemp), + String.format("%.01f", cpuTemp), + String.format("%.01f", envTemp), + String.format("%.01f", gpuTemp), + "0.00", + String.format("%.01f", boardTemp), + "0.00"); + ICLogger.d("temperatureItem ==> " + temperatureItem); + return temperatureItem; + } } catch (Exception e) { e.printStackTrace(); }