Subversion Repositories NaviCtrl

Rev

Rev 287 | Rev 295 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 287 Rev 294
Line 65... Line 65...
65
#include "timer1.h"
65
#include "timer1.h"
66
#include "timer2.h"
66
#include "timer2.h"
67
#include "config.h"
67
#include "config.h"
68
#include "main.h"
68
#include "main.h"
69
#include "compass.h"
69
#include "compass.h"
70
 
-
 
-
 
70
#include "params.h"
Line 71... Line 71...
71
 
71
 
72
#define SPI_RXSYNCBYTE1 0xAA
72
#define SPI_RXSYNCBYTE1 0xAA
73
#define SPI_RXSYNCBYTE2 0x83
73
#define SPI_RXSYNCBYTE2 0x83
74
#define SPI_TXSYNCBYTE1 0x81
74
#define SPI_TXSYNCBYTE1 0x81
Line 310... Line 310...
310
                                }
310
                                }
311
                                else
311
                                else
312
                                {
312
                                {
313
                                        ToFlightCtrl.Param.sInt[4] = -1;
313
                                        ToFlightCtrl.Param.sInt[4] = -1;
314
                                }
314
                                }
-
 
315
 
-
 
316
                                if(NCParams[NCPARAMS_NEW_CAMERA_ELEVATION] != -30000)  // Elevation set via 'j' command
-
 
317
                                 {
315
                                ToFlightCtrl.Param.sInt[5] = CAM_Orientation.Elevation;
318
                                  ToFlightCtrl.Param.sInt[5] = NCParams[NCPARAMS_NEW_CAMERA_ELEVATION];
-
 
319
                                 }
-
 
320
                                else
-
 
321
                                 {
-
 
322
                                  if(FC.StatusFlags2 & FC_STATUS2_CAREFREE) ToFlightCtrl.Param.sInt[5] = CAM_Orientation.Elevation; // only, if carefree is active
-
 
323
                                  else ToFlightCtrl.Param.sInt[5] = 0;
-
 
324
                                 }
316
                                break;
325
                                break;
Line 317... Line 326...
317
 
326
 
318
                        case SPI_NCCMD_VERSION:
327
                        case SPI_NCCMD_VERSION:
319
                                ToFlightCtrl.Param.Byte[0] = VERSION_MAJOR;
328
                                ToFlightCtrl.Param.Byte[0] = VERSION_MAJOR;
Line 332... Line 341...
332
                                ToFlightCtrl.Param.Byte[2] = GPSData.SatFix;
341
                                ToFlightCtrl.Param.Byte[2] = GPSData.SatFix;
333
                                ToFlightCtrl.Param.Byte[3] = GPSData.Speed_Ground / 100; // m/s
342
                                ToFlightCtrl.Param.Byte[3] = GPSData.Speed_Ground / 100; // m/s
334
                                ToFlightCtrl.Param.Int[2]  = NaviData.HomePositionDeviation.Distance; // dm   //4&5
343
                                ToFlightCtrl.Param.Int[2]  = NaviData.HomePositionDeviation.Distance; // dm   //4&5
335
                                ToFlightCtrl.Param.sInt[3] = NaviData.HomePositionDeviation.Bearing;  // deg  //6&7
344
                                ToFlightCtrl.Param.sInt[3] = NaviData.HomePositionDeviation.Bearing;  // deg  //6&7
336
                                ToFlightCtrl.Param.Byte[8] = (s8)(FC_WP_EventChannel - 110);
345
                                ToFlightCtrl.Param.Byte[8] = (s8)(FC_WP_EventChannel - 110);
-
 
346
                                if(NCParams[NCPARAMS_ALTITUDE_RATE] != -1)  ToFlightCtrl.Param.Byte[9] = (u8) NCParams[NCPARAMS_ALTITUDE_RATE];
337
                                ToFlightCtrl.Param.Byte[9] = (u8) ToFC_AltitudeRate;
347
                                else ToFlightCtrl.Param.Byte[9] = (u8) ToFC_AltitudeRate;
-
 
348
                                if(NCParams[NCPARAMS_ALTITUDE_SETPOINT] != -30000) ToFlightCtrl.Param.sInt[5] = (s16) NCParams[NCPARAMS_ALTITUDE_SETPOINT];
338
                                ToFlightCtrl.Param.sInt[5] = (s16) ToFC_AltitudeSetpoint;
349
                                else ToFlightCtrl.Param.sInt[5] = (s16) ToFC_AltitudeSetpoint;
339
                                break;
350
                                break;
340
                        default:
351
                        default:
341
                                break;
352
                                break;
342
// 0 = 0,1
353
// 0 = 0,1
343
// 1 = 2,3
354
// 1 = 2,3
Line 375... Line 386...
375
                                {
386
                                {
376
                                        FCCalibActive = 0;
387
                                        FCCalibActive = 0;
377
                                }
388
                                }
378
                                Parameter.ActiveSetting = FromFlightCtrl.Param.Byte[9];
389
                                Parameter.ActiveSetting = FromFlightCtrl.Param.Byte[9];
379
                                DebugOut.Analog[5] = FC.StatusFlags;
390
                                DebugOut.Analog[5] = FC.StatusFlags;
-
 
391
                                FC.StatusFlags2 = FromFlightCtrl.Param.Byte[11];
380
                                NaviData.FCStatusFlags = FC.StatusFlags;
392
                                NaviData.FCStatusFlags = FC.StatusFlags;
-
 
393
                                NaviData.FCStatusFlags2 = FC.StatusFlags2;
381
                                HeadFreeStartAngle = (s32) FromFlightCtrl.Param.Byte[10] * 20; // convert to 0.1°
394
                                HeadFreeStartAngle = (s32) FromFlightCtrl.Param.Byte[10] * 20; // convert to 0.1°
382
                                break;
395
                                break;
Line 383... Line 396...
383
 
396
 
384
                        case SPI_FCCMD_ACCU:
397
                        case SPI_FCCMD_ACCU:
Line 437... Line 450...
437
                                CHK_POTI_MM(Parameter.NaviGpsPLimit,FromFlightCtrl.Param.Byte[6],0,255);
450
                                CHK_POTI_MM(Parameter.NaviGpsPLimit,FromFlightCtrl.Param.Byte[6],0,255);
438
                                CHK_POTI_MM(Parameter.NaviGpsILimit,FromFlightCtrl.Param.Byte[7],0,255);
451
                                CHK_POTI_MM(Parameter.NaviGpsILimit,FromFlightCtrl.Param.Byte[7],0,255);
439
                                CHK_POTI_MM(Parameter.NaviGpsDLimit,FromFlightCtrl.Param.Byte[8],0,255);
452
                                CHK_POTI_MM(Parameter.NaviGpsDLimit,FromFlightCtrl.Param.Byte[8],0,255);
440
                                FC.RC_Quality   = FromFlightCtrl.Param.Byte[9];
453
                                FC.RC_Quality   = FromFlightCtrl.Param.Byte[9];
441
                                FC.RC_RSSI              = FromFlightCtrl.Param.Byte[10];
454
                                FC.RC_RSSI              = FromFlightCtrl.Param.Byte[10];
442
                                NaviData.RC_Quality = FC.RC_Quality;
455
                                if(!FC.RC_RSSI) NaviData.RC_Quality = FC.RC_Quality; else NaviData.RC_Quality = FC.RC_RSSI;
443
                                NaviData.RC_RSSI = FC.RC_RSSI;
456
//                              NaviData.RC_RSSI = FC.RC_RSSI;
444
                                NaviData.Gas    = (FC.BAT_Voltage * (u32) FromFlightCtrl.Param.Byte[11]) / (u32) Parameter.LowVoltageWarning;
457
                                NaviData.Gas    = (FC.BAT_Voltage * (u32) FromFlightCtrl.Param.Byte[11]) / (u32) Parameter.LowVoltageWarning;
445
                                break;
458
                                break;
Line 446... Line 459...
446
 
459
 
447
                        case SPI_FCCMD_SERVOS:
460
                        case SPI_FCCMD_SERVOS: