Rev 1631 | Rev 1689 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1631 | Rev 1688 | ||
---|---|---|---|
Line 15... | Line 15... | ||
15 | import dongfang.mkt.frames.DebugResponseFrame; |
15 | import dongfang.mkt.frames.DebugResponseFrame; |
16 | import dongfang.mkt.frames.MotorTestResponseFrame; |
16 | import dongfang.mkt.frames.MotorTestResponseFrame; |
17 | import dongfang.mkt.frames.OSDDataResponseFrame; |
17 | import dongfang.mkt.frames.OSDDataResponseFrame; |
18 | import dongfang.mkt.frames.ReadExternalControlResponseFrame; |
18 | import dongfang.mkt.frames.ReadExternalControlResponseFrame; |
19 | import dongfang.mkt.frames.ReadIMUConfigurationResponseFrame; |
19 | import dongfang.mkt.frames.ReadIMUConfigurationResponseFrame; |
- | 20 | import dongfang.mkt.frames.ReadMotorMixerResponseFrame; |
|
20 | import dongfang.mkt.frames.ResponseFrame; |
21 | import dongfang.mkt.frames.ResponseFrame; |
21 | import dongfang.mkt.frames.SetCompassHeadingResponseFrame; |
22 | import dongfang.mkt.frames.SetCompassHeadingResponseFrame; |
22 | import dongfang.mkt.frames.ReadParamSetResponseFrame; |
23 | import dongfang.mkt.frames.ReadParamSetResponseFrame; |
23 | import dongfang.mkt.frames.WriteIMUConfigurationResponseFrame; |
24 | import dongfang.mkt.frames.WriteIMUConfigurationResponseFrame; |
- | 25 | import dongfang.mkt.frames.WriteMotorMixerResponseFrame; |
|
24 | import dongfang.mkt.frames.WriteParamSetResponseFrame; |
26 | import dongfang.mkt.frames.WriteParamSetResponseFrame; |
25 | import dongfang.mkt.frames.VariablesResponseFrame; |
27 | import dongfang.mkt.frames.ReadVariablesResponseFrame; |
26 | import dongfang.mkt.frames.VersionResponseFrame; |
28 | import dongfang.mkt.frames.VersionResponseFrame; |
Line 27... | Line 29... | ||
27 | 29 | ||
28 | public class MKInputStream extends InputStream { |
30 | public class MKInputStream extends InputStream { |
29 | int readByteCnt; |
31 | int readByteCnt; |
Line 257... | Line 259... | ||
257 | // f.setMaxItem(getDataInputStream().readByte()); |
259 | // f.setMaxItem(getDataInputStream().readByte()); |
258 | f.setText(base64InputStream.readChars(80)); |
260 | f.setText(base64InputStream.readChars(80)); |
259 | result = f; |
261 | result = f; |
260 | break; |
262 | break; |
261 | } |
263 | } |
- | 264 | case 'M': { |
|
- | 265 | WriteMotorMixerResponseFrame f = new WriteMotorMixerResponseFrame(address); |
|
- | 266 | f.setWasAccepted(base64InputStream.readByte() != 0); |
|
- | 267 | } |
|
- | 268 | case 'N': { |
|
- | 269 | int numMotors = 12; |
|
- | 270 | ReadMotorMixerResponseFrame f = new ReadMotorMixerResponseFrame(); |
|
- | 271 | f.setConfigurationVersion(base64InputStream.readByte()); |
|
- | 272 | int length = base64InputStream.readByte(); |
|
- | 273 | f.setDataLength(length); |
|
- | 274 | int testLength = 0; |
|
- | 275 | int[][] matrix = new int[numMotors][]; |
|
- | 276 | for(int i=0; i<numMotors; i++) { |
|
- | 277 | int[] row = new int[4]; |
|
- | 278 | for(int j=0; j<4; j++) { |
|
- | 279 | matrix[i][j] = base64InputStream.readByte(); |
|
- | 280 | testLength++; |
|
- | 281 | } |
|
- | 282 | } |
|
- | 283 | ||
- | 284 | if (length != testLength) |
|
- | 285 | throw new IOException("Length of motor mixer data was not as expected."); |
|
- | 286 | /* |
|
- | 287 | int[] opposite = new int[numMotors]; |
|
- | 288 | for(int i=0; i<numMotors; i++) { |
|
- | 289 | opposite[i] = base64InputStream.readByte(); |
|
- | 290 | } |
|
- | 291 | */ |
|
- | 292 | ||
- | 293 | f.setMatrix(matrix); |
|
- | 294 | ||
- | 295 | result = f; |
|
- | 296 | } |
|
262 | case 'O': { |
297 | case 'O': { |
263 | OSDDataResponseFrame f = new OSDDataResponseFrame(address); |
298 | OSDDataResponseFrame f = new OSDDataResponseFrame(address); |
264 | f.setVersion(base64InputStream.readByte()); |
299 | f.setVersion(base64InputStream.readByte()); |
Line 265... | Line 300... | ||
265 | 300 | ||
Line 364... | Line 399... | ||
364 | break; |
399 | break; |
365 | } |
400 | } |
Line 366... | Line 401... | ||
366 | 401 | ||
367 | // This is my own creation. The ID collides with the waypoint one of FC. |
402 | // This is my own creation. The ID collides with the waypoint one of FC. |
368 | case 'X': { |
403 | case 'X': { |
369 | VariablesResponseFrame f = new VariablesResponseFrame(address); |
404 | ReadVariablesResponseFrame f = new ReadVariablesResponseFrame(address); |
370 | f.setVariables(base64InputStream.readSignedWords(8)); |
405 | f.setVariables(base64InputStream.readSignedWords(8)); |
371 | result = f; |
406 | result = f; |
372 | break; |
407 | break; |
373 | } |
408 | } |