Subversion Repositories NaviCtrl

Rev

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

Rev 325 Rev 326
Line 398... Line 398...
398
                                        ClearFCStatusFlags = 0;
398
                                        ClearFCStatusFlags = 0;
399
                                }
399
                                }
400
                                FC.StatusFlags |= FromFlightCtrl.Param.Byte[8];
400
                                FC.StatusFlags |= FromFlightCtrl.Param.Byte[8];
401
                                if(FC.StatusFlags & FC_STATUS_CALIBRATE && !FCCalibActive)
401
                                if(FC.StatusFlags & FC_STATUS_CALIBRATE && !FCCalibActive)
402
                                {
402
                                {
-
 
403
                                        HeadFreeStartAngle = Compass_Heading * 10;
403
                                        Compass_Init();
404
                                        Compass_Init();
404
                                        FCCalibActive = 1;
405
                                        FCCalibActive = 1;
405
HeadFreeStartAngle = FromFlightCtrl.GyroHeading;
-
 
406
                                }
406
                                }
407
                                else
407
                                else
408
                                {
408
                                {
409
                                        FCCalibActive = 0;
409
                                        FCCalibActive = 0;
410
                                }
410
                                }
411
if(FC.StatusFlags & FC_STATUS_START) HeadFreeStartAngle = FromFlightCtrl.GyroHeading;
411
 if(FC.StatusFlags & FC_STATUS_START) if(Compass_Heading != -1) HeadFreeStartAngle = Compass_Heading * 10; else HeadFreeStartAngle = FromFlightCtrl.GyroHeading;
Line 412... Line 412...
412
 
412
 
413
 if((Parameter.ExtraConfig & CFG_LEARNABLE_CAREFREE) && (NCFlags & NC_FLAG_GPS_OK))
413
 if((Parameter.ExtraConfig & CFG_LEARNABLE_CAREFREE))
414
  {
414
  {
415
   if(!(FC.StatusFlags2 & FC_STATUS2_CAREFREE)) // CF ist jetzt ausgeschaltet -> neue Richtung lernen
415
   if(!(FC.StatusFlags2 & FC_STATUS2_CAREFREE)) // CF ist jetzt ausgeschaltet -> neue Richtung lernen
416
    {
416
    {
417
     if(NaviData.HomePositionDeviation.Distance > 200)   // nur bei ausreichender Distance -> 20m
417
     if((NaviData.HomePositionDeviation.Distance > 200) && (NCFlags & NC_FLAG_GPS_OK))   // nur bei ausreichender Distance -> 20m
418
     {
418
     {
419
       HeadFreeStartAngle = (10 * NaviData.HomePositionDeviation.Bearing + 1800 + 3600 -  Parameter.OrientationAngle * 150) % 3600; // in 0.1°
419
       HeadFreeStartAngle = (10 * NaviData.HomePositionDeviation.Bearing + 1800 + 3600 -  Parameter.OrientationAngle * 150) % 3600; // in 0.1°
420
     }
420
     }
421
         else                                                                                            // Ansonsten die aktuelle Richtung übernehmen
421
         else                                                                                            // Ansonsten die aktuelle Richtung übernehmen
422
       HeadFreeStartAngle = (3600 + FromFlightCtrl.GyroHeading /*+ Parameter.OrientationAngle * 150*/) % 3600; // in 0.1°         
422
       HeadFreeStartAngle = (3600 + FromFlightCtrl.GyroHeading /*+ Parameter.OrientationAngle * 150*/) % 3600; // in 0.1°         
423
    }
423
    }
Line -... Line 424...
-
 
424
  }
-
 
425
 
424
  }
426
//DebugOut.Analog[16] = HeadFreeStartAngle;
425
 
427
 
426
                                Parameter.ActiveSetting = FromFlightCtrl.Param.Byte[9];
428
                                Parameter.ActiveSetting = FromFlightCtrl.Param.Byte[9];
427
                                DebugOut.Analog[5] = FC.StatusFlags;
429
                                DebugOut.Analog[5] = FC.StatusFlags;
428
                                FC.StatusFlags2 = FromFlightCtrl.Param.Byte[11];
430
                                FC.StatusFlags2 = FromFlightCtrl.Param.Byte[11];