completed ap01 and ap00 and apht of anan protocol.
authorTrillGates <williamtrillgates@gmail.com>
Sun, 25 Apr 2021 07:37:29 +0000 (15:37 +0800)
committerTrillGates <williamtrillgates@gmail.com>
Sun, 25 Apr 2021 07:37:29 +0000 (15:37 +0800)
app/src/main/java/com/enqualcomm/support/bean/Runtime.java
app/src/main/java/com/ic/protocols/protocolAPIHelper.java
app/src/main/java/com/ic/protocols/protocol_anan.java
app/src/main/java/com/ic/protocols/protocol_ic.java
app/src/main/java/com/ic/protocols/protocol_jiai.java

index be07247..3d80642 100644 (file)
@@ -52,6 +52,9 @@ public class Runtime {
 
     private String cid = "";
 
+    private String iccid = "";
+
+
     private ContextProxy contextProxy;
 
     private String currentCellInfo;
@@ -135,6 +138,13 @@ public class Runtime {
         return ppgTestCycle;
     }
 
+    public String getIccid() {
+        return iccid;
+    }
+
+    public void setIccid(String iccid) {
+        this.iccid = iccid;
+    }
 
     public boolean check_stat_do_ppg_test() {
         if (debugflag || (!Config.noPPGSensor  //有心率
@@ -948,6 +958,11 @@ public class Runtime {
         ICLogger.i("imei:" + imei + ",cid:" + cid);
     }
 
+    public String getImsi() {
+        return this.imsi;
+    }
+
+
     public void setImsi(String paramString) {
         this.imsi = paramString;
     }
index 14e9c07..db70657 100644 (file)
@@ -277,6 +277,9 @@ public class protocolAPIHelper {
             case Config.PROTOCOL_MQTT:
                 ret = protocol_mqtt.BREQ(runtime);
                 break;
+            case PROTOCOL_ANAN:
+                ret = protocol_anan.AP00(runtime);
+                break;
         }
         return ret;
     }
@@ -323,6 +326,9 @@ public class protocolAPIHelper {
             case Config.PROTOCOL_MQTT:
                 ret = protocol_mqtt.UD(runtime);
                 break;
+            case PROTOCOL_ANAN:
+                ret = protocol_anan.AP01(runtime);
+                break;
         }
         return ret;
     }
@@ -403,11 +409,14 @@ public class protocolAPIHelper {
             case Config.PROTOCOL_MQTT:
                 ret = null;
                 break;
+            case PROTOCOL_ANAN:
+                ret = protocol_anan.APHT(runtime);
+                break;
         }
         return ret;
     }
 
-    public static StringMessage getPPG_ECG_MSG(int ppg, int bph, int bpl) {
+    public static StringMessage getPPG_ECG_MSG(Runtime runtime, int ppg, int bph, int bpl) {
         if (is_protocol_not_Initialled()) return null;
         StringMessage ret = null;
         switch (Config.protocol_no) {
@@ -426,6 +435,9 @@ public class protocolAPIHelper {
             case Config.PROTOCOL_MQTT:
                 ret = null;
                 break;
+            case PROTOCOL_ANAN:
+                ret = protocol_anan.APHT(runtime);
+                break;
         }
         return ret;
     }
index 4120da4..ece0aab 100644 (file)
@@ -1,26 +1,39 @@
 package com.ic.protocols;
 
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.telephony.TelephonyManager;
+
 import com.enqualcomm.support.bean.Runtime;
+import com.enqualcomm.support.bean.StringMessage;
 import com.enqualcomm.support.utils.Connection;
 import com.enqualcomm.support.utils.ICLogger;
+import com.enqualcomm.support.utils.TimeUtil;
 
 import java.util.HashMap;
 
+import static java.lang.Math.abs;
+
 /**
  * 安安康养的协议
  * 测试服务器域名:pay.yfanan.com:40009
  * 测试服务器IP地址:121.43.158.167:40009
  */
+@SuppressLint("MissingPermission")
 public class protocol_anan {
 
+    private static final String CMDEND = "#";
+    private static final String CMDHEADER = "IW";
     public static int defaultServerPort = 40009;
     public static String defaultServerIp = "pay.yfanan.com";
     private final Connection mConnection;
     private final Runtime mRuntime;
+    private static final String CMDSPLIT = ",";
 
     public protocol_anan(Connection connect, Runtime runtime) {
         mConnection = connect;
         mRuntime = runtime;
+        getPhoneStatus();
     }
 
 
@@ -152,6 +165,93 @@ public class protocol_anan {
 
     }
 
+    /*登录*/
+    public static StringMessage AP00(Runtime runTime) {
+        //示例数据:IWAP00102002020001871,898600A7189443197156,9460077731997156#
+        return genStringMessage(cmdMap.get(CMD_TYPE.AP00),
+                new StringBuffer(CMDHEADER).append(
+                        cmdMap.get(CMD_TYPE.AP00)
+                ).append(runTime.IMEI())
+                        .append(runTime.getIccid())
+                        .append(runTime.getImsi())
+                        .append(CMDEND).toString());
+    }
+
+    /*LBS+GPS混合定位*/
+    public static StringMessage AP01(Runtime ds) {
+        //示例数据:IWAP01080524A2232.9806N11404.9355E000.1061830323.8706000908000102,
+        // 460,0,9520,3671,
+        // Home|74-DE-2B-44-88-8C|97& Home1|74-DE-2B-44-88-8C|97&Home2|74-DE-2B-44-88-8C|97& Home3|74-DE-2B-44-88-8C|97#
+//        IWAP01191230A2232.9807N11404.9355E000.1161320000.0006000910000000,460,00,9520,3671,#
+        return genStringMessage(cmdMap.get(CMD_TYPE.AP01),
+                new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP01))
+                        .append(TimeUtil.getShortDate())
+                        .append(ds.getGPSData())
+                        .append(TimeUtil.getShortTime())
+                        .append(ds.getGPSHeading())
+                        .append(String.format("%03d", abs(ds.getSignalStrength())))
+                        .append(ds.getGPSLocationStarNums())
+                        .append(ds.getBattery()).append("0")
+                        .append(ds.getProtection())
+                        .append(ds.getWorkModeStr()).append(CMDSPLIT)
+                        .append(ds.getLBSData()).append(CMDSPLIT)
+                        .append(ds.getWifiInfo()).append(CMDEND).toString());
+    }
+
+
+    public static StringMessage APHT(Runtime runtime) {
+        //心率,收缩压,舒张压,腕部温度,环境温度,采集点编号
+        //IWAPHT,60,130,85,34.6,26.3,0#
+        return genStringMessage(cmdMap.get(CMD_TYPE.APHT),
+                new StringBuffer(CMDHEADER).append(
+                        cmdMap.get(CMD_TYPE.AP00)
+                ).append(CMDSPLIT)
+                        .append(runtime.getHRS().getPPG()/*心率*/)
+                        .append(CMDSPLIT)
+                        .append(runtime.getHRS().getBPL()/*收缩压*/)
+                        .append(CMDSPLIT)
+                        .append(runtime.getHRS().getBPL()/*舒张压*/)
+                        .append(CMDSPLIT)
+                        .append(runtime.tempInfo.currentWristTemp/*腕部温度*/)
+                        .append(CMDSPLIT)
+                        .append(runtime.tempInfo.currentWristTempOut/*环境温度*/)
+                        .append(CMDSPLIT)
+                        .append("0"/*采集编号*/)
+                        .append(CMDEND).toString());
+    }
+
+    public String getPhoneStatus() {
+        TelephonyManager tm = (TelephonyManager) mRuntime
+                .getContextProxy().context.getSystemService(Context.TELEPHONY_SERVICE);
+        String str = "";
+        //noinspection ConstantConditions
+        str += "DeviceId(IMEI) = " + tm.getDeviceId() + "\n";
+        str += "DeviceSoftwareVersion = " + tm.getDeviceSoftwareVersion() + "\n";
+        str += "Line1Number = " + tm.getLine1Number() + "\n";
+        str += "NetworkCountryIso = " + tm.getNetworkCountryIso() + "\n";
+        str += "NetworkOperator = " + tm.getNetworkOperator() + "\n";
+        str += "NetworkOperatorName = " + tm.getNetworkOperatorName() + "\n";
+        str += "NetworkType = " + tm.getNetworkType() + "\n";
+        str += "PhoneType = " + tm.getPhoneType() + "\n";
+        str += "SimCountryIso = " + tm.getSimCountryIso() + "\n";
+        str += "SimOperator = " + tm.getSimOperator() + "\n";
+        str += "SimOperatorName = " + tm.getSimOperatorName() + "\n";
+        str += "SimSerialNumber = " + tm.getSimSerialNumber() + "\n";
+        mRuntime.setIccid(tm.getSimSerialNumber());
+        str += "SimState = " + tm.getSimState() + "\n";
+        str += "SubscriberId(IMSI) = " + tm.getSubscriberId() + "\n";
+        mRuntime.setImsi(tm.getSubscriberId());
+        str += "VoiceMailNumber = " + tm.getVoiceMailNumber();
+        return str;
+    }
+
+    public static StringMessage genStringMessage(String cmdName, String msg) {
+        StringMessage sm = new StringMessage(new String[]{cmdName, msg});
+        sm.refresh(msg);
+        sm.setDate(TimeUtil.getSystemDateYYMMDD(), TimeUtil.getSystemTimeHHmmss());
+        return sm;
+    }
+
 
     //指令解析
     public void parseCmd(String cmd_type, byte[] bytes) {
index 80aa854..c58f415 100644 (file)
@@ -185,7 +185,7 @@ public class protocol_ic {
         UNKNOWN_CMD,
     }
 
-    private static HashMap<CMD_TYPE, String> cmdMap = null;
+    private static HashMap<CMD_TYPE, String> cmdMap;
 
     static {
         cmdMap = new HashMap<CMD_TYPE, String>();
@@ -460,7 +460,11 @@ public class protocol_ic {
     /*登录*/
     public static StringMessage AP00(Runtime ds) {
         //示例数据:IWAP00867155030001063#
-        return genStringMessage(cmdMap.get(CMD_TYPE.AP00), new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP00)).append(ds.IMEI()).append(CMDEND).toString());
+        return genStringMessage(cmdMap.get(CMD_TYPE.AP00),
+                new StringBuffer(CMDHEADER).append(
+                        cmdMap.get(CMD_TYPE.AP00)
+                ).append(ds.IMEI()).append(
+                        CMDEND).toString());
     }
 
     //处理 登录 BP00
@@ -1277,8 +1281,8 @@ public class protocol_ic {
             sb.append(cmdindex).append(CMDSPLIT).append(TimeUtil.getSystemTimeyyyyMMddHHmmss()).append(CMDSPLIT).append(txtmsg);
             if (Config.custom_name.equals("VitracK")) {
 
-            } else if (Util.getSystemProperties("persist.sys.pushtxt_encode","gb2312").equals("utf-8")) {
-              //  txtmsg = Util.decodeUnicode2Utf8(txtmsg);
+            } else if (Util.getSystemProperties("persist.sys.pushtxt_encode", "gb2312").equals("utf-8")) {
+                //  txtmsg = Util.decodeUnicode2Utf8(txtmsg);
 //                txtmsg = Util.UrlGB2312ToUTF8(txtmsg);
                 txtmsg = Util.UrlUTF8ToStrUTF8(txtmsg);
             } else {
@@ -3164,7 +3168,6 @@ public class protocol_ic {
                 handleBPTE(cmd, mConnection, mRuntime);
                 mConnection.DeliverCMDMessageToSystem("APTE", cmd);//通知下面线程状态变化
                 break;
-
             case BPTP:
                 handleBPTP();
                 mConnection.DeliverCMDMessageToSystem("APTP", cmd);//通知下面线程状态变化
index a2f8ca5..7a38f92 100644 (file)
@@ -1163,7 +1163,8 @@ public class protocol_jiai {
      */
     public static StringMessage AP50(Runtime ds) {
         //示例数据:IWAP50,36.7,90#
-        return genStringMessage(cmdMap.get(CMD_TYPE.AP50), new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP50))
+        return genStringMessage(cmdMap.get(CMD_TYPE.AP50),
+                new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP50))
                 .append(CMDSPLIT).append(ds.tempInfo.currentBodyTemp)
                 .append(CMDSPLIT).append("100")
                 .append(CMDEND).toString());