Lte3000Client.java
2.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
package com.example.mina.client.box.lte3000;
import com.example.mina.client.base.AbstractClient;
import com.example.mina.client.coder.ByteFactory;
import com.example.mina.client.entity.AbstractClientMessage;
import com.example.mina.client.entity.Command;
import com.example.mina.client.entity.Lte3000Message;
import com.example.mina.server.entity.Lte3000DataBuffer;
import com.example.mina.server.util.Lte3000CommandHelper;
/**
* @author dy
* @date 2021/3/10
*/
public class Lte3000Client extends AbstractClient {
@Override
protected void init(AbstractClientMessage abstractClientMessage) {
protocolCodecFactory = new Lte3000ByteFactory();
abstractVirtualBoxClientHandler = new Lte3000ClientHandler(abstractClientMessage, hardwareDataBuffer);
}
@Override
protected void initHardwareDataBuffer() {
hardwareDataBuffer = new Lte3000DataBuffer(32, 32, 30);
}
@Override
protected void initClientMessage() {
abstractClientMessage = new Lte3000Message();
abstractClientMessage.setHost("localhost");
abstractClientMessage.setPort(9102);
for (int i = 0; i < this.hardwareDataBuffer.getMaxRow(); i++) {
abstractClientMessage.getCommands().add(new Command("", Lte3000CommandHelper.genCommandGetCross(i + 1)));
}
// query attenuation
// the LTE attenuation is bound to column
for (int j = 0; j < this.hardwareDataBuffer.getMaxCol(); j++) {
abstractClientMessage.getCommands().add(new Command("", Lte3000CommandHelper.genCommandGetAttn(j + 1)));
}
}
public void setAttenuation(int row, int col, int atten) {
//ioSession.write("abcdfd".getBytes());
byte[] cmd;
if (row == 0) {
cmd = Lte3000CommandHelper.genCommandSetAttn(col, atten);
}else{
cmd = Lte3000CommandHelper.genCommandSetCross(row, col);
}
ioSession.write(cmd);
}
public int getAttenuation(int col) {
return hardwareDataBuffer.getOffset(col);
}
@Override
public Boolean reset() {
return null;
}
@Override
public int[][] getAll() {
return new int[0][];
}
}