gen weather cmd
authorTrillGates <williamtrillgates@gmail.com>
Wed, 7 Apr 2021 02:48:00 +0000 (10:48 +0800)
committerTrillGates <williamtrillgates@gmail.com>
Wed, 7 Apr 2021 02:48:00 +0000 (10:48 +0800)
app/src/main/java/com/ic/protocols/protocol_fzd.java

index bf6faf5..af7fd9e 100644 (file)
@@ -523,7 +523,8 @@ public class protocol_fzd {
             //秒数
             String duration = split[2];
             //数据包,对数据进行切割
-            byte[] dataPackage = Util.subArray(totalByte, header.length() + contact.length() + duration.length() + 3,
+            byte[] dataPackage = Util.subArray(totalByte, header.length()
+                            + contact.length() + duration.length() + 3,
                     totalByte.length - 1);
             //对数据进行转换
             String dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC) + "/Android/VoiceCache";
@@ -704,6 +705,7 @@ public class protocol_fzd {
         return genStringMessage(CMD, sb.toString());
     }
 
+
     public static StringMessage genFZDCMD(String CMD, String data) {
         StringBuilder sb = new StringBuilder();
         String data_buf = CMD + CMDSPLIT + data;
@@ -718,6 +720,32 @@ public class protocol_fzd {
         return genStringMessage(CMD, sb.toString());
     }
 
+
+    /**
+     * 获取天气的指令,API描述:
+     * A 终端发送:[XT*YYYYYYYYYYYYYYY*LEN*WT,位置数据(见附录一)]
+     * 实例: [XT*334588000000156*009F*WT,260916,020049,V,22.683546,N,113.9907380,
+     * E,0.00,0.0,0.0,0,100,7 7,0,0,00000000,5,0,460,0,9346,4711,167,9346,4712,126,9360,4151,
+     * 125,9346,4713,122,9360,4081, 119]
+     * 平台回复:
+     * [XT*334588000000156*009F*WT,年-月-日,时:分:秒,天气描述,天气编号,
+     * 当前温度,最低温,最高温,城 市名] [XT*334588000000156*009F*WT,
+     * 16-09-24,11:00:00,b6e0d4c6,2,-5,-12,22,316df15733]
+     * 注:天气描述用 GB2312 编码,城市名使用 Unicode 编码
+     * 天气编号:0——晴 1——阴 2——雨 3——雪
+     * (注:目前返回数据只有当前温度是真实有效的,低温,高温目前是假数据,以便后续扩展)
+     *
+     * @param runtime
+     * @return
+     */
+    public static StringMessage WT(Runtime runtime) {
+        //指令
+        String cmd = cmdMap.get(CMD_TYPE.WT);
+        //位置数据
+        String locationData = getLocationData(runtime);
+        return genFZDCMD(cmd, locationData);
+    }
+
     /*登录*/
     public static StringMessage LK() {
         /*IC*YYYYYYYYYYYYYYY*LEN*LK*/
@@ -910,8 +938,20 @@ public class protocol_fzd {
      *
      */
     public static StringMessage UD(Runtime runtime) {
-        StringBuilder sb = new StringBuilder();
         String cmd = cmdMap.get(CMD_TYPE.UD);
+        String locationData = getLocationData(runtime);
+        return genFZDCMD(cmd, locationData);
+    }
+
+    /**
+     * 以下数据对应着防走丢协议里的:位置数据
+     * 主要是为天气,位置上传提供数据
+     *
+     * @param runtime
+     * @return
+     */
+    private static String getLocationData(Runtime runtime) {
+        StringBuilder sb = new StringBuilder();
         sb.append(TimeUtil.getSystemDateYYMMDD()).append(CMDSPLIT)
                 .append(TimeUtil.getSystemTimeHHmmss()).append(CMDSPLIT)
                 .append(runtime.getFZDGPSData()).append(CMDSPLIT)
@@ -922,8 +962,7 @@ public class protocol_fzd {
                 .append(runtime.getFZDDevStatus(runtime)).append(CMDSPLIT)
                 .append(runtime.getFZDLBSMultiStationData()).append(CMDSPLIT)
                 .append(runtime.getFZDWifiData());
-
-        return genFZDCMD(cmd, sb.toString());
+        return sb.toString();
     }
 
     /***