add limit for board temperature check.
authorTrillGates <williamtrillgates@gmail.com>
Fri, 24 Sep 2021 07:32:02 +0000 (15:32 +0800)
committerTrillGates <williamtrillgates@gmail.com>
Fri, 24 Sep 2021 07:32:02 +0000 (15:32 +0800)
app/src/main/java/com/ic/work/SensorDataService.java

index 1adb0cf..8f72fcb 100644 (file)
@@ -380,14 +380,7 @@ public class SensorDataService extends Service implements TemperatureHelper.Temp
         @Override
         public void getBoardTemperature() {
             //获取主板的温度
-            double boardTemperature = TemperatureUtil.getBoardTemperature();
-            if (mExInfoCallback != null) {
-                try {
-                    mExInfoCallback.onBoardTemperatureLoaded(boardTemperature);
-                } catch (Exception e) {
-                    e.printStackTrace();
-                }
-            }
+            doBoardTempCheck(false);
         }
 
         @Override
@@ -417,6 +410,7 @@ public class SensorDataService extends Service implements TemperatureHelper.Temp
                 AlarmManagerUtil.setAlarmTime(SensorDataService.this,
                         System.currentTimeMillis() + nextDistance,
                         intent);
+                doBoardTempCheck(true);
             } else {
                 //取消alarm
                 AlarmManagerUtil.cancelAlarm(SensorDataService.this, AlarmManagerUtil.ALARM_ACTION,
@@ -437,6 +431,24 @@ public class SensorDataService extends Service implements TemperatureHelper.Temp
         }
     };
 
+    private void doBoardTempCheck(boolean fitter) {
+        double boardTemperature = TemperatureUtil.getBoardTemperature();
+        if (mExInfoCallback != null) {
+            try {
+                if (!fitter) {
+                    mExInfoCallback.onBoardTemperatureLoaded(boardTemperature);
+                } else {
+                    //判断是否有超出阀值
+                    if (boardTemperature > mBoardTopLimit) {
+                        mExInfoCallback.onBoardTemperatureLoaded(boardTemperature);
+                    }
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
 
     //这个是温度通知的,如果任务已经在队列里了,那么就不再发送任务了,但是会被通知到的。
     private final RemoteCallbackList<ITempSensorCallback> temperatureCallbacks =