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 |