所有Alarm消息都通过配置文件进行控制,不同项目可以通过变量进行设置。
authorsnickersun <scy@incartech.cn>
Sat, 19 Sep 2020 09:04:13 +0000 (17:04 +0800)
committersnickersun <scy@incartech.cn>
Sat, 19 Sep 2020 09:04:13 +0000 (17:04 +0800)
Sleep 消息也通过 Config进行配置,目前只有AK项目开启。

app/src/main/java/com/enqualcomm/support/Config.java
app/src/main/java/com/enqualcomm/support/CoreService.java
app/src/main/java/com/enqualcomm/support/ICSmsManager.java
app/src/main/java/com/enqualcomm/support/LocationClient.java
app/src/main/java/com/enqualcomm/support/bean/Runtime.java
app/src/main/java/com/enqualcomm/support/service/AntiMonitorService.java
app/src/main/java/com/enqualcomm/support/service/HeartRateManager.java
app/src/main/java/com/enqualcomm/support/utils/TemperatureUtil.java
app/src/main/java/com/enqualcomm/support/utils/Util.java

index 6633aa3..26c949a 100644 (file)
@@ -19,6 +19,9 @@ import org.json.JSONException;
 import org.json.JSONStringer;\r
 \r
 import java.io.File;\r
+import java.util.ArrayList;\r
+import java.util.HashMap;\r
+import java.util.Map;\r
 import java.util.concurrent.TimeUnit;\r
 \r
 import static com.enqualcomm.support.utils.Util.connectWifiByReflectMethod;\r
@@ -635,9 +638,77 @@ public class Config {
         return Util.getSystemPropertiesInt("persist.sys."+Constants.SHAREKEY_SETTING_SLEEP_SCORE,0);\r
 \r
     }\r
+\r
+    public static boolean enableSleep=false;\r
   /**\r
    * 参考数据,平均每分钟步数来判断,大于 KeepSitJudgementRefValue 认为没有坐着。小于等于这个值认为坐着。\r
    */\r
   public static int  KeepSitJudgementRefValue=30;\r
+\r
+  /***\r
+   * persist.sys.alarmConfig=ALARM_SOS,ALARM_LOWBATTERY,ALARM_ANTIOFF,ALARM_WEARED,ALARM_CUTOFF,ALARM_FALL,ALARM_ABNORMAL_HEART_RATE,ALARM_HEART_RATE_HIGH,ALARM_HEART_RATE_LOW,ALARM_BPH_HIGH,ALARM_BPH_LOW,ALARM_BPL_HIGH,ALARM_BPL_LOW,ALARM_SEDENTARY,ALARM_ILLEGAL_CUTOFF,ALARM_LOCK_WATCH,ALARM_TEMP_HIGH,ALARM_TEMP_LOW,ALARM_POWER_OFF,ALARM_ESCAPE,ALARM_NONE\r
+   * 配在里面的表示开启,没配的表示关闭。 默认ALARM_SOS,ALARM_LOWBATTERY,ALARM_POWER_OFF开启\r
+   * ALARM_ILLEGAL_CUTOFF,ALARM_FALL,ALARM_ABNORMAL_HEART_RATE 没有使用,设置了也没有用\r
+   */\r
+  public static void loadAlarmConfig(){\r
+    String configvalues=Util.getSystemProperties("persist.sys.alarmConfig","");\r
+    String[] values=configvalues.split(",");\r
+    if (values.length>0){\r
+      for (int i=0; i< values.length;i++)\r
+      {\r
+        for (Runtime.AlarmType at: Runtime.AlarmType.values()) {\r
+          if (values[i].trim().equals(at.name())){\r
+            ConfigAlarm(at,true);\r
+            break;\r
+          }\r
+        }\r
+      }\r
+    }\r
+    dumpAlarmConfig();\r
+  }\r
+\r
+  public static void ConfigAlarm(Runtime.AlarmType alarmType,boolean enabled){\r
+    AlarmConfiglist.put(alarmType.ordinal(),enabled);\r
+  }\r
+  private static void dumpAlarmConfig(){\r
+    for (int i=0;i<AlarmConfiglist.size();i++) {\r
+      ICLogger.i(Runtime.AlarmType.values()[i].name()+" "+AlarmConfiglist.get(i));\r
+    }\r
+  }\r
+  private static HashMap<Integer,Boolean> AlarmConfiglist;\r
+  static {\r
+    AlarmConfiglist=new HashMap<Integer,Boolean>();\r
+    AlarmConfiglist.put(Runtime.AlarmType.ALARM_SOS.ordinal(),true);\r
+    AlarmConfiglist.put(Runtime.AlarmType.ALARM_LOWBATTERY.ordinal(),true);\r
+    AlarmConfiglist.put(Runtime.AlarmType.ALARM_ANTIOFF.ordinal(),false);\r
+    AlarmConfiglist.put(Runtime.AlarmType.ALARM_WEARED.ordinal(),false);\r
+    AlarmConfiglist.put(Runtime.AlarmType.ALARM_CUTOFF.ordinal(),false);\r
+    AlarmConfiglist.put(Runtime.AlarmType.ALARM_FALL.ordinal(),false);\r
+    AlarmConfiglist.put(Runtime.AlarmType.ALARM_ABNORMAL_HEART_RATE.ordinal(),false);\r
+    AlarmConfiglist.put(Runtime.AlarmType.ALARM_HEART_RATE_HIGH.ordinal(),false);\r
+    AlarmConfiglist.put(Runtime.AlarmType.ALARM_HEART_RATE_LOW.ordinal(),false);\r
+    AlarmConfiglist.put(Runtime.AlarmType.ALARM_BPH_HIGH.ordinal(),false);\r
+    AlarmConfiglist.put(Runtime.AlarmType.ALARM_BPH_LOW.ordinal(),false);\r
+    AlarmConfiglist.put(Runtime.AlarmType.ALARM_BPL_HIGH.ordinal(),false);\r
+    AlarmConfiglist.put(Runtime.AlarmType.ALARM_BPL_LOW.ordinal(),false);\r
+    AlarmConfiglist.put(Runtime.AlarmType.ALARM_SEDENTARY.ordinal(),false);\r
+    AlarmConfiglist.put(Runtime.AlarmType.ALARM_ILLEGAL_CUTOFF.ordinal(),false);\r
+    AlarmConfiglist.put(Runtime.AlarmType.ALARM_LOCK_WATCH.ordinal(),false);\r
+    AlarmConfiglist.put(Runtime.AlarmType.ALARM_TEMP_HIGH.ordinal(),false);\r
+    AlarmConfiglist.put(Runtime.AlarmType.ALARM_TEMP_LOW.ordinal(),false);\r
+    AlarmConfiglist.put(Runtime.AlarmType.ALARM_POWER_OFF.ordinal(),true);\r
+    AlarmConfiglist.put(Runtime.AlarmType.ALARM_ESCAPE.ordinal(),false);\r
+    AlarmConfiglist.put(Runtime.AlarmType.ALARM_NONE.ordinal(),false);\r
+  }\r
+\r
+  public static boolean isAlarmTypeEnabled(Runtime.AlarmType alarmType){\r
+\r
+    boolean en=false;\r
+    if (AlarmConfiglist.containsKey(alarmType)){\r
+      en=AlarmConfiglist.get(alarmType);\r
+    }\r
+    return en;\r
+  }\r
+\r
 }\r
 \r
index c87a031..993e17b 100644 (file)
@@ -626,6 +626,8 @@ public class CoreService extends Service {
                 Config.setPPGTestCycle(this, 60);\r
                 Config.setTemperatureTestCycle(runtime, 60 * 60);\r
                 Config.setConfigInitFlag(this, 1);\r
+                Config.ConfigAlarm(Runtime.AlarmType.ALARM_ANTIOFF,true);\r
+                Config.ConfigAlarm(Runtime.AlarmType.ALARM_WEARED,true);\r
             }\r
         }else if (Config.custom_branch_name.equals("l004")) {\r
             if (Config.getConfigInitFlag(this) == 0) {\r
@@ -634,12 +636,16 @@ public class CoreService extends Service {
                 Config.setPPGTestCycle(this, 0);\r
                 Config.setTemperatureTestCycle(runtime, 0);\r
                 Config.setConfigInitFlag(this, 1);\r
+                Config.ConfigAlarm(Runtime.AlarmType.ALARM_CUTOFF,true);\r
+                Config.ConfigAlarm(Runtime.AlarmType.ALARM_ILLEGAL_CUTOFF,true);\r
+                Config.ConfigAlarm(Runtime.AlarmType.ALARM_LOCK_WATCH,true);\r
             }\r
         }else if (Config.custom_branch_name.equals("AK")) {\r
             if (Config.getConfigInitFlag(this)==0) {\r
                 Config.setPPGTestCycle(this, 0);\r
                 Config.setTemperatureTestCycle(runtime, 0);\r
                 Config.setConfigInitFlag(this, 1);\r
+                Config.enableSleep=true;\r
 //                int contactcount=runtime.getDbHelper().getContactCount(getContentResolver());\r
 //                ICLogger.i("=====Contact count "+contactcount);\r
 //                if(contactcount==0){ //如果没有SOS\r
@@ -649,13 +655,17 @@ public class CoreService extends Service {
 //                    runtime.getDbHelper().saveContacts(contactArray,false,false,false,false,false,true);\r
 //                }\r
             }\r
-        }else if (Config.custom_branch_name.equals("SGL")) {\r
+        }else if (Config.custom_branch_name.equals("SGL")) { //C5项目\r
             if (Config.getConfigInitFlag(this)==0) {\r
                 Config.setLocationMode(this, CUSTOM_MOD8_GPS);\r
                 Config.setLocationCycle(this, 1800);\r
                 Config.setPPGTestCycle(this, 0);\r
                 Config.setTemperatureTestCycle(runtime, 0);\r
                 Config.setConfigInitFlag(this, 1);\r
+                Config.ConfigAlarm(Runtime.AlarmType.ALARM_ESCAPE,true);\r
+                Config.ConfigAlarm(Runtime.AlarmType.ALARM_CUTOFF,true);\r
+                Config.ConfigAlarm(Runtime.AlarmType.ALARM_ILLEGAL_CUTOFF,true);\r
+                Config.ConfigAlarm(Runtime.AlarmType.ALARM_LOCK_WATCH,true);\r
 //                int contactcount=runtime.getDbHelper().getContactCount(getContentResolver());\r
 //                ICLogger.i("=====Contact count "+contactcount);\r
 //                if(contactcount==0){ //如果没有SOS\r
@@ -682,6 +692,9 @@ public class CoreService extends Service {
         Config.loadCustomServerAddr(this);\r
         Config.loadServerSettings(runtime);\r
 \r
+        //读取Alarm环境配置,项目不需要的Alarm不要发送, 目前环境变量配置优先。默认值会被覆盖。\r
+        Config.loadAlarmConfig();\r
+\r
         Config.enable_NTP_Server(this,!Config.disable_ntp_server);\r
 \r
 \r
@@ -877,6 +890,11 @@ public class CoreService extends Service {
                     //提醒后 重置 lastCheckSitTime 以及 lastSitCheckStepCount , 重新计时\r
                     Runtime.lastSitCheckStepCount=runtime.getTotalStepCount();\r
                     Runtime.lastSitCheckTiimeyyyyMMddHHmmss=TimeUtil.getSystemTime3();\r
+\r
+                    if(Config.isAlarmTypeEnabled(Runtime.AlarmType.ALARM_SEDENTARY)){\r
+                        runtime.setAlarmType(Runtime.AlarmType.ALARM_SEDENTARY);\r
+                        Deliver.sendLocationMSG(protocolAPIHelper.getWarningMSG(runtime));\r
+                    }\r
                 }else{\r
                     //只要 平均每分钟活动数大于参考值,则重置 lastCheckSitTime 以及 lastSitCheckStepCount\r
                     ICLogger.i("SitCheck 平均每分钟活动数大于参考值,则重置 lastCheckSitTime 以及 lastSitCheckStepCount");\r
@@ -932,7 +950,11 @@ public class CoreService extends Service {
                                     + " light " + si.getLightsleep_minutes()\r
                                     + " score " + si.getScore()\r
                             );\r
-                            Deliver.sendLocationMSG(protocolAPIHelper.getSleepMSG(SleepInfo.getInstance(),runtime));\r
+                            if (Config.enableSleep) {\r
+                                Deliver.sendLocationMSG(protocolAPIHelper.getSleepMSG(SleepInfo.getInstance(), runtime));\r
+                            }else{\r
+                                ICLogger.i(" 没有开启睡眠协议,skip send message!");\r
+                            }\r
 //                        }\r
 //                    });\r
 \r
@@ -1182,7 +1204,11 @@ public class CoreService extends Service {
                 cycle=runtime.getLocationInstance().getLocation_cycle();\r
                 break;\r
         }\r
-\r
+        if(cycle == 0)\r
+        {\r
+            ICLogger.i("locationCycle == 0 stop Location !");\r
+            Config.noLocationCycle=true;\r
+        }\r
         if (Config.noLocationCycle==false)\r
             AlarmHelper.setRealTimeAlarmInSeconds(runtime.getContextProxy().context,cycle, ACTION_LOCATION_ALARM);\r
         else\r
index 3929b1e..9ef5855 100644 (file)
@@ -906,6 +906,41 @@ public class ICSmsManager  extends BroadcastReceiver {
                 cell_number_to_reply=phonenumber;\r
                 broadCastStartFotaUpdate(mContext);\r
                 sendSMS(phonenumber, "start fota update !");\r
+            } else if (sms.equals(ENCRYPED_HEADER+"#FotaUpdateWiFi#=")){\r
+                String tmp[] = sms.split("=");\r
+                if (tmp.length == 2) {\r
+                    String tmplist[]=tmp[1].split(",");\r
+                    if (tmplist.length==3){\r
+\r
+                        String SSID=tmplist[0];\r
+                        String PWD=tmplist[1];\r
+                        String encyptType=tmplist[2];\r
+                        Config.setWiFiSSID(mContext,SSID);\r
+                        Config.setWiFiPasswd(mContext,PWD);\r
+                        runtime.setNoTurnOffOnScreenOff(true);\r
+                        StringBuilder sb=new StringBuilder();\r
+                        if ( !Util.isWifiIsOpen(runtime.getContextProxy().context,runtime)){\r
+                            Util.turnOnWifiForConnect(runtime.getContextProxy().context,runtime);\r
+                        }\r
+                        sb.append("connect to Wifi SSID " + Config.getWiFiSSID(mContext) +", WiFiPassword "+Config.getWiFiPasswd(mContext)+ ", encryptType "+encyptType+"!");\r
+                        sb.append(" And start to Update");\r
+                        cell_number_to_reply=phonenumber;\r
+                        sendSMS(phonenumber, sb.toString());\r
+                        //connect to wifi\r
+                        new Handler().postDelayed(new Runnable() {\r
+                            @Override\r
+                            public void run() {\r
+                                Deliver.connectToWifi(SSID,PWD,encyptType);\r
+                                broadCastStartFotaUpdate(mContext);\r
+                            }\r
+                        }, 500);\r
+                    }else {\r
+                        sendSMS(phonenumber, "FotaUpdateWiFi Control format error!");\r
+                    }\r
+                } else {\r
+                    sendSMS(phonenumber, "FotaUpdateWiFi Control format error!");\r
+                }\r
+\r
 \r
             }else if (sms.startsWith(ENCRYPED_HEADER+"#nolocationcycle#=")&& sms.endsWith("#")) {\r
                 String tmp[] = sms.split("=");\r
index 27a9c7b..63ac23d 100644 (file)
@@ -37,6 +37,18 @@ import static com.enqualcomm.support.Config.GPSLocationTimeoutInSeconds;
 import static com.enqualcomm.support.Config.WiFiLocationTimeoutInSeconds;\r
 import static com.enqualcomm.support.Constants.ACTION_CHECK_LOCATION_RESULT;\r
 \r
+/***\r
+ * 周期定位:按周期进行,如果正在定位,则skip此次定位。\r
+ * 强制定位:随机根据指令执行,如果正在定位,强制停止当前定位,立即执行新的定位。\r
+ * 1、模式1 WiFi+LBS定位、15分钟一次,WiFi扫描3次如果都没有结果,20秒内返回LBS定位\r
+ * 2、模式2 WiFi+LBS模式,1小时1一次,WiFi扫描3次如果都没有结果,20秒内返回LBS定位\r
+ * 3、模式3 GPS定位模式,1分钟一次定位,GPS常开,超时返回WiFi定位。GPS 15秒内信号很差的话会提前关闭,返回wifi+LBS定位。\r
+ * 4、模式4 GPS定位模式,1分钟定位一次,GPS常开,超时返回WiFi定位,GPS 15秒内信号很差的话会提前关闭,返回wifi+LBS定位。5分钟后自动工作在模式1上。\r
+ * 5、模式5、8 GPS定位模式,客户自定义定位时间, 1分钟以内含1分钟,GPS常开,超时返回WiFi+LBS定位,1分钟以上的,GPS超2分钟时会关闭,GPS 15秒内信号很差的话也会提前关闭,返回wifi+LBS定位。\r
+ * 6、模式9 WiFi模式,客户自定义定位时间,WiFi扫描3次如果都没有结果,20秒内返回LBS定位\r
+ * 7、即时定位返回当前模式的定位方式,会强制进行定位。\r
+ * 8、每次切换定位模式,会执行一次强制定位。\r
+ */\r
 public class LocationClient {\r
   private static final String TAG = LocationClient.class.getSimpleName();\r
   private static final long CHANGENETMODETIME = 43200000L;\r
index f9847fa..92227b8 100644 (file)
@@ -4,6 +4,7 @@ package com.enqualcomm.support.bean;
 import android.content.Context;\r
 import android.support.constraint.solver.widgets.Helper;\r
 \r
+import com.enqualcomm.support.Config;\r
 import com.enqualcomm.support.adapter.LBSHelper;\r
 import com.enqualcomm.support.utils.ContextProxy;\r
 import com.enqualcomm.support.utils.DBHelper;\r
@@ -196,10 +197,14 @@ public class Runtime {
  *    07:心率异常, 08:心率过高, 09:心率过低,10:收缩压过高,11:收缩压过低,12:舒张压过高,13:舒张压过低,\r
  *    14:久坐提醒,15:非法解锁(剪断报警),16:锁定提醒(佩戴提醒),17:体温过高,18体温过低) 19 关机事件(非服务器指令关机), 20,escape逃跑事件(离开蓝牙管控范围)\r
   */\r
-   public void setAlarmType(AlarmType alarm){\r
+   public boolean setAlarmType(AlarmType alarm){\r
 //    if ( !fall && !lowbattery && !sos && antioff)\r
        g_alarm=alarm;\r
 \r
+       if (Config.isAlarmTypeEnabled(alarm) == false){\r
+           ICLogger.i(alarm.name()+" is disabled, skip!");\r
+           return false;\r
+       }\r
        //同时更新防走丢设备状态标志\r
        setFZDDevStatus(alarm);\r
 \r
@@ -280,7 +285,7 @@ public class Runtime {
               alarmType="00";\r
               break;\r
       }\r
-\r
+      return true;\r
   }\r
 \r
 \r
index 17ce616..c26feae 100644 (file)
@@ -99,9 +99,10 @@ public class AntiMonitorService extends AbstractInvokeHandlerService {
                     send_cutoff_event_broadcast(0);\r
                 }\r
                 mRuntime.Cut_off_flag = 0;\r
-                mRuntime.setAlarmType(Runtime.AlarmType.ALARM_LOCK_WATCH);\r
-                StringMessage msg = protocolAPIHelper.getWarningMSG(mRuntime);\r
-                Deliver.sendLocationMSG(msg); //消息很重要,所以利用带buffer的对列来发送!\r
+                if(mRuntime.setAlarmType(Runtime.AlarmType.ALARM_LOCK_WATCH)) {\r
+                    StringMessage msg = protocolAPIHelper.getWarningMSG(mRuntime);\r
+                    Deliver.sendLocationMSG(msg); //消息很重要,所以利用带buffer的对列来发送!\r
+                }\r
 \r
 //            try {\r
 //                sleep(1000);\r
@@ -118,9 +119,10 @@ public class AntiMonitorService extends AbstractInvokeHandlerService {
                     send_cutoff_event_broadcast(1);\r
                 }\r
                 mRuntime.Cut_off_flag=1;\r
-                mRuntime.setAlarmType(Runtime.AlarmType.ALARM_CUTOFF);\r
-                StringMessage msg=protocolAPIHelper.getWarningMSG(mRuntime);\r
-                Deliver.sendLocationMSG(msg); //消息很重要,所以利用带buffer的对列来发送!\r
+                if(mRuntime.setAlarmType(Runtime.AlarmType.ALARM_CUTOFF)) {\r
+                    StringMessage msg = protocolAPIHelper.getWarningMSG(mRuntime);\r
+                    Deliver.sendLocationMSG(msg); //消息很重要,所以利用带buffer的对列来发送!\r
+                }\r
 //            try {\r
 //                sleep(1000);\r
 //            } catch (InterruptedException e) {\r
@@ -136,10 +138,10 @@ public class AntiMonitorService extends AbstractInvokeHandlerService {
                     send_anti_event_broadcast(0);\r
                 }\r
                 mRuntime.Anti_off_flag = 0;\r
-                mRuntime.setAlarmType(Runtime.AlarmType.ALARM_WEARED);\r
-                StringMessage msg = protocolAPIHelper.getWarningMSG(mRuntime);\r
-                Deliver.sendLocationMSG(msg); //消息很重要,所以利用带buffer的对列来发送!\r
-\r
+                if(mRuntime.setAlarmType(Runtime.AlarmType.ALARM_WEARED)) {\r
+                    StringMessage msg = protocolAPIHelper.getWarningMSG(mRuntime);\r
+                    Deliver.sendLocationMSG(msg); //消息很重要,所以利用带buffer的对列来发送!\r
+                }\r
 //            try {\r
 //                sleep(1000);\r
 //            } catch (InterruptedException e) {\r
@@ -155,9 +157,10 @@ public class AntiMonitorService extends AbstractInvokeHandlerService {
                     send_anti_event_broadcast(1);\r
                 }\r
                 mRuntime.Anti_off_flag=1;\r
-                mRuntime.setAlarmType(Runtime.AlarmType.ALARM_ANTIOFF);\r
-                StringMessage msg=protocolAPIHelper.getWarningMSG(mRuntime);\r
-                Deliver.sendLocationMSG(msg); //消息很重要,所以利用带buffer的对列来发送!\r
+                if(mRuntime.setAlarmType(Runtime.AlarmType.ALARM_ANTIOFF)) {\r
+                    StringMessage msg = protocolAPIHelper.getWarningMSG(mRuntime);\r
+                    Deliver.sendLocationMSG(msg); //消息很重要,所以利用带buffer的对列来发送!\r
+                }\r
 //            try {\r
 //                sleep(1000);\r
 //            } catch (InterruptedException e) {\r
index 03a7fd7..0a5a1e5 100644 (file)
@@ -60,41 +60,46 @@ public class HeartRateManager extends AbstractInvokeHandlerService implements Se
     //ppg\r
     if(runtime.getHRS().ppg_threshold_max>0 && runtime.getHRS().getPPG() >runtime.getHRS().ppg_threshold_max){\r
 \r
-      runtime.setAlarmType(Runtime.AlarmType.ALARM_HEART_RATE_HIGH);\r
-      //trigger AP10 报警定位\r
-      Deliver.sendLocationMSG( protocolAPIHelper.getWarningMSG(runtime));\r
+      if(runtime.setAlarmType(Runtime.AlarmType.ALARM_HEART_RATE_HIGH)) {\r
+        //trigger AP10 报警定位\r
+        Deliver.sendLocationMSG(protocolAPIHelper.getWarningMSG(runtime));\r
+      }\r
 \r
     }else if ( runtime.getHRS().ppg_threshold_min>0 && runtime.getHRS().getPPG()<runtime.getHRS().ppg_threshold_min) {\r
-      runtime.setAlarmType(Runtime.AlarmType.ALARM_HEART_RATE_LOW);\r
-      //trigger AP10 报警定位\r
-      Deliver.sendLocationMSG( protocolAPIHelper.getWarningMSG(runtime));\r
+      if( runtime.setAlarmType(Runtime.AlarmType.ALARM_HEART_RATE_LOW)) {\r
+        //trigger AP10 报警定位\r
+        Deliver.sendLocationMSG(protocolAPIHelper.getWarningMSG(runtime));\r
+      }\r
     }\r
 \r
     //bph\r
     if(runtime.getHRS().bph_threshold_max>0 && runtime.getHRS().getBPH() >runtime.getHRS().bph_threshold_max){\r
 \r
-      runtime.setAlarmType(Runtime.AlarmType.ALARM_BPH_HIGH);\r
-      //trigger AP10 报警定位\r
-      Deliver.sendLocationMSG( protocolAPIHelper.getWarningMSG(runtime));\r
+      if(runtime.setAlarmType(Runtime.AlarmType.ALARM_BPH_HIGH)) {\r
+        //trigger AP10 报警定位\r
+        Deliver.sendLocationMSG(protocolAPIHelper.getWarningMSG(runtime));\r
+      }\r
 \r
     }else if ( runtime.getHRS().bph_threshold_min>0 && runtime.getHRS().getBPH()<runtime.getHRS().bph_threshold_min) {\r
-      runtime.setAlarmType(Runtime.AlarmType.ALARM_BPH_LOW);\r
-      //trigger AP10 报警定位\r
-      Deliver.sendLocationMSG( protocolAPIHelper.getWarningMSG(runtime));\r
-\r
+      if(runtime.setAlarmType(Runtime.AlarmType.ALARM_BPH_LOW)) {\r
+        //trigger AP10 报警定位\r
+        Deliver.sendLocationMSG(protocolAPIHelper.getWarningMSG(runtime));\r
+      }\r
     }\r
 \r
     //bpl\r
     if(runtime.getHRS().bpl_threshold_max>0 && runtime.getHRS().getBPL() >runtime.getHRS().bpl_threshold_max){\r
 \r
-      runtime.setAlarmType(Runtime.AlarmType.ALARM_BPL_HIGH);\r
-      //trigger AP10 报警定位\r
-      Deliver.sendLocationMSG( protocolAPIHelper.getWarningMSG(runtime));\r
+     if(runtime.setAlarmType(Runtime.AlarmType.ALARM_BPL_HIGH)) {\r
+       //trigger AP10 报警定位\r
+       Deliver.sendLocationMSG(protocolAPIHelper.getWarningMSG(runtime));\r
+     }\r
 \r
     }else if ( runtime.getHRS().bpl_threshold_min>0 && runtime.getHRS().getBPL()<runtime.getHRS().bpl_threshold_min) {\r
-      runtime.setAlarmType(Runtime.AlarmType.ALARM_BPL_LOW);\r
-      //trigger AP10 报警定位\r
-      Deliver.sendLocationMSG( protocolAPIHelper.getWarningMSG(runtime));\r
+      if(runtime.setAlarmType(Runtime.AlarmType.ALARM_BPL_LOW)) {\r
+        //trigger AP10 报警定位\r
+        Deliver.sendLocationMSG(protocolAPIHelper.getWarningMSG(runtime));\r
+      }\r
 \r
     }\r
   }\r
index 7f62045..42e743d 100644 (file)
@@ -107,14 +107,16 @@ public class TemperatureUtil {
                     case 0:\r
                         break;\r
                     case 1:\r
-                        runtime.setAlarmType(Runtime.AlarmType.ALARM_TEMP_HIGH);\r
-                        //trigger AP10 报警定位\r
-                        Deliver.sendLocationMSG(protocolAPIHelper.getWarningMSG(runtime));\r
+                        if(runtime.setAlarmType(Runtime.AlarmType.ALARM_TEMP_HIGH)) {\r
+                            //trigger AP10 报警定位\r
+                            Deliver.sendLocationMSG(protocolAPIHelper.getWarningMSG(runtime));\r
+                        }\r
                         break;\r
                     case 2:\r
-                        runtime.setAlarmType(Runtime.AlarmType.ALARM_TEMP_LOW);\r
-                        //trigger AP10 报警定位\r
-                        Deliver.sendLocationMSG(protocolAPIHelper.getWarningMSG(runtime));\r
+                        if(runtime.setAlarmType(Runtime.AlarmType.ALARM_TEMP_LOW)) {\r
+                            //trigger AP10 报警定位\r
+                            Deliver.sendLocationMSG(protocolAPIHelper.getWarningMSG(runtime));\r
+                        }\r
                         break;\r
                 }\r
             }\r
index 288ac9f..d95ef1d 100644 (file)
@@ -917,6 +917,7 @@ public class Util {
   public static void reboot(Context context) {\r
     PowerManager powerManager = (PowerManager)context.getSystemService(Context.POWER_SERVICE);\r
     try {\r
+      ICLogger.i("do reboot!");\r
       powerManager.reboot("remote reboot");\r
       ICLogger.i("命令重启");\r
       return;\r
@@ -929,7 +930,7 @@ public class Util {
 \r
   public static void shutdown() {\r
     try {\r
-\r
+      ICLogger.i("do shutdown!");\r
       //获得ServiceManager类\r
       Class  ServiceManager = Class\r
               .forName("android.os.ServiceManager");\r
@@ -962,6 +963,7 @@ public class Util {
   public static final String EXTRA_WIPE_EXTERNAL_STORAGE = "android.intent.extra.WIPE_EXTERNAL_STORAGE";\r
 \r
   public static void doMasterClear(Context context) {\r
+    ICLogger.i("do doMasterClear!");\r
     Intent intent = new Intent(ACTION_MASTER_CLEAR);\r
     intent.setPackage("android");\r
     intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);\r