Subversion Repositories NaviCtrl

Rev

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

Rev 451 Rev 454
Line 369... Line 369...
369
                                ToFlightCtrl.Param.Byte[2] = VERSION_PATCH;
369
                                ToFlightCtrl.Param.Byte[2] = VERSION_PATCH;
370
                                ToFlightCtrl.Param.Byte[3] = FC_SPI_COMPATIBLE;
370
                                ToFlightCtrl.Param.Byte[3] = FC_SPI_COMPATIBLE;
371
                                ToFlightCtrl.Param.Byte[4] = Version_HW;
371
                                ToFlightCtrl.Param.Byte[4] = Version_HW;
372
                                ToFlightCtrl.Param.Byte[5] = DebugOut.StatusGreen;
372
                                ToFlightCtrl.Param.Byte[5] = DebugOut.StatusGreen;
373
                                ToFlightCtrl.Param.Byte[6] = DebugOut.StatusRed;
373
                                ToFlightCtrl.Param.Byte[6] = DebugOut.StatusRed;
374
                                ToFlightCtrl.Param.Byte[7] = ErrorCode;
374
                                ToFlightCtrl.Param.Byte[7] = ErrorCode;                          // muss in SPI_NCCMD_VERSION bleiben! (siehe oben)
375
                                ToFlightCtrl.Param.Byte[8] = NC_GPS_ModeCharacter;
375
                                ToFlightCtrl.Param.Byte[8] = NC_GPS_ModeCharacter;
376
                                ToFlightCtrl.Param.Byte[9] = SerialLinkOkay;
376
                                ToFlightCtrl.Param.Byte[9] = SerialLinkOkay;
377
                                ToFlightCtrl.Param.Byte[10] = NC_To_FC_Flags;
377
                                ToFlightCtrl.Param.Byte[10] = NC_To_FC_Flags;
378
                                if(AbsoluteFlyingAltitude > 255) ToFlightCtrl.Param.Byte[11] = 0; // then the limitation of the FC doesn't work
378
                                if(AbsoluteFlyingAltitude > 255) ToFlightCtrl.Param.Byte[11] = 0; // then the limitation of the FC doesn't work
379
                                else ToFlightCtrl.Param.Byte[11] = AbsoluteFlyingAltitude;
379
                                else ToFlightCtrl.Param.Byte[11] = AbsoluteFlyingAltitude;
Line 398... Line 398...
398
                                ToFlightCtrl.Param.Byte[1] = GPSData.NumOfSats;
398
                                ToFlightCtrl.Param.Byte[1] = GPSData.NumOfSats;
399
                                ToFlightCtrl.Param.Byte[2] = GPSData.SatFix;
399
                                ToFlightCtrl.Param.Byte[2] = GPSData.SatFix;
400
                                ToFlightCtrl.Param.Byte[3] = GPSData.Speed_Ground / 100; // m/s
400
                                ToFlightCtrl.Param.Byte[3] = GPSData.Speed_Ground / 100; // m/s
401
                                ToFlightCtrl.Param.Int[2]  = NaviData.HomePositionDeviation.Distance; // dm   //4&5
401
                                ToFlightCtrl.Param.Int[2]  = NaviData.HomePositionDeviation.Distance; // dm   //4&5
402
                                ToFlightCtrl.Param.sInt[3] = NaviData.HomePositionDeviation.Bearing;  // deg  //6&7
402
                                ToFlightCtrl.Param.sInt[3] = NaviData.HomePositionDeviation.Bearing;  // deg  //6&7
403
                                if(FC_WP_EventChannel > 254) FC_WP_EventChannel = 254;
403
                                if(FC_WP_EventChannel > 254) FC_WP_EventChannel = 254;    // Muss in SPI_NCCMD_GPSINFO bleiben! (siehe oben)
404
                                if(FC_WP_EventChannel) LogFC_WP_EventChannel = FC_WP_EventChannel; // to make sure that it will be logged
404
                                if(FC_WP_EventChannel) LogFC_WP_EventChannel = FC_WP_EventChannel; // to make sure that it will be logged
405
                                ToFlightCtrl.Param.Byte[8] = (s8)(FC_WP_EventChannel - 127);
405
                                ToFlightCtrl.Param.Byte[8] = (s8)(FC_WP_EventChannel - 127);
406
                                FC_WP_EventChannel = 0; // the GPS-Routine will set it again
406
                                FC_WP_EventChannel = 0; // the GPS-Routine will set it again
407
                                if(NCRARAM_STATE_VALID == NCParams_GetValue(NCPARAMS_ALTITUDE_RATE, &tmp))
407
                                if(NCRARAM_STATE_VALID == NCParams_GetValue(NCPARAMS_ALTITUDE_RATE, &tmp))
408
                                {
408
                                {
Line 564... Line 564...
564
                                Logging_FCStatusFlags1 |= FC.StatusFlags;
564
                                Logging_FCStatusFlags1 |= FC.StatusFlags;
565
                                Logging_FCStatusFlags2 |= FC.StatusFlags2;
565
                                Logging_FCStatusFlags2 |= FC.StatusFlags2;
566
                                Parameter.ComingHomeAltitude = FromFlightCtrl.Param.Byte[10];
566
                                Parameter.ComingHomeAltitude = FromFlightCtrl.Param.Byte[10];
567
                                break;
567
                                break;
Line 568... Line 568...
568
 
568
 
569
                        case SPI_FCCMD_ACCU:
569
                        case SPI_FCCMD_BL_ACCU:
570
                                FC.BAT_Current = FromFlightCtrl.Param.Int[0];
570
                                FC.BAT_Current = FromFlightCtrl.Param.Int[0];
571
                                FC.BAT_UsedCapacity = FromFlightCtrl.Param.Int[1];
571
                                FC.BAT_UsedCapacity = FromFlightCtrl.Param.Int[1];
572
                                FC.BAT_Voltage = FromFlightCtrl.Param.Byte[4];
572
                                FC.BAT_Voltage = FromFlightCtrl.Param.Byte[4];
573
                                Parameter.LowVoltageWarning = FromFlightCtrl.Param.Byte[5];
573
                                Parameter.NaviGpsModeControl = FromFlightCtrl.Param.Byte[5];
574
                                FromFC_VarioCharacter = FromFlightCtrl.Param.Byte[6];
574
                                FromFC_VarioCharacter = FromFlightCtrl.Param.Byte[6];
575
                                Motor[FromFlightCtrl.Param.Byte[7]].MaxPWM = FromFlightCtrl.Param.Byte[8];
575
                                Motor[FromFlightCtrl.Param.Byte[7]].MaxPWM = FromFlightCtrl.Param.Byte[8];
576
                                Motor[FromFlightCtrl.Param.Byte[7]].State = FromFlightCtrl.Param.Byte[9];
576
                                Motor[FromFlightCtrl.Param.Byte[7]].State = FromFlightCtrl.Param.Byte[9];
577
                                Motor[FromFlightCtrl.Param.Byte[7]].Temperature = FromFlightCtrl.Param.Byte[10];
577
                                Motor[FromFlightCtrl.Param.Byte[7]].Temperature = FromFlightCtrl.Param.Byte[10];
Line 583... Line 583...
583
                                NaviData.UBat = FC.BAT_Voltage;
583
                                NaviData.UBat = FC.BAT_Voltage;
584
                                NaviData.Current = FC.BAT_Current;
584
                                NaviData.Current = FC.BAT_Current;
585
                                NaviData.UsedCapacity = FC.BAT_UsedCapacity;
585
                                NaviData.UsedCapacity = FC.BAT_UsedCapacity;
586
                                break;
586
                                break;
587
                        case SPI_FCCMD_PARAMETER1:
587
                        case SPI_FCCMD_PARAMETER1:
588
                                CHK_POTI_MM(Parameter.NaviGpsModeControl,FromFlightCtrl.Param.Byte[0],0,255);
588
                                Parameter.LowVoltageWarning = FromFlightCtrl.Param.Byte[0];
589
                                CHK_POTI_MM(Parameter.NaviGpsGain,FromFlightCtrl.Param.Byte[1],0,255);
589
                                CHK_POTI_MM(Parameter.NaviGpsGain,FromFlightCtrl.Param.Byte[1],0,255);
590
                                CHK_POTI_MM(Parameter.NaviGpsP,FromFlightCtrl.Param.Byte[2],0,255);
590
                                CHK_POTI_MM(Parameter.NaviGpsP,FromFlightCtrl.Param.Byte[2],0,255);
591
                                CHK_POTI_MM(Parameter.NaviGpsI,FromFlightCtrl.Param.Byte[3],0,255);
591
                                CHK_POTI_MM(Parameter.NaviGpsI,FromFlightCtrl.Param.Byte[3],0,255);
592
                                CHK_POTI_MM(Parameter.NaviGpsD,FromFlightCtrl.Param.Byte[4],0,255);
592
                                CHK_POTI_MM(Parameter.NaviGpsD,FromFlightCtrl.Param.Byte[4],0,255);
593
                                CHK_POTI_MM(Parameter.NaviGpsACC,FromFlightCtrl.Param.Byte[5],0,255);
593
                                CHK_POTI_MM(Parameter.NaviGpsACC,FromFlightCtrl.Param.Byte[5],0,255);
Line 599... Line 599...
599
                                CHK_POTI_MM(Parameter.NaviAngleLimitation,FromFlightCtrl.Param.Byte[11],0,255);
599
                                CHK_POTI_MM(Parameter.NaviAngleLimitation,FromFlightCtrl.Param.Byte[11],0,255);
600
                                break;
600
                                break;
601
                        case SPI_FCCMD_PARAMETER2:
601
                        case SPI_FCCMD_PARAMETER2:
602
                                CHK_POTI_MM(Parameter.NaviOut1Parameter,FromFlightCtrl.Param.Byte[0],0,255);
602
                                CHK_POTI_MM(Parameter.NaviOut1Parameter,FromFlightCtrl.Param.Byte[0],0,255);
603
                                if(FromFlightCtrl.Param.Byte[1]) FC.FromFC_SpeakHoTT = FromFlightCtrl.Param.Byte[1];     // will be cleared in the SD-Logging
603
                                if(FromFlightCtrl.Param.Byte[1]) FC.FromFC_SpeakHoTT = FromFlightCtrl.Param.Byte[1];     // will be cleared in the SD-Logging
-
 
604
                Parameter.FromFC_LandingSpeed = FromFlightCtrl.Param.Byte[2];
604
                                break;
605
                                break;
605
                        case SPI_FCCMD_STICK:
606
                        case SPI_FCCMD_STICK:
606
                                FC.StickGas     = FromFlightCtrl.Param.sByte[0];
607
                                FC.StickGas     = FromFlightCtrl.Param.sByte[0];
607
                                FC.StickYaw     = FromFlightCtrl.Param.sByte[1];
608
                                FC.StickYaw     = FromFlightCtrl.Param.sByte[1];
608
                                FC.StickRoll    = FromFlightCtrl.Param.sByte[2];
609
                                FC.StickRoll    = FromFlightCtrl.Param.sByte[2];
Line 634... Line 635...
634
                                NaviData.SetpointAltitude = FromFlightCtrl.Param.sInt[2]; // in 5cm
635
                                NaviData.SetpointAltitude = FromFlightCtrl.Param.sInt[2]; // in 5cm
635
                                CHK_POTI_MM(Parameter.NaviGpsPLimit,FromFlightCtrl.Param.Byte[6],0,255);
636
                                CHK_POTI_MM(Parameter.NaviGpsPLimit,FromFlightCtrl.Param.Byte[6],0,255);
636
                                CHK_POTI_MM(Parameter.NaviGpsILimit,FromFlightCtrl.Param.Byte[7],0,255);
637
                                CHK_POTI_MM(Parameter.NaviGpsILimit,FromFlightCtrl.Param.Byte[7],0,255);
637
                                CHK_POTI_MM(Parameter.NaviGpsDLimit,FromFlightCtrl.Param.Byte[8],0,255);
638
                                CHK_POTI_MM(Parameter.NaviGpsDLimit,FromFlightCtrl.Param.Byte[8],0,255);
638
                                FC.RC_Quality   = FromFlightCtrl.Param.Byte[9];
639
                                FC.RC_Quality   = FromFlightCtrl.Param.Byte[9];
-
 
640
                                NaviData.RC_Quality = FC.RC_Quality;
-
 
641
//FromFlightCtrl.Param.Byte[10];
-
 
642
 
639
                                FC.RC_RSSI              = FromFlightCtrl.Param.Byte[10];
643
//                              FC.RC_RSSI              = FromFlightCtrl.Param.Byte[10];
640
                                if(!FC.RC_RSSI) NaviData.RC_Quality = FC.RC_Quality; else NaviData.RC_Quality = FC.RC_RSSI;
644
//                              if(!FC.RC_RSSI) NaviData.RC_Quality = FC.RC_Quality; else NaviData.RC_Quality = FC.RC_RSSI;
641
//                              NaviData.RC_RSSI = FC.RC_RSSI;
645
//                              NaviData.RC_RSSI = FC.RC_RSSI;
642
                                NaviData.Gas    = (FC.BAT_Voltage * (u32) FromFlightCtrl.Param.Byte[11]) / (u32) Parameter.LowVoltageWarning;
646
                                NaviData.Gas    = (FC.BAT_Voltage * (u32) FromFlightCtrl.Param.Byte[11]) / (u32) Parameter.LowVoltageWarning;
643
                                break;
647
                                break;
Line 644... Line 648...
644
 
648