Subversion Repositories FlightCtrl

Rev

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

Rev 2263 Rev 2322
Line 77... Line 77...
77
#define HOTT_KEY_DOWN   2
77
#define HOTT_KEY_DOWN   2
78
#define HOTT_KEY_UP     4
78
#define HOTT_KEY_UP     4
79
#define HOTT_KEY_SET    6
79
#define HOTT_KEY_SET    6
80
#define HOTT_KEY_LEFT   8
80
#define HOTT_KEY_LEFT   8
Line -... Line 81...
-
 
81
 
81
 
82
#define VARIO_ZERO 30000
82
unsigned char NaviData_WaypointIndex = 0, NaviData_WaypointNumber = 0, NaviData_TargetHoldTime = 0;
83
unsigned char NaviData_WaypointIndex = 0, NaviData_WaypointNumber = 0, NaviData_TargetHoldTime = 0;
Line 83... Line 84...
83
unsigned int NaviData_TargetDistance = 0;
84
unsigned int NaviData_TargetDistance = 0;
84
 
85
 
Line 274... Line 275...
274
  }
275
  }
275
}
276
}
Line 276... Line 277...
276
 
277
 
277
unsigned int BuildHoTT_Vario(void)
278
unsigned int BuildHoTT_Vario(void)
278
{
279
{
279
 unsigned int tmp = 30000;
280
 unsigned int tmp = VARIO_ZERO;
280
 if(VarioCharacter == '+' || VarioCharacter == '-')
281
 if(VarioCharacter == '+' || VarioCharacter == '-')
281
  {
282
  {
282
   tmp = 30000 + (AltitudeSetpointTrimming * EE_Parameter.Hoehe_Verstaerkung) / 3;
283
   tmp = VARIO_ZERO + (AltitudeSetpointTrimming * EE_Parameter.Hoehe_Verstaerkung) / 3;
283
   if(tmp < 30000 && tmp > 30000 - 50) tmp = 30000 - 50; // weil es sonst erst bei < 0,5m/sek piept
284
   if(tmp < VARIO_ZERO && tmp > VARIO_ZERO - 50) tmp = VARIO_ZERO - 50; // weil es sonst erst bei < 0,5m/sek piept
284
  }
285
  }
285
 else
286
 else
286
 if((VarioCharacter == ' ') && (FC_StatusFlags & FC_STATUS_FLY))
287
 if((VarioCharacter == ' ') && (FC_StatusFlags & FC_STATUS_FLY))
287
  {
288
  {
288
   tmp = 30000 + HoTTVarioMeter;
289
   tmp = VARIO_ZERO + HoTTVarioMeter;
289
   if(tmp > 30000)
290
   if(tmp > VARIO_ZERO)
290
    {
291
    {
291
     if(tmp < 30000 + 100) tmp = 30000;
292
     if(tmp < VARIO_ZERO + 100) tmp = VARIO_ZERO;
292
         else tmp -= 100;
293
         else tmp -= 100;
293
        }
294
        }
294
   if(tmp < 30000)
295
   if(tmp < VARIO_ZERO)
295
    {
296
    {
296
     if(tmp > 30000 - 100) tmp = 30000;
297
     if(tmp > VARIO_ZERO - 100) tmp = VARIO_ZERO;
297
         else tmp += 100;
298
         else tmp += 100;
298
        }
299
        }
299
  }
300
  }
300
 else
301
 else
301
 if(VarioCharacter == '^') tmp = 30000 + FromNC_AltitudeSpeed * 10;
302
 if(VarioCharacter == '^') tmp = VARIO_ZERO + FromNC_AltitudeSpeed * 10;
302
 else
303
 else
303
 if(VarioCharacter == 'v') tmp = 30000 - FromNC_AltitudeSpeed * 10;
-
 
304
 
304
 if(VarioCharacter == 'v') tmp = VARIO_ZERO - FromNC_AltitudeSpeed * 10;
305
 return(tmp);
305
 return(tmp);
Line 306... Line 306...
306
}
306
}
307
 
307
 
308
//---------------------------------------------------------------
308
//---------------------------------------------------------------
309
unsigned char HoTT_Telemety(unsigned char packet_request)
309
unsigned char HoTT_Telemety(unsigned char packet_request)
310
{
310
{
311
unsigned char i;
-
 
312
  //Debug("rqst: %02X",packet_request);
311
 unsigned char i;
313
 
312
  //Debug("rqst: %02X",packet_request);
314
 switch(packet_request)
313
 switch(packet_request)
-
 
314
 {
315
 {
315
  case HOTT_VARIO_PACKET_ID:
316
  case HOTT_VARIO_PACKET_ID:
316
                GPSPacket.WarnBeep = HoTT_Waring(); // Achtung: das ist richtig hier, damit der Varioton schon vorher abgestellt wird
317
                VarioPacket.Altitude = HoehenWert/100 + 500;  
317
                VarioPacket.Altitude = HoehenWert/100 + 500;  
318
                VarioPacket.m_sec = BuildHoTT_Vario();
318
                if(!GPSPacket.WarnBeep) VarioPacket.m_sec = BuildHoTT_Vario(); else VarioPacket.m_sec = VARIO_ZERO;
319
                VarioPacket.m_3sec = VarioPacket.m_sec;
319
                VarioPacket.m_3sec = VarioPacket.m_sec;
320
                VarioPacket.m_10sec = VarioPacket.m_sec;
320
                VarioPacket.m_10sec = VarioPacket.m_sec;
321
                if (VarioPacket.Altitude < VarioPacket.MinAltitude) VarioPacket.MinAltitude = VarioPacket.Altitude;
321
                if (VarioPacket.Altitude < VarioPacket.MinAltitude) VarioPacket.MinAltitude = VarioPacket.Altitude;
Line 365... Line 365...
365
//unsigned char NaviData_WaypointIndex = 0, NaviData_WaypointNumber = 0, NaviData_TargetHoldTime = 0;
365
//unsigned char NaviData_WaypointIndex = 0, NaviData_WaypointNumber = 0, NaviData_TargetHoldTime = 0;
366
//unsigned int NaviData_TargetDistance = 0;
366
//unsigned int NaviData_TargetDistance = 0;
367
         }
367
         }
368
         else
368
         else
369
         for(i=0; i<21;i++) VarioPacket.Text[i] = pgm_read_byte(&MIKROKOPTER[i]); // no Error
369
         for(i=0; i<21;i++) VarioPacket.Text[i] = pgm_read_byte(&MIKROKOPTER[i]); // no Error
370
         
-
 
371
                return(sizeof(VarioPacket));
370
                return(sizeof(VarioPacket));
372
                break;
371
                break;
Line 373... Line 372...
373
 
372
 
374
  case HOTT_GPS_PACKET_ID:
373
  case HOTT_GPS_PACKET_ID:
375
                GPSPacket.Altitude = HoehenWert/100 + 500;  
374
                GPSPacket.Altitude = HoehenWert/100 + 500;  
376
//              GPSPacket.Distance = GPSInfo.HomeDistance/10;  // macht die NC
375
//              GPSPacket.Distance = GPSInfo.HomeDistance/10;  // macht die NC
377
//              GPSPacket.Heading = GPSInfo.HomeBearing/2;     // macht die NC
376
//              GPSPacket.Heading = GPSInfo.HomeBearing/2;     // macht die NC
-
 
377
//              GPSPacket.Speed = (GPSInfo.Speed * 36) / 10;   // macht die NC
378
//              GPSPacket.Speed = (GPSInfo.Speed * 36) / 10;   // macht die NC
378
//      GPSPacket.WarnBeep = HoTT_Waring();                //(wird jetzt weiter oben gemacht)
379
                GPSPacket.m_sec = BuildHoTT_Vario();
379
                if(!GPSPacket.WarnBeep) GPSPacket.m_sec = BuildHoTT_Vario(); else GPSPacket.m_sec = VARIO_ZERO;
380
                GPSPacket.m_3sec = 120;
380
                GPSPacket.m_3sec = 120;
381
                GPSPacket.NumOfSats = GPSInfo.NumOfSats;
-
 
382
                GPSPacket.WarnBeep = HoTT_Waring();
381
                GPSPacket.NumOfSats = GPSInfo.NumOfSats;
383
                if(GPSInfo.Flags & FLAG_DIFFSOLN) GPSPacket.SatFix = 'D';
382
                if(GPSInfo.Flags & FLAG_DIFFSOLN) GPSPacket.SatFix = 'D';
384
                else
383
                else
385
        if(GPSInfo.SatFix == SATFIX_3D) GPSPacket.SatFix = ' ';
384
        if(GPSInfo.SatFix == SATFIX_3D) GPSPacket.SatFix = ' ';
386
                else GPSPacket.SatFix = '!';
385
                else GPSPacket.SatFix = '!';
Line 399... Line 398...
399
                ElectricAirPacket.VoltageCell8 = ElectricAirPacket.VoltageCell1;
398
                ElectricAirPacket.VoltageCell8 = ElectricAirPacket.VoltageCell1;
400
                ElectricAirPacket.VoltageCell6 = GPSInfo.HomeBearing / 2;
399
                ElectricAirPacket.VoltageCell6 = GPSInfo.HomeBearing / 2;
401
                ElectricAirPacket.VoltageCell7 = GPSInfo.HomeDistance/20;
400
                ElectricAirPacket.VoltageCell7 = GPSInfo.HomeDistance/20;
402
                ElectricAirPacket.VoltageCell13 = ElectricAirPacket.VoltageCell6;
401
                ElectricAirPacket.VoltageCell13 = ElectricAirPacket.VoltageCell6;
403
                ElectricAirPacket.VoltageCell14 = ElectricAirPacket.VoltageCell7;
402
                ElectricAirPacket.VoltageCell14 = ElectricAirPacket.VoltageCell7;
404
                ElectricAirPacket.m_sec = BuildHoTT_Vario();
403
        if(!GPSPacket.WarnBeep) ElectricAirPacket.m_sec = BuildHoTT_Vario(); else ElectricAirPacket.m_sec = VARIO_ZERO;
405
                ElectricAirPacket.m_3sec = 120;
404
                ElectricAirPacket.m_3sec = 120;
406
                ElectricAirPacket.InputVoltage = UBat;
405
                ElectricAirPacket.InputVoltage = UBat;
407
                ElectricAirPacket.Temperature1 = MinBlTempertaure + 20;
406
                ElectricAirPacket.Temperature1 = MinBlTempertaure + 20;
408
                ElectricAirPacket.Temperature2 = MaxBlTempertaure + 20;
407
                ElectricAirPacket.Temperature2 = MaxBlTempertaure + 20;
409
                ElectricAirPacket.Capacity = Capacity.UsedCapacity/10;
408
                ElectricAirPacket.Capacity = Capacity.UsedCapacity/10;
Line 424... Line 423...
424
                HoTTGeneral.FuelCapacity = HoehenWert/100;
423
                HoTTGeneral.FuelCapacity = HoehenWert/100;
425
                if(HoTTGeneral.FuelCapacity < 0) HoTTGeneral.FuelCapacity = 0;
424
                if(HoTTGeneral.FuelCapacity < 0) HoTTGeneral.FuelCapacity = 0;
426
                HoTTGeneral.Altitude = HoehenWert/100 + 500;
425
                HoTTGeneral.Altitude = HoehenWert/100 + 500;
427
                HoTTGeneral.Battery1 = UBat;
426
                HoTTGeneral.Battery1 = UBat;
428
                HoTTGeneral.Battery2 = UBat;
427
                HoTTGeneral.Battery2 = UBat;
429
                HoTTGeneral.m_sec =  BuildHoTT_Vario();
428
                if(!GPSPacket.WarnBeep) HoTTGeneral.m_sec =  BuildHoTT_Vario(); else  HoTTGeneral.m_sec = VARIO_ZERO;
430
                HoTTGeneral.m_3sec = 120;
429
                HoTTGeneral.m_3sec = 120;
431
                HoTTGeneral.InputVoltage = UBat;
430
                HoTTGeneral.InputVoltage = UBat;
432
                HoTTGeneral.Temperature1 = MinBlTempertaure + 20;
431
                HoTTGeneral.Temperature1 = MinBlTempertaure + 20;
433
                HoTTGeneral.Temperature2 = MaxBlTempertaure + 20;
432
                HoTTGeneral.Temperature2 = MaxBlTempertaure + 20;
434
                HoTTGeneral.Capacity = Capacity.UsedCapacity/10;
433
                HoTTGeneral.Capacity = Capacity.UsedCapacity/10;