所有parseInt 都用try catch 包裹。
authorsnickersun <scy@incartech.cn>
Fri, 25 Sep 2020 12:13:53 +0000 (20:13 +0800)
committersnickersun <scy@incartech.cn>
Fri, 25 Sep 2020 12:13:53 +0000 (20:13 +0800)
优化 Util.isNumeric 函数

app/src/main/java/com/enqualcomm/support/Config.java
app/src/main/java/com/enqualcomm/support/LocationClient.java
app/src/main/java/com/enqualcomm/support/service/HeartRateManager.java
app/src/main/java/com/enqualcomm/support/utils/ContextProxy.java
app/src/main/java/com/enqualcomm/support/utils/Util.java
app/src/main/java/com/ic/protocols/protocol_beehome.java
app/src/main/java/com/ic/protocols/protocol_fzd.java
app/src/main/java/com/ic/protocols/protocol_ic.java
app/src/main/java/com/ic/protocols/protocol_jiai.java
app/src/main/java/com/ic/protocols/protocol_mqtt.java

index a9b81cc..0313f45 100644 (file)
@@ -35,6 +35,7 @@ public class Config {
   public static int defaultHeartbeatCycle=5;\r
   public static int sw_release_no = -1;\r
   public static int bleScanTimeout=10;\r
+  public static boolean forceMoveCheck=false;\r
   public static String work_mode = "2@1";\r
 \r
   public static final String JiAiHost="watch.jiai.pro";\r
index 151a44b..6b41132 100644 (file)
@@ -695,6 +695,17 @@ public void updateCellInfo() {
 \r
   private static boolean NoMoveAndNoGPSsignalSkipGpsFlag=false;\r
   private static boolean noMove=false;\r
+  private static boolean last_noMove=false;\r
+  private static int noMoveCount=0;\r
+  private static final int MaxNoMoveTimeout=3000;\r
+\r
+  private static void checkNoMove(){\r
+\r
+\r
+    noMove=runtime.getLastStepCount() == runtime.getTotalStepCount();\r
+    runtime.updateFZDDevStatusMoving(!noMove); //设置当前运动状态\r
+\r
+  }\r
 \r
 \r
 \r
@@ -706,16 +717,12 @@ public void updateCellInfo() {
       ICLogger.i("locating ,skip location!");\r
       return;\r
     }\r
-    noMove=runtime.getLastStepCount() == runtime.getTotalStepCount();\r
-    runtime.updateFZDDevStatusMoving(!noMove); //设置当前运动状态\r
+\r
+    checkNoMove();\r
 \r
     // 不强制定位 且 WorkingMod 不是紧急模式,且 没有移动过\r
     if ( ( forceLocation != 1 ) &&\r
-            ( mod != ICLocation.REALTIME_MOD )&&\r
-            ( mod != ICLocation.EMERGNECY_MOD ) &&\r
-            (mod != ICLocation.CUSTOM_MOD8_GPS ) &&\r
-//            (mod != ICLocation.CUSTOM_MOD8_WIFI ) &&\r
-            (mod != ICLocation.CUSTOM_MOD ) &&\r
+            ((( mod == ICLocation.NORMAL_MOD ) ||  ( mod == ICLocation.LOWPOWER_MOD ) || (mod == ICLocation.CUSTOM_MOD8_WIFI ) ) || Config.forceMoveCheck==true)  &&\r
             (noMove) && (skipMoveCheck ==false  )){\r
       ICLogger.i("No Move ,skip location!");\r
       return ;\r
index 0a5a1e5..50ec7a7 100644 (file)
@@ -463,7 +463,14 @@ public static void triggerPPGtest(){
 \r
           return true;\r
         }\r
-          if (spo2==null || (spo2!=null && Integer.parseInt(spo2 )<=0) ){\r
+          if (spo2==null ||\r
+                  (spo2!=null &&\r
+                          ( (!Util.isNumeric(spo2.trim() )) ||\r
+                                  (Util.isNumeric(spo2.trim() )&& Integer.parseInt(spo2.trim())<=0)\r
+                          )\r
+                  )\r
+          )\r
+          {\r
             Random r = new Random();\r
             int randomint = r.nextInt(98 - 95) + 95;\r
             spo2=String.valueOf(randomint);\r
@@ -495,17 +502,22 @@ public static void triggerPPGtest(){
 \r
           }\r
         }else {\r
-          StringMessage PPGDATA = protocolAPIHelper.getPPG_ECG_MSG(Integer.parseInt(ppg), Integer.parseInt(bph), Integer.parseInt(bpl), Integer.parseInt(spo2), runtime);\r
-          if (PPGDATA == null) {\r
-            StringMessage ppgd = protocolAPIHelper.getPPG_MSG(Integer.parseInt(ppg), runtime);\r
-            StringMessage bloodd = protocolAPIHelper.getBlood_MSG(Integer.parseInt(bph), Integer.parseInt(bpl), runtime);\r
-            StringMessage oxd = protocolAPIHelper.getOxygen_MSG(Integer.parseInt(spo2), runtime);\r
-            Deliver.sendLocationMSG(ppgd);\r
-            Deliver.sendLocationMSG(bloodd);\r
-            Deliver.sendLocationMSG(oxd);\r
-          } else {\r
-            Deliver.sendLocationMSG(PPGDATA);\r
-            ICLogger.i("Send PPG " + PPGDATA.isFromCache());\r
+          try {\r
+            StringMessage PPGDATA = protocolAPIHelper.getPPG_ECG_MSG(Integer.parseInt(ppg), Integer.parseInt(bph), Integer.parseInt(bpl), Integer.parseInt(spo2), runtime);\r
+            if (PPGDATA == null) {\r
+              StringMessage ppgd = protocolAPIHelper.getPPG_MSG(Integer.parseInt(ppg), runtime);\r
+              StringMessage bloodd = protocolAPIHelper.getBlood_MSG(Integer.parseInt(bph), Integer.parseInt(bpl), runtime);\r
+              StringMessage oxd = protocolAPIHelper.getOxygen_MSG(Integer.parseInt(spo2), runtime);\r
+              Deliver.sendLocationMSG(ppgd);\r
+              Deliver.sendLocationMSG(bloodd);\r
+              Deliver.sendLocationMSG(oxd);\r
+            } else {\r
+              Deliver.sendLocationMSG(PPGDATA);\r
+              ICLogger.i("Send PPG " + PPGDATA.isFromCache());\r
+            }\r
+          }catch (Exception e){\r
+            e.printStackTrace();\r
+            ICLogger.e(e.getMessage(),e);\r
           }\r
         }\r
         callback(message.replyTo, Constants.RESULT_OK);\r
index 1da0280..215dab0 100644 (file)
@@ -117,29 +117,34 @@ public class ContextProxy {
     char c = '\002';\r
     if (cursor2 != null) {\r
       while (cursor2.moveToNext()) {\r
-        if ("ON".equals(cursor2.getString(4))) {\r
-          String str2 = cursor2.getString(1);\r
-          String str1 = cursor2.getString(c);\r
-          String str3 = cursor2.getString(b2);\r
-          String str4 = cursor2.getString(b1);\r
-          calendar2.set(Calendar.HOUR_OF_DAY, Integer.parseInt(str2.substring(c, 4)));\r
-          calendar2.set(Calendar.MINUTE, Integer.parseInt(str2.substring(b1, 7)));\r
-          char[] arrayOfChar = str1.toCharArray();\r
-          int i = arrayOfChar.length;\r
-          byte b = 1;\r
-          while (b < i) {\r
-            c = (char)(arrayOfChar[b] - '/'); //将ascii数字字符转换为对应的数字\r
-            calendar2.set(Calendar.DAY_OF_WEEK, c);\r
-            long l1 = calendar2.getTimeInMillis();\r
-            if (l1 <= l)\r
-              l1 += ONE_WEEK;\r
-            PendingIntent pendingIntent = getPendingIntent(str2, str1, str3, str4, c);\r
-            AlarmHelper.setAlarm(this.alarmManager, l1, pendingIntent);\r
-            b++;\r
-            c = '\002';\r
-            b1 = 5;\r
-            b2 = 3;\r
+        try {\r
+          if ("ON".equals(cursor2.getString(4))) {\r
+            String str2 = cursor2.getString(1);\r
+            String str1 = cursor2.getString(c);\r
+            String str3 = cursor2.getString(b2);\r
+            String str4 = cursor2.getString(b1);\r
+            calendar2.set(Calendar.HOUR_OF_DAY, Integer.parseInt(str2.substring(c, 4)));\r
+            calendar2.set(Calendar.MINUTE, Integer.parseInt(str2.substring(b1, 7)));\r
+            char[] arrayOfChar = str1.toCharArray();\r
+            int i = arrayOfChar.length;\r
+            byte b = 1;\r
+            while (b < i) {\r
+              c = (char) (arrayOfChar[b] - '/'); //将ascii数字字符转换为对应的数字\r
+              calendar2.set(Calendar.DAY_OF_WEEK, c);\r
+              long l1 = calendar2.getTimeInMillis();\r
+              if (l1 <= l)\r
+                l1 += ONE_WEEK;\r
+              PendingIntent pendingIntent = getPendingIntent(str2, str1, str3, str4, c);\r
+              AlarmHelper.setAlarm(this.alarmManager, l1, pendingIntent);\r
+              b++;\r
+              c = '\002';\r
+              b1 = 5;\r
+              b2 = 3;\r
+            }\r
           }\r
+        }catch (Exception e){\r
+          e.printStackTrace();\r
+          ICLogger.e(e.getMessage(),e);\r
         }\r
       }\r
       cursor2.close();\r
@@ -149,29 +154,34 @@ public class ContextProxy {
     Cursor cursor1 = this.context.getContentResolver().query(ICContentProvider.NOTICE_URL, null, null, null, null);\r
     if (cursor1 != null) {\r
       while (cursor1.moveToNext()) {\r
-        String str1 = cursor1.getString(1);\r
-        String str2 = cursor1.getString(2);\r
-        String str3 = cursor1.getString(3);\r
-        String str4 = cursor1.getString(4);\r
-        String str5 = cursor1.getString(5);\r
-        String str6 = cursor1.getString(6);\r
-        String str7 = cursor1.getString(6);\r
-        if (str1 != null) {\r
-          String year = str1.substring(0, 4);\r
-          String month = str1.substring(4, 6);\r
-          String day = str1.substring(6, 8);\r
-          String hour = str1.substring(8, 10);\r
-          String minute = str1.substring(10, 12);\r
-          calendar1.set(Calendar.YEAR, Integer.parseInt(year));\r
-          calendar1.set(Calendar.MONTH, Integer.parseInt(month));\r
-          calendar1.set(Calendar.DAY_OF_MONTH, Integer.parseInt(day));\r
-          calendar1.set(Calendar.HOUR_OF_DAY, Integer.parseInt(hour));\r
-          calendar1.set(Calendar.MINUTE, Integer.parseInt(minute));\r
-          long l1 = calendar1.getTimeInMillis();\r
-          if (l1 > l) {\r
-            PendingIntent pendingIntent = getPendingIntent(str1, str2, str3, str4, str5, str6, str7);\r
-            AlarmHelper.setAlarm(this.alarmManager, l1, pendingIntent);\r
+        try {\r
+          String str1 = cursor1.getString(1);\r
+          String str2 = cursor1.getString(2);\r
+          String str3 = cursor1.getString(3);\r
+          String str4 = cursor1.getString(4);\r
+          String str5 = cursor1.getString(5);\r
+          String str6 = cursor1.getString(6);\r
+          String str7 = cursor1.getString(6);\r
+          if (str1 != null) {\r
+            String year = str1.substring(0, 4);\r
+            String month = str1.substring(4, 6);\r
+            String day = str1.substring(6, 8);\r
+            String hour = str1.substring(8, 10);\r
+            String minute = str1.substring(10, 12);\r
+            calendar1.set(Calendar.YEAR, Integer.parseInt(year));\r
+            calendar1.set(Calendar.MONTH, Integer.parseInt(month));\r
+            calendar1.set(Calendar.DAY_OF_MONTH, Integer.parseInt(day));\r
+            calendar1.set(Calendar.HOUR_OF_DAY, Integer.parseInt(hour));\r
+            calendar1.set(Calendar.MINUTE, Integer.parseInt(minute));\r
+            long l1 = calendar1.getTimeInMillis();\r
+            if (l1 > l) {\r
+              PendingIntent pendingIntent = getPendingIntent(str1, str2, str3, str4, str5, str6, str7);\r
+              AlarmHelper.setAlarm(this.alarmManager, l1, pendingIntent);\r
+            }\r
           }\r
+        }catch (Exception e){\r
+          e.printStackTrace();\r
+          ICLogger.e(e.getMessage(),e);\r
         }\r
       }\r
       cursor1.close();\r
@@ -217,29 +227,35 @@ public class ContextProxy {
     long l = System.currentTimeMillis();\r
     for (Alarm alarm : paramArrayList) {\r
       long l1 = l;\r
+\r
       if ("ON".equals(alarm.status)) {\r
-        int i = Integer.parseInt(alarm.time.substring(2, 4));\r
-        int j = Integer.parseInt(alarm.time.substring(5, 7));\r
-        calendar.set(Calendar.HOUR_OF_DAY, i);\r
-        calendar.set(Calendar.MINUTE, j);\r
-        char[] arrayOfChar = alarm.week.toCharArray();\r
-        i = arrayOfChar.length;\r
-        j = 1;\r
-        while (true) {\r
-          l1 = l;\r
-          if (j < i) {\r
-            c = ( char)(arrayOfChar[j] - '/');\r
-            calendar.set(Calendar.DAY_OF_WEEK, c);\r
-            long l2 = calendar.getTimeInMillis();\r
-            l1 = l2;\r
-            if (l2 <= l)\r
-              l1 = l2 + ONE_WEEK;\r
-            PendingIntent pendingIntent = getPendingIntent(alarm.time, alarm.week, alarm.ring, alarm.name, c);\r
-            AlarmHelper.setAlarm(this.alarmManager, l1, pendingIntent);\r
-            j++;\r
-            continue;\r
+        try {\r
+          int i = Integer.parseInt(alarm.time.substring(2, 4));\r
+          int j = Integer.parseInt(alarm.time.substring(5, 7));\r
+          calendar.set(Calendar.HOUR_OF_DAY, i);\r
+          calendar.set(Calendar.MINUTE, j);\r
+          char[] arrayOfChar = alarm.week.toCharArray();\r
+          i = arrayOfChar.length;\r
+          j = 1;\r
+          while (true) {\r
+            l1 = l;\r
+            if (j < i) {\r
+              c = (char) (arrayOfChar[j] - '/');\r
+              calendar.set(Calendar.DAY_OF_WEEK, c);\r
+              long l2 = calendar.getTimeInMillis();\r
+              l1 = l2;\r
+              if (l2 <= l)\r
+                l1 = l2 + ONE_WEEK;\r
+              PendingIntent pendingIntent = getPendingIntent(alarm.time, alarm.week, alarm.ring, alarm.name, c);\r
+              AlarmHelper.setAlarm(this.alarmManager, l1, pendingIntent);\r
+              j++;\r
+              continue;\r
+            }\r
+            break;\r
           }\r
-          break;\r
+        }catch (Exception e){\r
+          e.printStackTrace();\r
+          ICLogger.e(e.getMessage(),e);\r
         }\r
       }\r
       l = l1;\r
@@ -273,20 +289,25 @@ public class ContextProxy {
       long l = System.currentTimeMillis();\r
       calendar.set(Calendar.SECOND, 0);\r
       if (str1 != null) {\r
-        String str8 = str1.substring(0, 4);\r
-        String str9 = str1.substring(4, 6);\r
-        String str10 = str1.substring(6, 8);\r
-        String str11 = str1.substring(8, 10);\r
-        String str12 = str1.substring(10, 12);\r
-        calendar.set(Calendar.YEAR, Integer.parseInt(str8));\r
-        calendar.set(Calendar.MONTH, Integer.parseInt(str9) - 1);\r
-        calendar.set(Calendar.DAY_OF_MONTH, Integer.parseInt(str10));\r
-        calendar.set(Calendar.HOUR_OF_DAY, Integer.parseInt(str11));\r
-        calendar.set(Calendar.MINUTE, Integer.parseInt(str12));\r
-        long l1 = calendar.getTimeInMillis();\r
-        if (l1 >= l) {\r
-          PendingIntent pendingIntent = getPendingIntent(str1, str2, str3, str4, str5, str6, str7);\r
-          AlarmHelper.setAlarm(this.alarmManager, l1, pendingIntent);\r
+        try {\r
+          String str8 = str1.substring(0, 4);\r
+          String str9 = str1.substring(4, 6);\r
+          String str10 = str1.substring(6, 8);\r
+          String str11 = str1.substring(8, 10);\r
+          String str12 = str1.substring(10, 12);\r
+          calendar.set(Calendar.YEAR, Integer.parseInt(str8));\r
+          calendar.set(Calendar.MONTH, Integer.parseInt(str9) - 1);\r
+          calendar.set(Calendar.DAY_OF_MONTH, Integer.parseInt(str10));\r
+          calendar.set(Calendar.HOUR_OF_DAY, Integer.parseInt(str11));\r
+          calendar.set(Calendar.MINUTE, Integer.parseInt(str12));\r
+          long l1 = calendar.getTimeInMillis();\r
+          if (l1 >= l) {\r
+            PendingIntent pendingIntent = getPendingIntent(str1, str2, str3, str4, str5, str6, str7);\r
+            AlarmHelper.setAlarm(this.alarmManager, l1, pendingIntent);\r
+          }\r
+        }catch (Exception e){\r
+          e.printStackTrace();\r
+          ICLogger.e(e.getMessage(),e);\r
         }\r
       }\r
     }\r
index d95ef1d..7c67a57 100644 (file)
@@ -271,8 +271,9 @@ public class Util {
     }\r
     return ret;\r
   }\r
-  public static boolean isNumeric(String str){\r
-    Pattern pattern = Pattern.compile("[0-9]*");\r
+\r
+   public static boolean isNumeric(String str){\r
+    Pattern pattern = Pattern.compile("^[-+]?(([0-9]+)([.]([0-9]+))?|([.]([0-9]+))?)$");\r
     Matcher isNum = pattern.matcher(str);\r
     if( !isNum.matches() ){\r
       return false;\r
index 403661d..9c5b3b1 100644 (file)
@@ -322,22 +322,26 @@ public class protocol_beehome {
         String[] msg=cmd.split(CMDSPLIT);\r
         if (msg.length>=6){\r
 \r
-            Name=msg[1];\r
-            appendIndex=msg[2];\r
-            packetCount= Integer.parseInt(msg[3]);\r
-            currentId= Integer.parseInt(msg[4]);\r
-            packetLen= Integer.parseInt(msg[5]);\r
-\r
-            StringBuffer stringBuffer=new StringBuffer();\r
-            stringBuffer.append("getBP28AmrLen name = ").append(Name)\r
-                    .append(",appendIndex = ").append(appendIndex)\r
-                    .append(",packetCount = ").append(packetCount)\r
-                    .append(",currentId = ").append(currentId)\r
-                    .append(",packetLen = ").append(packetLen);\r
-\r
-\r
-            log( stringBuffer.toString());\r
-            return packetLen;\r
+            try {\r
+                Name = msg[1];\r
+                appendIndex = msg[2];\r
+                packetCount = Integer.parseInt(msg[3]);\r
+                currentId = Integer.parseInt(msg[4]);\r
+                packetLen = Integer.parseInt(msg[5]);\r
+\r
+                StringBuffer stringBuffer = new StringBuffer();\r
+                stringBuffer.append("getBP28AmrLen name = ").append(Name)\r
+                        .append(",appendIndex = ").append(appendIndex)\r
+                        .append(",packetCount = ").append(packetCount)\r
+                        .append(",currentId = ").append(currentId)\r
+                        .append(",packetLen = ").append(packetLen);\r
+\r
+\r
+                log(stringBuffer.toString());\r
+                return packetLen;\r
+            }catch (Exception e){\r
+                ICLogger.e(e.getMessage(),e);\r
+            }\r
         }else{\r
             log("getBP28AmrLen","format Error");\r
 \r
@@ -360,21 +364,24 @@ public class protocol_beehome {
             log("handleBP00", "Set Datetime " + msg[1]);\r
             log("handleBP00", "Set TimeZone " + msg[2]);\r
 \r
-//            Date datetime= TimeUtil.parseDatetiime(msg[1]);\r
-//            int timezone=Integer.parseInt(msg[2]);\r
-//            if (datetime!=null){\r
-//                ICLogger.i("==="+TimeUtil.getDefaultTimeZone());\r
-//                TimeUtil.setTimeZone(timezone);\r
-//\r
-//\r
-//                ICLogger.i("==="+TimeUtil.getDefaultTimeZone());\r
-//                TimeUtil.setSysDateTime(runtime.getContextProxy().context,datetime,timezone);\r
-//                ICLogger.i("==="+TimeUtil.getDefaultTimeZone());\r
-//\r
-//            }\r
+            try {\r
+                Date datetime = TimeUtil.parseDatetiime(msg[1]);\r
+                int timezone = Integer.parseInt(msg[2]);\r
+                if (datetime != null) {\r
+                    ICLogger.i("===" + TimeUtil.getDefaultTimeZone());\r
+                    TimeUtil.setTimeZone(timezone);\r
+\r
+\r
+                    ICLogger.i("===" + TimeUtil.getDefaultTimeZone());\r
+                    TimeUtil.setSysDateTime(runtime.getContextProxy().context, datetime, timezone);\r
+                    ICLogger.i("===" + TimeUtil.getDefaultTimeZone());\r
+\r
+                }\r
 //            Set Datetime 20200505112734\r
 //            Set TimeZone 8\r
-\r
+            }catch (Exception e){\r
+                ICLogger.e(e.getMessage(),e);\r
+            }\r
         }else{\r
             log("handleBP00","format Error");\r
         }\r
@@ -609,8 +616,12 @@ public class protocol_beehome {
             String strSex=list[6];\r
 \r
             connection.send(APJZ(index,strBPH,strBPL,strAge,strSex));\r
-            runtime.getHRS().setXY_Ref(Integer.parseInt(strBPH),Integer.parseInt(strBPL),Integer.parseInt(strAge),Integer.parseInt(strSex));\r
-            ICLogger.i("Handle BPJZ IMEI "+imei+",index "+index+", BPH "+strBPH+", BPL "+strBPL+", Age "+ strAge +", Sex "+ (strSex.equals("1")?"男":"女"));\r
+            try {\r
+                runtime.getHRS().setXY_Ref(Integer.parseInt(strBPH), Integer.parseInt(strBPL), Integer.parseInt(strAge), Integer.parseInt(strSex));\r
+                ICLogger.i("Handle BPJZ IMEI " + imei + ",index " + index + ", BPH " + strBPH + ", BPL " + strBPL + ", Age " + strAge + ", Sex " + (strSex.equals("1") ? "男" : "女"));\r
+            }catch (Exception e){\r
+                ICLogger.e(e.getMessage(),e);\r
+            }\r
         }else{\r
             ICLogger.i("BPXY format error!");\r
         }\r
@@ -843,68 +854,71 @@ public class protocol_beehome {
         String[] datalist= cmd.split("@");\r
         ArrayList<Alarm> alarmlist=new ArrayList<>();\r
         if (datalist.length >0){\r
-            for (int i =0 ; i< datalist.length;i++){\r
-                String [] cmdarglist=datalist[i].split(",");\r
-\r
-                if (i == 0){\r
-                    if (cmdarglist.length == 9){\r
-                        imei=cmdarglist[1];\r
-                        cmdindex=cmdarglist[2];\r
-                        all_alarmswitch=Integer.parseInt(cmdarglist[3]);\r
-                        alarmcount=Integer.parseInt(cmdarglist[4]);\r
-                        alarmtime=cmdarglist[5];\r
-                        repeat=cmdarglist[6];\r
-                        alarmswitch=Integer.parseInt(cmdarglist[7]);\r
-                        alarmtype = Integer.parseInt(cmdarglist[8]);\r
-                        log(new StringBuilder("imei ").append(imei)\r
-                                .append(", cmdindex ").append(cmdindex)\r
-                                .append(", allswitch=").append(all_alarmswitch)\r
-                                .append(", all alarm count=").append(alarmcount)\r
-                                .toString()\r
-                        );\r
-\r
-                        log(new StringBuilder("alarmtime ").append(alarmtime)\r
-                                .append(", relpeat ").append(repeat)\r
-                                .append(", switch=").append(alarmswitch)\r
-                                .append(", alarmtype=").append(alarmtype)\r
-                                .toString()\r
-                        );\r
-                        alarmlist.add(new Alarm("ST"+alarmtime.substring(0,2)+"."+alarmtime.substring(2),"W"+repeat,"CON",alarmswitch==1?"ON":"OFF","闹铃"));\r
-\r
-                    }else if (cmdarglist.length == 5) {\r
-                        imei=cmdarglist[1];\r
-                        cmdindex=cmdarglist[2];\r
-                        all_alarmswitch=Integer.parseInt(cmdarglist[3]);\r
-                        alarmcount=Integer.parseInt(cmdarglist[4]);\r
-                    }else{\r
-                        log("data len is too small!");\r
-                    }\r
-                }else{\r
-                    if (cmdarglist.length == 4){\r
-                        alarmtime=cmdarglist[0];\r
-                        repeat=cmdarglist[1];\r
-                        alarmswitch=Integer.parseInt(cmdarglist[2]);\r
-                        alarmtype = Integer.parseInt(cmdarglist[3]);\r
-\r
-                        log(new StringBuilder("set alarmtime ").append(alarmtime)\r
-                                .append(", relpeat ").append(repeat)\r
-                                .append(", switch=").append(alarmswitch)\r
-                                .append(", alarmtype=").append(alarmtype)\r
-                                .toString()\r
-                        );\r
-\r
-                        alarmlist.add(new Alarm("ST"+alarmtime.substring(0,2)+"."+alarmtime.substring(2),"W"+repeat,"CON",alarmswitch==1?"ON":"OFF","闹铃"));\r
-\r
-                    }else{\r
-                        log("data len is too small!");\r
-                    }\r
-\r
-                }\r
-            }//循环获取alarm数据结束\r
-            runtime.getDbHelper().saveAlarm(alarmlist);\r
+            try {\r
+                for (int i = 0; i < datalist.length; i++) {\r
+                    String[] cmdarglist = datalist[i].split(",");\r
+\r
+                    if (i == 0) {\r
+                        if (cmdarglist.length == 9) {\r
+                            imei = cmdarglist[1];\r
+                            cmdindex = cmdarglist[2];\r
+                            all_alarmswitch = Integer.parseInt(cmdarglist[3]);\r
+                            alarmcount = Integer.parseInt(cmdarglist[4]);\r
+                            alarmtime = cmdarglist[5];\r
+                            repeat = cmdarglist[6];\r
+                            alarmswitch = Integer.parseInt(cmdarglist[7]);\r
+                            alarmtype = Integer.parseInt(cmdarglist[8]);\r
+                            log(new StringBuilder("imei ").append(imei)\r
+                                    .append(", cmdindex ").append(cmdindex)\r
+                                    .append(", allswitch=").append(all_alarmswitch)\r
+                                    .append(", all alarm count=").append(alarmcount)\r
+                                    .toString()\r
+                            );\r
+\r
+                            log(new StringBuilder("alarmtime ").append(alarmtime)\r
+                                    .append(", relpeat ").append(repeat)\r
+                                    .append(", switch=").append(alarmswitch)\r
+                                    .append(", alarmtype=").append(alarmtype)\r
+                                    .toString()\r
+                            );\r
+                            alarmlist.add(new Alarm("ST" + alarmtime.substring(0, 2) + "." + alarmtime.substring(2), "W" + repeat, "CON", alarmswitch == 1 ? "ON" : "OFF", "闹铃"));\r
+\r
+                        } else if (cmdarglist.length == 5) {\r
+                            imei = cmdarglist[1];\r
+                            cmdindex = cmdarglist[2];\r
+                            all_alarmswitch = Integer.parseInt(cmdarglist[3]);\r
+                            alarmcount = Integer.parseInt(cmdarglist[4]);\r
+                        } else {\r
+                            log("data len is too small!");\r
+                        }\r
+                    } else {\r
+                        if (cmdarglist.length == 4) {\r
+                            alarmtime = cmdarglist[0];\r
+                            repeat = cmdarglist[1];\r
+                            alarmswitch = Integer.parseInt(cmdarglist[2]);\r
+                            alarmtype = Integer.parseInt(cmdarglist[3]);\r
+\r
+                            log(new StringBuilder("set alarmtime ").append(alarmtime)\r
+                                    .append(", relpeat ").append(repeat)\r
+                                    .append(", switch=").append(alarmswitch)\r
+                                    .append(", alarmtype=").append(alarmtype)\r
+                                    .toString()\r
+                            );\r
+\r
+                            alarmlist.add(new Alarm("ST" + alarmtime.substring(0, 2) + "." + alarmtime.substring(2), "W" + repeat, "CON", alarmswitch == 1 ? "ON" : "OFF", "闹铃"));\r
+\r
+                        } else {\r
+                            log("data len is too small!");\r
+                        }\r
 \r
-            //do clean and set alarm things\r
+                    }\r
+                }//循环获取alarm数据结束\r
+                runtime.getDbHelper().saveAlarm(alarmlist);\r
 \r
+                //do clean and set alarm things\r
+            }catch (Exception e){\r
+                ICLogger.e(e.getMessage(),e);\r
+            }\r
         }\r
 //IWBP85,867155030002145,410385,1,0,#\r
 \r
@@ -978,18 +992,21 @@ public class protocol_beehome {
 //1:表示服务器接受数据成功,0表示服务器接受数据失败\r
         String[] cmdlist=cmd.split(CMDSPLIT);\r
         if (cmdlist.length==5){\r
-            String time=cmdlist[1];\r
-            int packetCount=Integer.parseInt(cmdlist[2]);\r
-            int packetIndex=Integer.parseInt(cmdlist[3]);\r
-            int receiveSuccess=Integer.parseInt(cmdlist[4]);\r
-            ICLogger.i("服务器在"+time+" 收到语音 "+packetIndex+"/"+packetCount+" "+ (receiveSuccess==1?"成功":"失敗"));\r
-            if (receiveSuccess == 1){\r
-                //如果服务器接收 语音成功,则设置下一个要发送的语音包Index,当index == packetCount的时候表示所有包发送完毕,停止继续发送\r
-                voicePacket.getInstanceSent().setCurrentIndexToSent(packetIndex);\r
+            try {\r
+                String time = cmdlist[1];\r
+                int packetCount = Integer.parseInt(cmdlist[2]);\r
+                int packetIndex = Integer.parseInt(cmdlist[3]);\r
+                int receiveSuccess = Integer.parseInt(cmdlist[4]);\r
+                ICLogger.i("服务器在" + time + " 收到语音 " + packetIndex + "/" + packetCount + " " + (receiveSuccess == 1 ? "成功" : "失敗"));\r
+                if (receiveSuccess == 1) {\r
+                    //如果服务器接收 语音成功,则设置下一个要发送的语音包Index,当index == packetCount的时候表示所有包发送完毕,停止继续发送\r
+                    voicePacket.getInstanceSent().setCurrentIndexToSent(packetIndex);\r
+                }\r
+                //发送消息,再次检查要发送的语音包,确认其发送完毕\r
+                connection.DeliverCMDMessageToSystem("SentVoicePacket", "SentVoicePacket");\r
+            }catch (Exception e){\r
+                ICLogger.e(e.getMessage(),e);\r
             }\r
-            //发送消息,再次检查要发送的语音包,确认其发送完毕\r
-            connection.DeliverCMDMessageToSystem("SentVoicePacket","SentVoicePacket");\r
-\r
         }else{\r
             ICLogger.i(" BP07 Format error!");\r
         }\r
@@ -1019,36 +1036,38 @@ public class protocol_beehome {
 \r
         String[] cmdlist=cmd.split(",");\r
         if (cmdlist.length == 4){\r
-\r
-\r
             log("work mode "+cmdlist[3]);\r
-            int mod=Integer.parseInt(cmdlist[3]);\r
-            int Cycle=900;\r
-            switch(mod){\r
-                case ICLocation.NORMAL_MOD:\r
-                    Cycle=900;\r
-                    break;\r
-                case ICLocation.LOWPOWER_MOD:\r
-                    Cycle=3600;\r
-                    break;\r
-                case ICLocation.EMERGNECY_MOD:\r
-                case ICLocation.REALTIME_MOD:\r
-                    Cycle=60;\r
-                    break;\r
+            try {\r
+                int mod = Integer.parseInt(cmdlist[3]);\r
+                int Cycle = 900;\r
+                switch (mod) {\r
+                    case ICLocation.NORMAL_MOD:\r
+                        Cycle = 900;\r
+                        break;\r
+                    case ICLocation.LOWPOWER_MOD:\r
+                        Cycle = 3600;\r
+                        break;\r
+                    case ICLocation.EMERGNECY_MOD:\r
+                    case ICLocation.REALTIME_MOD:\r
+                        Cycle = 60;\r
+                        break;\r
 \r
-            }\r
+                }\r
 \r
-            StringMessage msg=AP33(cmdlist[2],mod);\r
-            //设定当前工作模式及循环频率\r
-            connection.send(msg);\r
-            log("reply msg "+msg);\r
-            log("LOCATION_MODE  "+LOCATION_MODE+" mod "+ mod);\r
-            Config.setLocationMode(runtime.getContextProxy().context,mod);\r
-            Config.setLocationCycle(runtime.getContextProxy().context,Cycle);\r
-            runtime.getLocationInstance().setLocation_cycle(Cycle);\r
-            runtime.getLocationInstance().setWorkingMod(mod);\r
+                StringMessage msg = AP33(cmdlist[2], mod);\r
+                //设定当前工作模式及循环频率\r
+                connection.send(msg);\r
+                log("reply msg " + msg);\r
+                log("LOCATION_MODE  " + LOCATION_MODE + " mod " + mod);\r
+                Config.setLocationMode(runtime.getContextProxy().context, mod);\r
+                Config.setLocationCycle(runtime.getContextProxy().context, Cycle);\r
+                runtime.getLocationInstance().setLocation_cycle(Cycle);\r
+                runtime.getLocationInstance().setWorkingMod(mod);\r
 //            CoreService.getInstance().setLocationAlarm(runtime.getLocationInstance().getWorkingMod());\r
-            //此处设置好配置后,会在LocationClient通过消息开始执行及时定位操作。\r
+                //此处设置好配置后,会在LocationClient通过消息开始执行及时定位操作。\r
+            }catch (Exception e){\r
+                ICLogger.e(e.getMessage(),e);\r
+            }\r
         }\r
 \r
     }\r
@@ -1079,27 +1098,31 @@ public class protocol_beehome {
 \r
 \r
             log("work mode "+cmdlist[3]);\r
-            int mod=Integer.parseInt(cmdlist[3]);\r
-            int Cycle=Integer.parseInt(cmdlist[4]);\r
-            int gpson=Integer.parseInt(cmdlist[5]);\r
-\r
-            StringMessage msg=AP34(cmdlist[2],mod);\r
-            //设定当前工作模式及循环频率\r
-            connection.send(msg);\r
-\r
-            if(gpson==1){\r
-                mod=ICLocation.CUSTOM_MOD8_GPS;\r
-            }else{\r
-                mod=ICLocation.CUSTOM_MOD8_WIFI;\r
-            }\r
-            log("reply msg "+msg);\r
-            log("LOCATION_MODE  "+LOCATION_MODE+" mod "+ mod + ", cycle = "+Cycle+", GPS On= "+gpson);\r
-            Config.setLocationMode(runtime.getContextProxy().context,mod);\r
-            Config.setLocationCycle(runtime.getContextProxy().context,Cycle);\r
-            runtime.getLocationInstance().setLocation_cycle(Cycle);\r
-            runtime.getLocationInstance().setWorkingMod(mod);\r
+            try {\r
+                int mod = Integer.parseInt(cmdlist[3]);\r
+                int Cycle = Integer.parseInt(cmdlist[4]);\r
+                int gpson = Integer.parseInt(cmdlist[5]);\r
+\r
+                StringMessage msg = AP34(cmdlist[2], mod);\r
+                //设定当前工作模式及循环频率\r
+                connection.send(msg);\r
+\r
+                if (gpson == 1) {\r
+                    mod = ICLocation.CUSTOM_MOD8_GPS;\r
+                } else {\r
+                    mod = ICLocation.CUSTOM_MOD8_WIFI;\r
+                }\r
+                log("reply msg " + msg);\r
+                log("LOCATION_MODE  " + LOCATION_MODE + " mod " + mod + ", cycle = " + Cycle + ", GPS On= " + gpson);\r
+                Config.setLocationMode(runtime.getContextProxy().context, mod);\r
+                Config.setLocationCycle(runtime.getContextProxy().context, Cycle);\r
+                runtime.getLocationInstance().setLocation_cycle(Cycle);\r
+                runtime.getLocationInstance().setWorkingMod(mod);\r
 //            CoreService.getInstance().setLocationAlarm(runtime.getLocationInstance().getWorkingMod());\r
-            //此处设置好配置后,会在LocationClient通过消息开始执行及时定位操作。\r
+                //此处设置好配置后,会在LocationClient通过消息开始执行及时定位操作。\r
+            }catch (Exception e){\r
+                ICLogger.e(e.getMessage(),e);\r
+            }\r
         }\r
 \r
     }\r
@@ -1281,17 +1304,21 @@ public class protocol_beehome {
         String[] list=cmd.split(CMDSPLIT);\r
 \r
         if(list.length==4){\r
-            String index=list[2];\r
-            String time=list[3];\r
-            connection.send(AP15(index));\r
-            ICLogger.i("BP15 , 定位周期="+time+"秒");\r
-\r
-            Config.setLocationMode(runtime.getContextProxy().context, ICLocation.CUSTOM_MOD8_GPS);\r
-            Config.setLocationCycle(runtime.getContextProxy().context,Integer.parseInt(time));\r
-            runtime.getLocationInstance().setWorkingMod(Config.getLocationMode(runtime.getContextProxy().context));\r
-            runtime.getLocationInstance().setLocation_cycle(Config.getLocationCycle(runtime.getContextProxy().context));\r
-            //set AlarmCycle  and trigger Location\r
-            CoreService.getInstance().setLocationAlarm(runtime.getLocationInstance().getWorkingMod());\r
+            try {\r
+                String index = list[2];\r
+                String time = list[3];\r
+                connection.send(AP15(index));\r
+                ICLogger.i("BP15 , 定位周期=" + time + "秒");\r
+\r
+                Config.setLocationMode(runtime.getContextProxy().context, ICLocation.CUSTOM_MOD8_GPS);\r
+                Config.setLocationCycle(runtime.getContextProxy().context, Integer.parseInt(time));\r
+                runtime.getLocationInstance().setWorkingMod(Config.getLocationMode(runtime.getContextProxy().context));\r
+                runtime.getLocationInstance().setLocation_cycle(Config.getLocationCycle(runtime.getContextProxy().context));\r
+                //set AlarmCycle  and trigger Location\r
+                CoreService.getInstance().setLocationAlarm(runtime.getLocationInstance().getWorkingMod());\r
+            }catch (Exception e){\r
+                ICLogger.e(e.getMessage(),e);\r
+            }\r
         }else{\r
             ICLogger.i("BP15 format error");\r
         }\r
@@ -1350,46 +1377,49 @@ public class protocol_beehome {
         String[] msg= cmd.split(CMDSPLIT);\r
         if (msg.length>=6){\r
 \r
-            Name=msg[1];\r
-            appendIndex=msg[2];\r
-            packetCount= Integer.parseInt(msg[3]);\r
-            currentId= Integer.parseInt(msg[4]);\r
-            packetLen= Integer.parseInt(msg[5]);\r
-            packetData= Util.subArray(bytes,msg[0].length()+msg[1].length()+msg[2].length()+msg[3].length()+msg[4].length()+msg[5].length()+6,bytes.length-1);\r
-\r
-            StringBuffer stringBuffer=new StringBuffer();\r
-            stringBuffer.append("recv BP28 name = ").append(Name)\r
-                    .append(",appendIndex = ").append(appendIndex)\r
-                    .append(",packetCount = ").append(packetCount)\r
-                    .append(",currentId = ").append(currentId)\r
-                    .append(",packetLen = ").append(packetLen)\r
-                    .append(",packetDatalen = ").append(packetData.length);\r
-\r
-            log( stringBuffer.toString());\r
-            connection.send(AP28(Name,appendIndex,packetCount,currentId,1));\r
-            voicePacket.getInstance().appendVoice(Name,appendIndex,packetCount,currentId,packetLen,packetData);\r
-            log("================"+voicePacket.getInstance().toString());\r
-            if (voicePacket.getInstance().isFinished())\r
-            {\r
-\r
-                String dir = Environment.getExternalStorageDirectory()+ "/Android/VoiceCache";\r
-                String amrFilepath=Util.saveFile(voicePacket.getInstance().getVoicePacketBytes(),0,voicePacket.getInstance().getVoicePacketLen(),new File(dir),"receive_"+voicePacket.getInstance().getPacketTime()+".amr");\r
-                ICLogger.i("save Amr file to "+amrFilepath);\r
-                voicePacket.getInstance().clearPacket();\r
-                VoiceContent voiceContent=VoiceContent.placeHolderIn(Content.CONTACT_CATEGORY_GROUP,GROUP_ALL,amrFilepath);\r
-\r
-\r
-                final Uri uri2 = runtime.getDbHelper().insertMessage( voiceContent);\r
-\r
-                //回复UI消息,表示已经接收到\r
-                voiceContent.status = 3;\r
-                voiceContent.serverTime = TimeUtil.getSystemTime3();\r
-                voiceContent.preview = String.valueOf(Util.getDuration(voiceContent.content));\r
-                runtime.getDbHelper().updateMessage(voiceContent, uri2);\r
+            try {\r
+                Name = msg[1];\r
+                appendIndex = msg[2];\r
+                packetCount = Integer.parseInt(msg[3]);\r
+                currentId = Integer.parseInt(msg[4]);\r
+                packetLen = Integer.parseInt(msg[5]);\r
+                packetData = Util.subArray(bytes, msg[0].length() + msg[1].length() + msg[2].length() + msg[3].length() + msg[4].length() + msg[5].length() + 6, bytes.length - 1);\r
+\r
+                StringBuffer stringBuffer = new StringBuffer();\r
+                stringBuffer.append("recv BP28 name = ").append(Name)\r
+                        .append(",appendIndex = ").append(appendIndex)\r
+                        .append(",packetCount = ").append(packetCount)\r
+                        .append(",currentId = ").append(currentId)\r
+                        .append(",packetLen = ").append(packetLen)\r
+                        .append(",packetDatalen = ").append(packetData.length);\r
+\r
+                log(stringBuffer.toString());\r
+                connection.send(AP28(Name, appendIndex, packetCount, currentId, 1));\r
+                voicePacket.getInstance().appendVoice(Name, appendIndex, packetCount, currentId, packetLen, packetData);\r
+                log("================" + voicePacket.getInstance().toString());\r
+                if (voicePacket.getInstance().isFinished()) {\r
+\r
+                    String dir = Environment.getExternalStorageDirectory() + "/Android/VoiceCache";\r
+                    String amrFilepath = Util.saveFile(voicePacket.getInstance().getVoicePacketBytes(), 0, voicePacket.getInstance().getVoicePacketLen(), new File(dir), "receive_" + voicePacket.getInstance().getPacketTime() + ".amr");\r
+                    ICLogger.i("save Amr file to " + amrFilepath);\r
+                    voicePacket.getInstance().clearPacket();\r
+                    VoiceContent voiceContent = VoiceContent.placeHolderIn(Content.CONTACT_CATEGORY_GROUP, GROUP_ALL, amrFilepath);\r
+\r
+\r
+                    final Uri uri2 = runtime.getDbHelper().insertMessage(voiceContent);\r
+\r
+                    //回复UI消息,表示已经接收到\r
+                    voiceContent.status = 3;\r
+                    voiceContent.serverTime = TimeUtil.getSystemTime3();\r
+                    voiceContent.preview = String.valueOf(Util.getDuration(voiceContent.content));\r
+                    runtime.getDbHelper().updateMessage(voiceContent, uri2);\r
 \r
 //                runtime.getContextProxy().sendBroadcast(ACTION_IMESSAGE, runtime);\r
 \r
-                connection.DeliverCMDMessageToSystem("NewVoice", amrFilepath);//通知下面线程状态变化\r
+                    connection.DeliverCMDMessageToSystem("NewVoice", amrFilepath);//通知下面线程状态变化\r
+                }\r
+            }catch (Exception e){\r
+                ICLogger.e(e.getMessage(),e);\r
             }\r
 \r
         }else{\r
@@ -1512,16 +1542,20 @@ public class protocol_beehome {
         String[] list=cmd.split(CMDSPLIT);\r
 \r
         if (list.length==5){\r
-            String index=list[2];\r
-            String type=list[3];\r
-            String cycle=list[4];\r
-            connection.send(AP86(index));\r
-            ICLogger.i("收到服务器指令:设置"+(type.equals("1")?"心率周期 ":"血压周期 ")+cycle+"分钟");\r
-\r
-            //发送重置PPGCycle的广播,会在CoreServer里面执行\r
-            Intent intent = new Intent();\r
-            intent.putExtra("PPGTestCycle",Integer.parseInt(cycle));\r
-            runtime.getContextProxy().sendBrodcast(ACTION_HEATR_RATE_START,intent);\r
+            try {\r
+                String index = list[2];\r
+                String type = list[3];\r
+                String cycle = list[4];\r
+                connection.send(AP86(index));\r
+                ICLogger.i("收到服务器指令:设置" + (type.equals("1") ? "心率周期 " : "血压周期 ") + cycle + "分钟");\r
+\r
+                //发送重置PPGCycle的广播,会在CoreServer里面执行\r
+                Intent intent = new Intent();\r
+                intent.putExtra("PPGTestCycle", Integer.parseInt(cycle));\r
+                runtime.getContextProxy().sendBrodcast(ACTION_HEATR_RATE_START, intent);\r
+            }catch (Exception e){\r
+                ICLogger.e(e.getMessage(),e);\r
+            }\r
         }else{\r
             ICLogger.i("BP86 format error!");\r
         }\r
@@ -1615,16 +1649,19 @@ public class protocol_beehome {
         //60 : 上传间隔,单位分钟(60分钟上传一次体温,终端收到后立即开始测量一次并重置定时器)\r
         String[] list=cmd.split(CMDSPLIT);\r
         if (list.length==4){\r
-            String index=list[2];\r
-            String freqstr=list[3];\r
-            int freq=Integer.parseInt(freqstr);\r
-            connection.send(APTE(index,freq));\r
-            ICLogger.i("收到服务器指令:测量体温 "+freq+"分钟一次。");\r
-            Config.setTemperatureTestCycle(runtime,freq*60);\r
-            CoreService.getInstance().setTempAlarm();\r
-\r
-            TemperatureUtil.doTempTestInThread();\r
-\r
+            try {\r
+                String index = list[2];\r
+                String freqstr = list[3];\r
+                int freq = Integer.parseInt(freqstr);\r
+                connection.send(APTE(index, freq));\r
+                ICLogger.i("收到服务器指令:测量体温 " + freq + "分钟一次。");\r
+                Config.setTemperatureTestCycle(runtime, freq * 60);\r
+                CoreService.getInstance().setTempAlarm();\r
+\r
+                TemperatureUtil.doTempTestInThread();\r
+            }catch (Exception e){\r
+                ICLogger.e(e.getMessage(),e);\r
+            }\r
 //            double wrist_temp,body_temp;\r
 //            wrist_temp=TemperatureUtil.get_temp_value_adjusted();\r
 //            body_temp=TemperatureUtil.getBodyTemp(wrist_temp,26.0f);\r
@@ -1695,19 +1732,23 @@ public class protocol_beehome {
 \r
             connection.send(APX1(index));\r
 \r
-            int ppg_adjust,bph_adjust,bpl_adjust,spo2_adjust;\r
-            ppg_adjust=Integer.parseInt(strXL);\r
-            bph_adjust=Integer.parseInt(strBPH);\r
-            bpl_adjust=Integer.parseInt(strBPL);\r
-            spo2_adjust=Integer.parseInt(strSpO2);\r
-\r
-            runtime.getHRS().setAdjust(ppg_adjust,bph_adjust,bpl_adjust,spo2_adjust);\r
-            Config.setPPGAdjust(mRuntime.getContextProxy().context,ppg_adjust);\r
-            Config.setBPHAdjust(mRuntime.getContextProxy().context,bph_adjust);\r
-            Config.setBPLAdjust(mRuntime.getContextProxy().context,bpl_adjust);\r
-            Config.setSPo2Adjust(mRuntime.getContextProxy().context,spo2_adjust);\r
-\r
-            ICLogger.i("Handle BPX1 IMEI "+imei+",index "+index+", BPH "+strBPH+", BPL "+strBPL+", PPG "+ strXL +", Sp02 "+ strSpO2);\r
+            try {\r
+                int ppg_adjust, bph_adjust, bpl_adjust, spo2_adjust;\r
+                ppg_adjust = Integer.parseInt(strXL);\r
+                bph_adjust = Integer.parseInt(strBPH);\r
+                bpl_adjust = Integer.parseInt(strBPL);\r
+                spo2_adjust = Integer.parseInt(strSpO2);\r
+\r
+                runtime.getHRS().setAdjust(ppg_adjust, bph_adjust, bpl_adjust, spo2_adjust);\r
+                Config.setPPGAdjust(mRuntime.getContextProxy().context, ppg_adjust);\r
+                Config.setBPHAdjust(mRuntime.getContextProxy().context, bph_adjust);\r
+                Config.setBPLAdjust(mRuntime.getContextProxy().context, bpl_adjust);\r
+                Config.setSPo2Adjust(mRuntime.getContextProxy().context, spo2_adjust);\r
+\r
+                ICLogger.i("Handle BPX1 IMEI " + imei + ",index " + index + ", BPH " + strBPH + ", BPL " + strBPL + ", PPG " + strXL + ", Sp02 " + strSpO2);\r
+            }catch (Exception e){\r
+                ICLogger.e(e.getMessage(),e);\r
+            }\r
         }else{\r
             ICLogger.i("BPX1 format error!");\r
         }\r
index b9ae063..71465fe 100644 (file)
@@ -347,13 +347,17 @@ public class protocol_fzd {
     public static void handlePing(Runtime runtime,String data){\r
 //        [IC*YYYYYYYYYYYYYYY*LEN*PING,是否绑定(0 表示未绑定,1 表示绑定)]\r
 //        实例:[IC*334588000000156*0006*PING,0]或[IC*334588000000156*0006*PING,1]\r
-        int bind=Integer.parseInt(data);\r
-        if (bind==0){\r
-            ICLogger.i("设备未绑定!");\r
-            runtime.BindingStatus=false;\r
-        }else{\r
-            ICLogger.i("设备已绑定!");\r
-            runtime.BindingStatus=true;\r
+        try {\r
+            int bind = Integer.parseInt(data);\r
+            if (bind == 0) {\r
+                ICLogger.i("设备未绑定!");\r
+                runtime.BindingStatus = false;\r
+            } else {\r
+                ICLogger.i("设备已绑定!");\r
+                runtime.BindingStatus = true;\r
+            }\r
+        }catch (Exception e){\r
+            ICLogger.e(e.getMessage(),e);\r
         }\r
 \r
     }\r
@@ -390,7 +394,6 @@ public class protocol_fzd {
             String date=list[2].trim();\r
             String time=list[1].trim();\r
             Date datetime= TimeUtil.parseDatetiime(date,time);\r
-\r
             int timezone;\r
             try\r
             {\r
@@ -544,16 +547,19 @@ public class protocol_fzd {
 \r
     public void handleUPLOAD(Connection connection,Runtime runtime,String cmd,String data){\r
             connection.send(UPLOAD());\r
-            int timesecond=Integer.parseInt(data);\r
-            int mod=runtime.getLocationInstance().getWorkingMod();\r
-        log("LOCATION_MODE  "+LOCATION_MODE+" mod "+ mod);\r
-        Config.setLocationMode(runtime.getContextProxy().context,mod);\r
-        Config.setLocationCycle(runtime.getContextProxy().context,timesecond);\r
-        runtime.getLocationInstance().setLocation_cycle(timesecond);\r
-        runtime.getLocationInstance().setWorkingMod(mod);\r
+        try {\r
+            int timesecond = Integer.parseInt(data);\r
+            int mod = runtime.getLocationInstance().getWorkingMod();\r
+            log("LOCATION_MODE  " + LOCATION_MODE + " mod " + mod);\r
+            Config.setLocationMode(runtime.getContextProxy().context, mod);\r
+            Config.setLocationCycle(runtime.getContextProxy().context, timesecond);\r
+            runtime.getLocationInstance().setLocation_cycle(timesecond);\r
+            runtime.getLocationInstance().setWorkingMod(mod);\r
 //            CoreService.getInstance().setLocationAlarm(runtime.getLocationInstance().getWorkingMod());\r
-        //此处设置好配置后,会在LocationClient通过消息开始执行及时定位操作。\r
-\r
+            //此处设置好配置后,会在LocationClient通过消息开始执行及时定位操作。\r
+        }catch (Exception e){\r
+            ICLogger.e(e.getMessage(),e);\r
+        }\r
     }\r
 \r
     public static StringMessage heart(int hrt){\r
@@ -598,13 +604,17 @@ public class protocol_fzd {
     public void handleWdstart(Connection connection,Runtime runtime ,String data) {\r
 \r
         connection.send(wdstart());\r
-        int freq=Integer.parseInt(data);\r
+        try {\r
+            int freq = Integer.parseInt(data);\r
 \r
 \r
-        Config.setTemperatureTestCycle(runtime,freq);\r
-        CoreService.getInstance().setTempAlarm();\r
+            Config.setTemperatureTestCycle(runtime, freq);\r
+            CoreService.getInstance().setTempAlarm();\r
 \r
-        TemperatureUtil.doTempTestInThread();\r
+            TemperatureUtil.doTempTestInThread();\r
+        }catch (Exception e){\r
+            ICLogger.e(e.getMessage(),e);\r
+        }\r
 //\r
 //        double wrist_temp,body_temp;\r
 //        wrist_temp= TemperatureUtil.get_temp_value_adjusted();\r
index 9a103dc..6974d43 100644 (file)
@@ -359,23 +359,27 @@ public class protocol_ic {
 \r
         String[] msg=cmd.split(CMDSPLIT);\r
         if (msg.length>=6){\r
+            try {\r
+                Name = msg[1];\r
+                appendIndex = msg[2];\r
+                packetCount = Integer.parseInt(msg[3]);\r
+                currentId = Integer.parseInt(msg[4]);\r
+                packetLen = Integer.parseInt(msg[5]);\r
+\r
+                StringBuffer stringBuffer = new StringBuffer();\r
+                stringBuffer.append("getBP28AmrLen name = ").append(Name)\r
+                        .append(",appendIndex = ").append(appendIndex)\r
+                        .append(",packetCount = ").append(packetCount)\r
+                        .append(",currentId = ").append(currentId)\r
+                        .append(",packetLen = ").append(packetLen);\r
+\r
+\r
+                log(stringBuffer.toString());\r
+                return packetLen;\r
+            }catch (Exception e){\r
+                ICLogger.e(e.getMessage(),e);\r
+            }\r
 \r
-            Name=msg[1];\r
-            appendIndex=msg[2];\r
-            packetCount= Integer.parseInt(msg[3]);\r
-            currentId= Integer.parseInt(msg[4]);\r
-            packetLen= Integer.parseInt(msg[5]);\r
-\r
-            StringBuffer stringBuffer=new StringBuffer();\r
-            stringBuffer.append("getBP28AmrLen name = ").append(Name)\r
-                    .append(",appendIndex = ").append(appendIndex)\r
-                    .append(",packetCount = ").append(packetCount)\r
-                    .append(",currentId = ").append(currentId)\r
-                    .append(",packetLen = ").append(packetLen);\r
-\r
-\r
-            log( stringBuffer.toString());\r
-            return packetLen;\r
         }else{\r
             log("getBP28AmrLen","format Error");\r
 \r
@@ -397,18 +401,21 @@ public class protocol_ic {
         if (msg.length>=3) {\r
             log("handleBP00", "Set Datetime " + msg[1]);\r
             log("handleBP00", "Set TimeZone " + msg[2]);\r
+            try {\r
+                Date datetime = TimeUtil.parseDatetiime(msg[1]);\r
+                int timezone = Integer.parseInt(msg[2]);\r
+                if (datetime != null) {\r
+                    ICLogger.i("===" + TimeUtil.getDefaultTimeZone());\r
+                    TimeUtil.setTimeZone(timezone);\r
 \r
-            Date datetime= TimeUtil.parseDatetiime(msg[1]);\r
-            int timezone=Integer.parseInt(msg[2]);\r
-            if (datetime!=null){\r
-                ICLogger.i("==="+TimeUtil.getDefaultTimeZone());\r
-                TimeUtil.setTimeZone(timezone);\r
 \r
+                    ICLogger.i("===" + TimeUtil.getDefaultTimeZone());\r
+                    TimeUtil.setSysDateTime(runtime.getContextProxy().context, datetime, timezone);\r
+                    ICLogger.i("===" + TimeUtil.getDefaultTimeZone());\r
 \r
-                ICLogger.i("==="+TimeUtil.getDefaultTimeZone());\r
-                TimeUtil.setSysDateTime(runtime.getContextProxy().context,datetime,timezone);\r
-                ICLogger.i("==="+TimeUtil.getDefaultTimeZone());\r
-\r
+                }\r
+            }catch (Exception e) {\r
+                ICLogger.e(e.getMessage(), e);\r
             }\r
 //            Set Datetime 20200505112734\r
 //            Set TimeZone 8\r
@@ -638,16 +645,20 @@ public class protocol_ic {
         //792997:指令流水号\r
         String[] list=cmd.split(CMDSPLIT);\r
         if (list.length==7){\r
-            String index=list[2];\r
-            String imei=list[1];\r
-            String strBPH=list[3];\r
-            String strBPL=list[4];\r
-            String strAge=list[5];\r
-            String strSex=list[6];\r
-\r
-            connection.send(APJZ(index,strBPH,strBPL,strAge,strSex));\r
-            runtime.getHRS().setXY_Ref(Integer.parseInt(strBPH),Integer.parseInt(strBPL),Integer.parseInt(strAge),Integer.parseInt(strSex));\r
-            ICLogger.i("Handle BPJZ IMEI "+imei+",index "+index+", BPH "+strBPH+", BPL "+strBPL+", Age "+ strAge +", Sex "+ (strSex.equals("1")?"男":"女"));\r
+            try {\r
+                String index = list[2];\r
+                String imei = list[1];\r
+                String strBPH = list[3];\r
+                String strBPL = list[4];\r
+                String strAge = list[5];\r
+                String strSex = list[6];\r
+\r
+                connection.send(APJZ(index, strBPH, strBPL, strAge, strSex));\r
+                runtime.getHRS().setXY_Ref(Integer.parseInt(strBPH), Integer.parseInt(strBPL), Integer.parseInt(strAge), Integer.parseInt(strSex));\r
+                ICLogger.i("Handle BPJZ IMEI " + imei + ",index " + index + ", BPH " + strBPH + ", BPL " + strBPL + ", Age " + strAge + ", Sex " + (strSex.equals("1") ? "男" : "女"));\r
+            }catch (Exception e){\r
+                ICLogger.e(e.getMessage(),e);\r
+            }\r
         }else{\r
             ICLogger.i("BPXY format error!");\r
         }\r
@@ -895,53 +906,63 @@ public class protocol_ic {
 \r
                 if (i == 0){\r
                     if (cmdarglist.length == 9){\r
-                        imei=cmdarglist[1];\r
-                        cmdindex=cmdarglist[2];\r
-                        all_alarmswitch=Integer.parseInt(cmdarglist[3]);\r
-                        alarmcount=Integer.parseInt(cmdarglist[4]);\r
-                        alarmtime=cmdarglist[5];\r
-                        repeat=cmdarglist[6];\r
-                        alarmswitch=Integer.parseInt(cmdarglist[7]);\r
-                        alarmtype = Integer.parseInt(cmdarglist[8]);\r
-                        log(new StringBuilder("imei ").append(imei)\r
-                                .append(", cmdindex ").append(cmdindex)\r
-                                .append(", allswitch=").append(all_alarmswitch)\r
-                                .append(", all alarm count=").append(alarmcount)\r
-                                .toString()\r
-                        );\r
-\r
-                        log(new StringBuilder("alarmtime ").append(alarmtime)\r
-                                .append(", relpeat ").append(repeat)\r
-                                .append(", switch=").append(alarmswitch)\r
-                                .append(", alarmtype=").append(alarmtype)\r
-                                .toString()\r
-                        );\r
-                        alarmlist.add(new Alarm("ST"+alarmtime.substring(0,2)+"."+alarmtime.substring(2),"W"+repeat,"CON",alarmswitch==1?"ON":"OFF","闹铃"));\r
-\r
+                        try {\r
+                            imei = cmdarglist[1];\r
+                            cmdindex = cmdarglist[2];\r
+                            all_alarmswitch = Integer.parseInt(cmdarglist[3]);\r
+                            alarmcount = Integer.parseInt(cmdarglist[4]);\r
+                            alarmtime = cmdarglist[5];\r
+                            repeat = cmdarglist[6];\r
+                            alarmswitch = Integer.parseInt(cmdarglist[7]);\r
+                            alarmtype = Integer.parseInt(cmdarglist[8]);\r
+                            log(new StringBuilder("imei ").append(imei)\r
+                                    .append(", cmdindex ").append(cmdindex)\r
+                                    .append(", allswitch=").append(all_alarmswitch)\r
+                                    .append(", all alarm count=").append(alarmcount)\r
+                                    .toString()\r
+                            );\r
+\r
+                            log(new StringBuilder("alarmtime ").append(alarmtime)\r
+                                    .append(", relpeat ").append(repeat)\r
+                                    .append(", switch=").append(alarmswitch)\r
+                                    .append(", alarmtype=").append(alarmtype)\r
+                                    .toString()\r
+                            );\r
+                            alarmlist.add(new Alarm("ST" + alarmtime.substring(0, 2) + "." + alarmtime.substring(2), "W" + repeat, "CON", alarmswitch == 1 ? "ON" : "OFF", "闹铃"));\r
+                        }catch (Exception e) {\r
+                            ICLogger.e(e.getMessage(), e);\r
+                        }\r
                     }else if (cmdarglist.length == 5) {\r
-                        imei=cmdarglist[1];\r
-                        cmdindex=cmdarglist[2];\r
-                        all_alarmswitch=Integer.parseInt(cmdarglist[3]);\r
-                        alarmcount=Integer.parseInt(cmdarglist[4]);\r
+                     try {\r
+                         imei = cmdarglist[1];\r
+                         cmdindex = cmdarglist[2];\r
+                         all_alarmswitch = Integer.parseInt(cmdarglist[3]);\r
+                         alarmcount = Integer.parseInt(cmdarglist[4]);\r
+                     }catch (Exception e) {\r
+                         ICLogger.e(e.getMessage(), e);\r
+                     }\r
                     }else{\r
                         log("data len is too small!");\r
                     }\r
                 }else{\r
                     if (cmdarglist.length == 4){\r
-                        alarmtime=cmdarglist[0];\r
-                        repeat=cmdarglist[1];\r
-                        alarmswitch=Integer.parseInt(cmdarglist[2]);\r
-                        alarmtype = Integer.parseInt(cmdarglist[3]);\r
-\r
-                        log(new StringBuilder("set alarmtime ").append(alarmtime)\r
-                                .append(", relpeat ").append(repeat)\r
-                                .append(", switch=").append(alarmswitch)\r
-                                .append(", alarmtype=").append(alarmtype)\r
-                                .toString()\r
-                        );\r
-\r
-                        alarmlist.add(new Alarm("ST"+alarmtime.substring(0,2)+"."+alarmtime.substring(2),"W"+repeat,"CON",alarmswitch==1?"ON":"OFF","闹铃"));\r
-\r
+                        try {\r
+                            alarmtime = cmdarglist[0];\r
+                            repeat = cmdarglist[1];\r
+                            alarmswitch = Integer.parseInt(cmdarglist[2]);\r
+                            alarmtype = Integer.parseInt(cmdarglist[3]);\r
+\r
+                            log(new StringBuilder("set alarmtime ").append(alarmtime)\r
+                                    .append(", relpeat ").append(repeat)\r
+                                    .append(", switch=").append(alarmswitch)\r
+                                    .append(", alarmtype=").append(alarmtype)\r
+                                    .toString()\r
+                            );\r
+\r
+                            alarmlist.add(new Alarm("ST" + alarmtime.substring(0, 2) + "." + alarmtime.substring(2), "W" + repeat, "CON", alarmswitch == 1 ? "ON" : "OFF", "闹铃"));\r
+                        }catch (Exception e){\r
+                            ICLogger.e(e.getMessage(),e);\r
+                        }\r
                     }else{\r
                         log("data len is too small!");\r
                     }\r
@@ -1025,18 +1046,21 @@ public class protocol_ic {
 //1:表示服务器接受数据成功,0表示服务器接受数据失败\r
         String[] cmdlist=cmd.split(CMDSPLIT);\r
         if (cmdlist.length==5){\r
-            String time=cmdlist[1];\r
-            int packetCount=Integer.parseInt(cmdlist[2]);\r
-            int packetIndex=Integer.parseInt(cmdlist[3]);\r
-            int receiveSuccess=Integer.parseInt(cmdlist[4]);\r
-            ICLogger.i("服务器在"+time+" 收到语音 "+packetIndex+"/"+packetCount+" "+ (receiveSuccess==1?"成功":"失敗"));\r
-            if (receiveSuccess == 1){\r
-                //如果服务器接收 语音成功,则设置下一个要发送的语音包Index,当index == packetCount的时候表示所有包发送完毕,停止继续发送\r
-                voicePacket.getInstanceSent().setCurrentIndexToSent(packetIndex);\r
+            try {\r
+                String time = cmdlist[1];\r
+                int packetCount = Integer.parseInt(cmdlist[2]);\r
+                int packetIndex = Integer.parseInt(cmdlist[3]);\r
+                int receiveSuccess = Integer.parseInt(cmdlist[4]);\r
+                ICLogger.i("服务器在" + time + " 收到语音 " + packetIndex + "/" + packetCount + " " + (receiveSuccess == 1 ? "成功" : "失敗"));\r
+                if (receiveSuccess == 1) {\r
+                    //如果服务器接收 语音成功,则设置下一个要发送的语音包Index,当index == packetCount的时候表示所有包发送完毕,停止继续发送\r
+                    voicePacket.getInstanceSent().setCurrentIndexToSent(packetIndex);\r
+                }\r
+                //发送消息,再次检查要发送的语音包,确认其发送完毕\r
+                connection.DeliverCMDMessageToSystem("SentVoicePacket", "SentVoicePacket");\r
+            }catch (Exception e){\r
+                ICLogger.e(e.getMessage(),e);\r
             }\r
-            //发送消息,再次检查要发送的语音包,确认其发送完毕\r
-            connection.DeliverCMDMessageToSystem("SentVoicePacket","SentVoicePacket");\r
-\r
         }else{\r
             ICLogger.i(" BP07 Format error!");\r
         }\r
@@ -1069,31 +1093,35 @@ public class protocol_ic {
 \r
 \r
             log("work mode "+cmdlist[3]);\r
-            int mod=Integer.parseInt(cmdlist[3]);\r
-            int Cycle=900;\r
-            switch(mod){\r
-                case ICLocation.NORMAL_MOD:\r
-                    Cycle=900;\r
-                    break;\r
-                case ICLocation.LOWPOWER_MOD:\r
-                    Cycle=3600;\r
-                    break;\r
-                case ICLocation.EMERGNECY_MOD:\r
-                case ICLocation.REALTIME_MOD:\r
-                    Cycle=60;\r
-                    break;\r
+            try {\r
+                int mod = Integer.parseInt(cmdlist[3]);\r
+                int Cycle = 900;\r
+                switch (mod) {\r
+                    case ICLocation.NORMAL_MOD:\r
+                        Cycle = 900;\r
+                        break;\r
+                    case ICLocation.LOWPOWER_MOD:\r
+                        Cycle = 3600;\r
+                        break;\r
+                    case ICLocation.EMERGNECY_MOD:\r
+                    case ICLocation.REALTIME_MOD:\r
+                        Cycle = 60;\r
+                        break;\r
 \r
-            }\r
+                }\r
 \r
-            StringMessage msg=AP33(cmdlist[2],mod);\r
-            //设定当前工作模式及循环频率\r
-            connection.send(msg);\r
-            log("reply msg "+msg);\r
-            log("LOCATION_MODE  "+LOCATION_MODE+" mod "+ mod);\r
-            Config.setLocationMode(runtime.getContextProxy().context,mod);\r
-            Config.setLocationCycle(runtime.getContextProxy().context,Cycle);\r
-            runtime.getLocationInstance().setLocation_cycle(Cycle);\r
-            runtime.getLocationInstance().setWorkingMod(mod);\r
+                StringMessage msg = AP33(cmdlist[2], mod);\r
+                //设定当前工作模式及循环频率\r
+                connection.send(msg);\r
+                log("reply msg " + msg);\r
+                log("LOCATION_MODE  " + LOCATION_MODE + " mod " + mod);\r
+                Config.setLocationMode(runtime.getContextProxy().context, mod);\r
+                Config.setLocationCycle(runtime.getContextProxy().context, Cycle);\r
+                runtime.getLocationInstance().setLocation_cycle(Cycle);\r
+                runtime.getLocationInstance().setWorkingMod(mod);\r
+            }catch (Exception e){\r
+                ICLogger.e(e.getMessage(),e);\r
+            }\r
 //            CoreService.getInstance().setLocationAlarm(runtime.getLocationInstance().getWorkingMod());\r
             //此处设置好配置后,会在LocationClient通过消息开始执行及时定位操作。\r
         }\r
@@ -1126,27 +1154,31 @@ public class protocol_ic {
 \r
 \r
             log("work mode "+cmdlist[3]);\r
-            int mod=Integer.parseInt(cmdlist[3]);\r
-            int Cycle=Integer.parseInt(cmdlist[4]);\r
-            int gpson=Integer.parseInt(cmdlist[5]);\r
+            try {\r
+                int mod = Integer.parseInt(cmdlist[3]);\r
+                int Cycle = Integer.parseInt(cmdlist[4]);\r
+                int gpson = Integer.parseInt(cmdlist[5]);\r
 \r
-            StringMessage msg=AP34(cmdlist[2],mod);\r
-            //设定当前工作模式及循环频率\r
-            connection.send(msg);\r
+                StringMessage msg = AP34(cmdlist[2], mod);\r
+                //设定当前工作模式及循环频率\r
+                connection.send(msg);\r
 \r
-            if(gpson==1){\r
-                mod=ICLocation.CUSTOM_MOD8_GPS;\r
-            }else{\r
-                mod=ICLocation.CUSTOM_MOD8_WIFI;\r
-            }\r
-            log("reply msg "+msg.isFromCache());\r
-            log("LOCATION_MODE  "+LOCATION_MODE+" mod "+ mod + ", cycle = "+Cycle+", GPS On= "+gpson);\r
-            Config.setLocationMode(runtime.getContextProxy().context,mod);\r
-            Config.setLocationCycle(runtime.getContextProxy().context,Cycle);\r
-            runtime.getLocationInstance().setLocation_cycle(Cycle);\r
-            runtime.getLocationInstance().setWorkingMod(mod);\r
+                if (gpson == 1) {\r
+                    mod = ICLocation.CUSTOM_MOD8_GPS;\r
+                } else {\r
+                    mod = ICLocation.CUSTOM_MOD8_WIFI;\r
+                }\r
+                log("reply msg " + msg.isFromCache());\r
+                log("LOCATION_MODE  " + LOCATION_MODE + " mod " + mod + ", cycle = " + Cycle + ", GPS On= " + gpson);\r
+                Config.setLocationMode(runtime.getContextProxy().context, mod);\r
+                Config.setLocationCycle(runtime.getContextProxy().context, Cycle);\r
+                runtime.getLocationInstance().setLocation_cycle(Cycle);\r
+                runtime.getLocationInstance().setWorkingMod(mod);\r
 //            CoreService.getInstance().setLocationAlarm(runtime.getLocationInstance().getWorkingMod());\r
-            //此处设置好配置后,会在LocationClient通过消息开始执行及时定位操作。\r
+                //此处设置好配置后,会在LocationClient通过消息开始执行及时定位操作。\r
+            }catch (Exception e){\r
+                ICLogger.e(e.getMessage(),e);\r
+            }\r
         }\r
 \r
     }\r
@@ -1333,12 +1365,16 @@ public class protocol_ic {
             connection.send(AP15(index));\r
             ICLogger.i("BP15 , 定位周期="+time+"秒");\r
 \r
-            Config.setLocationMode(runtime.getContextProxy().context, ICLocation.CUSTOM_MOD8_GPS);\r
-            Config.setLocationCycle(runtime.getContextProxy().context,Integer.parseInt(time)*60);\r
-            runtime.getLocationInstance().setWorkingMod(Config.getLocationMode(runtime.getContextProxy().context));\r
-            runtime.getLocationInstance().setLocation_cycle(Config.getLocationCycle(runtime.getContextProxy().context));\r
-            //set AlarmCycle  and trigger Location\r
-            CoreService.getInstance().setLocationAlarm(runtime.getLocationInstance().getWorkingMod());\r
+            try {\r
+                Config.setLocationMode(runtime.getContextProxy().context, ICLocation.CUSTOM_MOD8_GPS);\r
+                Config.setLocationCycle(runtime.getContextProxy().context, Integer.parseInt(time) * 60);\r
+                runtime.getLocationInstance().setWorkingMod(Config.getLocationMode(runtime.getContextProxy().context));\r
+                runtime.getLocationInstance().setLocation_cycle(Config.getLocationCycle(runtime.getContextProxy().context));\r
+                //set AlarmCycle  and trigger Location\r
+                CoreService.getInstance().setLocationAlarm(runtime.getLocationInstance().getWorkingMod());\r
+            }catch (Exception e){\r
+                ICLogger.e(e.getMessage(),e);\r
+            }\r
         }else{\r
             ICLogger.i("BP15 format error");\r
         }\r
@@ -1397,46 +1433,49 @@ public class protocol_ic {
         String[] msg= cmd.split(CMDSPLIT);\r
         if (msg.length>=6){\r
 \r
-            Name=msg[1];\r
-            appendIndex=msg[2];\r
-            packetCount= Integer.parseInt(msg[3]);\r
-            currentId= Integer.parseInt(msg[4]);\r
-            packetLen= Integer.parseInt(msg[5]);\r
-            packetData= Util.subArray(bytes,msg[0].length()+msg[1].length()+msg[2].length()+msg[3].length()+msg[4].length()+msg[5].length()+6,bytes.length-1);\r
-\r
-            StringBuffer stringBuffer=new StringBuffer();\r
-            stringBuffer.append("recv BP28 name = ").append(Name)\r
-                    .append(",appendIndex = ").append(appendIndex)\r
-                    .append(",packetCount = ").append(packetCount)\r
-                    .append(",currentId = ").append(currentId)\r
-                    .append(",packetLen = ").append(packetLen)\r
-                    .append(",packetDatalen = ").append(packetData.length);\r
-\r
-            log( stringBuffer.toString());\r
-            connection.send(AP28(Name,appendIndex,packetCount,currentId,1));\r
-            voicePacket.getInstance().appendVoice(Name,appendIndex,packetCount,currentId,packetLen,packetData);\r
-            log("================"+voicePacket.getInstance().toString());\r
-            if (voicePacket.getInstance().isFinished())\r
-            {\r
-\r
-                String dir = Environment.getExternalStorageDirectory()+ "/Android/VoiceCache";\r
-                String amrFilepath=Util.saveFile(voicePacket.getInstance().getVoicePacketBytes(),0,voicePacket.getInstance().getVoicePacketLen(),new File(dir),"receive_"+voicePacket.getInstance().getPacketTime()+".amr");\r
-                ICLogger.i("save Amr file to "+amrFilepath);\r
-                voicePacket.getInstance().clearPacket();\r
-                VoiceContent voiceContent=VoiceContent.placeHolderIn(Content.CONTACT_CATEGORY_GROUP,GROUP_ALL,amrFilepath);\r
-\r
-\r
-                final Uri uri2 = runtime.getDbHelper().insertMessage( voiceContent);\r
-\r
-                //回复UI消息,表示已经接收到\r
-                voiceContent.status = 3;\r
-                voiceContent.serverTime = TimeUtil.getSystemTime3();\r
-                voiceContent.preview = String.valueOf(Util.getDuration(voiceContent.content));\r
-                runtime.getDbHelper().updateMessage(voiceContent, uri2);\r
+            try {\r
+                Name = msg[1];\r
+                appendIndex = msg[2];\r
+                packetCount = Integer.parseInt(msg[3]);\r
+                currentId = Integer.parseInt(msg[4]);\r
+                packetLen = Integer.parseInt(msg[5]);\r
+                packetData = Util.subArray(bytes, msg[0].length() + msg[1].length() + msg[2].length() + msg[3].length() + msg[4].length() + msg[5].length() + 6, bytes.length - 1);\r
+\r
+                StringBuffer stringBuffer = new StringBuffer();\r
+                stringBuffer.append("recv BP28 name = ").append(Name)\r
+                        .append(",appendIndex = ").append(appendIndex)\r
+                        .append(",packetCount = ").append(packetCount)\r
+                        .append(",currentId = ").append(currentId)\r
+                        .append(",packetLen = ").append(packetLen)\r
+                        .append(",packetDatalen = ").append(packetData.length);\r
+\r
+                log(stringBuffer.toString());\r
+                connection.send(AP28(Name, appendIndex, packetCount, currentId, 1));\r
+                voicePacket.getInstance().appendVoice(Name, appendIndex, packetCount, currentId, packetLen, packetData);\r
+                log("================" + voicePacket.getInstance().toString());\r
+                if (voicePacket.getInstance().isFinished()) {\r
+\r
+                    String dir = Environment.getExternalStorageDirectory() + "/Android/VoiceCache";\r
+                    String amrFilepath = Util.saveFile(voicePacket.getInstance().getVoicePacketBytes(), 0, voicePacket.getInstance().getVoicePacketLen(), new File(dir), "receive_" + voicePacket.getInstance().getPacketTime() + ".amr");\r
+                    ICLogger.i("save Amr file to " + amrFilepath);\r
+                    voicePacket.getInstance().clearPacket();\r
+                    VoiceContent voiceContent = VoiceContent.placeHolderIn(Content.CONTACT_CATEGORY_GROUP, GROUP_ALL, amrFilepath);\r
+\r
+\r
+                    final Uri uri2 = runtime.getDbHelper().insertMessage(voiceContent);\r
+\r
+                    //回复UI消息,表示已经接收到\r
+                    voiceContent.status = 3;\r
+                    voiceContent.serverTime = TimeUtil.getSystemTime3();\r
+                    voiceContent.preview = String.valueOf(Util.getDuration(voiceContent.content));\r
+                    runtime.getDbHelper().updateMessage(voiceContent, uri2);\r
 \r
 //                runtime.getContextProxy().sendBroadcast(ACTION_IMESSAGE, runtime);\r
 \r
-                connection.DeliverCMDMessageToSystem("NewVoice", amrFilepath);//通知下面线程状态变化\r
+                    connection.DeliverCMDMessageToSystem("NewVoice", amrFilepath);//通知下面线程状态变化\r
+                }\r
+            }catch (Exception e){\r
+                ICLogger.e(e.getMessage(),e);\r
             }\r
 \r
         }else{\r
@@ -1591,10 +1630,14 @@ public class protocol_ic {
             connection.send(AP86(index));\r
             ICLogger.i("收到服务器指令:设置"+(type.equals("1")?"心率周期 ":"血压周期 ")+cycle+"分钟");\r
 \r
-            //发送重置PPGCycle的广播,会在CoreServer里面执行\r
-            Intent intent = new Intent();\r
-            intent.putExtra("PPGTestCycle",Integer.parseInt(cycle));\r
-            runtime.getContextProxy().sendBrodcast(ACTION_HEATR_RATE_START,intent);\r
+            try {\r
+                //发送重置PPGCycle的广播,会在CoreServer里面执行\r
+                Intent intent = new Intent();\r
+                intent.putExtra("PPGTestCycle", Integer.parseInt(cycle));\r
+                runtime.getContextProxy().sendBrodcast(ACTION_HEATR_RATE_START, intent);\r
+            }catch (Exception e){\r
+                ICLogger.e(e.getMessage(),e);\r
+            }\r
         }else{\r
             ICLogger.i("BP86 format error!");\r
         }\r
@@ -1691,16 +1734,20 @@ public class protocol_ic {
         //60 : 上传间隔,单位分钟(60分钟上传一次体温,终端收到后立即开始测量一次并重置定时器)\r
         String[] list=cmd.split(CMDSPLIT);\r
         if (list.length==4){\r
-            String index=list[2];\r
-            String freqstr=list[3];\r
-            int freq=Integer.parseInt(freqstr);\r
-            connection.send(APTE(index,freq));\r
-            ICLogger.i("收到服务器指令:测量体温 "+freq+"分钟一次。");\r
-            Config.setTemperatureTestCycle(runtime,freq*60);\r
-            CoreService.getInstance().setTempAlarm();\r
-\r
-\r
-           TemperatureUtil.doTempTestInThread();\r
+            try {\r
+                String index = list[2];\r
+                String freqstr = list[3];\r
+                int freq = Integer.parseInt(freqstr);\r
+                connection.send(APTE(index, freq));\r
+                ICLogger.i("收到服务器指令:测量体温 " + freq + "分钟一次。");\r
+                Config.setTemperatureTestCycle(runtime, freq * 60);\r
+                CoreService.getInstance().setTempAlarm();\r
+\r
+\r
+                TemperatureUtil.doTempTestInThread();\r
+            }catch (Exception e){\r
+                ICLogger.e(e.getMessage(),e);\r
+            }\r
         }else{\r
             ICLogger.i("BP89 format error!");\r
         }\r
@@ -1765,24 +1812,27 @@ public class protocol_ic {
 \r
             connection.send(APX1(index));\r
 \r
-            int ppg_adjust,bph_adjust,bpl_adjust,spo2_adjust;\r
-            ppg_adjust=Integer.parseInt(strXL);\r
-            bph_adjust=Integer.parseInt(strBPH);\r
-            bpl_adjust=Integer.parseInt(strBPL);\r
-            spo2_adjust=Integer.parseInt(strSpO2);\r
-\r
-            runtime.getHRS().setAdjust(ppg_adjust,bph_adjust,bpl_adjust,spo2_adjust);\r
-            Config.setPPGAdjust(mRuntime.getContextProxy().context,ppg_adjust);\r
-            Config.setBPHAdjust(mRuntime.getContextProxy().context,bph_adjust);\r
-            Config.setBPLAdjust(mRuntime.getContextProxy().context,bpl_adjust);\r
-            Config.setSPo2Adjust(mRuntime.getContextProxy().context,spo2_adjust);\r
-            String ShareAdjValue=new StringBuilder().append(ppg_adjust).append(CMDSPLIT)\r
-                    .append(bph_adjust).append(CMDSPLIT)\r
-                    .append(bpl_adjust).append(CMDSPLIT)\r
-                    .append(spo2_adjust).append(CMDSPLIT).toString();\r
-            Config.setPPG_ECG_adjustValue(ShareAdjValue);\r
-            ICLogger.i("Handle BPX1 IMEI "+imei+",index "+index+", BPH "+strBPH+", BPL "+strBPL+", PPG "+ strXL +", Sp02 "+ strSpO2 + " , Shared Adjust Value "+ ShareAdjValue);\r
-\r
+            try {\r
+                int ppg_adjust, bph_adjust, bpl_adjust, spo2_adjust;\r
+                ppg_adjust = Integer.parseInt(strXL);\r
+                bph_adjust = Integer.parseInt(strBPH);\r
+                bpl_adjust = Integer.parseInt(strBPL);\r
+                spo2_adjust = Integer.parseInt(strSpO2);\r
+\r
+                runtime.getHRS().setAdjust(ppg_adjust, bph_adjust, bpl_adjust, spo2_adjust);\r
+                Config.setPPGAdjust(mRuntime.getContextProxy().context, ppg_adjust);\r
+                Config.setBPHAdjust(mRuntime.getContextProxy().context, bph_adjust);\r
+                Config.setBPLAdjust(mRuntime.getContextProxy().context, bpl_adjust);\r
+                Config.setSPo2Adjust(mRuntime.getContextProxy().context, spo2_adjust);\r
+                String ShareAdjValue = new StringBuilder().append(ppg_adjust).append(CMDSPLIT)\r
+                        .append(bph_adjust).append(CMDSPLIT)\r
+                        .append(bpl_adjust).append(CMDSPLIT)\r
+                        .append(spo2_adjust).append(CMDSPLIT).toString();\r
+                Config.setPPG_ECG_adjustValue(ShareAdjValue);\r
+                ICLogger.i("Handle BPX1 IMEI " + imei + ",index " + index + ", BPH " + strBPH + ", BPL " + strBPL + ", PPG " + strXL + ", Sp02 " + strSpO2 + " , Shared Adjust Value " + ShareAdjValue);\r
+            }catch (Exception e){\r
+                ICLogger.e(e.getMessage(),e);\r
+            }\r
         }else{\r
             ICLogger.i("BPX1 format error!");\r
         }\r
@@ -1946,16 +1996,20 @@ public class protocol_ic {
             String index=list[2];\r
             String msg=list[3];\r
             connection.send(APDE(index));\r
-            if ( Integer.parseInt(msg) == 0) {\r
-                ICLogger.i("Handle BPDE index " + index + ", 进入禁止区域 ");\r
-                runtime.Fence_Warning_flag=1;\r
-                WakeLockUtil.ScreenOnWakeLockTemperary(runtime.getContextProxy().context);\r
-                runtime.getContextProxy().sendMsgBroadcast(runtime.getContextProxy().context.getResources().getString(R.string.alarm_out_wall),2);\r
-            }else {\r
-                ICLogger.i("Handle BPDE index " + index + ", 离开禁止区域 ");\r
-                runtime.Fence_Warning_flag=0;\r
+            try {\r
+                if (Integer.parseInt(msg) == 0) {\r
+                    ICLogger.i("Handle BPDE index " + index + ", 进入禁止区域 ");\r
+                    runtime.Fence_Warning_flag = 1;\r
+                    WakeLockUtil.ScreenOnWakeLockTemperary(runtime.getContextProxy().context);\r
+                    runtime.getContextProxy().sendMsgBroadcast(runtime.getContextProxy().context.getResources().getString(R.string.alarm_out_wall), 2);\r
+                } else {\r
+                    ICLogger.i("Handle BPDE index " + index + ", 离开禁止区域 ");\r
+                    runtime.Fence_Warning_flag = 0;\r
 //                Util.ShowToast(runtime,"");\r
-                runtime.getContextProxy().sendMsgBroadcast(runtime.getContextProxy().context.getResources().getString(R.string.alarm_cross_boundary),0);\r
+                    runtime.getContextProxy().sendMsgBroadcast(runtime.getContextProxy().context.getResources().getString(R.string.alarm_cross_boundary), 0);\r
+                }\r
+            }catch (Exception e){\r
+                ICLogger.e(e.getMessage(),e);\r
             }\r
         }else{\r
             ICLogger.i("BPDE format error!");\r
@@ -1986,21 +2040,24 @@ public class protocol_ic {
         String[] list=cmd.split(CMDSPLIT);\r
         if (list.length==6){\r
 \r
-            String index=list[2];\r
-            String switch_on=list[3];\r
-            String min_temp=list[4];\r
-            String max_temp=list[5];\r
-            connection.send(APDG(index));\r
-            if ( Integer.parseInt(switch_on) == 1) {\r
-                ICLogger.i("Handle BPDG index " + index + ", 体温报警阈值开 min="+min_temp+",max="+max_temp);\r
-                runtime.tempInfo.setBodyTempThreshold(Double.valueOf(max_temp),Double.valueOf(min_temp));\r
-                Config.needTemperature_abnormal_alarm=true;\r
-            }else {\r
-                ICLogger.i("Handle BPDG index " + index + ", 体温报警阈值关 ");\r
-                Config.needTemperature_abnormal_alarm=false;\r
+            try {\r
+                String index = list[2];\r
+                String switch_on = list[3];\r
+                String min_temp = list[4];\r
+                String max_temp = list[5];\r
+                connection.send(APDG(index));\r
+                if (Integer.parseInt(switch_on) == 1) {\r
+                    ICLogger.i("Handle BPDG index " + index + ", 体温报警阈值开 min=" + min_temp + ",max=" + max_temp);\r
+                    runtime.tempInfo.setBodyTempThreshold(Double.valueOf(max_temp), Double.valueOf(min_temp));\r
+                    Config.needTemperature_abnormal_alarm = true;\r
+                } else {\r
+                    ICLogger.i("Handle BPDG index " + index + ", 体温报警阈值关 ");\r
+                    Config.needTemperature_abnormal_alarm = false;\r
+                }\r
+            }catch (Exception e){\r
+                ICLogger.e(e.getMessage(),e);\r
             }\r
 \r
-\r
         }else{\r
             ICLogger.i("BPDG format error!");\r
         }\r
@@ -2076,26 +2133,29 @@ public class protocol_ic {
  */\r
         String[] cmdlist=cmd.split(CMDSPLIT);\r
         if (cmdlist.length==8){\r
-            String time=cmdlist[2];\r
-            String filetype=cmdlist[3];\r
-            String datatype=cmdlist[4];\r
-            String count=cmdlist[5];\r
-            String index=cmdlist[6];\r
-            String success=cmdlist[7];\r
-            int ftype=Integer.parseInt(filetype);\r
-            int dtype=Integer.parseInt(datatype);\r
-            int packetCount=Integer.parseInt(count);\r
-            int packetIndex=Integer.parseInt(index);\r
-            int receiveSuccess=Integer.parseInt(success);\r
-            ICLogger.i("服务器在收到 index "+time+", 文件类型 "+ftype+",内容类型 "+dtype+" "+packetIndex+"/"+packetCount+" "+ (receiveSuccess==1?"成功":"失敗"));\r
-            if (receiveSuccess == 1){\r
-                //如果服务器接收 语音成功,则设置下一个要发送的语音包Index,当index == packetCount的时候表示所有包发送完毕,停止继续发送\r
-                voicePacket.getInstanceSent().setCurrentIndexToSent(packetIndex);\r
-                //voicePacket.getInstanceSent().setFileType(ftype,dtype);\r
+            try {\r
+                String time = cmdlist[2];\r
+                String filetype = cmdlist[3];\r
+                String datatype = cmdlist[4];\r
+                String count = cmdlist[5];\r
+                String index = cmdlist[6];\r
+                String success = cmdlist[7];\r
+                int ftype = Integer.parseInt(filetype);\r
+                int dtype = Integer.parseInt(datatype);\r
+                int packetCount = Integer.parseInt(count);\r
+                int packetIndex = Integer.parseInt(index);\r
+                int receiveSuccess = Integer.parseInt(success);\r
+                ICLogger.i("服务器在收到 index " + time + ", 文件类型 " + ftype + ",内容类型 " + dtype + " " + packetIndex + "/" + packetCount + " " + (receiveSuccess == 1 ? "成功" : "失敗"));\r
+                if (receiveSuccess == 1) {\r
+                    //如果服务器接收 语音成功,则设置下一个要发送的语音包Index,当index == packetCount的时候表示所有包发送完毕,停止继续发送\r
+                    voicePacket.getInstanceSent().setCurrentIndexToSent(packetIndex);\r
+                    //voicePacket.getInstanceSent().setFileType(ftype,dtype);\r
+                }\r
+                //发送消息,再次检查要发送的语音包,确认其发送完毕\r
+                connection.DeliverCMDMessageToSystem("SentVoicePacket", "SentBPFilePacket");\r
+            }catch (Exception e){\r
+                ICLogger.e(e.getMessage(),e);\r
             }\r
-            //发送消息,再次检查要发送的语音包,确认其发送完毕\r
-            connection.DeliverCMDMessageToSystem("SentVoicePacket","SentBPFilePacket");\r
-\r
         }else{\r
             ICLogger.i(" BPTU Format error!");\r
         }\r
index 0b84819..483a813 100644 (file)
@@ -315,22 +315,26 @@ public class protocol_jiai {
         String[] msg=cmd.split(CMDSPLIT);\r
         if (msg.length>=6){\r
 \r
-            Name=msg[1];\r
-            appendIndex=msg[2];\r
-            packetCount= Integer.parseInt(msg[3]);\r
-            currentId= Integer.parseInt(msg[4]);\r
-            packetLen= Integer.parseInt(msg[5]);\r
-\r
-            StringBuffer stringBuffer=new StringBuffer();\r
-            stringBuffer.append("getBP28AmrLen name = ").append(Name)\r
-                    .append(",appendIndex = ").append(appendIndex)\r
-                    .append(",packetCount = ").append(packetCount)\r
-                    .append(",currentId = ").append(currentId)\r
-                    .append(",packetLen = ").append(packetLen);\r
-\r
-\r
-            log( stringBuffer.toString());\r
-            return packetLen;\r
+            try {\r
+                Name = msg[1];\r
+                appendIndex = msg[2];\r
+                packetCount = Integer.parseInt(msg[3]);\r
+                currentId = Integer.parseInt(msg[4]);\r
+                packetLen = Integer.parseInt(msg[5]);\r
+\r
+                StringBuffer stringBuffer = new StringBuffer();\r
+                stringBuffer.append("getBP28AmrLen name = ").append(Name)\r
+                        .append(",appendIndex = ").append(appendIndex)\r
+                        .append(",packetCount = ").append(packetCount)\r
+                        .append(",currentId = ").append(currentId)\r
+                        .append(",packetLen = ").append(packetLen);\r
+\r
+\r
+                log(stringBuffer.toString());\r
+                return packetLen;\r
+            }catch (Exception e){\r
+                ICLogger.e(e.getMessage(),e);\r
+            }\r
         }else{\r
             log("getBP28AmrLen","format Error");\r
 \r
@@ -353,21 +357,24 @@ public class protocol_jiai {
             log("handleBP00", "Set Datetime " + msg[1]);\r
             log("handleBP00", "Set TimeZone " + msg[2]);\r
 \r
-            Date datetime= TimeUtil.parseDatetiime(msg[1]);\r
-            int timezone=Integer.parseInt(msg[2]);\r
-            if (datetime!=null){\r
-                ICLogger.i("==="+TimeUtil.getDefaultTimeZone());\r
-                TimeUtil.setTimeZone(timezone);\r
+            try {\r
+                Date datetime = TimeUtil.parseDatetiime(msg[1]);\r
+                int timezone = Integer.parseInt(msg[2]);\r
+                if (datetime != null) {\r
+                    ICLogger.i("===" + TimeUtil.getDefaultTimeZone());\r
+                    TimeUtil.setTimeZone(timezone);\r
 \r
 \r
-                ICLogger.i("==="+TimeUtil.getDefaultTimeZone());\r
-                TimeUtil.setSysDateTime(runtime.getContextProxy().context,datetime,timezone);\r
-                ICLogger.i("==="+TimeUtil.getDefaultTimeZone());\r
+                    ICLogger.i("===" + TimeUtil.getDefaultTimeZone());\r
+                    TimeUtil.setSysDateTime(runtime.getContextProxy().context, datetime, timezone);\r
+                    ICLogger.i("===" + TimeUtil.getDefaultTimeZone());\r
 \r
-            }\r
+                }\r
 //            Set Datetime 20200505112734\r
 //            Set TimeZone 8\r
-\r
+            }catch (Exception e){\r
+                ICLogger.e(e.getMessage(),e);\r
+            }\r
         }else{\r
             log("handleBP00","format Error");\r
         }\r
@@ -598,8 +605,12 @@ public class protocol_jiai {
             String strSex=list[6];\r
 \r
             connection.send(APJZ(index,strBPH,strBPL,strAge,strSex));\r
-            runtime.getHRS().setXY_Ref(Integer.parseInt(strBPH),Integer.parseInt(strBPL),Integer.parseInt(strAge),Integer.parseInt(strSex));\r
-            ICLogger.i("Handle BPJZ IMEI "+imei+",index "+index+", BPH "+strBPH+", BPL "+strBPL+", Age "+ strAge +", Sex "+ (strSex.equals("1")?"男":"女"));\r
+            try {\r
+                runtime.getHRS().setXY_Ref(Integer.parseInt(strBPH), Integer.parseInt(strBPL), Integer.parseInt(strAge), Integer.parseInt(strSex));\r
+                ICLogger.i("Handle BPJZ IMEI " + imei + ",index " + index + ", BPH " + strBPH + ", BPL " + strBPL + ", Age " + strAge + ", Sex " + (strSex.equals("1") ? "男" : "女"));\r
+            }catch (Exception e){\r
+                ICLogger.e(e.getMessage(),e);\r
+            }\r
         }else{\r
             ICLogger.i("BPXY format error!");\r
         }\r
@@ -831,59 +842,73 @@ public class protocol_jiai {
         String repeat="";// 135表示周一周三周五,使用24小时制\r
         String[] datalist= cmd.split("@");\r
         ArrayList<Alarm> alarmlist=new ArrayList<>();\r
+\r
+\r
         if (datalist.length >0){\r
+\r
+\r
             for (int i =0 ; i< datalist.length;i++){\r
                 String [] cmdarglist=datalist[i].split(",");\r
 \r
                 if (i == 0){\r
                     if (cmdarglist.length == 9){\r
-                        imei=cmdarglist[1];\r
-                        cmdindex=cmdarglist[2];\r
-                        all_alarmswitch=Integer.parseInt(cmdarglist[3]);\r
-                        alarmcount=Integer.parseInt(cmdarglist[4]);\r
-                        alarmtime=cmdarglist[5];\r
-                        repeat=cmdarglist[6];\r
-                        alarmswitch=Integer.parseInt(cmdarglist[7]);\r
-                        alarmtype = Integer.parseInt(cmdarglist[8]);\r
-                        log(new StringBuilder("imei ").append(imei)\r
-                                .append(", cmdindex ").append(cmdindex)\r
-                                .append(", allswitch=").append(all_alarmswitch)\r
-                                .append(", all alarm count=").append(alarmcount)\r
-                                .toString()\r
-                        );\r
-\r
-                        log(new StringBuilder("alarmtime ").append(alarmtime)\r
-                                .append(", relpeat ").append(repeat)\r
-                                .append(", switch=").append(alarmswitch)\r
-                                .append(", alarmtype=").append(alarmtype)\r
-                                .toString()\r
-                        );\r
-                        alarmlist.add(new Alarm("ST"+alarmtime.substring(0,2)+"."+alarmtime.substring(2),"W"+repeat,"CON",alarmswitch==1?"ON":"OFF","闹铃"));\r
-\r
+                        try {\r
+                            imei = cmdarglist[1];\r
+                            cmdindex = cmdarglist[2];\r
+                            all_alarmswitch = Integer.parseInt(cmdarglist[3]);\r
+                            alarmcount = Integer.parseInt(cmdarglist[4]);\r
+                            alarmtime = cmdarglist[5];\r
+                            repeat = cmdarglist[6];\r
+                            alarmswitch = Integer.parseInt(cmdarglist[7]);\r
+                            alarmtype = Integer.parseInt(cmdarglist[8]);\r
+                            log(new StringBuilder("imei ").append(imei)\r
+                                    .append(", cmdindex ").append(cmdindex)\r
+                                    .append(", allswitch=").append(all_alarmswitch)\r
+                                    .append(", all alarm count=").append(alarmcount)\r
+                                    .toString()\r
+                            );\r
+\r
+                            log(new StringBuilder("alarmtime ").append(alarmtime)\r
+                                    .append(", relpeat ").append(repeat)\r
+                                    .append(", switch=").append(alarmswitch)\r
+                                    .append(", alarmtype=").append(alarmtype)\r
+                                    .toString()\r
+                            );\r
+                            alarmlist.add(new Alarm("ST" + alarmtime.substring(0, 2) + "." + alarmtime.substring(2), "W" + repeat, "CON", alarmswitch == 1 ? "ON" : "OFF", "闹铃"));\r
+                        }catch (Exception e){\r
+                            ICLogger.e(e.getMessage(),e);\r
+                        }\r
                     }else if (cmdarglist.length == 5) {\r
-                        imei=cmdarglist[1];\r
-                        cmdindex=cmdarglist[2];\r
-                        all_alarmswitch=Integer.parseInt(cmdarglist[3]);\r
-                        alarmcount=Integer.parseInt(cmdarglist[4]);\r
+                        try {\r
+                            imei = cmdarglist[1];\r
+                            cmdindex = cmdarglist[2];\r
+                            all_alarmswitch = Integer.parseInt(cmdarglist[3]);\r
+                            alarmcount = Integer.parseInt(cmdarglist[4]);\r
+                        }catch (Exception e){\r
+                            ICLogger.e(e.getMessage(),e);\r
+                        }\r
                     }else{\r
                         log("data len is too small!");\r
                     }\r
                 }else{\r
                     if (cmdarglist.length == 4){\r
-                        alarmtime=cmdarglist[0];\r
-                        repeat=cmdarglist[1];\r
-                        alarmswitch=Integer.parseInt(cmdarglist[2]);\r
-                        alarmtype = Integer.parseInt(cmdarglist[3]);\r
-\r
-                        log(new StringBuilder("set alarmtime ").append(alarmtime)\r
-                                .append(", relpeat ").append(repeat)\r
-                                .append(", switch=").append(alarmswitch)\r
-                                .append(", alarmtype=").append(alarmtype)\r
-                                .toString()\r
-                        );\r
-\r
-                        alarmlist.add(new Alarm("ST"+alarmtime.substring(0,2)+"."+alarmtime.substring(2),"W"+repeat,"CON",alarmswitch==1?"ON":"OFF","闹铃"));\r
-\r
+                        try {\r
+                            alarmtime = cmdarglist[0];\r
+                            repeat = cmdarglist[1];\r
+                            alarmswitch = Integer.parseInt(cmdarglist[2]);\r
+                            alarmtype = Integer.parseInt(cmdarglist[3]);\r
+\r
+                            log(new StringBuilder("set alarmtime ").append(alarmtime)\r
+                                    .append(", relpeat ").append(repeat)\r
+                                    .append(", switch=").append(alarmswitch)\r
+                                    .append(", alarmtype=").append(alarmtype)\r
+                                    .toString()\r
+                            );\r
+\r
+                            alarmlist.add(new Alarm("ST" + alarmtime.substring(0, 2) + "." + alarmtime.substring(2), "W" + repeat, "CON", alarmswitch == 1 ? "ON" : "OFF", "闹铃"));\r
+                        }catch (Exception e){\r
+                            ICLogger.e(e.getMessage(),e);\r
+                        }\r
                     }else{\r
                         log("data len is too small!");\r
                     }\r
@@ -967,18 +992,21 @@ public class protocol_jiai {
 //1:表示服务器接受数据成功,0表示服务器接受数据失败\r
         String[] cmdlist=cmd.split(CMDSPLIT);\r
         if (cmdlist.length==5){\r
-            String time=cmdlist[1];\r
-            int packetCount=Integer.parseInt(cmdlist[2]);\r
-            int packetIndex=Integer.parseInt(cmdlist[3]);\r
-            int receiveSuccess=Integer.parseInt(cmdlist[4]);\r
-            ICLogger.i("服务器在"+time+" 收到语音 "+packetIndex+"/"+packetCount+" "+ (receiveSuccess==1?"成功":"失敗"));\r
-            if (receiveSuccess == 1){\r
-                //如果服务器接收 语音成功,则设置下一个要发送的语音包Index,当index == packetCount的时候表示所有包发送完毕,停止继续发送\r
-                voicePacket.getInstanceSent().setCurrentIndexToSent(packetIndex);\r
+            try {\r
+                String time = cmdlist[1];\r
+                int packetCount = Integer.parseInt(cmdlist[2]);\r
+                int packetIndex = Integer.parseInt(cmdlist[3]);\r
+                int receiveSuccess = Integer.parseInt(cmdlist[4]);\r
+                ICLogger.i("服务器在" + time + " 收到语音 " + packetIndex + "/" + packetCount + " " + (receiveSuccess == 1 ? "成功" : "失敗"));\r
+                if (receiveSuccess == 1) {\r
+                    //如果服务器接收 语音成功,则设置下一个要发送的语音包Index,当index == packetCount的时候表示所有包发送完毕,停止继续发送\r
+                    voicePacket.getInstanceSent().setCurrentIndexToSent(packetIndex);\r
+                }\r
+                //发送消息,再次检查要发送的语音包,确认其发送完毕\r
+                connection.DeliverCMDMessageToSystem("SentVoicePacket", "SentVoicePacket");\r
+            }catch (Exception e){\r
+                ICLogger.e(e.getMessage(),e);\r
             }\r
-            //发送消息,再次检查要发送的语音包,确认其发送完毕\r
-            connection.DeliverCMDMessageToSystem("SentVoicePacket","SentVoicePacket");\r
-\r
         }else{\r
             ICLogger.i(" BP07 Format error!");\r
         }\r
@@ -1009,35 +1037,38 @@ public class protocol_jiai {
         String[] cmdlist=cmd.split(",");\r
         if (cmdlist.length == 4){\r
 \r
+            try {\r
+                log("work mode " + cmdlist[3]);\r
+                int mod = Integer.parseInt(cmdlist[3]);\r
+                int Cycle = 900;\r
+                switch (mod) {\r
+                    case ICLocation.NORMAL_MOD:\r
+                        Cycle = 900;\r
+                        break;\r
+                    case ICLocation.LOWPOWER_MOD:\r
+                        Cycle = 3600;\r
+                        break;\r
+                    case ICLocation.EMERGNECY_MOD:\r
+                    case ICLocation.REALTIME_MOD:\r
+                        Cycle = 60;\r
+                        break;\r
 \r
-            log("work mode "+cmdlist[3]);\r
-            int mod=Integer.parseInt(cmdlist[3]);\r
-            int Cycle=900;\r
-            switch(mod){\r
-                case ICLocation.NORMAL_MOD:\r
-                    Cycle=900;\r
-                    break;\r
-                case ICLocation.LOWPOWER_MOD:\r
-                    Cycle=3600;\r
-                    break;\r
-                case ICLocation.EMERGNECY_MOD:\r
-                case ICLocation.REALTIME_MOD:\r
-                    Cycle=60;\r
-                    break;\r
-\r
-            }\r
+                }\r
 \r
-            StringMessage msg=AP33(cmdlist[2],mod);\r
-            //设定当前工作模式及循环频率\r
-            connection.send(msg);\r
-            log("reply msg "+msg.isFromCache());\r
-            log("LOCATION_MODE  "+LOCATION_MODE+" mod "+ mod);\r
-            Config.setLocationMode(runtime.getContextProxy().context,mod);\r
-            Config.setLocationCycle(runtime.getContextProxy().context,Cycle);\r
-            runtime.getLocationInstance().setLocation_cycle(Cycle);\r
-            runtime.getLocationInstance().setWorkingMod(mod);\r
+                StringMessage msg = AP33(cmdlist[2], mod);\r
+                //设定当前工作模式及循环频率\r
+                connection.send(msg);\r
+                log("reply msg " + msg.isFromCache());\r
+                log("LOCATION_MODE  " + LOCATION_MODE + " mod " + mod);\r
+                Config.setLocationMode(runtime.getContextProxy().context, mod);\r
+                Config.setLocationCycle(runtime.getContextProxy().context, Cycle);\r
+                runtime.getLocationInstance().setLocation_cycle(Cycle);\r
+                runtime.getLocationInstance().setWorkingMod(mod);\r
 //            CoreService.getInstance().setLocationAlarm(runtime.getLocationInstance().getWorkingMod());\r
-            //此处设置好配置后,会在LocationClient通过消息开始执行及时定位操作。\r
+                //此处设置好配置后,会在LocationClient通过消息开始执行及时定位操作。\r
+            }catch (Exception e){\r
+                ICLogger.e(e.getMessage(),e);\r
+            }\r
         }\r
 \r
     }\r
@@ -1068,27 +1099,31 @@ public class protocol_jiai {
 \r
 \r
             log("work mode "+cmdlist[3]);\r
-            int mod=Integer.parseInt(cmdlist[3]);\r
-            int Cycle=Integer.parseInt(cmdlist[4]);\r
-            int gpson=Integer.parseInt(cmdlist[5]);\r
-\r
-            StringMessage msg=AP34(cmdlist[2],mod);\r
-            //设定当前工作模式及循环频率\r
-            connection.send(msg);\r
-\r
-            if(gpson==1){\r
-                mod=ICLocation.CUSTOM_MOD8_GPS;\r
-            }else{\r
-                mod=ICLocation.CUSTOM_MOD8_WIFI;\r
-            }\r
-            log("reply msg "+msg.isFromCache());\r
-            log("LOCATION_MODE  "+LOCATION_MODE+" mod "+ mod + ", cycle = "+Cycle+", GPS On= "+gpson);\r
-            Config.setLocationMode(runtime.getContextProxy().context,mod);\r
-            Config.setLocationCycle(runtime.getContextProxy().context,Cycle);\r
-            runtime.getLocationInstance().setLocation_cycle(Cycle);\r
-            runtime.getLocationInstance().setWorkingMod(mod);\r
+            try {\r
+                int mod = Integer.parseInt(cmdlist[3]);\r
+                int Cycle = Integer.parseInt(cmdlist[4]);\r
+                int gpson = Integer.parseInt(cmdlist[5]);\r
+\r
+                StringMessage msg = AP34(cmdlist[2], mod);\r
+                //设定当前工作模式及循环频率\r
+                connection.send(msg);\r
+\r
+                if (gpson == 1) {\r
+                    mod = ICLocation.CUSTOM_MOD8_GPS;\r
+                } else {\r
+                    mod = ICLocation.CUSTOM_MOD8_WIFI;\r
+                }\r
+                log("reply msg " + msg.isFromCache());\r
+                log("LOCATION_MODE  " + LOCATION_MODE + " mod " + mod + ", cycle = " + Cycle + ", GPS On= " + gpson);\r
+                Config.setLocationMode(runtime.getContextProxy().context, mod);\r
+                Config.setLocationCycle(runtime.getContextProxy().context, Cycle);\r
+                runtime.getLocationInstance().setLocation_cycle(Cycle);\r
+                runtime.getLocationInstance().setWorkingMod(mod);\r
 //            CoreService.getInstance().setLocationAlarm(runtime.getLocationInstance().getWorkingMod());\r
-            //此处设置好配置后,会在LocationClient通过消息开始执行及时定位操作。\r
+                //此处设置好配置后,会在LocationClient通过消息开始执行及时定位操作。\r
+            }catch (Exception e){\r
+                ICLogger.e(e.getMessage(),e);\r
+            }\r
         }\r
 \r
     }\r
@@ -1309,17 +1344,21 @@ public static StringMessage AP50(Runtime ds){
         String[] list=cmd.split(CMDSPLIT);\r
 \r
         if(list.length==4){\r
-            String index=list[2];\r
-            String time=list[3];\r
-            connection.send(AP15(index));\r
-            ICLogger.i("BP15 , 定位周期="+time+"秒");\r
-\r
-            Config.setLocationMode(runtime.getContextProxy().context, ICLocation.CUSTOM_MOD8_GPS);\r
-            Config.setLocationCycle(runtime.getContextProxy().context,Integer.parseInt(time));\r
-            runtime.getLocationInstance().setWorkingMod(Config.getLocationMode(runtime.getContextProxy().context));\r
-            runtime.getLocationInstance().setLocation_cycle(Config.getLocationCycle(runtime.getContextProxy().context));\r
-            //set AlarmCycle  and trigger Location\r
-            CoreService.getInstance().setLocationAlarm(runtime.getLocationInstance().getWorkingMod());\r
+            try {\r
+                String index = list[2];\r
+                String time = list[3];\r
+                connection.send(AP15(index));\r
+                ICLogger.i("BP15 , 定位周期=" + time + "秒");\r
+\r
+                Config.setLocationMode(runtime.getContextProxy().context, ICLocation.CUSTOM_MOD8_GPS);\r
+                Config.setLocationCycle(runtime.getContextProxy().context, Integer.parseInt(time));\r
+                runtime.getLocationInstance().setWorkingMod(Config.getLocationMode(runtime.getContextProxy().context));\r
+                runtime.getLocationInstance().setLocation_cycle(Config.getLocationCycle(runtime.getContextProxy().context));\r
+                //set AlarmCycle  and trigger Location\r
+                CoreService.getInstance().setLocationAlarm(runtime.getLocationInstance().getWorkingMod());\r
+            }catch (Exception e){\r
+                ICLogger.e(e.getMessage(),e);\r
+            }\r
         }else{\r
             ICLogger.i("BP15 format error");\r
         }\r
@@ -1377,49 +1416,50 @@ public static StringMessage AP50(Runtime ds){
 \r
         String[] msg= cmd.split(CMDSPLIT);\r
         if (msg.length>=6){\r
-\r
-            Name=msg[1];\r
-            appendIndex=msg[2];\r
-            packetCount= Integer.parseInt(msg[3]);\r
-            currentId= Integer.parseInt(msg[4]);\r
-            packetLen= Integer.parseInt(msg[5]);\r
-            packetData= Util.subArray(bytes,msg[0].length()+msg[1].length()+msg[2].length()+msg[3].length()+msg[4].length()+msg[5].length()+6,bytes.length-1);\r
-\r
-            StringBuffer stringBuffer=new StringBuffer();\r
-            stringBuffer.append("recv BP28 name = ").append(Name)\r
-                    .append(",appendIndex = ").append(appendIndex)\r
-                    .append(",packetCount = ").append(packetCount)\r
-                    .append(",currentId = ").append(currentId)\r
-                    .append(",packetLen = ").append(packetLen)\r
-                    .append(",packetDatalen = ").append(packetData.length);\r
-\r
-            log( stringBuffer.toString());\r
-            connection.send(AP28(Name,appendIndex,packetCount,currentId,1));\r
-            voicePacket.getInstance().appendVoice(Name,appendIndex,packetCount,currentId,packetLen,packetData);\r
-            log("================"+voicePacket.getInstance().toString());\r
-            if (voicePacket.getInstance().isFinished())\r
-            {\r
-\r
-                String dir = Environment.getExternalStorageDirectory()+ "/Android/VoiceCache";\r
-                String amrFilepath=Util.saveFile(voicePacket.getInstance().getVoicePacketBytes(),0,voicePacket.getInstance().getVoicePacketLen(),new File(dir),"receive_"+voicePacket.getInstance().getPacketTime()+".amr");\r
-                ICLogger.i("save Amr file to "+amrFilepath);\r
-                voicePacket.getInstance().clearPacket();\r
-                VoiceContent voiceContent=VoiceContent.placeHolderIn(Content.CONTACT_CATEGORY_GROUP,GROUP_ALL,amrFilepath);\r
-\r
-\r
-                final Uri uri2 = runtime.getDbHelper().insertMessage( voiceContent);\r
-\r
-                //回复UI消息,表示已经接收到\r
-                voiceContent.status = 3;\r
-                voiceContent.serverTime = TimeUtil.getSystemTime3();\r
-                voiceContent.preview = String.valueOf(Util.getDuration(voiceContent.content));\r
-                runtime.getDbHelper().updateMessage(voiceContent, uri2);\r
+            try {\r
+                Name = msg[1];\r
+                appendIndex = msg[2];\r
+                packetCount = Integer.parseInt(msg[3]);\r
+                currentId = Integer.parseInt(msg[4]);\r
+                packetLen = Integer.parseInt(msg[5]);\r
+                packetData = Util.subArray(bytes, msg[0].length() + msg[1].length() + msg[2].length() + msg[3].length() + msg[4].length() + msg[5].length() + 6, bytes.length - 1);\r
+\r
+                StringBuffer stringBuffer = new StringBuffer();\r
+                stringBuffer.append("recv BP28 name = ").append(Name)\r
+                        .append(",appendIndex = ").append(appendIndex)\r
+                        .append(",packetCount = ").append(packetCount)\r
+                        .append(",currentId = ").append(currentId)\r
+                        .append(",packetLen = ").append(packetLen)\r
+                        .append(",packetDatalen = ").append(packetData.length);\r
+\r
+                log(stringBuffer.toString());\r
+                connection.send(AP28(Name, appendIndex, packetCount, currentId, 1));\r
+                voicePacket.getInstance().appendVoice(Name, appendIndex, packetCount, currentId, packetLen, packetData);\r
+                log("================" + voicePacket.getInstance().toString());\r
+                if (voicePacket.getInstance().isFinished()) {\r
+\r
+                    String dir = Environment.getExternalStorageDirectory() + "/Android/VoiceCache";\r
+                    String amrFilepath = Util.saveFile(voicePacket.getInstance().getVoicePacketBytes(), 0, voicePacket.getInstance().getVoicePacketLen(), new File(dir), "receive_" + voicePacket.getInstance().getPacketTime() + ".amr");\r
+                    ICLogger.i("save Amr file to " + amrFilepath);\r
+                    voicePacket.getInstance().clearPacket();\r
+                    VoiceContent voiceContent = VoiceContent.placeHolderIn(Content.CONTACT_CATEGORY_GROUP, GROUP_ALL, amrFilepath);\r
+\r
+\r
+                    final Uri uri2 = runtime.getDbHelper().insertMessage(voiceContent);\r
+\r
+                    //回复UI消息,表示已经接收到\r
+                    voiceContent.status = 3;\r
+                    voiceContent.serverTime = TimeUtil.getSystemTime3();\r
+                    voiceContent.preview = String.valueOf(Util.getDuration(voiceContent.content));\r
+                    runtime.getDbHelper().updateMessage(voiceContent, uri2);\r
 \r
 //                runtime.getContextProxy().sendBroadcast(ACTION_IMESSAGE, runtime);\r
 \r
-                connection.DeliverCMDMessageToSystem("NewVoice", amrFilepath);//通知下面线程状态变化\r
+                    connection.DeliverCMDMessageToSystem("NewVoice", amrFilepath);//通知下面线程状态变化\r
+                }\r
+            }catch (Exception e){\r
+                ICLogger.e(e.getMessage(),e);\r
             }\r
-\r
         }else{\r
             log("handleBP28","format Error");\r
 //            connection.send(genStringMessage("AP28",AP28(Name,appendIndex,packetCount,currentId,0)));\r
@@ -1506,16 +1546,20 @@ public static StringMessage AP50(Runtime ds){
         String[] list=cmd.split(CMDSPLIT);\r
 \r
         if (list.length==5){\r
-            String index=list[2];\r
-            String type=list[3];\r
-            String cycle=list[4];\r
-            connection.send(AP86(index));\r
-            ICLogger.i("收到服务器指令:设置"+(type.equals("1")?"心率周期 ":"血压周期 ")+cycle+"分钟");\r
-\r
-            //发送重置PPGCycle的广播,会在CoreServer里面执行\r
-            Intent intent = new Intent();\r
-            intent.putExtra("PPGTestCycle",Integer.parseInt(cycle));\r
-            runtime.getContextProxy().sendBrodcast(ACTION_HEATR_RATE_START,intent);\r
+            try {\r
+                String index = list[2];\r
+                String type = list[3];\r
+                String cycle = list[4];\r
+                connection.send(AP86(index));\r
+                ICLogger.i("收到服务器指令:设置" + (type.equals("1") ? "心率周期 " : "血压周期 ") + cycle + "分钟");\r
+\r
+                //发送重置PPGCycle的广播,会在CoreServer里面执行\r
+                Intent intent = new Intent();\r
+                intent.putExtra("PPGTestCycle", Integer.parseInt(cycle));\r
+                runtime.getContextProxy().sendBrodcast(ACTION_HEATR_RATE_START, intent);\r
+            }catch (Exception e){\r
+                ICLogger.e(e.getMessage(),e);\r
+            }\r
         }else{\r
             ICLogger.i("BP86 format error!");\r
         }\r
index 1647301..f2dfeb7 100644 (file)
@@ -471,14 +471,18 @@ public class protocol_mqtt {
             connection.send(UPLOAD(runtime));\r
             String[] list=data.split(CMDSPLIT);\r
             if (TextUtils.isDigitsOnly(list[1].trim())) {\r
-                int timesecond = Integer.parseInt(list[1].trim());\r
-                int mod = runtime.getLocationInstance().getWorkingMod();\r
-                log("LOCATION_MODE  " + LOCATION_MODE + " mod " + mod +" cycle "+timesecond);\r
-                Config.setLocationMode(runtime.getContextProxy().context, mod);\r
-                Config.setLocationCycle(runtime.getContextProxy().context, timesecond);\r
-                runtime.getLocationInstance().setLocation_cycle(timesecond);\r
-                runtime.getLocationInstance().setWorkingMod(mod);\r
-                 CoreService.getInstance().setLocationAlarm(runtime.getLocationInstance().getWorkingMod());\r
+                try {\r
+                    int timesecond = Integer.parseInt(list[1].trim());\r
+                    int mod = runtime.getLocationInstance().getWorkingMod();\r
+                    log("LOCATION_MODE  " + LOCATION_MODE + " mod " + mod + " cycle " + timesecond);\r
+                    Config.setLocationMode(runtime.getContextProxy().context, mod);\r
+                    Config.setLocationCycle(runtime.getContextProxy().context, timesecond);\r
+                    runtime.getLocationInstance().setLocation_cycle(timesecond);\r
+                    runtime.getLocationInstance().setWorkingMod(mod);\r
+                    CoreService.getInstance().setLocationAlarm(runtime.getLocationInstance().getWorkingMod());\r
+                }catch (Exception e){\r
+                    ICLogger.e(e.getMessage(),e);\r
+                }\r
                 //此处设置好配置后,会在LocationClient通过消息开始执行及时定位操作。\r
             }else{\r
                 ICLogger.i("UPLOAD format error!");\r
@@ -563,13 +567,16 @@ public class protocol_mqtt {
         if (list.length==2){\r
             String cycle=list[1];\r
             if (TextUtils.isDigitsOnly(cycle.trim())){\r
-                int cycle_int=Integer.parseInt(cycle.trim());\r
-                ICLogger.i("收到服务器指令:设置体温上传频率 "+cycle+"秒");\r
-\r
-                Config.setTemperatureTestCycle(runtime,cycle_int);\r
-                CoreService.getInstance().setTempAlarm();\r
-                TemperatureUtil.doTempTestInThread();\r
-\r
+                try {\r
+                    int cycle_int = Integer.parseInt(cycle.trim());\r
+                    ICLogger.i("收到服务器指令:设置体温上传频率 " + cycle + "秒");\r
+\r
+                    Config.setTemperatureTestCycle(runtime, cycle_int);\r
+                    CoreService.getInstance().setTempAlarm();\r
+                    TemperatureUtil.doTempTestInThread();\r
+                }catch (Exception e){\r
+                    ICLogger.e(e.getMessage(),e);\r
+                }\r
             }else\r
             {\r
                 ICLogger.i("wdstart Format Error!");\r
@@ -601,13 +608,17 @@ public class protocol_mqtt {
         if (list.length==2){\r
             String cycle=list[1];\r
             if (TextUtils.isDigitsOnly(cycle.trim())){\r
-                int cycle_int=Integer.parseInt(cycle.trim());\r
-                ICLogger.i("收到服务器指令:设置心率血压周期 "+cycle+"秒"+cycle_int/60+"分钟");\r
-\r
-                //发送重置PPGCycle的广播,会在CoreServer里面执行\r
-                Intent intent = new Intent();\r
-                intent.putExtra("PPGTestCycle",cycle_int/60);\r
-                runtime.getContextProxy().sendBrodcast(ACTION_HEATR_RATE_START,intent);\r
+                try {\r
+                    int cycle_int = Integer.parseInt(cycle.trim());\r
+                    ICLogger.i("收到服务器指令:设置心率血压周期 " + cycle + "秒" + cycle_int / 60 + "分钟");\r
+\r
+                    //发送重置PPGCycle的广播,会在CoreServer里面执行\r
+                    Intent intent = new Intent();\r
+                    intent.putExtra("PPGTestCycle", cycle_int / 60);\r
+                    runtime.getContextProxy().sendBrodcast(ACTION_HEATR_RATE_START, intent);\r
+                }catch (Exception e){\r
+                    ICLogger.e(e.getMessage(),e);\r
+                }\r
             }else\r
             {\r
                 ICLogger.i("Hrtstart Format Error!");\r