Commit d7e6a91061cf98fa779a7da7a64c4b63e493c453
1 parent
d031a58b
Exists in
develop
fix: 不报错
Showing
8 changed files
with
235 additions
and
229 deletions
Show diff stats
src/main/java/com/example/mina/box/lte3000/Lte3000CodecFactory.java
0 → 100644
@@ -0,0 +1,70 @@ | @@ -0,0 +1,70 @@ | ||
1 | +package com.example.mina.box.lte3000; | ||
2 | + | ||
3 | +import com.example.mina.box.lte3000.Lte3000RequestMessage; | ||
4 | +import com.example.mina.box.lte3000.Lte3000ResponseMessage; | ||
5 | +import org.apache.mina.core.buffer.IoBuffer; | ||
6 | +import org.apache.mina.core.session.IoSession; | ||
7 | +import org.apache.mina.filter.codec.*; | ||
8 | + | ||
9 | +/** | ||
10 | + * @author 杜云山 | ||
11 | + * @date 20/07/07 | ||
12 | + */ | ||
13 | +public class Lte3000CodecFactory implements ProtocolCodecFactory { | ||
14 | + | ||
15 | + @Override | ||
16 | + public ProtocolEncoder getEncoder(IoSession session) { | ||
17 | + return new Lte3000MessageEncoder(); | ||
18 | + } | ||
19 | + | ||
20 | + @Override | ||
21 | + public ProtocolDecoder getDecoder(IoSession session) { | ||
22 | + return new Lte3000MessageDecoder(); | ||
23 | + } | ||
24 | + | ||
25 | + static class Lte3000MessageEncoder implements ProtocolEncoder { | ||
26 | + | ||
27 | + @Override | ||
28 | + public void encode(IoSession session, Object message, ProtocolEncoderOutput out) { | ||
29 | + | ||
30 | + if (message instanceof Lte3000ResponseMessage) { | ||
31 | + | ||
32 | + byte[] result = ((Lte3000ResponseMessage) message).getResult(); | ||
33 | + session.write(IoBuffer.wrap(result)); | ||
34 | + } | ||
35 | + } | ||
36 | + | ||
37 | + @Override | ||
38 | + public void dispose(IoSession session) { | ||
39 | + } | ||
40 | + | ||
41 | + } | ||
42 | + | ||
43 | + static class Lte3000MessageDecoder implements ProtocolDecoder { | ||
44 | + | ||
45 | + @Override | ||
46 | + public void decode(IoSession session, IoBuffer in, ProtocolDecoderOutput out) throws Exception { | ||
47 | + | ||
48 | + byte[] bytes = new byte[in.limit()]; | ||
49 | + in.get(bytes); | ||
50 | + | ||
51 | + Lte3000RequestMessage requestMessage = Lte3000RequestMessage.builder() | ||
52 | + .cmd(new String(bytes)) | ||
53 | + .build(); | ||
54 | + | ||
55 | + out.write(requestMessage); | ||
56 | + } | ||
57 | + | ||
58 | + @Override | ||
59 | + public void finishDecode(IoSession session, ProtocolDecoderOutput out) throws Exception { | ||
60 | + | ||
61 | + } | ||
62 | + | ||
63 | + @Override | ||
64 | + public void dispose(IoSession session) throws Exception { | ||
65 | + | ||
66 | + } | ||
67 | + | ||
68 | + } | ||
69 | + | ||
70 | +} |
src/main/java/com/example/mina/box/lte3000/Lte3000RequestMessage.java
0 → 100644
@@ -0,0 +1,19 @@ | @@ -0,0 +1,19 @@ | ||
1 | +package com.example.mina.box.lte3000; | ||
2 | + | ||
3 | +import com.example.mina.base.BaseRequestMessage; | ||
4 | +import lombok.AllArgsConstructor; | ||
5 | +import lombok.Data; | ||
6 | +import lombok.EqualsAndHashCode; | ||
7 | +import lombok.experimental.SuperBuilder; | ||
8 | + | ||
9 | +/** | ||
10 | + * @author 杜云山 | ||
11 | + * @date 21/03/08 | ||
12 | + */ | ||
13 | +@EqualsAndHashCode(callSuper = true) | ||
14 | +@SuperBuilder | ||
15 | +@Data | ||
16 | +@AllArgsConstructor | ||
17 | +public class Lte3000RequestMessage extends BaseRequestMessage { | ||
18 | + | ||
19 | +} |
src/main/java/com/example/mina/box/lte3000/Lte3000ResponseMessage.java
0 → 100644
@@ -0,0 +1,19 @@ | @@ -0,0 +1,19 @@ | ||
1 | +package com.example.mina.box.lte3000; | ||
2 | + | ||
3 | +import com.example.mina.base.BaseResponseMessage; | ||
4 | +import lombok.AllArgsConstructor; | ||
5 | +import lombok.Data; | ||
6 | +import lombok.EqualsAndHashCode; | ||
7 | +import lombok.experimental.SuperBuilder; | ||
8 | + | ||
9 | +/** | ||
10 | + * @author 杜云山 | ||
11 | + * @date 21/03/08 | ||
12 | + */ | ||
13 | +@EqualsAndHashCode(callSuper = true) | ||
14 | +@SuperBuilder | ||
15 | +@Data | ||
16 | +@AllArgsConstructor | ||
17 | +public class Lte3000ResponseMessage extends BaseResponseMessage { | ||
18 | + | ||
19 | +} |
src/main/java/com/example/mina/box/lte3000/Lte3000VirtualBoxHandler.java
0 → 100644
@@ -0,0 +1,104 @@ | @@ -0,0 +1,104 @@ | ||
1 | +package com.example.mina.box.lte3000; | ||
2 | + | ||
3 | +import com.example.mina.base.AbstractVirtualBoxHandler; | ||
4 | + | ||
5 | +import com.example.mina.base.BaseRequestMessage; | ||
6 | +import com.example.mina.base.BaseResponseMessage; | ||
7 | +import com.example.mina.box.aeroflex.AeroflexRequestMessage; | ||
8 | +import com.example.mina.box.aeroflex.AeroflexResponseMessage; | ||
9 | +import com.example.mina.util.CommandHelper; | ||
10 | +import com.example.mina.util.LogUtils; | ||
11 | +import com.example.mina.entity.Lte3000DataBuffer; | ||
12 | +import com.example.mina.helper.Lte3000CommandHelper; | ||
13 | +import lombok.extern.slf4j.Slf4j; | ||
14 | +import org.apache.mina.core.buffer.IoBuffer; | ||
15 | +import org.apache.mina.core.session.IoSession; | ||
16 | + | ||
17 | +/** | ||
18 | + * @author 杜云山 | ||
19 | + * @date 21/03/05 | ||
20 | + */ | ||
21 | +@Slf4j | ||
22 | +public class Lte3000VirtualBoxHandler extends AbstractVirtualBoxHandler<Lte3000RequestMessage, Lte3000ResponseMessage> { | ||
23 | + | ||
24 | + private static final byte[] Response_46;// = "Fv7.46 Pv2.15 LTE2250/032X032".getBytes(); | ||
25 | + private static final byte[] Response_53 = new byte[]{0x06, 0x30, 0x30, 0x53, 0x03, 0x56}; | ||
26 | + private static final byte[] Response_58 = new byte[]{0x06, 0x30, 0x30, 0x58, 0x47, 0x4D, 0x4F, 0x03, 0x18}; | ||
27 | + | ||
28 | + static { | ||
29 | + byte[] bs = "Fv7.46 Pv2.15 XRM2250/032X064".getBytes(); | ||
30 | + Response_46 = new byte[bs.length + 6]; | ||
31 | + System.arraycopy(bs, 0, Response_46, 4, bs.length); | ||
32 | + Response_46[0] = 0x06; | ||
33 | + Response_46[1] = 0x30; | ||
34 | + Response_46[2] = 0x30; | ||
35 | + Response_46[3] = 0x46; | ||
36 | + Response_46[bs.length + 4] = 0x03; | ||
37 | + Lte3000CommandHelper.setCHK(Response_46); | ||
38 | + } | ||
39 | + | ||
40 | + private Lte3000DataBuffer dataBuffer; | ||
41 | + | ||
42 | + public Lte3000VirtualBoxHandler() { | ||
43 | + this.initMatrix(); | ||
44 | + } | ||
45 | + | ||
46 | + @Override | ||
47 | + protected void initMatrix() { | ||
48 | + | ||
49 | + int row = 32; | ||
50 | + int col = 32; | ||
51 | + int maxAttenuate = 30; | ||
52 | + | ||
53 | + dataBuffer = new Lte3000DataBuffer(row, col,maxAttenuate); | ||
54 | + } | ||
55 | + | ||
56 | + private int getBcdPort(byte a, byte b, byte c) { | ||
57 | + return (CommandHelper.BCD_REV[a] - 30) * 100 + (CommandHelper.BCD_REV[b] - 30) * 10 + (CommandHelper.BCD_REV[c] - 30); | ||
58 | + } | ||
59 | + private int getBcdAttn(byte a, byte b) { | ||
60 | + return (CommandHelper.BCD_REV[a] - 30) * 10 + (CommandHelper.BCD_REV[b] - 30); | ||
61 | + } | ||
62 | + | ||
63 | + @Override | ||
64 | + protected Lte3000ResponseMessage handleMessage(Lte3000RequestMessage requestMessage) { | ||
65 | + return null; | ||
66 | + } | ||
67 | + | ||
68 | + @Override | ||
69 | + public void messageReceived(IoSession session, Object message) { | ||
70 | + | ||
71 | + if (message instanceof Lte3000RequestMessage) { | ||
72 | + | ||
73 | + Lte3000ResponseMessage responseMessage = handleMessage((Lte3000RequestMessage) message); | ||
74 | + session.write(responseMessage); | ||
75 | + } | ||
76 | + } | ||
77 | + | ||
78 | + | ||
79 | + | ||
80 | + @Override | ||
81 | + public void sessionCreated(IoSession session) { | ||
82 | + | ||
83 | + log.info("--- abstractVirtual server session created"); | ||
84 | + } | ||
85 | + | ||
86 | + @Override | ||
87 | + public void sessionOpened(IoSession session) { | ||
88 | + | ||
89 | + log.info("--- abstractVirtual server session Opened"); | ||
90 | + } | ||
91 | + | ||
92 | + @Override | ||
93 | + public void sessionClosed(IoSession session) { | ||
94 | + | ||
95 | + log.info("--- abstractVirtual server session Closed"); | ||
96 | + } | ||
97 | + | ||
98 | + @Override | ||
99 | + public void messageSent(IoSession session, Object message) { | ||
100 | + | ||
101 | + log.info("--- abstractVirtual 发送数据成功!{}", message); | ||
102 | + } | ||
103 | + | ||
104 | +} |
src/main/java/com/example/mina/box/lte3000/Lte3000VirtualBoxServer.java
0 → 100644
@@ -0,0 +1,18 @@ | @@ -0,0 +1,18 @@ | ||
1 | +package com.example.mina.box.lte3000; | ||
2 | + | ||
3 | +import com.example.mina.base.AbstractVirtualBoxServer; | ||
4 | +import com.example.mina.box.lte3000.Lte3000VirtualBoxHandler; | ||
5 | +import com.example.mina.property.Lte3000VirtualBoxProperties; | ||
6 | +import lombok.extern.slf4j.Slf4j; | ||
7 | +import org.springframework.context.annotation.Configuration; | ||
8 | + | ||
9 | + | ||
10 | +@Slf4j | ||
11 | +@Configuration(proxyBeanMethods = false) | ||
12 | +public class Lte3000VirtualBoxServer extends AbstractVirtualBoxServer { | ||
13 | + | ||
14 | + public Lte3000VirtualBoxServer(Lte3000VirtualBoxProperties lte3000VirtualBoxProperties) { | ||
15 | + super(lte3000VirtualBoxProperties, new Lte3000VirtualBoxHandler(),new Lte3000CodecFactory()); | ||
16 | + } | ||
17 | + | ||
18 | +} |
src/main/java/com/example/mina/box/rbm3000/Rbm3000CodecFactory.java
1 | +/* | ||
1 | package com.example.mina.box.rbm3000; | 2 | package com.example.mina.box.rbm3000; |
2 | 3 | ||
3 | import org.apache.mina.core.buffer.IoBuffer; | 4 | import org.apache.mina.core.buffer.IoBuffer; |
4 | import org.apache.mina.core.session.IoSession; | 5 | import org.apache.mina.core.session.IoSession; |
5 | import org.apache.mina.filter.codec.*; | 6 | import org.apache.mina.filter.codec.*; |
6 | 7 | ||
8 | +*/ | ||
7 | /** | 9 | /** |
8 | * @author 杜云山 | 10 | * @author 杜云山 |
9 | * @date 20/07/07 | 11 | * @date 20/07/07 |
10 | - */ | 12 | + *//* |
13 | + | ||
11 | public class Rbm3000CodecFactory implements ProtocolCodecFactory { | 14 | public class Rbm3000CodecFactory implements ProtocolCodecFactory { |
12 | 15 | ||
13 | @Override | 16 | @Override |
@@ -60,3 +63,4 @@ public class Rbm3000CodecFactory implements ProtocolCodecFactory { | @@ -60,3 +63,4 @@ public class Rbm3000CodecFactory implements ProtocolCodecFactory { | ||
60 | } | 63 | } |
61 | 64 | ||
62 | } | 65 | } |
66 | +*/ |
src/main/java/com/example/mina/boxhandler/Lte3000VirtualBoxHandler.java
No preview for this file type
src/main/java/com/example/mina/boxserver/Lte3000VirtualBoxServer.java
@@ -1,19 +0,0 @@ | @@ -1,19 +0,0 @@ | ||
1 | -package com.example.mina.boxserver; | ||
2 | - | ||
3 | -import com.example.mina.boxhandler.AeroflexVirtualBoxHandler; | ||
4 | -import com.example.mina.boxhandler.Lte3000VirtualBoxHandler; | ||
5 | -import com.example.mina.property.AeroflexVirtualBoxProperties; | ||
6 | -import com.example.mina.property.Lte3000VirtualBoxProperties; | ||
7 | -import lombok.extern.slf4j.Slf4j; | ||
8 | -import org.springframework.context.annotation.Configuration; | ||
9 | - | ||
10 | - | ||
11 | -@Slf4j | ||
12 | -@Configuration(proxyBeanMethods = false) | ||
13 | -public class Lte3000VirtualBoxServer extends AbstractVirtualBoxServer { | ||
14 | - | ||
15 | - public Lte3000VirtualBoxServer(Lte3000VirtualBoxProperties lte3000VirtualBoxProperties) { | ||
16 | - super(lte3000VirtualBoxProperties, new Lte3000VirtualBoxHandler()); | ||
17 | - } | ||
18 | - | ||
19 | -} |