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   -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   -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 55 connectFuture.awaitUninterruptibly();
56 56 // 获取连接会话
57 57 this.ioSession = connectFuture.getSession();
58   - setAttenuation(1, 1, 10);
  58 + //setAttenuation(1, 1, 10);
59 59 }
60 60  
61 61 public boolean isConnected() {
... ... @@ -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 73 abstract public Boolean reset();
74 74  
... ...
src/main/java/com/example/mina/client/box/aeroflex/AeroflexByteDecoder.java 0 → 100644
... ... @@ -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 @@
  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 @@
  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 @@
  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 @@
  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 @@
  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 @@
  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 @@
  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 @@
  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   -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 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 5 public class MinaClient {
9 6  
... ...
src/main/java/com/example/mina/client/util/StrUtil.java
... ... @@ -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