Subversion Repositories Projects

Rev

Rev 1563 | Rev 1568 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1563 Rev 1565
Line 245... Line 245...
245
                case 'O': {
245
                case 'O': {
246
                        OSDDataResponseFrame f = new OSDDataResponseFrame(address);
246
                        OSDDataResponseFrame f = new OSDDataResponseFrame(address);
247
                        f.setVersion(base64InputStream.readByte());
247
                        f.setVersion(base64InputStream.readByte());
Line 248... Line 248...
248
                       
248
                       
249
                        GPSPosition pos = new GPSPosition();
249
                        GPSPosition pos = new GPSPosition();
250
                        pos.setLongitude(base64InputStream.readSignedDWord());
250
                        pos.setLongitude(((double)base64InputStream.readSignedDWord())/1E7);
251
                        pos.setLatitude(base64InputStream.readSignedDWord());
251
                        pos.setLatitude(((double)base64InputStream.readSignedDWord())/1E7);
252
                        pos.setAltitude(base64InputStream.readSignedDWord());
252
                        pos.setAltitude(((double)base64InputStream.readSignedDWord())/1E3);
253
                        pos.setStatus(base64InputStream.readByte());
253
                        pos.setStatus(base64InputStream.readByte());
Line 254... Line 254...
254
                        f.setCurrentPosition(pos);
254
                        f.setCurrentPosition(pos);
255
                       
255
                       
256
                        pos = new GPSPosition();
256
                        pos = new GPSPosition();
257
                        pos.setLongitude(base64InputStream.readSignedDWord());
257
                        pos.setLongitude(((double)base64InputStream.readSignedDWord())/1E7);
258
                        pos.setLatitude(base64InputStream.readSignedDWord());
258
                        pos.setLatitude(((double)base64InputStream.readSignedDWord())/1E7);
259
                        pos.setAltitude(base64InputStream.readSignedDWord());
259
                        pos.setAltitude(((double)base64InputStream.readSignedDWord())/1E3);
Line 260... Line 260...
260
                        pos.setStatus(base64InputStream.readByte());
260
                        pos.setStatus(base64InputStream.readByte());
261
                        f.setTargetPosition(pos);
261
                        f.setTargetPosition(pos);
262
                       
262
                       
263
                        GPSBearingAndRange rnb = new GPSBearingAndRange();
263
                        GPSBearingAndRange rnb = new GPSBearingAndRange();
Line 264... Line 264...
264
                        rnb.setDistance(base64InputStream.readWord());
264
                        rnb.setDistance(((double)base64InputStream.readWord())/10.0);
265
                        rnb.setBearing(base64InputStream.readSignedWord());
265
                        rnb.setBearing(base64InputStream.readSignedWord());
266
                        f.setCurrentToTarget(rnb);
266
                        f.setCurrentToTarget(rnb);
267
 
267
 
268
                        pos = new GPSPosition();
268
                        pos = new GPSPosition();
269
                        pos.setLongitude(base64InputStream.readSignedDWord());
269
                        pos.setLongitude(((double)base64InputStream.readSignedDWord())/1E7);
Line 270... Line 270...
270
                        pos.setLatitude(base64InputStream.readSignedDWord());
270
                        pos.setLatitude(((double)base64InputStream.readSignedDWord())/1E7);
271
                        pos.setAltitude(base64InputStream.readSignedDWord());
271
                        pos.setAltitude(((double)base64InputStream.readSignedDWord())/1E3);
272
                        pos.setStatus(base64InputStream.readByte());
272
                        pos.setStatus(base64InputStream.readByte());
273
                        f.setHomePosition(pos);
273
                        f.setHomePosition(pos);
Line 274... Line 274...
274
                       
274
                       
275
                        rnb = new GPSBearingAndRange();
275
                        rnb = new GPSBearingAndRange();
276
                        rnb.setDistance(base64InputStream.readWord());
276
                        rnb.setDistance(((double)base64InputStream.readWord())/10.0);
Line -... Line 277...
-
 
277
                        rnb.setBearing(base64InputStream.readSignedWord());
-
 
278
                        f.setCurrentToHome(rnb);
-
 
279
                       
277
                        rnb.setBearing(base64InputStream.readSignedWord());
280
                        f.setWaypointIndex(base64InputStream.readByte());
-
 
281
                        f.setWaypointCount(base64InputStream.readByte());
278
                        f.setCurrentToHome(rnb);
282
                        f.setNumberOfSatellites(base64InputStream.readByte());
279
                       
283
                       
280
                        f.setWaypointIndex(base64InputStream.readByte());
284
                        // This stunt is a metric unit conversion: The height was supposed (H&I) to be in integral 5cm steps.
281
                        f.setWaypointCount(base64InputStream.readByte());
285
                        // However there is error factor in the measurement of 24% too much.
Line 300... Line 304...
300
                        f.setOperatingRadius(base64InputStream.readByte());
304
                        f.setOperatingRadius(base64InputStream.readByte());
Line 301... Line 305...
301
                       
305
                       
302
                        f.setVerticalVelocityByGPS(base64InputStream.readSignedWord());
306
                        f.setVerticalVelocityByGPS(base64InputStream.readSignedWord());
303
                        f.setTargetLoiterTime(base64InputStream.readByte());
307
                        f.setTargetLoiterTime(base64InputStream.readByte());
304
                        f.setFcFlags2(base64InputStream.readByte());
308
                        f.setFcFlags2(base64InputStream.readByte());
305
                        f.setSetpointForAltitude(base64InputStream.readSignedWord());
309
                        f.setSetpointForAltitude(((double)base64InputStream.readSignedWord()) * 0.05 / 1.24);
306
                        f.setThrottle(base64InputStream.readByte());
310
                        f.setThrottle(base64InputStream.readByte());
307
                        f.setCurrent(base64InputStream.readWord());
311
                        f.setCurrent(base64InputStream.readWord());
308
                        f.setCapacityUsed(base64InputStream.readWord());
312
                        f.setCapacityUsed(base64InputStream.readWord());
309
                        result = f;
313
                        result = f;