QueryOnlineStateResponse.java
5.03 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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
package com.sunvote.cmd.state;
import com.sunvote.cmd.BaseCmd;
import com.sunvote.cmd.ICmd;
/**
* Created by Elvis on 2017/8/11.
* Email:Eluis@psunsky.com
* Description:
* 模块应答:
* 字节 标识符 描述
* 1 REQUEST_CMD 0xF0 状态类指令应答
* 2 CMD1 命令类型
* 7 返回当前在线状态
* 3 ONLINE 键盘是否在线
* 1 在线
* 2 离线
* 4 IDMODE 基站的识别模式
* 定义同信标变化通知里面的,APP可以不处理此信息
* 5 CHAN 当前频点号
* 6 RSSI 接收到基站的信号强度RSSI值,负数,越小表示信号越大
* 7 TX 1表示刚才1秒内有提交数据过
* 0 表示没有
* 8 RX 1 表示刚才1秒内收到过基站的投票指令(特指投票中)
* 0 表示没有
* 9 BaseID 基站编号
* 10,11 KEYID 当前键盘编号,高位在前(便于改编号时候app获得信息)
* 12-17 KEYSN 6字节键盘SN
*/
public class QueryOnlineStateResponse extends StateBaseCmd {
public final static byte CMD1 = 0x07 ;
public static final int CMD_LENGTH = 17 ;
public QueryOnlineStateResponse(){}
public QueryOnlineStateResponse(QueryOnlineStateRequest request){
parseCmd(request.toBytes());
setCmd(RESPONSE_CMD);
}
/**
* REQUEST_CMD 0xF0 状态类指令应答
*/
private byte cmd = RESPONSE_CMD;
/**
* 命令类型
* 7 返回当前在线状态
*/
private byte cmd1 = 0x07 ;
/**
* ONLINE 键盘是否在线
* 1 在线
* 2 离线
*/
private byte online;
/**
* IDMODE 基站的识别模式
* 定义同信标变化通知里面的,APP可以不处理此信息
*/
private byte idmode;
/**
* 当前频点号
*/
private byte chan;
/**
* 接收到基站的信号强度RSSI值,负数,越小表示信号越大
*/
private byte rssi;
/**
* TX 1表示刚才1秒内有提交数据过
* 0 表示没有
*/
private byte tx;
/**
* RX 1 表示刚才1秒内收到过基站的投票指令(特指投票中)
* 0 表示没有
*/
private byte rx;
/**
* BaseID 基站编号
*/
private byte baseID;
/**
* KEYID 当前键盘编号,高位在前(便于改编号时候app获得信息)
*/
private byte[] keyId = new byte[2];
/**
* KEYSN 6字节键盘SN
*/
private byte[] keySn = new byte[6];
public byte getCmd() {
return cmd;
}
public void setCmd(byte cmd) {
this.cmd = cmd;
}
public byte getCmd1() {
return cmd1;
}
public void setCmd1(byte cmd1) {
this.cmd1 = cmd1;
}
public byte getOnline() {
return online;
}
public void setOnline(byte online) {
this.online = online;
}
public byte getIdmode() {
return idmode;
}
public void setIdmode(byte idmode) {
this.idmode = idmode;
}
public byte getChan() {
return chan;
}
public void setChan(byte chan) {
this.chan = chan;
}
public byte getRssi() {
return rssi;
}
public void setRssi(byte rssi) {
this.rssi = rssi;
}
public byte getTx() {
return tx;
}
public void setTx(byte tx) {
this.tx = tx;
}
public byte getRx() {
return rx;
}
public void setRx(byte rx) {
this.rx = rx;
}
public byte getBaseID() {
return baseID;
}
public void setBaseID(byte baseID) {
this.baseID = baseID;
}
public byte[] getKeyId() {
return keyId;
}
public void setKeyId(byte[] keyId) {
this.keyId = keyId;
}
public byte[] getKeySn() {
return keySn;
}
public void setKeySn(byte[] keySn) {
this.keySn = keySn;
}
@Override
public byte[] toBytes() {
byte[] result = new byte[CMD_LENGTH];
result[0] = cmd;
result[1] = cmd1;
result[2] = online;
result[3] = idmode;
result[4] = chan ;
result[5] = rssi;
result[6] = tx;
result[7] = rx ;
result[8] = baseID ;
for(int i =0 ; i < 2;i++) {
result[9+i] = keyId[i];
}
if(keySn != null) {
for (int i = 0; i < 6; i++) {
result[11 + i] = keySn[i];
}
}
return result;
}
@Override
public ICmd parseCmd(byte[] source, int start) {
if(source != null && source.length > CMD_LENGTH + start){
cmd = source[start + 0];
cmd1 = source[start + 1];
online = source[start + 2];
idmode = source[start + 3];
chan = source[start + 4] ;
rssi = source[start + 5];
tx = source[start + 6];
rx = source[start +7];
baseID = source[start + 8];
for(int i =0 ; i < 2;i++) {
keyId[i] = source[start + 9+i];
}
for(int i=0;i<6;i++){
keySn[i] = source[start + 11 + i];
}
}
return this;
}
}