Subversion Repositories Projects

Rev

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
                }