From: TrillGates Date: Wed, 7 Apr 2021 02:48:00 +0000 (+0800) Subject: gen weather cmd X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=84f3abbc04a584c66d27acdadb2faed760dd3cf2;p=protocol_srv.git gen weather cmd --- diff --git a/app/src/main/java/com/ic/protocols/protocol_fzd.java b/app/src/main/java/com/ic/protocols/protocol_fzd.java index bf6faf58..af7fd9e0 100644 --- a/app/src/main/java/com/ic/protocols/protocol_fzd.java +++ b/app/src/main/java/com/ic/protocols/protocol_fzd.java @@ -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(); } /***