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 @@ |
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 @@ |
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 @@ |
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 @@ |
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 @@ |
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 | 2 | package com.example.mina.box.rbm3000; |
2 | 3 | |
3 | 4 | import org.apache.mina.core.buffer.IoBuffer; |
4 | 5 | import org.apache.mina.core.session.IoSession; |
5 | 6 | import org.apache.mina.filter.codec.*; |
6 | 7 | |
8 | +*/ | |
7 | 9 | /** |
8 | 10 | * @author 杜云山 |
9 | 11 | * @date 20/07/07 |
10 | - */ | |
12 | + *//* | |
13 | + | |
11 | 14 | public class Rbm3000CodecFactory implements ProtocolCodecFactory { |
12 | 15 | |
13 | 16 | @Override |
... | ... | @@ -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 | -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 | -} |