Subversion Repositories FlightCtrl

Rev

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

Rev 2355 Rev 2373
Line 81... Line 81...
81
 
81
 
82
#define VARIO_ZERO 30000
82
#define VARIO_ZERO 30000
83
unsigned char NaviData_WaypointIndex = 0, NaviData_WaypointNumber = 0, NaviData_TargetHoldTime = 0;
83
unsigned char NaviData_WaypointIndex = 0, NaviData_WaypointNumber = 0, NaviData_TargetHoldTime = 0;
Line -... Line 84...
-
 
84
unsigned int NaviData_TargetDistance = 0;
-
 
85
 
-
 
86
unsigned char MaxBlTemperture = 0;
-
 
87
unsigned char MinBlTemperture = 0;
84
unsigned int NaviData_TargetDistance = 0;
88
unsigned char HottestBl = 0;
85
 
89
 
86
GPSPacket_t GPSPacket;
90
GPSPacket_t GPSPacket;
87
VarioPacket_t VarioPacket;
91
VarioPacket_t VarioPacket;
88
ASCIIPacket_t ASCIIPacket;
92
ASCIIPacket_t ASCIIPacket;
Line 167... Line 171...
167
         {SPEAK_MAX_ALTITUD,1},// "Max Altitude!   \0"   // 29
171
         {SPEAK_MAX_ALTITUD,1},// "Max Altitude!   \0"   // 29
168
         {SPEAK_GPS_FIX,1}// "no GPS Fix,  // 30
172
         {SPEAK_GPS_FIX,1}// "no GPS Fix,  // 30
169
};
173
};
Line 170... Line -...
170
 
-
 
171
 
-
 
172
unsigned char MaxBlTempertaure = 0;
-
 
173
unsigned char MinBlTempertaure = 0;
-
 
174
unsigned char HottestBl = 0;
174
 
175
 
175
 
176
void GetHottestBl(void)
176
void GetHottestBl(void)
177
{
177
{
178
 static unsigned char search = 0,tmp_max,tmp_min,who;
178
 static unsigned char search = 0,tmp_max,tmp_min,who;
179
                if(Motor[search].Temperature > tmp_max) { tmp_max = Motor[search].Temperature; who = search;}
179
                if(Motor[search].Temperature > tmp_max) { tmp_max = Motor[search].Temperature; who = search;}
180
                else
180
                else
181
                if(Motor[search].Temperature) if(Motor[search].Temperature < tmp_min) tmp_min = Motor[search].Temperature;
181
                if(Motor[search].Temperature) if(Motor[search].Temperature < tmp_min) tmp_min = Motor[search].Temperature;
182
                if(++search > MAX_MOTORS)
182
                if(++search >= MAX_MOTORS)
183
                {
183
                {
184
                 search = 0;
184
                 search = 0;
185
                 if(tmp_min != 255) MinBlTempertaure = tmp_min; else MinBlTempertaure = 0;
185
                 if(tmp_min != 255) MinBlTemperture = tmp_min; else MinBlTemperture = 0;
186
                 MaxBlTempertaure = tmp_max;
186
                 MaxBlTemperture = tmp_max;
187
                 HottestBl = who;
187
                 HottestBl = who;
188
                 tmp_min = 255;
188
                 tmp_min = 255;
189
                 tmp_max = 0;
189
                 tmp_max = 0;
Line 422... Line 422...
422
                ElectricAirPacket.VoltageCell13 = ElectricAirPacket.VoltageCell6;
422
                ElectricAirPacket.VoltageCell13 = ElectricAirPacket.VoltageCell6;
423
                ElectricAirPacket.VoltageCell14 = ElectricAirPacket.VoltageCell7;
423
                ElectricAirPacket.VoltageCell14 = ElectricAirPacket.VoltageCell7;
424
        if(!GPSPacket.WarnBeep) ElectricAirPacket.m_sec = BuildHoTT_Vario(); else ElectricAirPacket.m_sec = VARIO_ZERO;
424
        if(!GPSPacket.WarnBeep) ElectricAirPacket.m_sec = BuildHoTT_Vario(); else ElectricAirPacket.m_sec = VARIO_ZERO;
425
                ElectricAirPacket.m_3sec = 120;
425
                ElectricAirPacket.m_3sec = 120;
426
                ElectricAirPacket.InputVoltage = UBat;
426
                ElectricAirPacket.InputVoltage = UBat;
427
                ElectricAirPacket.Temperature1 = MinBlTempertaure + 20;
427
                ElectricAirPacket.Temperature1 = MinBlTemperture + 20;
428
                ElectricAirPacket.Temperature2 = MaxBlTempertaure + 20;
428
                ElectricAirPacket.Temperature2 = MaxBlTemperture + 20;
429
                ElectricAirPacket.Capacity = Capacity.UsedCapacity/10;
429
                ElectricAirPacket.Capacity = Capacity.UsedCapacity/10;
430
                ElectricAirPacket.WarnBeep = 0;//HoTT_Waring();
430
//              ElectricAirPacket.WarnBeep = 0;//HoTT_Waring();
-
 
431
ElectricAirPacket.WarnBeep = GPSPacket.WarnBeep;
431
                ElectricAirPacket.Current = Capacity.ActualCurrent;
432
                ElectricAirPacket.Current = Capacity.ActualCurrent;
432
                HoTT_DataPointer = (unsigned char *) &ElectricAirPacket;
433
                HoTT_DataPointer = (unsigned char *) &ElectricAirPacket;
433
                ElectricAirPacket.FlightTimeMinutes = FlugSekunden / 60;
434
                ElectricAirPacket.FlightTimeMinutes = FlugSekunden / 60;
434
                ElectricAirPacket.FlightTimeSeconds = FlugSekunden % 60;
435
                ElectricAirPacket.FlightTimeSeconds = FlugSekunden % 60;
435
                return(sizeof(ElectricAirPacket));
436
                return(sizeof(ElectricAirPacket));
436
                break;
437
                break;
437
  case HOTT_GENERAL_PACKET_ID:
438
  case HOTT_GENERAL_PACKET_ID:
438
                GetHottestBl();
439
                GetHottestBl();
439
                HoTTGeneral.Rpm = GPSInfo.HomeDistance/100;
440
                HoTTGeneral.Rpm = GPSInfo.HomeDistance/100;
440
                HoTTGeneral.VoltageCell1 = ErsatzKompassInGrad / 2;
441
                HoTTGeneral.VoltageCell1 = ErsatzKompassInGrad / 2;
-
 
442
                HoTTGeneral.VoltageCell2 = KompassValue / 2;
-
 
443
                //HoTTGeneral.VoltageCell3 = Magnetstaerke -> macht NC
-
 
444
                //HoTTGeneral.VoltageCell4 = Inclinition -> macht NC
-
 
445
                HoTTGeneral.VoltageCell5 = DebugOut.Analog[28]; // I2C ErrorCounter
441
                HoTTGeneral.VoltageCell6 = GPSInfo.HomeBearing / 2;
446
                HoTTGeneral.VoltageCell6 = GPSInfo.HomeBearing / 2;
442
                if(UBat > BattLowVoltageWarning + 5) HoTTGeneral.FuelPercent = (UBat - (BattLowVoltageWarning + 6)) * 3;
447
                if(UBat > BattLowVoltageWarning + 2) HoTTGeneral.FuelPercent = (UBat - (BattLowVoltageWarning + 2)) * 3;
443
                else HoTTGeneral.FuelPercent = 0;
448
                else HoTTGeneral.FuelPercent = 0;
-
 
449
                if(HoTTGeneral.FuelPercent > 100) HoTTGeneral.FuelPercent = 100;
444
                HoTTGeneral.FuelCapacity = HoehenWert/100;
450
                HoTTGeneral.FuelCapacity = NC_ErrorCode;//HoehenWert/100; // Oelpegel
445
                if(HoTTGeneral.FuelCapacity < 0) HoTTGeneral.FuelCapacity = 0;
451
//              if(HoTTGeneral.FuelCapacity < 0) HoTTGeneral.FuelCapacity = 0;
446
                HoTTGeneral.Altitude = HoehenWert/100 + 500;
452
                HoTTGeneral.Altitude = HoehenWert/100 + 500;
447
                HoTTGeneral.Battery1 = UBat;
453
                HoTTGeneral.Battery1 = UBat;
448
                HoTTGeneral.Battery2 = UBat;
454
                HoTTGeneral.Battery2 = UBat;
449
                if(!GPSPacket.WarnBeep) HoTTGeneral.m_sec =  BuildHoTT_Vario(); else  HoTTGeneral.m_sec = VARIO_ZERO;
455
                if(!GPSPacket.WarnBeep) HoTTGeneral.m_sec =  BuildHoTT_Vario(); else  HoTTGeneral.m_sec = VARIO_ZERO;
450
                HoTTGeneral.m_3sec = 120;
456
                HoTTGeneral.m_3sec = 120 + GPSPacket.WarnBeep;
451
                HoTTGeneral.InputVoltage = UBat;
457
                HoTTGeneral.InputVoltage = UBat;
452
                HoTTGeneral.Temperature1 = MinBlTempertaure + 20;
458
                HoTTGeneral.Temperature1 = MinBlTemperture + 20;
453
                HoTTGeneral.Temperature2 = MaxBlTempertaure + 20;
459
                HoTTGeneral.Temperature2 = MaxBlTemperture + 20;
454
                HoTTGeneral.Capacity = Capacity.UsedCapacity/10;
460
                HoTTGeneral.Capacity = Capacity.UsedCapacity/10;
455
                HoTTGeneral.WarnBeep = 0;//HoTT_Waring();
461
                HoTTGeneral.WarnBeep = 0;//HoTT_Waring();
456
                HoTTGeneral.Current = Capacity.ActualCurrent;
462
                HoTTGeneral.Current = Capacity.ActualCurrent;
457
//HoTTGeneral.ErrorNumber = HoTTErrorCode();
463
//HoTTGeneral.ErrorNumber = HoTTErrorCode();
458
                HoTT_DataPointer = (unsigned char *) &HoTTGeneral;
464
                HoTT_DataPointer = (unsigned char *) &HoTTGeneral;