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; |