Subversion Repositories FlightCtrl

Rev

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

Rev 1943 Rev 1944
Line 24... Line 24...
24
GPSPacket_t GPSPacket;
24
GPSPacket_t GPSPacket;
25
VarioPacket_t VarioPacket;
25
VarioPacket_t VarioPacket;
26
ASCIIPacket_t ASCIIPacket;
26
ASCIIPacket_t ASCIIPacket;
27
ElectricAirPacket_t ElectricAirPacket;
27
ElectricAirPacket_t ElectricAirPacket;
28
HoTTGeneral_t HoTTGeneral;
28
HoTTGeneral_t HoTTGeneral;
-
 
29
int HoTTVarioMeter = 0;
Line 29... Line 30...
29
 
30
 
30
const char PROGMEM NC_ERROR_TEXT[MAX_ERR_NUMBER][17] =
31
const char PROGMEM NC_ERROR_TEXT[MAX_ERR_NUMBER][17] =
31
{
32
{
32
//0123456789123456
33
//0123456789123456
Line 49... Line 50...
49
 "Pressure sensor \0",  // 16
50
 "Pressure sensor \0",  // 16
50
 "I2C FC->BL-Ctrl \0",  // 17
51
 "I2C FC->BL-Ctrl \0",  // 17
51
 "Bl Missing      \0",  // 18
52
 "Bl Missing      \0",  // 18
52
 "Mixer Error     \0",  // 19
53
 "Mixer Error     \0",  // 19
53
 "Carefree Error  \0",  // 20
54
 "Carefree Error  \0",  // 20
54
 "GPS Fix lost    \0"   // 21
55
 "GPS Fix lost    \0",  // 21
-
 
56
 "Magnet Error    \0"   // 22
55
};
57
};
Line 56... Line 58...
56
 
58
 
57
unsigned char MaxBlTempertaure = 0;
59
unsigned char MaxBlTempertaure = 0;
58
unsigned char MinBlTempertaure = 0;
60
unsigned char MinBlTempertaure = 0;
Line 124... Line 126...
124
  }
126
  }
125
}
127
}
Line 126... Line 128...
126
 
128
 
127
unsigned int BuildHoTT_Vario(void)
129
unsigned int BuildHoTT_Vario(void)
128
{
130
{
129
 unsigned int tmp;
131
 unsigned int tmp = 30000;
130
 if(WaypointTrimming == 0)
132
 if(VarioCharacter == '+' || VarioCharacter == '-')
131
 {
133
  {
132
  tmp = 30000 + (AltitudeSetpointTrimming * EE_Parameter.Hoehe_Verstaerkung) / 3;
134
   tmp = 30000 + (AltitudeSetpointTrimming * EE_Parameter.Hoehe_Verstaerkung) / 3;
133
  if(tmp < 30000 && tmp > 30000 - 50) tmp = 30000 - 50; // weil es erst bei < 0,5m/sek piept
135
   if(tmp < 30000 && tmp > 30000 - 50) tmp = 30000 - 50; // weil es sonst erst bei < 0,5m/sek piept
134
 }
136
  }
135
 else
137
 else
-
 
138
 if((VarioCharacter == ' ') && (FC_StatusFlags & FC_STATUS_FLY))
-
 
139
  {
-
 
140
   tmp = 30000 + HoTTVarioMeter;
-
 
141
   if(tmp > 30000)
-
 
142
    {
-
 
143
     if(tmp < 30000 + 100) tmp = 30000;
-
 
144
         else tmp -= 100;
-
 
145
        }
-
 
146
   if(tmp < 30000)
-
 
147
    {
-
 
148
     if(tmp > 30000 - 100) tmp = 30000;
-
 
149
         else tmp += 100;
-
 
150
        }
-
 
151
  }
136
 if(WaypointTrimming > 0) tmp = 30000 + FromNC_AltitudeSpeed * 10;
152
 else
-
 
153
 if(VarioCharacter == '^') tmp = 30000 + FromNC_AltitudeSpeed * 10;
137
 else tmp = 30000 - FromNC_AltitudeSpeed * 10;
154
 else
-
 
155
 if(VarioCharacter == 'v') tmp = 30000 - FromNC_AltitudeSpeed * 10;
138
//tmp = 30000 + (int)(PPM_in[EE_Parameter.Kanalbelegung[K_GAS]]) * 5;
156
 
139
 return(tmp);
157
 return(tmp);
Line 140... Line 158...
140
}
158
}
Line 174... Line 192...
174
                ElectricAirPacket.Altitude = HoehenWert/100 + 500;
192
                ElectricAirPacket.Altitude = HoehenWert/100 + 500;
175
                ElectricAirPacket.Battery1 = UBat;
193
                ElectricAirPacket.Battery1 = UBat;
176
                ElectricAirPacket.Battery2 = UBat;
194
                ElectricAirPacket.Battery2 = UBat;
177
                ElectricAirPacket.VoltageCell1 = ErsatzKompassInGrad / 2;
195
                ElectricAirPacket.VoltageCell1 = ErsatzKompassInGrad / 2;
178
                ElectricAirPacket.VoltageCell8 = ElectricAirPacket.VoltageCell1;
196
                ElectricAirPacket.VoltageCell8 = ElectricAirPacket.VoltageCell1;
-
 
197
                ElectricAirPacket.VoltageCell6 = GPSInfo.HomeBearing / 2;
179
                ElectricAirPacket.VoltageCell7 = GPSInfo.HomeDistance/20;
198
                ElectricAirPacket.VoltageCell7 = GPSInfo.HomeDistance/20;
-
 
199
                ElectricAirPacket.VoltageCell13 = ElectricAirPacket.VoltageCell6;
180
                ElectricAirPacket.VoltageCell14 = ElectricAirPacket.VoltageCell7;
200
                ElectricAirPacket.VoltageCell14 = ElectricAirPacket.VoltageCell7;
181
                ElectricAirPacket.m_sec = BuildHoTT_Vario();
201
                ElectricAirPacket.m_sec = BuildHoTT_Vario();
182
                ElectricAirPacket.m_3sec = 120;
202
                ElectricAirPacket.m_3sec = 120;
183
                ElectricAirPacket.InputVoltage = UBat;
203
                ElectricAirPacket.InputVoltage = UBat;
184
                ElectricAirPacket.Temperature1 = MinBlTempertaure + 20;
204
                ElectricAirPacket.Temperature1 = MinBlTempertaure + 20;
Line 191... Line 211...
191
                break;
211
                break;
192
  case HOTT_GENERAL_PACKET_ID:
212
  case HOTT_GENERAL_PACKET_ID:
193
                GetHottestBl();
213
                GetHottestBl();
194
                HoTTGeneral.Rpm = GPSInfo.HomeDistance/100;
214
                HoTTGeneral.Rpm = GPSInfo.HomeDistance/100;
195
                HoTTGeneral.VoltageCell1 = ErsatzKompassInGrad / 2;
215
                HoTTGeneral.VoltageCell1 = ErsatzKompassInGrad / 2;
196
                HoTTGeneral.VoltageCell5 = GPSInfo.HomeDistance/20;
216
                HoTTGeneral.VoltageCell6 = GPSInfo.HomeBearing / 2;
197
                if(UBat > BattLowVoltageWarning + 5) HoTTGeneral.FuelPercent = (UBat - (BattLowVoltageWarning + 6)) * 3;
217
                if(UBat > BattLowVoltageWarning + 5) HoTTGeneral.FuelPercent = (UBat - (BattLowVoltageWarning + 6)) * 3;
198
                else HoTTGeneral.FuelPercent = 0;
218
                else HoTTGeneral.FuelPercent = 0;
199
                HoTTGeneral.FuelCapacity = HoehenWert/100; ;
219
                HoTTGeneral.FuelCapacity = HoehenWert/100;
-
 
220
                if(HoTTGeneral.FuelCapacity < 0) HoTTGeneral.FuelCapacity = 0;
200
                HoTTGeneral.Altitude = HoehenWert/100 + 500;
221
                HoTTGeneral.Altitude = HoehenWert/100 + 500;
201
                HoTTGeneral.Battery1 = UBat;
222
                HoTTGeneral.Battery1 = UBat;
202
                HoTTGeneral.Battery2 = UBat;
223
                HoTTGeneral.Battery2 = UBat;
203
                HoTTGeneral.m_sec =  BuildHoTT_Vario();
224
                HoTTGeneral.m_sec =  BuildHoTT_Vario();
204
                HoTTGeneral.m_3sec = 120;
225
                HoTTGeneral.m_3sec = 120;
Line 218... Line 239...
218
//---------------------------------------------------------------
239
//---------------------------------------------------------------
219
void HoTT_Menu(void)
240
void HoTT_Menu(void)
220
{
241
{
221
 static unsigned char line, page = 0;
242
 static unsigned char line, page = 0;
222
 unsigned char tmp;
243
 unsigned char tmp;
-
 
244
 HoTTVarioMeter = (HoTTVarioMeter * 7 + VarioMeter) / 8;
-
 
245
 
223
 if(page == 0)
246
 if(page == 0)
224
  switch(line++)
247
  switch(line++)
225
  {
248
  {
226
        case 0:  
249
        case 0:  
227
                if(FC_StatusFlags & FC_STATUS_LOWBAT)
250
                if(FC_StatusFlags & FC_STATUS_LOWBAT)
Line 272... Line 295...
272
                                                HoTT_printfxy_BLINK(7,4,"!!");
295
                                                HoTT_printfxy_BLINK(7,4,"!!");
273
                                                break;
296
                                                break;
274
                                }      
297
                                }      
275
                        }
298
                        }
276
                        else
299
                        else
277
                        {                    //012345678901234567890
300
                        {                    
278
                                Hott_ClearLine(4);
301
                                Hott_ClearLine(4);
279
                        }
302
                        }
280
                        break;
303
                        break;
281
        case 5:
304
        case 5:
282
                        if(NaviDataOkay)
305
                        if(NaviDataOkay)
Line 286... Line 309...
286
                            HoTT_printfxy(12,5,"HM:%3d%c %c", GPSInfo.HomeBearing, HoTT_GRAD, NC_GPS_ModeCharacter);
309
                            HoTT_printfxy(12,5,"HM:%3d%c %c", GPSInfo.HomeBearing, HoTT_GRAD, NC_GPS_ModeCharacter);
287
            }
310
            }
288
                        else Hott_ClearLine(5);
311
                        else Hott_ClearLine(5);
289
                        break;
312
                        break;
290
        case 6:
313
        case 6:
291
/*
-
 
292
                    if(RequiredMotors == 4) Hott_ClearLine(6);
-
 
293
                                else
-
 
294
                                if(RequiredMotors == 6)  HoTT_printfxy(0,6,"%3i %3i%cC        ", Motor[4].Temperature, Motor[5].Temperature,HoTT_GRAD)
-
 
295
                                else
-
 
296
                                if(RequiredMotors > 6)   HoTT_printfxy(0,6,"%3i %3i %3i %3i%cC", Motor[4].Temperature, Motor[5].Temperature, Motor[6].Temperature, Motor[7].Temperature,HoTT_GRAD);
-
 
297
//HoTT_printfxy(15,6,"%KEY:%02x",HottKeyboard);
-
 
298
*/
-
 
299
                        break;
314
                        break;
300
        case 7: if(NC_ErrorCode)
315
        case 7: if(NC_ErrorCode)
301
                  {
316
                  {
302
                           if(HoTTBlink && NC_ErrorCode < MAX_ERR_NUMBER)
317
                           if(HoTTBlink && NC_ErrorCode < MAX_ERR_NUMBER)
303
                            {
318
                            {