Subversion Repositories Projects

Compare Revisions

Ignore whitespace Rev 687 → Rev 728

/C-OSD/trunk/CHANGE.LOG
1,5 → 1,5
/****************************************************************************
* Copyright (C) 2009 by Claas Anders "CaScAdE" Rathje *
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje *
* admiralcascade@gmail.com *
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ *
* *
18,6 → 18,10
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
****************************************************************************/
 
20100212-2310
*adapted MK-datastructs to NC 0.18c
*added choice for current display measured by FC
 
20091109-1100
+fc-only mode by Josef "jopl" Plasil (MK3Mag on FC and no NC)
*usart1 routine to filter out unwanted datasets (also big thanks to jopl)
/C-OSD/trunk/README.TXT
1,5 → 1,5
/****************************************************************************
* Copyright (C) 2009 by Claas Anders "CaScAdE" Rathje *
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje *
* admiralcascade@gmail.com *
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ *
* *
/C-OSD/trunk/buttons.c
1,5 → 1,5
/****************************************************************************
* Copyright (C) 2009 by Claas Anders "CaScAdE" Rathje *
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje *
* admiralcascade@gmail.com *
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ *
* *
/C-OSD/trunk/buttons.h
1,5 → 1,5
/****************************************************************************
* Copyright (C) 2009 by Claas Anders "CaScAdE" Rathje *
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje *
* admiralcascade@gmail.com *
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ *
* *
/C-OSD/trunk/characters.c
1,5 → 1,5
/****************************************************************************
* Copyright (C) 2009 by Claas Anders "CaScAdE" Rathje *
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje *
* admiralcascade@gmail.com *
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ *
* *
/C-OSD/trunk/characters.h
1,5 → 1,5
/****************************************************************************
* Copyright (C) 2009 by Claas Anders "CaScAdE" Rathje *
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje *
* admiralcascade@gmail.com *
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ *
* *
/C-OSD/trunk/config.c
1,5 → 1,5
/****************************************************************************
* Copyright (C) 2009 by Claas Anders "CaScAdE" Rathje *
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje *
* admiralcascade@gmail.com *
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ *
* *
61,7 → 61,8
const char menu_item2[] PROGMEM = "Art.Horizon in HUD";
const char menu_item3[] PROGMEM = "Big Vario bar";
const char menu_item4[] PROGMEM = "Statistics";
const char menu_item5[] PROGMEM = "Warnings"; // TODO: do it!
//const char menu_item5[] PROGMEM = "Warnings"; // TODO: do it!
const char menu_item5[] PROGMEM = "Current by FC";
const char menu_item6[] PROGMEM = "Voltage by C-Strom";
const char menu_item7[] PROGMEM = "Reset uptime";
const char menu_item8[] PROGMEM = "Display Mode";
242,10 → 243,15
} else {
write_ascii_string_pgm(23, 6, OFF);
}
if (COSD_FLAGS_MODES & COSD_FLAG_WARNINGS) {
/*if (COSD_FLAGS_MODES & COSD_FLAG_WARNINGS) {
write_ascii_string_pgm(23, 7, ON);
} else {
write_ascii_string_pgm(23, 7, OFF);
}*/
if (COSD_FLAGS_MODES & COSD_FLAG_FCCURRENT) {
write_ascii_string_pgm(23, 7, ON);
} else {
write_ascii_string_pgm(23, 7, OFF);
}
if (COSD_FLAGS_MODES & COSD_FLAG_STROMVOLT) {
write_ascii_string_pgm(23, 8, ON);
343,11 → 349,15
COSD_FLAGS_MODES ^= COSD_FLAG_STATS;
config_menu_drawings(chosen);
break;
case 5: // warnings
/*case 5: // warnings
COSD_FLAGS_MODES ^= COSD_FLAG_WARNINGS;
config_menu_drawings(chosen);
break;*/
case 5: // current by fc
COSD_FLAGS_MODES ^= COSD_FLAG_FCCURRENT;
config_menu_drawings(chosen);
break;
case 6: // 2nd voltage by c-strom
case 6: // 2nd voltage by c-strom
COSD_FLAGS_MODES ^= COSD_FLAG_STROMVOLT;
config_menu_drawings(chosen);
break;
/C-OSD/trunk/config.h
1,5 → 1,5
/****************************************************************************
* Copyright (C) 2009 by Claas Anders "CaScAdE" Rathje *
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje *
* admiralcascade@gmail.com *
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ *
* *
/C-OSD/trunk/main.c
1,5 → 1,5
/****************************************************************************
* Copyright (C) 2009 by Claas Anders "CaScAdE" Rathje *
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje *
* admiralcascade@gmail.com *
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ *
* *
/C-OSD/trunk/main.h
1,5 → 1,5
/****************************************************************************
* Copyright (C) 2009 by Claas Anders "CaScAdE" Rathje *
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje *
* admiralcascade@gmail.com *
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ *
* *
67,7 → 67,9
#define COSD_FLAG_STATS 8
#define COSD_FLAG_WARNINGS 16
#define COSD_FLAG_STROMVOLT 32
#define COSD_FLAG_FCCURRENT 64
 
 
#define COSD_FLAG_NTSC 1
#define COSD_FLAG_GPSHEIGHT 2
#define COSD_FLAG_FCMODE 4
/C-OSD/trunk/max7456_software_spi.c
1,5 → 1,5
/****************************************************************************
* Copyright (C) 2009 by Claas Anders "CaScAdE" Rathje *
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje *
* admiralcascade@gmail.com *
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ *
* *
/C-OSD/trunk/max7456_software_spi.h
1,5 → 1,5
/****************************************************************************
* Copyright (C) 2009 by Claas Anders "CaScAdE" Rathje *
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje *
* admiralcascade@gmail.com *
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ *
* *
/C-OSD/trunk/mk-data-structs.h
1,5 → 1,5
/****************************************************************************
* Copyright (C) 2009 by Claas Anders "CaScAdE" Rathje *
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje *
* admiralcascade@gmail.com *
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ *
* *
52,7 → 52,7
/*
* NaviCtrl OSD Structs
* portions taken and adapted from
* http://svn.mikrokopter.de/mikrowebsvn/filedetails.php?repname=NaviCtrl&path=%2Ftags%2FV0.17e%2Fuart1.h
* http://svn.mikrokopter.de/mikrowebsvn/filedetails.php?repname=NaviCtrl&path=%2Ftags%2FV0.18c%2Fuart1.h
*/
typedef struct {
s32 Longitude; // in 1E-7 deg
71,36 → 71,39
} __attribute__((packed)) GPS_PosDev_t;
 
typedef struct {
u8 Version; // version of the data structure
GPS_Pos_t CurrentPosition; // see ubx.h for details
GPS_Pos_t TargetPosition;
GPS_PosDev_t TargetPositionDeviation;
GPS_Pos_t HomePosition;
GPS_PosDev_t HomePositionDeviation;
u8 WaypointIndex; // index of current waypoints running from 0 to WaypointNumber-1
u8 WaypointNumber; // number of stored waypoints
u8 SatsInUse; // number of satellites used for position solution
s16 Altimeter; // hight according to air pressure
s16 Variometer; // climb(+) and sink(-) rate
u16 FlyingTime; // in seconds
u8 UBat; // Battery Voltage in 0.1 Volts
u16 GroundSpeed; // speed over ground in cm/s (2D)
s16 Heading; // current flight direction in ° as angle to north
s16 CompassHeading; // current compass value in °
s8 AngleNick; // current Nick angle in 1°
s8 AngleRoll; // current Rick angle in 1°
u8 RC_Quality; // RC_Quality
u8 MKFlags; // Flags from FC
u8 NCFlags; // Flags from NC
u8 Errorcode; // 0 --> okay
u8 OperatingRadius; // current operation radius around the Home Position in m
s16 TopSpeed; // velocity in vertical direction in cm/s
u8 TargetHoldTime; // time in s to stay at the given target, counts down to 0 if target has been reached
u8 RC_RSSI; // Receiver signal strength (since version 2 added)
s16 SetpointAltitude; // setpoint for altitude
u8 Version; // version of the data structure
GPS_Pos_t CurrentPosition; // see ubx.h for details
GPS_Pos_t TargetPosition;
GPS_PosDev_t TargetPositionDeviation;
GPS_Pos_t HomePosition;
GPS_PosDev_t HomePositionDeviation;
u8 WaypointIndex; // index of current waypoints running from 0 to WaypointNumber-1
u8 WaypointNumber; // number of stored waypoints
u8 SatsInUse; // number of satellites used for position solution
s16 Altimeter; // hight according to air pressure
s16 Variometer; // climb(+) and sink(-) rate
u16 FlyingTime; // in seconds
u8 UBat; // Battery Voltage in 0.1 Volts
u16 GroundSpeed; // speed over ground in cm/s (2D)
s16 Heading; // current flight direction in � as angle to north
s16 CompassHeading; // current compass value in �
s8 AngleNick; // current Nick angle in 1�
s8 AngleRoll; // current Rick angle in 1�
u8 RC_Quality; // RC_Quality
u8 FCFlags; // Flags from FC
u8 NCFlags; // Flags from NC
u8 Errorcode; // 0 --> okay
u8 OperatingRadius; // current operation radius around the Home Position in m
s16 TopSpeed; // velocity in vertical direction in cm/s
u8 TargetHoldTime; // time in s to stay at the given target, counts down to 0 if target has been reached
u8 RC_RSSI; // Receiver signal strength (since version 2 added)
s16 SetpointAltitude; // setpoint for altitude
u8 Gas; // for future use
u16 Current; // actual current in 0.1A steps
u16 UsedCapacity; // used capacity in mAh
} __attribute__((packed)) NaviData_t;
 
 
/*
* MikroKopter Flags
* taken from
/C-OSD/trunk/osd_fcmode_default.c
1,5 → 1,5
/****************************************************************************
* Copyright (C) 2009 by Claas Anders "CaScAdE" Rathje *
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje *
* admiralcascade@gmail.com *
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ *
* *
/C-OSD/trunk/osd_fcmode_default.h
1,5 → 1,5
/****************************************************************************
* Copyright (C) 2009 by Claas Anders "CaScAdE" Rathje *
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje *
* admiralcascade@gmail.com *
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ *
* *
/C-OSD/trunk/osd_fcmode_jopl.c
1,5 → 1,5
/****************************************************************************
* Copyright (C) 2009 by Claas Anders "CaScAdE" Rathje *
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje *
* admiralcascade@gmail.com *
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ *
* *
/C-OSD/trunk/osd_fcmode_jopl.h
1,5 → 1,5
/****************************************************************************
* Copyright (C) 2009 by Claas Anders "CaScAdE" Rathje *
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje *
* admiralcascade@gmail.com *
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ *
* *
/C-OSD/trunk/osd_helpers.c
1,5 → 1,5
/****************************************************************************
* Copyright (C) 2009 by Claas Anders "CaScAdE" Rathje *
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje *
* admiralcascade@gmail.com *
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ *
* *
/C-OSD/trunk/osd_helpers.h
1,5 → 1,5
/****************************************************************************
* Copyright (C) 2009 by Claas Anders "CaScAdE" Rathje *
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje *
* admiralcascade@gmail.com *
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ *
* *
/C-OSD/trunk/osd_ncmode_default.c
1,5 → 1,5
/****************************************************************************
* Copyright (C) 2009 by Claas Anders "CaScAdE" Rathje *
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje *
* admiralcascade@gmail.com *
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ *
* *
37,7 → 37,7
write_char_xy(22, top_line + 1, 0xB2); // right circle
write_char_xy(27, top_line + 1, 0xCC); // small meters m home
write_char_xy(7, bottom_line, 0x9E); // small V
if (COSD_FLAGS_RUNTIME & COSD_FLAG_STROMREC) {
if ((COSD_FLAGS_RUNTIME & COSD_FLAG_STROMREC) || (COSD_FLAGS_MODES & COSD_FLAG_FCCURRENT)) {
write_char_xy(7, bottom_line - 1, 0x9F); // small A
write_char_xy(14, bottom_line - 1, 0xB5); // mah
if (COSD_FLAGS_MODES & COSD_FLAG_STROMVOLT) {
108,7 → 108,7
write_ndigit_number_u(24, top_line + 1, naviData.HomePositionDeviation.Distance / 10, 3, 0);
 
// center
if (naviData.MKFlags & FLAG_MOTOR_RUN) { // should be engines running
if (naviData.FCFlags & FLAG_MOTOR_RUN) { // should be engines running
if (!(old_MKFlags & FLAG_MOTOR_RUN)) { // motors just started, clear middle
clear();
// remember current heigth for gps offset
141,11 → 141,11
write_ascii_string_pgm(2, ++line, (const char *) (pgm_read_word(&(stats_item_pointers[3])))); // min voltage
write_ndigit_number_u_10th(18, line, min_UBat, 3, 0);
write_char_xy(22, line, 0x9E); // small V
if (COSD_FLAGS_RUNTIME & COSD_FLAG_STROMREC) {
if ((COSD_FLAGS_RUNTIME & COSD_FLAG_STROMREC) || (COSD_FLAGS_MODES & COSD_FLAG_FCCURRENT)) {
write_ascii_string_pgm(2, ++line, (const char *) (pgm_read_word(&(stats_item_pointers[7])))); // ampere
write_ndigit_number_u_10th(18, line, max_ampere / 10, 3, 0);
write_char_xy(22, line, 0x9F); // small A
}
}
write_ascii_string_pgm(2, ++line, (const char *) (pgm_read_word(&(stats_item_pointers[4])))); // max time
write_time(16, line, max_FlyingTime);
write_char_xy(22, line, 210); // fly clock
154,7 → 154,7
write_ascii_string_pgm(2, ++line, (const char *) (pgm_read_word(&(stats_item_pointers[6])))); // latitude
write_gps_pos(15, line, naviData.CurrentPosition.Latitude);
} else if (COSD_FLAGS_MODES & COSD_FLAG_ARTHORIZON) { // if no stats there is space horizon
if (COSD_FLAGS_RUNTIME & COSD_FLAG_STROMREC) {
if ((COSD_FLAGS_RUNTIME & COSD_FLAG_STROMREC) || (COSD_FLAGS_MODES & COSD_FLAG_FCCURRENT)) {
draw_artificial_horizon(top_line + 2, bottom_line - 2, naviData.AngleNick, naviData.AngleRoll);
} else {
draw_artificial_horizon(top_line + 2, bottom_line - 1, naviData.AngleNick, naviData.AngleRoll);
166,15 → 166,20
}
 
// pre-bottom line
if (COSD_FLAGS_RUNTIME & COSD_FLAG_STROMREC) {
if ((COSD_FLAGS_RUNTIME & COSD_FLAG_STROMREC) && !(COSD_FLAGS_MODES & COSD_FLAG_FCCURRENT)) {
//write_ndigit_number_s(3, bottom_line - 1, ampere, 4, 0);
write_ndigit_number_u_10th(3, bottom_line - 1, ampere / 10, 3, 0);
write_ndigit_number_s(10, bottom_line - 1, ampere_wasted / 10, 4, 0);
if (COSD_FLAGS_MODES & COSD_FLAG_STROMVOLT) {
write_ndigit_number_u_10th(17, bottom_line - 1, s_volt, 3, 0);
}
}
} else if (COSD_FLAGS_MODES & COSD_FLAG_FCCURRENT) {
write_ndigit_number_u_10th(3, bottom_line - 1, naviData.Current, 3, 0);
write_ndigit_number_u(10, bottom_line - 1, naviData.UsedCapacity, 4, 0);
}
 
//DEBUGwrite_ndigit_number_u(1, 5, COSD_FLAGS_MODES, 3, 0);
 
// bottom line
draw_battery(2, bottom_line, min_voltage, naviData.UBat, max_voltage);
write_ndigit_number_u_10th(3, bottom_line, naviData.UBat, 3, 0);
210,7 → 215,7
//write_number_s(16, 5, setsReceived++);
 
// remember statistics (only when engines running)
if (naviData.MKFlags & FLAG_MOTOR_RUN) {
if (naviData.FCFlags & FLAG_MOTOR_RUN) {
if (COSD_FLAGS_CONFIG & COSD_FLAG_GPSHEIGHT) {
if (naviData.CurrentPosition.Altitude / 1000 - altimeter_offset > max_Altimeter) max_Altimeter = naviData.CurrentPosition.Altitude / 1000;
} else {
222,13 → 227,17
}
if (naviData.UBat < min_UBat) min_UBat = naviData.UBat;
if (naviData.FlyingTime > max_FlyingTime) max_FlyingTime = naviData.FlyingTime;
if (ampere > max_ampere) max_ampere = ampere;
if ((COSD_FLAGS_RUNTIME & COSD_FLAG_STROMREC) && !(COSD_FLAGS_MODES & COSD_FLAG_FCCURRENT)) {
if (ampere > max_ampere) max_ampere = ampere;
} else if (COSD_FLAGS_MODES & COSD_FLAG_FCCURRENT) {
if (naviData.Current * 10 > max_ampere) max_ampere = naviData.Current * 10;
}
}
 
// remember last values
last_RC_Quality = naviData.RC_Quality;
last_UBat = naviData.UBat;
old_MKFlags = naviData.MKFlags;
old_MKFlags = naviData.FCFlags;
seconds_since_last_data = 0;
 
return 0;
/C-OSD/trunk/osd_ncmode_default.h
1,5 → 1,5
/****************************************************************************
* Copyright (C) 2009 by Claas Anders "CaScAdE" Rathje *
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje *
* admiralcascade@gmail.com *
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ *
* *
/C-OSD/trunk/osd_ncmode_minimal.c
1,5 → 1,5
/****************************************************************************
* Copyright (C) 2009 by Claas Anders "CaScAdE" Rathje *
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje *
* admiralcascade@gmail.com *
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ *
* *
61,7 → 61,7
 
 
// center
if (naviData.MKFlags & FLAG_MOTOR_RUN) { // should be engines running
if (naviData.FCFlags & FLAG_MOTOR_RUN) { // should be engines running
if (!(old_MKFlags & FLAG_MOTOR_RUN)) { // motors just started, clear middle
clear();
// update flags to paint display again if needed
148,7 → 148,7
}
 
// remember statistics (only when engines running)
if (naviData.MKFlags & FLAG_MOTOR_RUN) {
if (naviData.FCFlags & FLAG_MOTOR_RUN) {
if (naviData.Altimeter > max_Altimeter) max_Altimeter = naviData.Altimeter;
if (naviData.GroundSpeed > max_GroundSpeed) max_GroundSpeed = naviData.GroundSpeed;
if (naviData.HomePositionDeviation.Distance > max_Distance) {
162,7 → 162,7
// remember last values
last_RC_Quality = naviData.RC_Quality;
last_UBat = naviData.UBat;
old_MKFlags = naviData.MKFlags;
old_MKFlags = naviData.FCFlags;
seconds_since_last_data = 0;
 
return 0;
/C-OSD/trunk/osd_ncmode_minimal.h
1,5 → 1,5
/****************************************************************************
* Copyright (C) 2009 by Claas Anders "CaScAdE" Rathje *
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje *
* admiralcascade@gmail.com *
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ *
* *
/C-OSD/trunk/ppm.c
1,5 → 1,5
/****************************************************************************
* Copyright (C) 2009 by Claas Anders "CaScAdE" Rathje *
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje *
* admiralcascade@gmail.com *
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ *
* *
/C-OSD/trunk/ppm.h
1,5 → 1,5
/****************************************************************************
* Copyright (C) 2009 by Claas Anders "CaScAdE" Rathje *
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje *
* admiralcascade@gmail.com *
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ *
* *
/C-OSD/trunk/spi.c
1,5 → 1,5
/****************************************************************************
* Copyright (C) 2009 by Claas Anders "CaScAdE" Rathje *
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje *
* admiralcascade@gmail.com *
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ *
* *
/C-OSD/trunk/spi.h
1,5 → 1,5
/****************************************************************************
* Copyright (C) 2009 by Claas Anders "CaScAdE" Rathje *
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje *
* admiralcascade@gmail.com *
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ *
* *
/C-OSD/trunk/usart1.c
1,5 → 1,5
/****************************************************************************
* Copyright (C) 2009 by Claas Anders "CaScAdE" Rathje *
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje *
* admiralcascade@gmail.com *
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ *
* *
/C-OSD/trunk/usart1.h
1,5 → 1,5
/****************************************************************************
* Copyright (C) 2009 by Claas Anders "CaScAdE" Rathje *
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje *
* admiralcascade@gmail.com *
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ *
* *