completed voice upload of anan protocol.
authorTrillGates <williamtrillgates@gmail.com>
Sun, 25 Apr 2021 08:18:06 +0000 (16:18 +0800)
committerTrillGates <williamtrillgates@gmail.com>
Sun, 25 Apr 2021 08:18:06 +0000 (16:18 +0800)
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

index 5f5f365..63c1824 100644 (file)
@@ -230,6 +230,9 @@ public class protocolAPIHelper {
                 break;
             case Config.PROTOCOL_MQTT:
                 break;
+            case PROTOCOL_ANAN:
+                ret = protocol_anan.APCH(charging);
+                break;
         }
         return ret;
     }
@@ -390,6 +393,9 @@ public class protocolAPIHelper {
             case Config.PROTOCOL_MQTT:
                 ret = null;//protocol_fzd.AP07(packetTime,count,index,datalen,amrdata);
                 break;
+            case PROTOCOL_ANAN:
+                ret = protocol_anan.AP07(packetTime, count, index, datalen, amrdata);
+                break;
         }
         return ret;
     }
index a96a438..bef5663 100644 (file)
@@ -204,6 +204,50 @@ public class protocol_anan {
 
     }
 
+
+    /**
+     * 交好友
+     *
+     * @return
+     */
+    public static StringMessage APFD() {
+        //TODO:
+        return null;
+    }
+
+    public static byte[] AP07(String packetTime, int count, int index, int datalen, byte[] amrdata) {
+//IWAP07,20140818064408,6,1,1024,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#
+//说明:
+//IW:标识符
+//AP07 : 命令字符
+//20140818064408 :yyyyMMddHHmmss 格式的年月日时分秒,设备录音时间
+//6:语音包分包总数
+//1 :当前包数,第一包为1,第二包为2,。。。。。。同一个语音包的语音时间相同
+//1024 :语音包长度
+//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:当前音频数据, 每个音频数据包大小为1024字节,最后一包不足1024的取实际字节数
+//语音包上传规则:
+//按包次序依次上传,上传后如果没有收到服务器的响应包,则继续上传该语音包。
+//收到设备回复确认数据包接收成功状态后,继续开始依次上传下一个数据包。。。。。。
+//如果设备回复确认数据包接收失败状态,则重复发送上一个数据包
+
+
+        String sb = new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP07))
+                .append(CMDSPLIT).append(packetTime)
+                .append(CMDSPLIT).append(count)
+                .append(CMDSPLIT).append(index)
+                .append(CMDSPLIT).append(datalen)
+                .append(CMDSPLIT).toString();
+
+        byte[] sentbuf = new byte[sb.length() + datalen + 1];
+        System.arraycopy(sb.getBytes(), 0, sentbuf, 0, sb.length());
+        System.arraycopy(amrdata, 0, sentbuf, sb.length(), datalen);
+        sentbuf[sb.length() + datalen] = '#';
+
+        return sentbuf;
+
+    }
+
+
     /*登录*/
     public static StringMessage AP00(Runtime runTime) {
         //示例数据:IWAP00102002020001871,898600A7189443197156,9460077731997156#
@@ -216,13 +260,20 @@ public class protocol_anan {
                         .append(CMDEND).toString());
     }
 
+    public static StringMessage APCH(int charging) {
+        return genStringMessage(cmdMap.get(CMD_TYPE.APCH),
+                new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APCH))
+                        .append(CMDSPLIT).append(charging)
+                        .append(CMDEND).toString());
+    }
+
+
     //佩戴状态上传,这个监听到广播以后,去上传即可
     //1表示佩戴
     //0表示未佩戴
-    //TODO:
     public static StringMessage APWA(String state) {
         return genStringMessage(cmdMap.get(CMD_TYPE.APWA),
-                new StringBuilder().append(cmdMap.get(CMD_TYPE.APWA))
+                new StringBuilder().append(CMDHEADER).append(cmdMap.get(CMD_TYPE.APWA))
                         .append(CMDSPLIT).append(state).append(CMDEND).toString());
     }
 
index c58f415..5fbfb74 100644 (file)
@@ -2398,10 +2398,11 @@ public class protocol_ic {
 
 
     public static StringMessage APDH(String id, String cmd) {
-        return genStringMessage("APDH", new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APDH))
-                .append(CMDSPLIT).append(id)
-                .append(CMDSPLIT).append(cmd)
-                .append(CMDEND).toString());
+        return genStringMessage(cmdMap.get(CMD_TYPE.APDH),
+                new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APDH))
+                        .append(CMDSPLIT).append(id)
+                        .append(CMDSPLIT).append(cmd)
+                        .append(CMDEND).toString());
     }
 
 
@@ -2659,9 +2660,10 @@ public class protocol_ic {
 
 
     public static StringMessage APCH(int charging) {
-        return genStringMessage("APCH", new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APCH))
-                .append(CMDSPLIT).append(charging)
-                .append(CMDEND).toString());
+        return genStringMessage(cmdMap.get(CMD_TYPE.APCH),
+                new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APCH))
+                        .append(CMDSPLIT).append(charging)
+                        .append(CMDEND).toString());
     }