Commit 1fe72425b43e629da7f38a59a40b5f8b8dab8031

Authored by 林本磊
1 parent 521dc336
Exists in develop

fix:修改结构

src/main/java/com/example/mina/client/aeroflex/AeroflexClient.java
@@ -1,50 +0,0 @@ @@ -1,50 +0,0 @@
1 -package com.example.mina.client.aeroflex;  
2 -  
3 -import com.example.mina.client.base.AbstractClient;  
4 -import com.example.mina.client.coder.ByteFactory;  
5 -import com.example.mina.client.entity.AbstractClientMessage;  
6 -import com.example.mina.server.entity.AeroflexDataBuffer;  
7 -  
8 -/**  
9 - * @author dy  
10 - * @date 2021/3/10  
11 - */  
12 -public class AeroflexClient extends AbstractClient {  
13 -  
14 - @Override  
15 - protected void init(AbstractClientMessage abstractClientMessage) {  
16 - protocolCodecFactory = new ByteFactory();  
17 - abstractVirtualBoxClientHandler = new AeroflexClientHandler(abstractClientMessage, hardwareDataBuffer);  
18 - }  
19 -  
20 - @Override  
21 - protected void initHardwareDataBuffer() {  
22 - hardwareDataBuffer = new AeroflexDataBuffer(10, 10);  
23 - }  
24 -  
25 - @Override  
26 - protected void initClientMessage() {  
27 -  
28 - }  
29 -  
30 - @Override  
31 - public boolean setAttenuation(int row, int col, int attenuation) {  
32 - return false;  
33 - }  
34 -  
35 - @Override  
36 - public int getAttenuation(int row, int col) {  
37 - return 0;  
38 - }  
39 -  
40 - @Override  
41 - public Boolean reset() {  
42 - return null;  
43 - }  
44 -  
45 - @Override  
46 - public int[][] getAll() {  
47 - return new int[0][];  
48 - }  
49 -  
50 -}  
src/main/java/com/example/mina/client/aeroflex/AeroflexClientHandler.java
@@ -1,23 +0,0 @@ @@ -1,23 +0,0 @@
1 -package com.example.mina.client.aeroflex;  
2 -  
3 -import com.example.mina.client.base.AbstractVirtualBoxClientHandler;  
4 -import com.example.mina.client.entity.AbstractClientMessage;  
5 -import com.example.mina.client.entity.Command;  
6 -import com.example.mina.server.base.AbstractHardwareDataBuffer;  
7 -  
8 -/**  
9 - * @author dy  
10 - * @date 2021/3/10  
11 - */  
12 -public class AeroflexClientHandler extends AbstractVirtualBoxClientHandler {  
13 -  
14 - public AeroflexClientHandler(AbstractClientMessage clientMessage,  
15 - AbstractHardwareDataBuffer abstractHardwareDataBuffer) {  
16 - super(clientMessage, abstractHardwareDataBuffer);  
17 - }  
18 -  
19 - @Override  
20 - protected boolean handleCommandResponse(byte[] cmd, byte[] response, int responseLen) {  
21 - return false;  
22 - }  
23 -}  
src/main/java/com/example/mina/client/base/AbstractClient.java
@@ -55,7 +55,7 @@ public abstract class AbstractClient { @@ -55,7 +55,7 @@ public abstract class AbstractClient {
55 connectFuture.awaitUninterruptibly(); 55 connectFuture.awaitUninterruptibly();
56 // 获取连接会话 56 // 获取连接会话
57 this.ioSession = connectFuture.getSession(); 57 this.ioSession = connectFuture.getSession();
58 - setAttenuation(1, 1, 10); 58 + //setAttenuation(1, 1, 10);
59 } 59 }
60 60
61 public boolean isConnected() { 61 public boolean isConnected() {
@@ -66,9 +66,9 @@ public abstract class AbstractClient { @@ -66,9 +66,9 @@ public abstract class AbstractClient {
66 66
67 } 67 }
68 68
69 - abstract public boolean setAttenuation(int row, int col, int attenuation); 69 + //abstract public boolean setAttenuation(int row, int col, int attenuation);
70 70
71 - abstract public int getAttenuation(int row, int col); 71 + //abstract public int getAttenuation(int row, int col);
72 72
73 abstract public Boolean reset(); 73 abstract public Boolean reset();
74 74
src/main/java/com/example/mina/client/box/aeroflex/AeroflexByteDecoder.java 0 → 100644
@@ -0,0 +1,29 @@ @@ -0,0 +1,29 @@
  1 +package com.example.mina.client.box.aeroflex;
  2 +
  3 +import org.apache.mina.core.buffer.IoBuffer;
  4 +import org.apache.mina.core.session.IoSession;
  5 +import org.apache.mina.filter.codec.ProtocolDecoder;
  6 +import org.apache.mina.filter.codec.ProtocolDecoderAdapter;
  7 +import org.apache.mina.filter.codec.ProtocolDecoderOutput;
  8 +import org.slf4j.Logger;
  9 +import org.slf4j.LoggerFactory;
  10 +
  11 +/**
  12 + * @author dy
  13 + * @date 2021/3/3
  14 + */
  15 +public class AeroflexByteDecoder extends ProtocolDecoderAdapter {
  16 + //打印日志信息
  17 + private final static Logger log = LoggerFactory
  18 + .getLogger(ProtocolDecoder.class);
  19 +
  20 + @Override
  21 + public void decode(IoSession session, IoBuffer in, ProtocolDecoderOutput out) throws Exception {
  22 + int limit = in.limit();
  23 + byte[] bytes = new byte[limit];
  24 +
  25 + in.get(bytes);
  26 +
  27 + out.write(bytes);
  28 + }
  29 +}
src/main/java/com/example/mina/client/box/aeroflex/AeroflexByteEnCoder.java 0 → 100644
@@ -0,0 +1,39 @@ @@ -0,0 +1,39 @@
  1 +package com.example.mina.client.box.aeroflex;
  2 +
  3 +import org.apache.mina.core.buffer.IoBuffer;
  4 +import org.apache.mina.core.session.IoSession;
  5 +import org.apache.mina.filter.codec.ProtocolEncoder;
  6 +import org.apache.mina.filter.codec.ProtocolEncoderAdapter;
  7 +import org.apache.mina.filter.codec.ProtocolEncoderOutput;
  8 +import org.slf4j.Logger;
  9 +import org.slf4j.LoggerFactory;
  10 +
  11 +/**
  12 + * @author dy
  13 + * @date 2021/3/3
  14 + */
  15 +public class AeroflexByteEnCoder extends ProtocolEncoderAdapter {
  16 + //用于打印日志信息
  17 + private final static Logger log = LoggerFactory
  18 + .getLogger(ProtocolEncoder.class);
  19 +
  20 + //编码 将数据包转成字节数组
  21 + @Override
  22 + public void encode(IoSession session, Object message, ProtocolEncoderOutput out) throws Exception {
  23 + byte[] bytes = (byte[]) message;
  24 +
  25 + IoBuffer buffer = IoBuffer.allocate(bytes.length);
  26 + buffer.setAutoExpand(true);
  27 +
  28 + // 将数据放入缓冲IoBuffer
  29 + buffer.put(bytes);
  30 + // 写状态切换到读状态
  31 + buffer.flip();
  32 +
  33 + out.write(buffer);
  34 +// out.flush();
  35 +//
  36 +// buffer.free();
  37 + }
  38 +
  39 +}
src/main/java/com/example/mina/client/box/aeroflex/AeroflexByteFactory.java 0 → 100644
@@ -0,0 +1,34 @@ @@ -0,0 +1,34 @@
  1 +package com.example.mina.client.box.aeroflex;
  2 +
  3 +import org.apache.mina.core.session.IoSession;
  4 +import org.apache.mina.filter.codec.ProtocolCodecFactory;
  5 +import org.apache.mina.filter.codec.ProtocolDecoder;
  6 +import org.apache.mina.filter.codec.ProtocolEncoder;
  7 +
  8 +/**
  9 + * @author dy
  10 + * @date 2021/3/3
  11 + */
  12 +public class AeroflexByteFactory implements ProtocolCodecFactory {
  13 + private final AeroflexByteDecoder decoder;
  14 + private final AeroflexByteEnCoder encoder;
  15 +
  16 + //构造
  17 + public AeroflexByteFactory() {
  18 + encoder = new AeroflexByteEnCoder();
  19 + decoder = new AeroflexByteDecoder();
  20 + }
  21 +
  22 + @Override
  23 + public ProtocolDecoder getDecoder(IoSession arg0) throws Exception {
  24 + // TODO Auto-generated method stub
  25 + return decoder;
  26 + }
  27 +
  28 + @Override
  29 + public ProtocolEncoder getEncoder(IoSession arg0) throws Exception {
  30 + // TODO Auto-generated method stub
  31 + return encoder;
  32 + }
  33 +
  34 +}
src/main/java/com/example/mina/client/box/aeroflex/AeroflexClient.java 0 → 100644
@@ -0,0 +1,50 @@ @@ -0,0 +1,50 @@
  1 +package com.example.mina.client.box.aeroflex;
  2 +
  3 +import com.example.mina.client.base.AbstractClient;
  4 +import com.example.mina.client.coder.ByteFactory;
  5 +import com.example.mina.client.entity.AbstractClientMessage;
  6 +import com.example.mina.server.entity.AeroflexDataBuffer;
  7 +
  8 +/**
  9 + * @author dy
  10 + * @date 2021/3/10
  11 + */
  12 +public class AeroflexClient extends AbstractClient {
  13 +
  14 + @Override
  15 + protected void init(AbstractClientMessage abstractClientMessage) {
  16 + protocolCodecFactory = new ByteFactory();
  17 + abstractVirtualBoxClientHandler = new AeroflexClientHandler(abstractClientMessage, hardwareDataBuffer);
  18 + }
  19 +
  20 + @Override
  21 + protected void initHardwareDataBuffer() {
  22 + hardwareDataBuffer = new AeroflexDataBuffer(10, 10);
  23 + }
  24 +
  25 + @Override
  26 + protected void initClientMessage() {
  27 +
  28 + }
  29 +
  30 + /*@Override
  31 + public boolean setAttenuation(int row, int col, int attenuation) {
  32 + return false;
  33 + }
  34 +
  35 + @Override
  36 + public int getAttenuation(int row, int col) {
  37 + return 0;
  38 + }*/
  39 +
  40 + @Override
  41 + public Boolean reset() {
  42 + return null;
  43 + }
  44 +
  45 + @Override
  46 + public int[][] getAll() {
  47 + return new int[0][];
  48 + }
  49 +
  50 +}
src/main/java/com/example/mina/client/box/aeroflex/AeroflexClientHandler.java 0 → 100644
@@ -0,0 +1,22 @@ @@ -0,0 +1,22 @@
  1 +package com.example.mina.client.box.aeroflex;
  2 +
  3 +import com.example.mina.client.base.AbstractVirtualBoxClientHandler;
  4 +import com.example.mina.client.entity.AbstractClientMessage;
  5 +import com.example.mina.server.base.AbstractHardwareDataBuffer;
  6 +
  7 +/**
  8 + * @author dy
  9 + * @date 2021/3/10
  10 + */
  11 +public class AeroflexClientHandler extends AbstractVirtualBoxClientHandler {
  12 +
  13 + public AeroflexClientHandler(AbstractClientMessage clientMessage,
  14 + AbstractHardwareDataBuffer abstractHardwareDataBuffer) {
  15 + super(clientMessage, abstractHardwareDataBuffer);
  16 + }
  17 +
  18 + @Override
  19 + protected boolean handleCommandResponse(byte[] cmd, byte[] response, int responseLen) {
  20 + return false;
  21 + }
  22 +}
src/main/java/com/example/mina/client/box/lte3000/Lte3000ByteDecoder.java 0 → 100644
@@ -0,0 +1,29 @@ @@ -0,0 +1,29 @@
  1 +package com.example.mina.client.box.lte3000;
  2 +
  3 +import org.apache.mina.core.buffer.IoBuffer;
  4 +import org.apache.mina.core.session.IoSession;
  5 +import org.apache.mina.filter.codec.ProtocolDecoder;
  6 +import org.apache.mina.filter.codec.ProtocolDecoderAdapter;
  7 +import org.apache.mina.filter.codec.ProtocolDecoderOutput;
  8 +import org.slf4j.Logger;
  9 +import org.slf4j.LoggerFactory;
  10 +
  11 +/**
  12 + * @author dy
  13 + * @date 2021/3/3
  14 + */
  15 +public class Lte3000ByteDecoder extends ProtocolDecoderAdapter {
  16 + //打印日志信息
  17 + private final static Logger log = LoggerFactory
  18 + .getLogger(ProtocolDecoder.class);
  19 +
  20 + @Override
  21 + public void decode(IoSession session, IoBuffer in, ProtocolDecoderOutput out) throws Exception {
  22 + int limit = in.limit();
  23 + byte[] bytes = new byte[limit];
  24 +
  25 + in.get(bytes);
  26 +
  27 + out.write(bytes);
  28 + }
  29 +}
src/main/java/com/example/mina/client/box/lte3000/Lte3000ByteEnCoder.java 0 → 100644
@@ -0,0 +1,39 @@ @@ -0,0 +1,39 @@
  1 +package com.example.mina.client.box.lte3000;
  2 +
  3 +import org.apache.mina.core.buffer.IoBuffer;
  4 +import org.apache.mina.core.session.IoSession;
  5 +import org.apache.mina.filter.codec.ProtocolEncoder;
  6 +import org.apache.mina.filter.codec.ProtocolEncoderAdapter;
  7 +import org.apache.mina.filter.codec.ProtocolEncoderOutput;
  8 +import org.slf4j.Logger;
  9 +import org.slf4j.LoggerFactory;
  10 +
  11 +/**
  12 + * @author dy
  13 + * @date 2021/3/3
  14 + */
  15 +public class Lte3000ByteEnCoder extends ProtocolEncoderAdapter {
  16 + //用于打印日志信息
  17 + private final static Logger log = LoggerFactory
  18 + .getLogger(ProtocolEncoder.class);
  19 +
  20 + //编码 将数据包转成字节数组
  21 + @Override
  22 + public void encode(IoSession session, Object message, ProtocolEncoderOutput out) throws Exception {
  23 + byte[] bytes = (byte[]) message;
  24 +
  25 + IoBuffer buffer = IoBuffer.allocate(bytes.length);
  26 + buffer.setAutoExpand(true);
  27 +
  28 + // 将数据放入缓冲IoBuffer
  29 + buffer.put(bytes);
  30 + // 写状态切换到读状态
  31 + buffer.flip();
  32 +
  33 + out.write(buffer);
  34 +// out.flush();
  35 +//
  36 +// buffer.free();
  37 + }
  38 +
  39 +}
src/main/java/com/example/mina/client/box/lte3000/Lte3000ByteFactory.java 0 → 100644
@@ -0,0 +1,34 @@ @@ -0,0 +1,34 @@
  1 +package com.example.mina.client.box.lte3000;
  2 +
  3 +import org.apache.mina.core.session.IoSession;
  4 +import org.apache.mina.filter.codec.ProtocolCodecFactory;
  5 +import org.apache.mina.filter.codec.ProtocolDecoder;
  6 +import org.apache.mina.filter.codec.ProtocolEncoder;
  7 +
  8 +/**
  9 + * @author dy
  10 + * @date 2021/3/3
  11 + */
  12 +public class Lte3000ByteFactory implements ProtocolCodecFactory {
  13 + private final Lte3000ByteDecoder decoder;
  14 + private final Lte3000ByteEnCoder encoder;
  15 +
  16 + //构造
  17 + public Lte3000ByteFactory() {
  18 + encoder = new Lte3000ByteEnCoder();
  19 + decoder = new Lte3000ByteDecoder();
  20 + }
  21 +
  22 + @Override
  23 + public ProtocolDecoder getDecoder(IoSession arg0) throws Exception {
  24 + // TODO Auto-generated method stub
  25 + return decoder;
  26 + }
  27 +
  28 + @Override
  29 + public ProtocolEncoder getEncoder(IoSession arg0) throws Exception {
  30 + // TODO Auto-generated method stub
  31 + return encoder;
  32 + }
  33 +
  34 +}
src/main/java/com/example/mina/client/box/lte3000/Lte3000Client.java 0 → 100644
@@ -0,0 +1,72 @@ @@ -0,0 +1,72 @@
  1 +package com.example.mina.client.box.lte3000;
  2 +
  3 +import com.example.mina.client.base.AbstractClient;
  4 +import com.example.mina.client.coder.ByteFactory;
  5 +import com.example.mina.client.entity.AbstractClientMessage;
  6 +import com.example.mina.client.entity.Command;
  7 +import com.example.mina.client.entity.Lte3000Message;
  8 +import com.example.mina.server.entity.Lte3000DataBuffer;
  9 +import com.example.mina.server.util.Lte3000CommandHelper;
  10 +
  11 +/**
  12 + * @author dy
  13 + * @date 2021/3/10
  14 + */
  15 +public class Lte3000Client extends AbstractClient {
  16 +
  17 + @Override
  18 + protected void init(AbstractClientMessage abstractClientMessage) {
  19 + protocolCodecFactory = new Lte3000ByteFactory();
  20 + abstractVirtualBoxClientHandler = new Lte3000ClientHandler(abstractClientMessage, hardwareDataBuffer);
  21 + }
  22 +
  23 + @Override
  24 + protected void initHardwareDataBuffer() {
  25 + hardwareDataBuffer = new Lte3000DataBuffer(32, 32, 30);
  26 + }
  27 +
  28 + @Override
  29 + protected void initClientMessage() {
  30 + abstractClientMessage = new Lte3000Message();
  31 + abstractClientMessage.setHost("localhost");
  32 + abstractClientMessage.setPort(9102);
  33 + for (int i = 0; i < this.hardwareDataBuffer.getMaxRow(); i++) {
  34 + abstractClientMessage.getCommands().add(new Command("", Lte3000CommandHelper.genCommandGetCross(i + 1)));
  35 + }
  36 +
  37 + // query attenuation
  38 + // the LTE attenuation is bound to column
  39 + for (int j = 0; j < this.hardwareDataBuffer.getMaxCol(); j++) {
  40 + abstractClientMessage.getCommands().add(new Command("", Lte3000CommandHelper.genCommandGetAttn(j + 1)));
  41 + }
  42 +
  43 + }
  44 +
  45 +
  46 + public void setAttenuation(int row, int col, int atten) {
  47 + //ioSession.write("abcdfd".getBytes());
  48 + byte[] cmd;
  49 + if (row == 0) {
  50 + cmd = Lte3000CommandHelper.genCommandSetAttn(col, atten);
  51 + }else{
  52 + cmd = Lte3000CommandHelper.genCommandSetCross(row, col);
  53 + }
  54 + ioSession.write(cmd);
  55 + }
  56 +
  57 +
  58 + public int getAttenuation(int col) {
  59 + return hardwareDataBuffer.getOffset(col);
  60 + }
  61 +
  62 + @Override
  63 + public Boolean reset() {
  64 + return null;
  65 + }
  66 +
  67 + @Override
  68 + public int[][] getAll() {
  69 + return new int[0][];
  70 + }
  71 +
  72 +}
src/main/java/com/example/mina/client/box/lte3000/Lte3000ClientHandler.java 0 → 100644
No preview for this file type
src/main/java/com/example/mina/client/lte3000/Lte3000Client.java
@@ -1,66 +0,0 @@ @@ -1,66 +0,0 @@
1 -package com.example.mina.client.lte3000;  
2 -  
3 -import com.example.mina.client.base.AbstractClient;  
4 -import com.example.mina.client.coder.ByteFactory;  
5 -import com.example.mina.client.entity.AbstractClientMessage;  
6 -import com.example.mina.client.entity.Command;  
7 -import com.example.mina.client.entity.Lte3000Message;  
8 -import com.example.mina.server.entity.Lte3000DataBuffer;  
9 -import com.example.mina.server.util.Lte3000CommandHelper;  
10 -  
11 -/**  
12 - * @author dy  
13 - * @date 2021/3/10  
14 - */  
15 -public class Lte3000Client extends AbstractClient {  
16 -  
17 - @Override  
18 - protected void init(AbstractClientMessage abstractClientMessage) {  
19 - protocolCodecFactory = new ByteFactory();  
20 - abstractVirtualBoxClientHandler = new Lte3000ClientHandler(abstractClientMessage, hardwareDataBuffer);  
21 - }  
22 -  
23 - @Override  
24 - protected void initHardwareDataBuffer() {  
25 - hardwareDataBuffer = new Lte3000DataBuffer(32, 32, 30);  
26 - }  
27 -  
28 - @Override  
29 - protected void initClientMessage() {  
30 - abstractClientMessage = new Lte3000Message();  
31 - abstractClientMessage.setHost("localhost");  
32 - abstractClientMessage.setPort(9102);  
33 - for (int i = 0; i < this.hardwareDataBuffer.getMaxRow(); i++) {  
34 - abstractClientMessage.getCommands().add(new Command("", Lte3000CommandHelper.genCommandGetCross(i + 1)));  
35 - }  
36 -  
37 - // query attenuation  
38 - // the LTE attenuation is bound to column  
39 - for (int j = 0; j < this.hardwareDataBuffer.getMaxCol(); j++) {  
40 - abstractClientMessage.getCommands().add(new Command("", Lte3000CommandHelper.genCommandGetAttn(j + 1)));  
41 - }  
42 -  
43 - }  
44 -  
45 - @Override  
46 - public boolean setAttenuation(int row, int col, int attenuation) {  
47 - ioSession.write("abcdfd".getBytes());  
48 - return false;  
49 - }  
50 -  
51 - @Override  
52 - public int getAttenuation(int row, int col) {  
53 - return 0;  
54 - }  
55 -  
56 - @Override  
57 - public Boolean reset() {  
58 - return null;  
59 - }  
60 -  
61 - @Override  
62 - public int[][] getAll() {  
63 - return new int[0][];  
64 - }  
65 -  
66 -}  
src/main/java/com/example/mina/client/lte3000/Lte3000ClientHandler.java
No preview for this file type
src/main/java/com/example/mina/client/test/MinaClient.java
1 package com.example.mina.client.test; 1 package com.example.mina.client.test;
2 2
3 -import com.example.mina.client.aeroflex.AeroflexClient;  
4 -import com.example.mina.client.aeroflex.AeroflexClientHandler;  
5 -import com.example.mina.client.coder.ByteFactory;  
6 -import com.example.mina.client.lte3000.Lte3000Client; 3 +import com.example.mina.client.box.lte3000.Lte3000Client;
7 4
8 public class MinaClient { 5 public class MinaClient {
9 6
src/main/java/com/example/mina/client/util/StrUtil.java
@@ -1,4 +0,0 @@ @@ -1,4 +0,0 @@
1 -package com.example.mina.client.util;  
2 -  
3 -public class StrUtil {  
4 -}  
src/main/java/com/example/mina/server/box/lte3000/Lte3000VirtualBoxHandler.java
No preview for this file type