completed voice send.
authorTrillGates <williamtrillgates@gmail.com>
Mon, 5 Apr 2021 07:12:06 +0000 (15:12 +0800)
committerTrillGates <williamtrillgates@gmail.com>
Mon, 5 Apr 2021 07:12:06 +0000 (15:12 +0800)
app/src/main/java/com/enqualcomm/support/utils/Connection.java
app/src/main/java/com/enqualcomm/support/utils/NettyConnection.java
app/src/main/java/com/enqualcomm/support/utils/mqttConnection.java
app/src/main/java/com/ic/protocols/protocol_fzd.java
app/src/main/java/com/ic/protocols/protocol_mqtt_client.java

index 046eeba..498a2fd 100644 (file)
@@ -3,25 +3,28 @@ package com.enqualcomm.support.utils;
 import com.enqualcomm.support.bean.StringMessage;\r
 \r
 public interface Connection {\r
-  void close();\r
-  \r
-  void connect(String paramString, int paramInt);\r
-  \r
-  void disconnect();\r
-  boolean disconnectServer();\r
-\r
-  int getTimeout();\r
-  \r
-  void open();\r
-  \r
-  void send(StringMessage paramStringMessage);\r
-  \r
-  boolean sendBlocking(StringMessage paramStringMessage);\r
-  \r
-  void setTimeout(int paramInt);\r
-\r
-  void DeliverCMDMessageToSystem(String cmd,String msg);\r
-\r
-  boolean isServerConnected();\r
+    void close();\r
+\r
+    void connect(String paramString, int paramInt);\r
+\r
+    void disconnect();\r
+\r
+    boolean disconnectServer();\r
+\r
+    int getTimeout();\r
+\r
+    void open();\r
+\r
+    void send(StringMessage paramStringMessage);\r
+\r
+    void send(String cmd, byte[] bytes);\r
+\r
+    boolean sendBlocking(StringMessage paramStringMessage);\r
+\r
+    void setTimeout(int paramInt);\r
+\r
+    void DeliverCMDMessageToSystem(String cmd, String msg);\r
+\r
+    boolean isServerConnected();\r
 }\r
 \r
index c014a8d..941377b 100644 (file)
@@ -310,7 +310,6 @@ public class NettyConnection implements Connection {
     }
 
     public void send(StringMessage msg) {
-
         if (msg == null) {
             ICLogger.i(" StringMessage is null skip send!");
             return;
@@ -321,6 +320,12 @@ public class NettyConnection implements Connection {
 
     }
 
+    @Override
+    public void send(String cmd, byte[] bytes) {
+        ICLogger.d("cmd==> " + cmd);
+        sendMsg(bytes);
+    }
+
     public boolean sendBlocking(StringMessage paramStringMessage) {
         ICLogger.i(paramStringMessage.isFromCache());
         sendMsg(paramStringMessage.isFromCache());
index 00cf02e..e8aea5c 100644 (file)
@@ -114,6 +114,11 @@ public class mqttConnection implements Connection {
         }\r
     }\r
 \r
+    @Override\r
+    public void send(String cmd, byte[] bytes) {\r
+        mqtt_client.publish(cmd, bytes);\r
+    }\r
+\r
     @Override\r
     public boolean sendBlocking(StringMessage paramStringMessage) {\r
         send(paramStringMessage);\r
index 4ddc6a6..28661d4 100644 (file)
@@ -102,17 +102,37 @@ public class protocol_fzd {
                 //fos.close();
                 //以上代码,验证成功,说明转换是对的
                 //更新数据库状态
-                
-                //发送消息
                 //TODO:
+                //发送消息
+                ByteArrayOutputStream bos = new ByteArrayOutputStream();
+                String cmd = cmdMap.get(CMD_TYPE.TK);
+                int tkLength = cmd.length();
+                String header = genHeader(tkLength, cmd);
+                StringBuilder sb = new StringBuilder();
+                if (doEncryption) {
+                    String keyHeader = keyheader(cmd, tkLength);
+                    sb.append(CMDHEADER).append(keyHeader).append(header);
+                } else {
+                    sb.append(CMDHEADER).append(header);
+                }
+                //头部构造好了,添加逗号
+                sb.append(CMDSPLIT);
+                //转成byte
+                bos.write(sb.toString().getBytes());
+                //追加数据
+                bos.write(result);
+                //追加结尾
+                bos.write(CMDEND.getBytes());
+                mConnection.send(cmd, bos.toByteArray());
             } catch (Exception e) {
                 e.printStackTrace();
             }
-
+            //TODO:
             //更新状态
         }
     }
 
+
     public enum CMD_TYPE {
         /*终端发起*/
         //链路保持数据
@@ -393,6 +413,10 @@ public class protocol_fzd {
             String cmdStr = new String(bytes);
             String[] split = cmdStr.split(",");
             ICLogger.d("split[0].length() == > " + split[0].length());
+            if (split[1].length() == 2) {
+                //更新发送状态
+                return;
+            }
             //处理数据
             byte[] dataPackage = Util.subArray(bytes, split[0].length() + 1, bytes.length - 1);
             //String packageStr = new String(dataPackage);
index d61203b..1988ffd 100644 (file)
@@ -32,6 +32,10 @@ public class protocol_mqtt_client {
         topic_header = header;
     }
 
+    public void publish(String cmd, byte[] bytes) {
+        mClient.publish(cmd, bytes);
+    }
+
     private class MqttCallback implements Handler.Callback {
         @Override
         public boolean handleMessage(Message msg) {