Subversion Repositories NaviCtrl

Rev

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

Rev 319 Rev 320
Line 394... Line 394...
394
                                {
394
                                {
395
                                        FC.StatusFlags = 0;
395
                                        FC.StatusFlags = 0;
396
                                        ClearFCStatusFlags = 0;
396
                                        ClearFCStatusFlags = 0;
397
                                }
397
                                }
398
                                FC.StatusFlags |= FromFlightCtrl.Param.Byte[8];
398
                                FC.StatusFlags |= FromFlightCtrl.Param.Byte[8];
399
                                if(FC.StatusFlags&FC_STATUS_CALIBRATE && !FCCalibActive)
399
                                if(FC.StatusFlags & FC_STATUS_CALIBRATE && !FCCalibActive)
400
                                {
400
                                {
401
                                        Compass_Init();
401
                                        Compass_Init();
402
                                        FCCalibActive = 1;
402
                                        FCCalibActive = 1;
-
 
403
HeadFreeStartAngle = FromFlightCtrl.GyroHeading;
403
                                }
404
                                }
404
                                else
405
                                else
405
                                {
406
                                {
406
                                        FCCalibActive = 0;
407
                                        FCCalibActive = 0;
407
                                }
408
                                }
-
 
409
if(FC.StatusFlags & FC_STATUS_START) HeadFreeStartAngle = FromFlightCtrl.GyroHeading;
-
 
410
 
-
 
411
 if((Parameter.ExtraConfig & CFG_LEARNABLE_CAREFREE) && (NCFlags & NC_FLAG_GPS_OK))
-
 
412
  {
-
 
413
   if(!(FC.StatusFlags2 & FC_STATUS2_CAREFREE)) // CF ist jetzt ausgeschaltet -> neue Richtung lernen
-
 
414
    {
-
 
415
     if(NaviData.HomePositionDeviation.Distance > 100)   // nur bei ausreichender distance
-
 
416
     {
-
 
417
       HeadFreeStartAngle = (10 * NaviData.HomePositionDeviation.Bearing + 1800) % 3600; // in 0.1°
-
 
418
     }
-
 
419
         else                                                                                            // Ansonsten die aktuelle Richtung übernehmen
-
 
420
       HeadFreeStartAngle = FromFlightCtrl.GyroHeading; // in 0.1°        
-
 
421
 
-
 
422
    }
-
 
423
  }
-
 
424
 
408
                                Parameter.ActiveSetting = FromFlightCtrl.Param.Byte[9];
425
                                Parameter.ActiveSetting = FromFlightCtrl.Param.Byte[9];
409
                                DebugOut.Analog[5] = FC.StatusFlags;
426
                                DebugOut.Analog[5] = FC.StatusFlags;
410
                                FC.StatusFlags2 = FromFlightCtrl.Param.Byte[11];
427
                                FC.StatusFlags2 = FromFlightCtrl.Param.Byte[11];
411
                                NaviData.FCStatusFlags = FC.StatusFlags;
428
                                NaviData.FCStatusFlags = FC.StatusFlags;
412
                                NaviData.FCStatusFlags2 = FC.StatusFlags2;
429
                                NaviData.FCStatusFlags2 = FC.StatusFlags2;
413
                                HeadFreeStartAngle = (s32) FromFlightCtrl.Param.Byte[10] * 20; // convert to 0.1°
430
//                              HeadFreeStartAngle = (s32) FromFlightCtrl.Param.Byte[10] * 20; // convert to 0.1°
414
                                break;
431
                                break;
Line 415... Line 432...
415
 
432
 
416
                        case SPI_FCCMD_ACCU:
433
                        case SPI_FCCMD_ACCU:
417
                                FC.BAT_Current = FromFlightCtrl.Param.Int[0];
434
                                FC.BAT_Current = FromFlightCtrl.Param.Int[0];
418
                                FC.BAT_UsedCapacity = FromFlightCtrl.Param.Int[1];
435
                                FC.BAT_UsedCapacity = FromFlightCtrl.Param.Int[1];
419
                                FC.BAT_Voltage = FromFlightCtrl.Param.Byte[4];
436
                                FC.BAT_Voltage = FromFlightCtrl.Param.Byte[4];
420
                                Parameter.LowVoltageWarning = FromFlightCtrl.Param.Byte[5];
437
                                Parameter.LowVoltageWarning = FromFlightCtrl.Param.Byte[5];
-
 
438
                                FromFC_VarioCharacter = FromFlightCtrl.Param.Byte[6];
-
 
439
                                Parameter.GlobalConfig = FromFlightCtrl.Param.Byte[7];
421
                                FromFC_VarioCharacter = FromFlightCtrl.Param.Byte[6];
440
                                Parameter.ExtraConfig = FromFlightCtrl.Param.Byte[8];
422
                                if(FromFC_VarioCharacter == '+' || FromFC_VarioCharacter == '-') // manual setpoint clears the NC-Parameter command
441
                                if(FromFC_VarioCharacter == '+' || FromFC_VarioCharacter == '-') // manual setpoint clears the NC-Parameter command
423
                                 {
442
                                 {
424
                                  NCParams_ClearValue(NCPARAMS_ALTITUDE_RATE);
443
                                  NCParams_ClearValue(NCPARAMS_ALTITUDE_RATE);
425
                                 }
-
 
426
 
444
                                 }
427
                                NaviData.UBat = FC.BAT_Voltage;
445
                                NaviData.UBat = FC.BAT_Voltage;
428
                                NaviData.Current = FC.BAT_Current;
446
                                NaviData.Current = FC.BAT_Current;
429
                                NaviData.UsedCapacity = FC.BAT_UsedCapacity;
447
                                NaviData.UsedCapacity = FC.BAT_UsedCapacity;
Line 504... Line 522...
504
                                FC.Error[0]                     = FromFlightCtrl.Param.Byte[5];
522
                                FC.Error[0]                     = FromFlightCtrl.Param.Byte[5];
505
                                FC.Error[1]                     = FromFlightCtrl.Param.Byte[6];
523
                                FC.Error[1]                     = FromFlightCtrl.Param.Byte[6];
506
                                FC.Error[2]                     = FromFlightCtrl.Param.Byte[7];
524
                                FC.Error[2]                     = FromFlightCtrl.Param.Byte[7];
507
                                FC.Error[3]                     = FromFlightCtrl.Param.Byte[8];
525
                                FC.Error[3]                     = FromFlightCtrl.Param.Byte[8];
508
                                FC.Error[4]                     = FromFlightCtrl.Param.Byte[9];
526
                                FC.Error[4]                     = FromFlightCtrl.Param.Byte[9];
-
 
527
                                Parameter.OrientationAngle = FromFlightCtrl.Param.Byte[10];
509
                                DebugOut.Status[0] |= 0x01; // status of FC Present
528
                                DebugOut.Status[0] |= 0x01; // status of FC Present
510
                                DebugOut.Status[0] |= 0x02; // status of BL Present
529
                                DebugOut.Status[0] |= 0x02; // status of BL Present
511
                                if(FC.Error[0] || FC.Error[1] || FC.Error[2] || FC.Error[3] || FC.Error[4]) DebugOut.Status[1] |= 0x01;
530
                                if(FC.Error[0] || FC.Error[1] || FC.Error[2] || FC.Error[3] || FC.Error[4]) DebugOut.Status[1] |= 0x01;
512
                                else DebugOut.Status[1] &= ~0x01;
531
                                else DebugOut.Status[1] &= ~0x01;
513
                                break;
532
                                break;