diff --git a/src/main/java/com/example/mina/client/base/AbstractVirtualBoxClientHandler.java b/src/main/java/com/example/mina/client/base/AbstractVirtualBoxClientHandler.java index 15da719..c0702e5 100644 --- a/src/main/java/com/example/mina/client/base/AbstractVirtualBoxClientHandler.java +++ b/src/main/java/com/example/mina/client/base/AbstractVirtualBoxClientHandler.java @@ -10,16 +10,23 @@ import org.apache.mina.core.service.IoHandlerAdapter; import org.apache.mina.core.session.IdleStatus; import org.apache.mina.core.session.IoSession; -import java.io.UnsupportedEncodingException; import java.nio.charset.StandardCharsets; +/** + * @author dy + */ @Data -public abstract class AbstractVirtualBoxClientHandler extends IoHandlerAdapter { +public abstract class AbstractVirtualBoxClientHandler + extends IoHandlerAdapter { protected AbstractClientMessage clientMessage; protected AbstractHardwareDataBuffer hardwareDataBuffer; + private SendMessage sendMessage = new SendMessage(); + + private BaseReceiveMessage receiveMessage; + public AbstractVirtualBoxClientHandler(AbstractClientMessage clientMessage, AbstractHardwareDataBuffer abstractHardwareDataBuffer) { this.clientMessage = clientMessage; @@ -34,17 +41,22 @@ public abstract class AbstractVirtualBoxClientHandler extends IoHandlerAdapter { @Override public void messageReceived(IoSession session, Object message) { - //handleCommandResponse(clientMessage.getCommands().get(1).getBytes(), (byte[]) message, ((byte[]) message).length); + if (message instanceof BaseReceiveMessage) { + receiveMessage = (RECEIVE) message; + } + handleCommandResponse(sendMessage, receiveMessage); System.out.println("客户端messageReceived被调用!"); - System.out.println("client端接收信息:" + new String((byte[])message, StandardCharsets.UTF_8)); - LogUtils.println("client端接收信息hex:",(byte[])message); + + System.out.println("client端接收信息:" + new String(receiveMessage.getReceiveMessage(), StandardCharsets.UTF_8)); + LogUtils.println("client端接收信息hex:" + receiveMessage.getReceiveMessage()); } @Override public void messageSent(IoSession session, Object message) { System.out.println("客户端messageSent被调用!"); - System.out.println("client端发送信息:" + new String((byte[])message, StandardCharsets.UTF_8)); - LogUtils.println("client端发送信息hex:",(byte[])message); + System.out.println("client端发送信息:" + new String((byte[]) message, StandardCharsets.UTF_8)); + LogUtils.println("client端发送信息hex:", (byte[]) message); + this.sendMessage = SendMessage.builder().sendMessage((byte[]) message).build(); } @Override @@ -89,6 +101,6 @@ public abstract class AbstractVirtualBoxClientHandler extends IoHandlerAdapter { session.write(command.getBytes()); } - protected abstract boolean handleCommandResponse(byte[] cmd, byte[] response, int responseLen); + protected abstract boolean handleCommandResponse(SendMessage sendMessage, BaseReceiveMessage receiveMessage); } diff --git a/src/main/java/com/example/mina/client/base/BaseReceiveMessage.java b/src/main/java/com/example/mina/client/base/BaseReceiveMessage.java new file mode 100644 index 0000000..ac31d32 --- /dev/null +++ b/src/main/java/com/example/mina/client/base/BaseReceiveMessage.java @@ -0,0 +1,19 @@ +package com.example.mina.client.base; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * @author dy + * @date 2021/3/12 + */ +@SuperBuilder +@Data +@AllArgsConstructor +@NoArgsConstructor +public abstract class BaseReceiveMessage { + + private byte[] receiveMessage; +} diff --git a/src/main/java/com/example/mina/client/base/SendMessage.java b/src/main/java/com/example/mina/client/base/SendMessage.java new file mode 100644 index 0000000..efba25e --- /dev/null +++ b/src/main/java/com/example/mina/client/base/SendMessage.java @@ -0,0 +1,19 @@ +package com.example.mina.client.base; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * @author dy + * @date 2021/3/12 + */ +@SuperBuilder +@Data +@AllArgsConstructor +@NoArgsConstructor +public class SendMessage { + + private byte[] sendMessage; +} diff --git a/src/main/java/com/example/mina/client/box/aeroflex/AeroflexClientHandler.java b/src/main/java/com/example/mina/client/box/aeroflex/AeroflexClientHandler.java index 4a81748..1ff972b 100644 --- a/src/main/java/com/example/mina/client/box/aeroflex/AeroflexClientHandler.java +++ b/src/main/java/com/example/mina/client/box/aeroflex/AeroflexClientHandler.java @@ -1,6 +1,8 @@ package com.example.mina.client.box.aeroflex; import com.example.mina.client.base.AbstractVirtualBoxClientHandler; +import com.example.mina.client.base.BaseReceiveMessage; +import com.example.mina.client.base.SendMessage; import com.example.mina.client.entity.AbstractClientMessage; import com.example.mina.server.base.AbstractHardwareDataBuffer; @@ -16,7 +18,7 @@ public class AeroflexClientHandler extends AbstractVirtualBoxClientHandler { } @Override - protected boolean handleCommandResponse(byte[] cmd, byte[] response, int responseLen) { + protected boolean handleCommandResponse(SendMessage sendMessage, BaseReceiveMessage receiveMessage) { return false; } } diff --git a/src/main/java/com/example/mina/client/box/lte3000/Lte3000ByteDecoder.java b/src/main/java/com/example/mina/client/box/lte3000/Lte3000ByteDecoder.java index 557a572..415a53c 100644 --- a/src/main/java/com/example/mina/client/box/lte3000/Lte3000ByteDecoder.java +++ b/src/main/java/com/example/mina/client/box/lte3000/Lte3000ByteDecoder.java @@ -24,6 +24,8 @@ public class Lte3000ByteDecoder extends ProtocolDecoderAdapter { in.get(bytes); - out.write(bytes); + Lte3000ReceiveMessage receiveMessage = Lte3000ReceiveMessage.builder().receiveMessage(bytes).build(); + + out.write(receiveMessage); } } diff --git a/src/main/java/com/example/mina/client/box/lte3000/Lte3000ClientHandler.java b/src/main/java/com/example/mina/client/box/lte3000/Lte3000ClientHandler.java index 8516bea..d8296e6 100644 --- a/src/main/java/com/example/mina/client/box/lte3000/Lte3000ClientHandler.java +++ b/src/main/java/com/example/mina/client/box/lte3000/Lte3000ClientHandler.java @@ -1,6 +1,8 @@ package com.example.mina.client.box.lte3000; import com.example.mina.client.base.AbstractVirtualBoxClientHandler; +import com.example.mina.client.base.BaseReceiveMessage; +import com.example.mina.client.base.SendMessage; import com.example.mina.client.entity.AbstractClientMessage; import com.example.mina.server.base.AbstractHardwareDataBuffer; import com.example.mina.server.util.Lte3000CommandHelper; @@ -12,7 +14,7 @@ import org.apache.mina.core.session.IoSession; * @date 2021/3/10 */ @Slf4j -public class Lte3000ClientHandler extends AbstractVirtualBoxClientHandler { +public class Lte3000ClientHandler extends AbstractVirtualBoxClientHandler { public Lte3000ClientHandler(AbstractClientMessage clientMessage, AbstractHardwareDataBuffer abstractHardwareDataBuffer) { @@ -29,7 +31,10 @@ public class Lte3000ClientHandler extends AbstractVirtualBoxClientHandler { } @Override - protected boolean handleCommandResponse(byte[] cmd, byte[] response, int responseLen) { + protected boolean handleCommandResponse(SendMessage sendMessage, BaseReceiveMessage receiveMessage) { + byte[] cmd = sendMessage.getSendMessage(); + byte[] response = receiveMessage.getReceiveMessage(); + int responseLen = response.length; if (response[0] != Lte3000CommandHelper.ACK || responseLen < 6) { return false; } diff --git a/src/main/java/com/example/mina/client/box/lte3000/Lte3000ReceiveMessage.java b/src/main/java/com/example/mina/client/box/lte3000/Lte3000ReceiveMessage.java new file mode 100644 index 0000000..9afdc48 --- /dev/null +++ b/src/main/java/com/example/mina/client/box/lte3000/Lte3000ReceiveMessage.java @@ -0,0 +1,17 @@ +package com.example.mina.client.box.lte3000; + +import com.example.mina.client.base.BaseReceiveMessage; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * @author dy + * @date 2021/3/12 + */ +@SuperBuilder +@Data +@AllArgsConstructor +public class Lte3000ReceiveMessage extends BaseReceiveMessage { +} -- libgit2 0.21.2