Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 1939 → Rev 1940

/trunk/eeprom.h
56,10 → 56,10
#define CFG_LOOP_UNTEN 0x02
#define CFG_LOOP_LINKS 0x04
#define CFG_LOOP_RECHTS 0x08
#define CFG_MOTOR_BLINK 0x10
#define CFG_MOTOR_BLINK1 0x10
#define CFG_MOTOR_OFF_LED1 0x20
#define CFG_MOTOR_OFF_LED2 0x40
//#define CFG_RES4 0x80
#define CFG_MOTOR_BLINK2 0x80
 
// ExtraConfig
#define CFG2_HEIGHT_LIMIT 0x01
/trunk/hottmenu.c
63,6 → 63,37
}
 
//---------------------------------------------------------------
unsigned char NC_Fills_HoTT_Telemety()
{
unsigned char *ptr;
unsigned char max = 0,i,z;
switch(FromNaviCtrl.Param.Byte[11])
{
case HOTT_VARIO_PACKET_ID:
ptr = (unsigned char *) &VarioPacket;
max = sizeof(VarioPacket);
break;
case HOTT_GPS_PACKET_ID:
ptr = (unsigned char *) &GPSPacket;
max = sizeof(GPSPacket);
break;
case HOTT_ELECTRIC_AIR_PACKET_ID:
ptr = (unsigned char *) &ElectricAirPacket;
max = sizeof(ElectricAirPacket);
break;
}
z = FromNaviCtrl.Param.Byte[0]; // Data allocation
 
for(i=0; i < FromNaviCtrl.Param.Byte[1]; i++)
{
if(z >= max) break;
ptr[z] = FromNaviCtrl.Param.Byte[2+i];
z++;
}
}
 
//---------------------------------------------------------------
 
unsigned char HoTT_Telemety(unsigned char packet_request)
{
switch(packet_request)
69,6 → 100,9
{
case HOTT_VARIO_PACKET_ID:
VarioPacket.Altitude = HoehenWert/100 + 500;
VarioPacket.m_sec = GPSInfo.Speed+120;
GPSPacket.m_3sec = 120;
GPSPacket.m_10sec = 120;
if (VarioPacket.Altitude < VarioPacket.MinAltitude) VarioPacket.MinAltitude = VarioPacket.Altitude;
if (VarioPacket.Altitude > VarioPacket.MaxAltitude) VarioPacket.MaxAltitude = VarioPacket.Altitude;
VarioPacket.WarnBeep = HoTT_Waring();
78,9 → 112,9
 
case HOTT_GPS_PACKET_ID:
GPSPacket.Altitude = HoehenWert/100 + 500;
GPSPacket.Distance = GPSInfo.HomeDistance/10;
GPSPacket.Heading = KompassValue/2;
GPSPacket.Speed = (GPSInfo.Speed * 36) / 10;
// GPSPacket.Distance = GPSInfo.HomeDistance/10;
// GPSPacket.Heading = GPSInfo.HomeBearing/2;//KompassValue/2;
// GPSPacket.Speed = (GPSInfo.Speed * 36) / 10;
GPSPacket.m_sec = GPSInfo.Speed+120;
GPSPacket.m_3sec = 120;
GPSPacket.m_10sec = 0;
89,10 → 123,17
return(sizeof(GPSPacket));
break;
case HOTT_ELECTRIC_AIR_PACKET_ID:
ElectricAirPacket.Altitude = HoehenWert/1000 + 500; ;
ElectricAirPacket.Altitude = HoehenWert/100 + 500;
ElectricAirPacket.Battery1 = UBat;
ElectricAirPacket.Capacity = Capacity.UsedCapacity;
ElectricAirPacket.Battery2 = UBat;
ElectricAirPacket.m_sec = GPSInfo.Speed+120;
ElectricAirPacket.m_3sec = 120;
ElectricAirPacket.InputVoltage = UBat;
ElectricAirPacket.Temperature1 = Motor[0].Temperature + 20;
ElectricAirPacket.Temperature2 = Motor[1].Temperature + 20;
ElectricAirPacket.Capacity = Capacity.UsedCapacity/10;
ElectricAirPacket.WarnBeep = HoTT_Waring();
ElectricAirPacket.Current = Capacity.ActualCurrent;
HoTT_DataPointer = (unsigned char *) &ElectricAirPacket;
return(sizeof(ElectricAirPacket));
break;
132,7 → 173,7
if(FC_StatusFlags & FC_STATUS_LOWBAT)
HoTT_printfxy_BLINK(0,2," %5i ",Capacity.UsedCapacity)
else HoTT_printfxy(0,2," %5i ",Capacity.UsedCapacity);
HoTT_printfxy(12,2,"I:%2i.%1iA",Capacity.ActualCurrent/10, Capacity.ActualCurrent%10);
HoTT_printfxy(12,2,"I:%2i.%1iA ",Capacity.ActualCurrent/10, Capacity.ActualCurrent%10);
break;
case 3:
HoTT_printfxy(9,0,"I");
139,13 → 180,12
HoTT_printfxy(9,1,"I");
HoTT_printfxy(9,2,"I");
HoTT_printfxy(0,3,"---------+-----------");
HoTT_printfxy(9,4,"I");
HoTT_printfxy(9,5,"I");
HoTT_printfxy(0,6,"---------------------");
break;
case 4:
if(NaviDataOkay)
{
HoTT_printfxy(9,4,"I");
HoTT_printfxy(0,4,"SAT:%2d ",GPSInfo.NumOfSats);
HoTT_printfxy(10,4,"DIST:%3dm",GPSInfo.HomeDistance/10);
switch (GPSInfo.SatFix)
161,16 → 201,17
}
else
{ //012345678901234567890
HoTT_printfxy(0,4,"No Navi ");
Hott_ClearLine(4);
}
break;
case 5:
if(NaviDataOkay)
{
HoTT_printfxy(9,5,"I");
HoTT_printfxy(4,5,"%2um/s",GPSInfo.Speed,GPSInfo.NumOfSats);
HoTT_printfxy(12,5,"HM:%3d%c %c", GPSInfo.HomeBearing, HoTT_GRAD, NC_GPS_ModeCharacter);
}
else HoTT_printfxy(0,5," | ");
else Hott_ClearLine(5);
break;
case 6:
/*
/trunk/hottmenu.h
73,26 → 73,26
 
typedef struct
{
unsigned char StartByte; // 0x7C
unsigned char Packet_ID; // 0x89 - Vario ID
unsigned char WarnBeep; // Anzahl der Töne 0..36
unsigned char Heading; // 1 = 2°
unsigned int Speed; // in km/h
unsigned char Lat_North;
unsigned char Lat_G;
unsigned char Lat_M;
unsigned char Lat_Sek1;
unsigned char Lat_Sek2;
unsigned char Lon_East;
unsigned char Lon_G;
unsigned char Lon_M;
unsigned char Lon_Sek1;
unsigned char Lon_Sek2;
unsigned int Distance; // 9000 = 0m
unsigned int Altitude; // 500 = 0m
unsigned int m_sec; // 3000 = 0
unsigned int m_3sec; // 3000 = 0
unsigned int m_10sec; // 3000 = 0
unsigned char StartByte; //0 // 0x7C
unsigned char Packet_ID; //1 // 0x89 - Vario ID
unsigned char WarnBeep; //2 // Anzahl der Töne 0..36
unsigned char Heading; //3 // 1 = 2°
unsigned int Speed; //4+5 // in km/h
unsigned char Lat_North; //6
unsigned char Lat_G; //7
unsigned char Lat_M; //8
unsigned char Lat_Sek1; //9
unsigned char Lat_Sek2; //10
unsigned char Lon_East; //11
unsigned char Lon_G; //12
unsigned char Lon_M; //13
unsigned char Lon_Sek1; //14
unsigned char Lon_Sek2; //15
unsigned int Distance; //16+17 // 9000 = 0m
unsigned int Altitude; //18+19 // 500 = 0m
unsigned int m_sec; //20+21 // 3000 = 0
unsigned int m_3sec; //22+23 // 3000 = 0
unsigned int m_10sec; //24+25 // 3000 = 0
unsigned char NullByte; // 0x00
unsigned char NullByte1; // 0x00
unsigned char EndByte; // 0x7D
108,6 → 108,7
} ASCIIPacket_t;
 
 
 
extern GPSPacket_t GPSPacket;
extern VarioPacket_t VarioPacket;
extern ASCIIPacket_t ASCIIPacket;
/trunk/led.c
50,7 → 50,7
 
if(!J16Warn)
{
if((EE_Parameter.BitConfig & CFG_MOTOR_BLINK) && !MotorenEin) {if(EE_Parameter.BitConfig & CFG_MOTOR_OFF_LED1) J16_ON; else J16_OFF;}
if((EE_Parameter.BitConfig & CFG_MOTOR_BLINK1) && !MotorenEin) {if(EE_Parameter.BitConfig & CFG_MOTOR_OFF_LED1) J16_ON; else J16_OFF;}
else
if((EE_Parameter.J16Timing > 247) && (Parameter_J16Timing > 220)) {if(J16Bitmask & 128) J16_ON; else J16_OFF;}
else
73,7 → 73,7
 
if(!J17Warn)
{
if((EE_Parameter.BitConfig & CFG_MOTOR_BLINK) && !MotorenEin) {if(EE_Parameter.BitConfig & CFG_MOTOR_OFF_LED2) J17_ON; else J17_OFF;}
if((EE_Parameter.BitConfig & CFG_MOTOR_BLINK2) && !MotorenEin) {if(EE_Parameter.BitConfig & CFG_MOTOR_OFF_LED2) J17_ON; else J17_OFF;}
else
if((EE_Parameter.J17Timing > 247) && (Parameter_J17Timing > 220)) {if(J17Bitmask & 128) J17_ON; else J17_OFF;}
else
/trunk/libfc1284.a
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/libfc644.a
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/makefile
6,10 → 6,10
#-------------------------------------------------------------------
VERSION_MAJOR = 0
VERSION_MINOR = 85
VERSION_PATCH = 13
VERSION_PATCH = 14
VERSION_SERIAL_MAJOR = 11 # Serial Protocol
VERSION_SERIAL_MINOR = 0 # Serial Protocol
NC_SPI_COMPATIBLE = 22 # Navi-Kompatibilität
NC_SPI_COMPATIBLE = 23 # Navi-Kompatibilität
#-------------------------------------------------------------------
 
# get SVN revision
/trunk/spi.c
333,7 → 333,6
NC_ErrorCode = FromNaviCtrl.Param.Byte[7];
NC_GPS_ModeCharacter = FromNaviCtrl.Param.Byte[8];
break;
 
case SPI_NCCMD_GPSINFO:
GPSInfo.Flags = FromNaviCtrl.Param.Byte[0];
GPSInfo.NumOfSats = FromNaviCtrl.Param.Byte[1];
345,6 → 344,12
FromNC_AltitudeSpeed = FromNaviCtrl.Param.Byte[9];
FromNC_AltitudeSetpoint = (long) FromNaviCtrl.Param.sInt[5] * 10; // in cm
break;
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
case SPI_NCCMD_HOTT_DATA:
if(EE_Parameter.Receiver == RECEIVER_HOTT) NC_Fills_HoTT_Telemety();
break;
#endif
 
// 0 = 0,1
// 1 = 2,3
// 2 = 4,5
/trunk/spi.h
93,6 → 93,7
#define SPI_NCCMD_KALMAN 103
#define SPI_NCCMD_VERSION 104
#define SPI_NCCMD_GPSINFO 105
#define SPI_NCCMD_HOTT_DATA 106
 
struct str_FromNaviCtrl
{
/trunk/version.txt
489,4 → 489,5
- I2C Fehler kamen nicht bei der NC an, weil die zu kurz waren
- Fehlermeldungen stehen jetzt mind. so lange an, bis sie an die Nc gesendet wurden
- neue Fehlermeldung: "GPS Fix lost"
- LED: Schaltfläche "nur bei Motor start" bei beiden getrennt
- Ausbau der HoTT-Telemetrie