Subversion Repositories FlightCtrl

Rev

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

Rev 1942 Rev 1943
Line 19... Line 19...
19
#define HoTT_LINKS      123
19
#define HoTT_LINKS      123
20
#define HoTT_RECHTS 124
20
#define HoTT_RECHTS 124
21
#define HoTT_OBEN       125
21
#define HoTT_OBEN       125
22
#define HoTT_UNTEN      126
22
#define HoTT_UNTEN      126
Line -... Line 23...
-
 
23
 
-
 
24
GPSPacket_t GPSPacket;
-
 
25
VarioPacket_t VarioPacket;
-
 
26
ASCIIPacket_t ASCIIPacket;
-
 
27
ElectricAirPacket_t ElectricAirPacket;
-
 
28
HoTTGeneral_t HoTTGeneral;
23
 
29
 
24
const char PROGMEM NC_ERROR_TEXT[MAX_ERR_NUMBER][17] =
30
const char PROGMEM NC_ERROR_TEXT[MAX_ERR_NUMBER][17] =
25
{
31
{
26
//0123456789123456
32
//0123456789123456
27
 "No Error        \0",  // 0
33
 "No Error        \0",  // 0
Line 46... Line 52...
46
 "Mixer Error     \0",  // 19
52
 "Mixer Error     \0",  // 19
47
 "Carefree Error  \0",  // 20
53
 "Carefree Error  \0",  // 20
48
 "GPS Fix lost    \0"   // 21
54
 "GPS Fix lost    \0"   // 21
49
};
55
};
Line -... Line 56...
-
 
56
 
-
 
57
unsigned char MaxBlTempertaure = 0;
-
 
58
unsigned char MinBlTempertaure = 0;
-
 
59
unsigned char HottestBl = 0;
-
 
60
 
-
 
61
void GetHottestBl(void)
-
 
62
{
-
 
63
 static unsigned char search = 0,tmp_max,tmp_min,who;
-
 
64
                if(Motor[search].Temperature > tmp_max) { tmp_max = Motor[search].Temperature; who = search;}
-
 
65
                else
-
 
66
                if(Motor[search].Temperature) if(Motor[search].Temperature < tmp_min) tmp_min = Motor[search].Temperature;
-
 
67
                if(++search > MAX_MOTORS)
-
 
68
                {
-
 
69
                 search = 0;
-
 
70
                 if(tmp_min != 255) MinBlTempertaure = tmp_min; else MinBlTempertaure = 0;
-
 
71
                 MaxBlTempertaure = tmp_max;
-
 
72
                 HottestBl = who;
-
 
73
                 tmp_min = 255;
-
 
74
                 tmp_max = 0;
-
 
75
                 who = 0;
-
 
76
                 }
-
 
77
}
50
 
78
 
51
//---------------------------------------------------------------
79
//---------------------------------------------------------------
52
void Hott_ClearLine(unsigned char line)
80
void Hott_ClearLine(unsigned char line)
53
{
81
{
54
 HoTT_printfxy(0,line,"                     ");
82
 HoTT_printfxy(0,line,"                     ");
Line 79... Line 107...
79
                break;
107
                break;
80
   case HOTT_ELECTRIC_AIR_PACKET_ID:
108
   case HOTT_ELECTRIC_AIR_PACKET_ID:
81
                ptr = (unsigned char *) &ElectricAirPacket;
109
                ptr = (unsigned char *) &ElectricAirPacket;
82
                max = sizeof(ElectricAirPacket);
110
                max = sizeof(ElectricAirPacket);
83
                break;
111
                break;
-
 
112
   case HOTT_GENERAL_PACKET_ID:
-
 
113
                ptr = (unsigned char *) &HoTTGeneral;
-
 
114
                max = sizeof(HoTTGeneral);
-
 
115
                break;
84
  }
116
  }
85
 z = FromNaviCtrl.Param.Byte[0]; // Data allocation
117
 z = FromNaviCtrl.Param.Byte[0]; // Data allocation
Line 86... Line 118...
86
 
118
 
87
 for(i=0; i < FromNaviCtrl.Param.Byte[1]; i++)
119
 for(i=0; i < FromNaviCtrl.Param.Byte[1]; i++)
Line 101... Line 133...
101
  if(tmp < 30000 && tmp > 30000 - 50) tmp = 30000 - 50; // weil es erst bei < 0,5m/sek piept
133
  if(tmp < 30000 && tmp > 30000 - 50) tmp = 30000 - 50; // weil es erst bei < 0,5m/sek piept
102
 }
134
 }
103
 else
135
 else
104
 if(WaypointTrimming > 0) tmp = 30000 + FromNC_AltitudeSpeed * 10;
136
 if(WaypointTrimming > 0) tmp = 30000 + FromNC_AltitudeSpeed * 10;
105
 else tmp = 30000 - FromNC_AltitudeSpeed * 10;
137
 else tmp = 30000 - FromNC_AltitudeSpeed * 10;
-
 
138
//tmp = 30000 + (int)(PPM_in[EE_Parameter.Kanalbelegung[K_GAS]]) * 5;
106
 return(tmp);
139
 return(tmp);
107
}
140
}
Line -... Line 141...
-
 
141
 
108
 
142
 
109
//---------------------------------------------------------------
143
//---------------------------------------------------------------
110
unsigned char HoTT_Telemety(unsigned char packet_request)
144
unsigned char HoTT_Telemety(unsigned char packet_request)
111
{
-
 
112
 static unsigned char search = 0,max,min,tmp_max,tmp_min;
-
 
113
 
145
{
114
 switch(packet_request)
146
 switch(packet_request)
115
 {
147
 {
116
  case HOTT_VARIO_PACKET_ID:
148
  case HOTT_VARIO_PACKET_ID:
117
                VarioPacket.Altitude = HoehenWert/100 + 500;  
149
                VarioPacket.Altitude = HoehenWert/100 + 500;  
118
                VarioPacket.m_sec = BuildHoTT_Vario();
150
                VarioPacket.m_sec = BuildHoTT_Vario();
119
                GPSPacket.m_3sec = 120;
151
                VarioPacket.m_3sec = VarioPacket.m_sec;
120
                GPSPacket.m_10sec = 120;
152
                VarioPacket.m_10sec = VarioPacket.m_sec;
121
                if (VarioPacket.Altitude < VarioPacket.MinAltitude) VarioPacket.MinAltitude = VarioPacket.Altitude;
153
                if (VarioPacket.Altitude < VarioPacket.MinAltitude) VarioPacket.MinAltitude = VarioPacket.Altitude;
122
                if (VarioPacket.Altitude > VarioPacket.MaxAltitude) VarioPacket.MaxAltitude = VarioPacket.Altitude;            
154
                if (VarioPacket.Altitude > VarioPacket.MaxAltitude) VarioPacket.MaxAltitude = VarioPacket.Altitude;            
123
                VarioPacket.WarnBeep = HoTT_Waring();
155
                VarioPacket.WarnBeep = HoTT_Waring();
124
                HoTT_DataPointer = (unsigned char *) &VarioPacket;
156
                HoTT_DataPointer = (unsigned char *) &VarioPacket;
125
                return(sizeof(VarioPacket));
157
                return(sizeof(VarioPacket));
Line 126... Line 158...
126
                break;
158
                break;
127
 
159
 
128
  case HOTT_GPS_PACKET_ID:
160
  case HOTT_GPS_PACKET_ID:
129
                GPSPacket.Altitude = HoehenWert/100 + 500;  
161
                GPSPacket.Altitude = HoehenWert/100 + 500;  
130
//              GPSPacket.Distance = GPSInfo.HomeDistance/10;
162
//              GPSPacket.Distance = GPSInfo.HomeDistance/10;  // macht die NC
131
//              GPSPacket.Heading = GPSInfo.HomeBearing/2;//KompassValue/2;
163
//              GPSPacket.Heading = GPSInfo.HomeBearing/2;     // macht die NC
132
//              GPSPacket.Speed = (GPSInfo.Speed * 36) / 10;
164
//              GPSPacket.Speed = (GPSInfo.Speed * 36) / 10;   // macht die NC
133
                GPSPacket.m_sec = BuildHoTT_Vario();
165
                GPSPacket.m_sec = BuildHoTT_Vario();
134
                GPSPacket.m_3sec = 120;
166
                GPSPacket.m_3sec = 120;
135
                GPSPacket.m_10sec = 0;
167
                GPSPacket.m_10sec = 0;
136
                GPSPacket.WarnBeep = HoTT_Waring();
168
                GPSPacket.WarnBeep = HoTT_Waring();
137
                HoTT_DataPointer = (unsigned char *) &GPSPacket;
169
                HoTT_DataPointer = (unsigned char *) &GPSPacket;
138
                return(sizeof(GPSPacket));  
170
                return(sizeof(GPSPacket));  
139
                break;
-
 
140
  case HOTT_ELECTRIC_AIR_PACKET_ID:
-
 
141
 
-
 
142
                if(Motor[search].Temperature > tmp_max) tmp_max = Motor[search].Temperature;
-
 
143
                else
-
 
144
                if(Motor[search].Temperature) if(Motor[search].Temperature < tmp_min) tmp_min = Motor[search].Temperature;
-
 
145
                if(++search > MAX_MOTORS)
-
 
146
                {
-
 
147
                 search = 0;
-
 
148
                 if(tmp_min != 255) min = tmp_min; else min = 0;
-
 
149
                 max = tmp_max;
171
                break;
150
                 tmp_min = 255;
-
 
151
                 tmp_max = 0;
172
  case HOTT_ELECTRIC_AIR_PACKET_ID:
152
                 }
173
                GetHottestBl();
153
                ElectricAirPacket.Altitude = HoehenWert/100 + 500;
174
                ElectricAirPacket.Altitude = HoehenWert/100 + 500;
-
 
175
                ElectricAirPacket.Battery1 = UBat;
-
 
176
                ElectricAirPacket.Battery2 = UBat;
-
 
177
                ElectricAirPacket.VoltageCell1 = ErsatzKompassInGrad / 2;
-
 
178
                ElectricAirPacket.VoltageCell8 = ElectricAirPacket.VoltageCell1;
154
                ElectricAirPacket.Battery1 = UBat;
179
                ElectricAirPacket.VoltageCell7 = GPSInfo.HomeDistance/20;
155
                ElectricAirPacket.Battery2 = UBat;
180
                ElectricAirPacket.VoltageCell14 = ElectricAirPacket.VoltageCell7;
156
                ElectricAirPacket.m_sec = BuildHoTT_Vario();
181
                ElectricAirPacket.m_sec = BuildHoTT_Vario();
157
                ElectricAirPacket.m_3sec = 120;
182
                ElectricAirPacket.m_3sec = 120;
158
                ElectricAirPacket.InputVoltage = UBat;
183
                ElectricAirPacket.InputVoltage = UBat;
159
                ElectricAirPacket.Temperature1 = min + 20;
184
                ElectricAirPacket.Temperature1 = MinBlTempertaure + 20;
160
                ElectricAirPacket.Temperature2 = max + 20;
185
                ElectricAirPacket.Temperature2 = MaxBlTempertaure + 20;
161
                ElectricAirPacket.Capacity = Capacity.UsedCapacity/10;
186
                ElectricAirPacket.Capacity = Capacity.UsedCapacity/10;
162
                ElectricAirPacket.WarnBeep = HoTT_Waring();
187
                ElectricAirPacket.WarnBeep = HoTT_Waring();
163
                ElectricAirPacket.Current = Capacity.ActualCurrent;
188
                ElectricAirPacket.Current = Capacity.ActualCurrent;
164
                HoTT_DataPointer = (unsigned char *) &ElectricAirPacket;
189
                HoTT_DataPointer = (unsigned char *) &ElectricAirPacket;
-
 
190
                return(sizeof(ElectricAirPacket));
-
 
191
                break;
-
 
192
  case HOTT_GENERAL_PACKET_ID:
-
 
193
                GetHottestBl();
-
 
194
                HoTTGeneral.Rpm = GPSInfo.HomeDistance/100;
-
 
195
                HoTTGeneral.VoltageCell1 = ErsatzKompassInGrad / 2;
-
 
196
                HoTTGeneral.VoltageCell5 = GPSInfo.HomeDistance/20;
-
 
197
                if(UBat > BattLowVoltageWarning + 5) HoTTGeneral.FuelPercent = (UBat - (BattLowVoltageWarning + 6)) * 3;
-
 
198
                else HoTTGeneral.FuelPercent = 0;
-
 
199
                HoTTGeneral.FuelCapacity = HoehenWert/100; ;
-
 
200
                HoTTGeneral.Altitude = HoehenWert/100 + 500;
-
 
201
                HoTTGeneral.Battery1 = UBat;
-
 
202
                HoTTGeneral.Battery2 = UBat;
-
 
203
                HoTTGeneral.m_sec =  BuildHoTT_Vario();
-
 
204
                HoTTGeneral.m_3sec = 120;
-
 
205
                HoTTGeneral.InputVoltage = UBat;
-
 
206
                HoTTGeneral.Temperature1 = MinBlTempertaure + 20;
-
 
207
                HoTTGeneral.Temperature2 = MaxBlTempertaure + 20;
-
 
208
                HoTTGeneral.Capacity = Capacity.UsedCapacity/10;
-
 
209
                HoTTGeneral.WarnBeep = HoTT_Waring();
-
 
210
                HoTTGeneral.Current = Capacity.ActualCurrent;
-
 
211
                HoTT_DataPointer = (unsigned char *) &HoTTGeneral;
165
                return(sizeof(ElectricAirPacket));
212
                return(sizeof(HoTTGeneral));
166
                break;
213
                break;
167
  default: return(0);
214
  default: return(0);
Line 168... Line 215...
168
  }            
215
  }            
Line 220... Line 267...
220
                                        case SATFIX_3D:
267
                                        case SATFIX_3D:
221
                                                        if(GPSInfo.Flags & FLAG_DIFFSOLN) HoTT_printfxy(7,4,"D ")
268
                                                        if(GPSInfo.Flags & FLAG_DIFFSOLN) HoTT_printfxy(7,4,"D ")
222
                                                        else HoTT_printfxy(7,4,"3D");
269
                                                        else HoTT_printfxy(7,4,"3D");
223
                                                break;
270
                                                break;
224
                                        default:
271
                                        default:
225
                                                HoTT_printfxy(7,4,"! ");
272
                                                HoTT_printfxy_BLINK(7,4,"!!");
226
                                                break;
273
                                                break;
227
                                }      
274
                                }      
228
                        }
275
                        }
229
                        else
276
                        else
230
                        {                    //012345678901234567890
277
                        {                    //012345678901234567890