Commit 420a2e6de6d71126448948569d7ccce0256cd8be

Authored by dy
1 parent 72aa034d
Exists in develop

fix: lte3000编解码器修改

src/main/java/com/example/mina/client/base/AbstractVirtualBoxClientHandler.java
@@ -10,16 +10,23 @@ import org.apache.mina.core.service.IoHandlerAdapter; @@ -10,16 +10,23 @@ import org.apache.mina.core.service.IoHandlerAdapter;
10 import org.apache.mina.core.session.IdleStatus; 10 import org.apache.mina.core.session.IdleStatus;
11 import org.apache.mina.core.session.IoSession; 11 import org.apache.mina.core.session.IoSession;
12 12
13 -import java.io.UnsupportedEncodingException;  
14 import java.nio.charset.StandardCharsets; 13 import java.nio.charset.StandardCharsets;
15 14
  15 +/**
  16 + * @author dy
  17 + */
16 @Data 18 @Data
17 -public abstract class AbstractVirtualBoxClientHandler extends IoHandlerAdapter { 19 +public abstract class AbstractVirtualBoxClientHandler<RECEIVE extends BaseReceiveMessage>
  20 + extends IoHandlerAdapter {
18 21
19 protected AbstractClientMessage clientMessage; 22 protected AbstractClientMessage clientMessage;
20 23
21 protected AbstractHardwareDataBuffer hardwareDataBuffer; 24 protected AbstractHardwareDataBuffer hardwareDataBuffer;
22 25
  26 + private SendMessage sendMessage = new SendMessage();
  27 +
  28 + private BaseReceiveMessage receiveMessage;
  29 +
23 public AbstractVirtualBoxClientHandler(AbstractClientMessage clientMessage, 30 public AbstractVirtualBoxClientHandler(AbstractClientMessage clientMessage,
24 AbstractHardwareDataBuffer abstractHardwareDataBuffer) { 31 AbstractHardwareDataBuffer abstractHardwareDataBuffer) {
25 this.clientMessage = clientMessage; 32 this.clientMessage = clientMessage;
@@ -34,17 +41,22 @@ public abstract class AbstractVirtualBoxClientHandler extends IoHandlerAdapter { @@ -34,17 +41,22 @@ public abstract class AbstractVirtualBoxClientHandler extends IoHandlerAdapter {
34 41
35 @Override 42 @Override
36 public void messageReceived(IoSession session, Object message) { 43 public void messageReceived(IoSession session, Object message) {
37 - //handleCommandResponse(clientMessage.getCommands().get(1).getBytes(), (byte[]) message, ((byte[]) message).length); 44 + if (message instanceof BaseReceiveMessage) {
  45 + receiveMessage = (RECEIVE) message;
  46 + }
  47 + handleCommandResponse(sendMessage, receiveMessage);
38 System.out.println("客户端messageReceived被调用!"); 48 System.out.println("客户端messageReceived被调用!");
39 - System.out.println("client端接收信息:" + new String((byte[])message, StandardCharsets.UTF_8));  
40 - LogUtils.println("client端接收信息hex:",(byte[])message); 49 +
  50 + System.out.println("client端接收信息:" + new String(receiveMessage.getReceiveMessage(), StandardCharsets.UTF_8));
  51 + LogUtils.println("client端接收信息hex:" + receiveMessage.getReceiveMessage());
41 } 52 }
42 53
43 @Override 54 @Override
44 public void messageSent(IoSession session, Object message) { 55 public void messageSent(IoSession session, Object message) {
45 System.out.println("客户端messageSent被调用!"); 56 System.out.println("客户端messageSent被调用!");
46 - System.out.println("client端发送信息:" + new String((byte[])message, StandardCharsets.UTF_8));  
47 - LogUtils.println("client端发送信息hex:",(byte[])message); 57 + System.out.println("client端发送信息:" + new String((byte[]) message, StandardCharsets.UTF_8));
  58 + LogUtils.println("client端发送信息hex:", (byte[]) message);
  59 + this.sendMessage = SendMessage.builder().sendMessage((byte[]) message).build();
48 } 60 }
49 61
50 @Override 62 @Override
@@ -89,6 +101,6 @@ public abstract class AbstractVirtualBoxClientHandler extends IoHandlerAdapter { @@ -89,6 +101,6 @@ public abstract class AbstractVirtualBoxClientHandler extends IoHandlerAdapter {
89 session.write(command.getBytes()); 101 session.write(command.getBytes());
90 } 102 }
91 103
92 - protected abstract boolean handleCommandResponse(byte[] cmd, byte[] response, int responseLen); 104 + protected abstract boolean handleCommandResponse(SendMessage sendMessage, BaseReceiveMessage receiveMessage);
93 105
94 } 106 }
src/main/java/com/example/mina/client/base/BaseReceiveMessage.java 0 → 100644
@@ -0,0 +1,19 @@ @@ -0,0 +1,19 @@
  1 +package com.example.mina.client.base;
  2 +
  3 +import lombok.AllArgsConstructor;
  4 +import lombok.Data;
  5 +import lombok.NoArgsConstructor;
  6 +import lombok.experimental.SuperBuilder;
  7 +
  8 +/**
  9 + * @author dy
  10 + * @date 2021/3/12
  11 + */
  12 +@SuperBuilder
  13 +@Data
  14 +@AllArgsConstructor
  15 +@NoArgsConstructor
  16 +public abstract class BaseReceiveMessage {
  17 +
  18 + private byte[] receiveMessage;
  19 +}
src/main/java/com/example/mina/client/base/SendMessage.java 0 → 100644
@@ -0,0 +1,19 @@ @@ -0,0 +1,19 @@
  1 +package com.example.mina.client.base;
  2 +
  3 +import lombok.AllArgsConstructor;
  4 +import lombok.Data;
  5 +import lombok.NoArgsConstructor;
  6 +import lombok.experimental.SuperBuilder;
  7 +
  8 +/**
  9 + * @author dy
  10 + * @date 2021/3/12
  11 + */
  12 +@SuperBuilder
  13 +@Data
  14 +@AllArgsConstructor
  15 +@NoArgsConstructor
  16 +public class SendMessage {
  17 +
  18 + private byte[] sendMessage;
  19 +}
src/main/java/com/example/mina/client/box/aeroflex/AeroflexClientHandler.java
1 package com.example.mina.client.box.aeroflex; 1 package com.example.mina.client.box.aeroflex;
2 2
3 import com.example.mina.client.base.AbstractVirtualBoxClientHandler; 3 import com.example.mina.client.base.AbstractVirtualBoxClientHandler;
  4 +import com.example.mina.client.base.BaseReceiveMessage;
  5 +import com.example.mina.client.base.SendMessage;
4 import com.example.mina.client.entity.AbstractClientMessage; 6 import com.example.mina.client.entity.AbstractClientMessage;
5 import com.example.mina.server.base.AbstractHardwareDataBuffer; 7 import com.example.mina.server.base.AbstractHardwareDataBuffer;
6 8
@@ -16,7 +18,7 @@ public class AeroflexClientHandler extends AbstractVirtualBoxClientHandler { @@ -16,7 +18,7 @@ public class AeroflexClientHandler extends AbstractVirtualBoxClientHandler {
16 } 18 }
17 19
18 @Override 20 @Override
19 - protected boolean handleCommandResponse(byte[] cmd, byte[] response, int responseLen) { 21 + protected boolean handleCommandResponse(SendMessage sendMessage, BaseReceiveMessage receiveMessage) {
20 return false; 22 return false;
21 } 23 }
22 } 24 }
src/main/java/com/example/mina/client/box/lte3000/Lte3000ByteDecoder.java
@@ -24,6 +24,8 @@ public class Lte3000ByteDecoder extends ProtocolDecoderAdapter { @@ -24,6 +24,8 @@ public class Lte3000ByteDecoder extends ProtocolDecoderAdapter {
24 24
25 in.get(bytes); 25 in.get(bytes);
26 26
27 - out.write(bytes); 27 + Lte3000ReceiveMessage receiveMessage = Lte3000ReceiveMessage.builder().receiveMessage(bytes).build();
  28 +
  29 + out.write(receiveMessage);
28 } 30 }
29 } 31 }
src/main/java/com/example/mina/client/box/lte3000/Lte3000ClientHandler.java
No preview for this file type
src/main/java/com/example/mina/client/box/lte3000/Lte3000ReceiveMessage.java 0 → 100644
@@ -0,0 +1,17 @@ @@ -0,0 +1,17 @@
  1 +package com.example.mina.client.box.lte3000;
  2 +
  3 +import com.example.mina.client.base.BaseReceiveMessage;
  4 +import lombok.AllArgsConstructor;
  5 +import lombok.Data;
  6 +import lombok.NoArgsConstructor;
  7 +import lombok.experimental.SuperBuilder;
  8 +
  9 +/**
  10 + * @author dy
  11 + * @date 2021/3/12
  12 + */
  13 +@SuperBuilder
  14 +@Data
  15 +@AllArgsConstructor
  16 +public class Lte3000ReceiveMessage extends BaseReceiveMessage {
  17 +}