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
}
public void send(StringMessage msg) {
-
if (msg == null) {
ICLogger.i(" StringMessage is null skip send!");
return;
}
+ @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());
}\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
//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 {
/*终端发起*/
//链路保持数据
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);
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) {