Subversion Repositories NaviCtrl

Rev

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

Rev 588 Rev 598
Line 422... Line 422...
422
                                ToFlightCtrl.Param.Byte[2] = GPSData.SatFix;
422
                                ToFlightCtrl.Param.Byte[2] = GPSData.SatFix;
423
                                ToFlightCtrl.Param.Byte[3] = GPSData.Speed_Ground / 100; // m/s
423
                                ToFlightCtrl.Param.Byte[3] = GPSData.Speed_Ground / 100; // m/s
424
                                ToFlightCtrl.Param.Int[2]  = NaviData.HomePositionDeviation.Distance; // dm   //4&5
424
                                ToFlightCtrl.Param.Int[2]  = NaviData.HomePositionDeviation.Distance; // dm   //4&5
425
                                ToFlightCtrl.Param.sInt[3] = NaviData.HomePositionDeviation.Bearing;  // deg  //6&7
425
                                ToFlightCtrl.Param.sInt[3] = NaviData.HomePositionDeviation.Bearing;  // deg  //6&7
426
                                if(FC_WP_EventChannel > 254) FC_WP_EventChannel = 254;    // Muss in SPI_NCCMD_GPSINFO bleiben! (siehe oben)
426
                                if(FC_WP_EventChannel > 254) FC_WP_EventChannel = 254;    // Muss in SPI_NCCMD_GPSINFO bleiben! (siehe oben)
-
 
427
                                if(FC_WP_EventChannel)
-
 
428
                                 {
427
                                if(FC_WP_EventChannel) LogFC_WP_EventChannel = FC_WP_EventChannel; // to make sure that it will be logged
429
                                  LogFC_WP_EventChannel = FC_WP_EventChannel; // to make sure that it will be logged
-
 
430
                                  NaviData_WP.WP_Eventchannel = FC_WP_EventChannel; // to make sure that it will be logged
-
 
431
                                 }
428
                                FC_WP_EventChannel_Processed = 1;
432
                                FC_WP_EventChannel_Processed = 1;
429
  // ++++++++++++++++++++++++++++++++++
433
  // ++++++++++++++++++++++++++++++++++
430
  // Waypoint event +++++++++++++++++++
434
  // Waypoint event +++++++++++++++++++
431
  // ++++++++++++++++++++++++++++++++++
435
  // ++++++++++++++++++++++++++++++++++
432
                                if(NCRARAM_STATE_VALID == NCParams_GetValue(NCPARAMS_WP_EVENT_ONCE, &tmp))
436
                                if(NCRARAM_STATE_VALID == NCParams_GetValue(NCPARAMS_WP_EVENT_ONCE, &tmp))
Line 650... Line 654...
650
                                                }
654
                                                }
651
                                                else                                                                                             // Ansonsten die aktuelle Richtung übernehmen
655
                                                else                                                                                             // Ansonsten die aktuelle Richtung übernehmen
652
                                                HeadFreeStartAngle = GyroCompassCorrected; // in 0.1°
656
                                                HeadFreeStartAngle = GyroCompassCorrected; // in 0.1°
653
                                        }
657
                                        }
654
                                }
658
                                }
655
                                Parameter.ActiveSetting = FromFlightCtrl.Param.Byte[9];
-
 
656
                                FC.BAT_Voltage = FromFlightCtrl.Param.Byte[10];
-
 
657
                                DebugOut.Analog[7] = FC.BAT_Voltage;
-
 
658
                                DebugOut.Analog[5] = FC.StatusFlags;
-
 
659
                                NaviData.FCStatusFlags = FC.StatusFlags;
659
                                NaviData.FCStatusFlags = FC.StatusFlags;
660
                                if(FC.StatusFlags2 & FC_STATUS2_WAIT_FOR_TAKEOFF) NaviData.FCStatusFlags &= ~FC_STATUS_FLY;
660
                                if(FC.StatusFlags2 & FC_STATUS2_WAIT_FOR_TAKEOFF) NaviData.FCStatusFlags &= ~FC_STATUS_FLY;
661
                                FC.StatusFlags2 = FromFlightCtrl.Param.Byte[11];
661
                                FC.StatusFlags2 = FromFlightCtrl.Param.Byte[9];
662
                                NaviData.FCStatusFlags2 = (NaviData.FCStatusFlags2 & (FC_STATUS2_OUT1_ACTIVE | FC_STATUS2_OUT2_ACTIVE)) | (FC.StatusFlags2 & (0xff - (FC_STATUS2_OUT1_ACTIVE | FC_STATUS2_OUT2_ACTIVE)));
662
                                NaviData.FCStatusFlags2 = (NaviData.FCStatusFlags2 & (FC_STATUS2_OUT1_ACTIVE | FC_STATUS2_OUT2_ACTIVE)) | (FC.StatusFlags2 & (0xff - (FC_STATUS2_OUT1_ACTIVE | FC_STATUS2_OUT2_ACTIVE)));
Line 663... Line 663...
663
 
663
 
664
                                if((!(LastTransmittedFCStatusFlags2 & FC_STATUS2_OUT1_ACTIVE)) && (FC.StatusFlags2 & FC_STATUS2_OUT1_ACTIVE)) NaviData.FCStatusFlags2 |= FC_STATUS2_OUT1_ACTIVE;
664
                                if((!(LastTransmittedFCStatusFlags2 & FC_STATUS2_OUT1_ACTIVE)) && (FC.StatusFlags2 & FC_STATUS2_OUT1_ACTIVE)) NaviData.FCStatusFlags2 |= FC_STATUS2_OUT1_ACTIVE;
665
                                else
665
                                else
Line 669... Line 669...
669
                                else
669
                                else
670
                                if(((LastTransmittedFCStatusFlags2 & FC_STATUS2_OUT2_ACTIVE)) && !(FC.StatusFlags2 & FC_STATUS2_OUT2_ACTIVE)) NaviData.FCStatusFlags2 &= ~FC_STATUS2_OUT2_ACTIVE;
670
                                if(((LastTransmittedFCStatusFlags2 & FC_STATUS2_OUT2_ACTIVE)) && !(FC.StatusFlags2 & FC_STATUS2_OUT2_ACTIVE)) NaviData.FCStatusFlags2 &= ~FC_STATUS2_OUT2_ACTIVE;
Line 671... Line 671...
671
 
671
 
672
                                Logging_FCStatusFlags1 |= FC.StatusFlags;
672
                                Logging_FCStatusFlags1 |= FC.StatusFlags;
-
 
673
                                Logging_FCStatusFlags2 |= FC.StatusFlags2;
-
 
674
                                FC.BAT_Voltage = FromFlightCtrl.Param.Int[5]; // 10 & 11
-
 
675
                                DebugOut.Analog[7] = FC.BAT_Voltage;
-
 
676
                                DebugOut.Analog[5] = FC.StatusFlags;
673
                                Logging_FCStatusFlags2 |= FC.StatusFlags2;
677
                                NaviData.UBat = (u8) FC.BAT_Voltage;     // Achtung: die (u8) NaviData.UBat kann überlaufen -> das KopterTool müsste dann 25,5V drauf rechnen
674
                                break;
-
 
675
 
678
                                break;
676
                        case SPI_FCCMD_BL_ACCU:
679
                        case SPI_FCCMD_BL_ACCU:
677
                                FC.BAT_Current = FromFlightCtrl.Param.Int[0];
680
                                FC.BAT_Current = FromFlightCtrl.Param.Int[0];
678
                                DebugOut.Analog[8] = FC.BAT_Current;
681
                                DebugOut.Analog[8] = FC.BAT_Current;
679
                                if(AmountOfMotors < FromFlightCtrl.Param.Byte[2]+1) AmountOfMotors = FromFlightCtrl.Param.Byte[2]+1;
682
                                if(AmountOfMotors < FromFlightCtrl.Param.Byte[2]+1) AmountOfMotors = FromFlightCtrl.Param.Byte[2]+1;
Line 690... Line 693...
690
                                Motor[FromFlightCtrl.Param.Byte[2]].Current = FromFlightCtrl.Param.Byte[11];
693
                                Motor[FromFlightCtrl.Param.Byte[2]].Current = FromFlightCtrl.Param.Byte[11];
691
                                if(FromFC_VarioCharacter == '+' || FromFC_VarioCharacter == '-') // manual setpoint clears the NC-Parameter command
694
                                if(FromFC_VarioCharacter == '+' || FromFC_VarioCharacter == '-') // manual setpoint clears the NC-Parameter command
692
                                {
695
                                {
693
                                        NCParams_ClearValue(NCPARAMS_ALTITUDE_RATE);
696
                                        NCParams_ClearValue(NCPARAMS_ALTITUDE_RATE);
694
                                }
697
                                }
695
                                NaviData.UBat = FC.BAT_Voltage;
-
 
696
                                if(!(SimulationFlags & SIMULATION_ACTIVE)) NaviData.Current = FC.BAT_Current;
698
                                if(!(SimulationFlags & SIMULATION_ACTIVE)) NaviData.Current = FC.BAT_Current;
697
                                NaviData.UsedCapacity = FC.BAT_UsedCapacity;
699
                                NaviData.UsedCapacity = FC.BAT_UsedCapacity;
698
                                break;
700
                                break;
699
                        case SPI_FCCMD_PARAMETER1:
701
                        case SPI_FCCMD_PARAMETER1:
700
                                Parameter.LowVoltageWarning = FromFlightCtrl.Param.Byte[0];
702
                                Parameter.LowVoltageWarning = FromFlightCtrl.Param.Byte[0];
Line 760... Line 762...
760
                                DebugOut.StatusGreen |= AMPEL_BL; // status of BL Present
762
                                DebugOut.StatusGreen |= AMPEL_BL; // status of BL Present
761
                                if(FC.Error[0] || FC.Error[1] /* || FC.Error[2] || FC.Error[3] || FC.Error[4]*/) DebugOut.StatusRed |= AMPEL_FC;
763
                                if(FC.Error[0] || FC.Error[1] /* || FC.Error[2] || FC.Error[3] || FC.Error[4]*/) DebugOut.StatusRed |= AMPEL_FC;
762
                                else DebugOut.StatusRed &= ~AMPEL_FC;
764
                                else DebugOut.StatusRed &= ~AMPEL_FC;
763
                                FC_I2C_ErrorConter = FromFlightCtrl.Param.Byte[8];
765
                                FC_I2C_ErrorConter = FromFlightCtrl.Param.Byte[8];
764
                                FC.RC_Quality   = FromFlightCtrl.Param.Byte[9];
766
                                FC.RC_Quality   = FromFlightCtrl.Param.Byte[9];
765
                                NaviData.RC_Quality = FC.RC_Quality;
767
                                if(FC.RC_Quality > 160) NaviData.RC_Quality = 200; else NaviData.RC_Quality = FC.RC_Quality;
766
                                NC_Wait_for_LED = FromFlightCtrl.Param.Byte[10];
768
                                NC_Wait_for_LED = FromFlightCtrl.Param.Byte[10];
767
                                NaviData.Gas    = (FC.BAT_Voltage * (u32) FromFlightCtrl.Param.Byte[11]) / (u32) Parameter.LowVoltageWarning;
769
                                NaviData.Gas    = (FC.BAT_Voltage * (u32) FromFlightCtrl.Param.Byte[11]) / (u32) Parameter.LowVoltageWarning;
768
                                if(LoggingGasCnt == 0) LoggingGasFilter = 0;
770
                                if(LoggingGasCnt == 0) LoggingGasFilter = 0;
769
                                LoggingGasFilter += (u32) FromFlightCtrl.Param.Byte[11];
771
                                LoggingGasFilter += (u32) FromFlightCtrl.Param.Byte[11];
770
                                LoggingGasCnt++;
772
                                LoggingGasCnt++;
Line 778... Line 780...
778
                                FC_Version.Hardware             = FromFlightCtrl.Param.Byte[4];
780
                                FC_Version.Hardware             = FromFlightCtrl.Param.Byte[4];
779
                                Parameter.FromFC_LandingSpeed = FromFlightCtrl.Param.Byte[5];
781
                                Parameter.FromFC_LandingSpeed = FromFlightCtrl.Param.Byte[5];
780
                                Parameter.ComingHomeAltitude = FromFlightCtrl.Param.Byte[6];
782
                                Parameter.ComingHomeAltitude = FromFlightCtrl.Param.Byte[6];
781
                                CHK_POTI_MM(Parameter.AutoPhotoAltitudes,FromFlightCtrl.Param.Byte[7],0,255);
783
                                CHK_POTI_MM(Parameter.AutoPhotoAltitudes,FromFlightCtrl.Param.Byte[7],0,255);
782
                                UART_VersionInfo.BL_Firmware = FromFlightCtrl.Param.Byte[8];
784
                                UART_VersionInfo.BL_Firmware = FromFlightCtrl.Param.Byte[8];
783
// 9
-
 
-
 
785
                                Parameter.ActiveSetting = FromFlightCtrl.Param.Byte[9];
784
                                FlugMinutenGesamt = FromFlightCtrl.Param.Int[5]; // 10 & 11
786
                                FlugMinutenGesamt = FromFlightCtrl.Param.Int[5]; // 10 & 11
785
                                break;
787
                                break;
786
                        case SPI_FCCMD_NEUTRAL:  // slow!
788
                        case SPI_FCCMD_NEUTRAL:  // slow!
787
                                FC.AdNeutralNick = FromFlightCtrl.Param.Int[0];
789
                                FC.AdNeutralNick = FromFlightCtrl.Param.Int[0];
788
                                FC.AdNeutralRoll = FromFlightCtrl.Param.Int[1];
790
                                FC.AdNeutralRoll = FromFlightCtrl.Param.Int[1];
Line 820... Line 822...
820
                                ServoParams.RollControl = FromFlightCtrl.Param.Byte[1];
822
                                ServoParams.RollControl = FromFlightCtrl.Param.Byte[1];
821
                                Parameter.DescendRange = FromFlightCtrl.Param.Byte[2];
823
                                Parameter.DescendRange = FromFlightCtrl.Param.Byte[2];
822
                                Parameter.MaximumAltitude = FromFlightCtrl.Param.Byte[3];
824
                                Parameter.MaximumAltitude = FromFlightCtrl.Param.Byte[3];
823
                                ServoParams.CompInvert = FromFlightCtrl.Param.Byte[4];
825
                                ServoParams.CompInvert = FromFlightCtrl.Param.Byte[4];
824
                                Parameter.HomeYawMode = ((ServoParams.CompInvert & 0x18) >> 3);
826
                                Parameter.HomeYawMode = ((ServoParams.CompInvert & 0x18) >> 3);
825
// 5
-
 
826
// 6 
-
 
827
// 7
-
 
-
 
827
                                NaviData_Home.LipoCellCount = FromFlightCtrl.Param.Byte[5];
-
 
828
                                NaviData_Volatile.ShutterCounter = FromFlightCtrl.Param.Int[3];   // 6 & 7
828
// 8
829
// 8
829
// 9
830
// 9
830
// 10
831
// 10
831
// 11
832
// 11
832
                                break;
833
                                break;