Rev 2099 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2099 | Rev 2225 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | /**************************************************************************** |
1 | /**************************************************************************** |
2 | * Copyright (C) 2009-2015 by Claas Anders "CaScAdE" Rathje * |
2 | * Copyright (C) 2009-2016 by Claas Anders "CaScAdE" Rathje * |
3 | * admiralcascade@gmail.com * |
3 | * admiralcascade@gmail.com * |
4 | * Project-URL: http://www.mylifesucks.de/oss/c-osd/ * |
4 | * Project-URL: http://www.mylifesucks.de/oss/c-osd/ * |
5 | * * |
5 | * * |
6 | * This program is free software; you can redistribute it and/or modify * |
6 | * This program is free software; you can redistribute it and/or modify * |
7 | * it under the terms of the GNU General Public License as published by * |
7 | * it under the terms of the GNU General Public License as published by * |
Line 118... | Line 118... | ||
118 | write_ndigit_number_s_10th(23, top_line, (int16_t)(naviData.CurrentPosition.Altitude / 100 - altimeter_offset * 10), 3, 0); // GPS |
118 | write_ndigit_number_s_10th(23, top_line, (int16_t)(naviData.CurrentPosition.Altitude / 100 - altimeter_offset * 10), 3, 0); // GPS |
119 | } |
119 | } |
120 | } |
120 | } |
121 | } else { |
121 | } else { |
122 | if (COSD_FLAGS_CONFIG & COSD_FLAG_FEET) { |
122 | if (COSD_FLAGS_CONFIG & COSD_FLAG_FEET) { |
123 | write_ndigit_number_s(23, top_line, naviData.Altimeter / 10 * 32 / 20, 4, 0); // BARO |
123 | write_ndigit_number_s(23, top_line, naviData.Altimeter_5cm / 10 * 32 / 20, 4, 0); // BARO |
124 | } else { |
124 | } else { |
125 | //cite:killagreg "Faktor 20 bis 21 w�re korrekt." (http://forum.mikrokopter.de/topic-post211192.html#post211192) |
125 | //cite:killagreg "Faktor 20 bis 21 w�re korrekt." (http://forum.mikrokopter.de/topic-post211192.html#post211192) |
126 | if (naviData.Altimeter > 200 || naviData.Altimeter < -200) { |
126 | if (naviData.Altimeter_5cm > 200 || naviData.Altimeter_5cm < -200) { |
127 | // above 10m only write full meters |
127 | // above 10m only write full meters |
128 | write_ndigit_number_s(23, top_line, naviData.Altimeter / 20, 4, 0); // BARO |
128 | write_ndigit_number_s(23, top_line, naviData.Altimeter_5cm / 20, 4, 0); // BARO |
129 | } else { |
129 | } else { |
130 | // up to 10m write meters.dm |
130 | // up to 10m write meters.dm |
131 | write_ndigit_number_s_10th(23, top_line, naviData.Altimeter / 2, 3, 0); // BARO |
131 | write_ndigit_number_s_10th(23, top_line, naviData.Altimeter_5cm / 2, 3, 0); // BARO |
132 | } |
132 | } |
133 | } |
133 | } |
134 | } |
134 | } |
Line 168... | Line 168... | ||
168 | clear(); |
168 | clear(); |
169 | // remember current heigth for offsets |
169 | // remember current heigth for offsets |
170 | if (COSD_FLAGS_CONFIG & COSD_FLAG_GPSHEIGHT) { |
170 | if (COSD_FLAGS_CONFIG & COSD_FLAG_GPSHEIGHT) { |
171 | altimeter_offset = naviData.CurrentPosition.Altitude / 1000; // GPS |
171 | altimeter_offset = naviData.CurrentPosition.Altitude / 1000; // GPS |
172 | } else { |
172 | } else { |
173 | altimeter_offset = naviData.Altimeter / 20; // BARO |
173 | altimeter_offset = naviData.Altimeter_5cm / 20; // BARO |
174 | } |
174 | } |
175 | // set wasted counter to current offset |
175 | // set wasted counter to current offset |
176 | if ((COSD_FLAGS_RUNTIME & COSD_FLAG_STROMREC) && !(COSD_FLAGS_MODES & COSD_FLAG_FCCURRENT)) { |
176 | if ((COSD_FLAGS_RUNTIME & COSD_FLAG_STROMREC) && !(COSD_FLAGS_MODES & COSD_FLAG_FCCURRENT)) { |
177 | wasted_ampere_offset = ampere_wasted / 10; |
177 | wasted_ampere_offset = ampere_wasted / 10; |
178 | } else if (COSD_FLAGS_MODES & COSD_FLAG_FCCURRENT) { |
178 | } else if (COSD_FLAGS_MODES & COSD_FLAG_FCCURRENT) { |
Line 295... | Line 295... | ||
295 | // remember statistics (only when engines running) |
295 | // remember statistics (only when engines running) |
296 | if (naviData.FCStatusFlags & FCFLAG_MOTOR_RUN) { |
296 | if (naviData.FCStatusFlags & FCFLAG_MOTOR_RUN) { |
297 | if (COSD_FLAGS_CONFIG & COSD_FLAG_GPSHEIGHT) { |
297 | if (COSD_FLAGS_CONFIG & COSD_FLAG_GPSHEIGHT) { |
298 | if (naviData.CurrentPosition.Altitude / 1000 - altimeter_offset > max_Altimeter) max_Altimeter = naviData.CurrentPosition.Altitude / 1000; |
298 | if (naviData.CurrentPosition.Altitude / 1000 - altimeter_offset > max_Altimeter) max_Altimeter = naviData.CurrentPosition.Altitude / 1000; |
299 | } else { |
299 | } else { |
300 | if (naviData.Altimeter / 20 > max_Altimeter) max_Altimeter = naviData.Altimeter / 20; |
300 | if (naviData.Altimeter_5cm / 20 > max_Altimeter) max_Altimeter = naviData.Altimeter_5cm / 20; |
301 | } |
301 | } |
302 | if (naviData.GroundSpeed > max_GroundSpeed) max_GroundSpeed = naviData.GroundSpeed; |
302 | if (naviData.GroundSpeed > max_GroundSpeed) max_GroundSpeed = naviData.GroundSpeed; |
303 | if (naviData.HomePositionDeviation.Distance > max_Distance) { |
303 | if (naviData.HomePositionDeviation.Distance > max_Distance) { |
304 | max_Distance = naviData.HomePositionDeviation.Distance; |
304 | max_Distance = naviData.HomePositionDeviation.Distance; |
305 | } |
305 | } |