dRonin  adbada4
dRonin firmware
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
onscreendisplay.c File Reference

Process OSD information. More...

#include <openpilot.h>
#include "stm32f4xx_flash.h"
#include <pios_board_info.h>
#include "pios_thread.h"
#include "pios_semaphore.h"
#include "misc_math.h"
#include "pios_modules.h"
#include "pios_sensors.h"
#include "onscreendisplay.h"
#include "onscreendisplaysettings.h"
#include "onscreendisplaypagesettings.h"
#include "onscreendisplaypagesettings2.h"
#include "onscreendisplaypagesettings3.h"
#include "onscreendisplaypagesettings4.h"
#include "modulesettings.h"
#include "pios_video.h"
#include "physical_constants.h"
#include "accels.h"
#include "airspeedactual.h"
#include "attitudeactual.h"
#include "baroaltitude.h"
#include "flightstatus.h"
#include "flightbatterystate.h"
#include "flightbatterysettings.h"
#include "flightstats.h"
#include "gpsposition.h"
#include "positionactual.h"
#include "gpstime.h"
#include "gpssatellites.h"
#include "gpsvelocity.h"
#include "homelocation.h"
#include "magnetometer.h"
#include "manualcontrolcommand.h"
#include "stabilizationdesired.h"
#include "stabilizationsettings.h"
#include "stateestimation.h"
#include "systemalarms.h"
#include "systemstats.h"
#include "tabletinfo.h"
#include "taskinfo.h"
#include "velocityactual.h"
#include "vtxinfo.h"
#include "waypoint.h"
#include "waypointactive.h"
#include "osd_utils.h"
#include "osd_menu.h"
#include "fonts.h"
#include "WMMInternal.h"
#include "mgrs.h"

Go to the source code of this file.

Macros

#define ASSERT_CONCAT_(a, b)   a ## b
 
#define ASSERT_CONCAT(a, b)   ASSERT_CONCAT_(a, b)
 
#define STATIC_ASSERT(e, m)   { enum { ASSERT_CONCAT(assert_line_, __LINE__) = 1/(!!(e)) }; }
 
#define STACK_SIZE_BYTES   2048
 
#define TASK_PRIORITY   PIOS_THREAD_PRIO_LOW
 
#define BLINK_INTERVAL_FRAMES   12
 
#define BOOT_DISPLAY_TIME_MS   (10*1000)
 
#define STATS_DELAY_MS   1500
 
#define MS_TO_KMH   3.6f
 
#define MS_TO_MPH   2.23694f
 
#define M_TO_FEET   3.28084f
 
#define VERTICAL_SCALE_FILLED_NUMBER
 
#define VSCALE_FONT   FONT8X10
 
#define COMPASS_SMALL_NUMBER
 
#define CENTER_BODY   3
 
#define CENTER_WING   7
 
#define CENTER_RUDDER   5
 
#define PITCH_STEP   10
 
#define STATS_LINE_SPACING   11
 
#define STATS_LINE_Y   40
 
#define STATS_LINE_X   (GRAPHICS_LEFT + 10)
 
#define STATS_FONT   FONT8X10
 
#define BLANK_TIME   2000
 
#define INTRO_TIME   5500
 

Functions

uint8_t PIOS_Board_Revision (void)
 
static void onScreenDisplayTask (void *parameters)
 
void drawBattery (uint16_t x, uint16_t y, uint8_t battery, uint16_t size)
 
void hud_draw_vertical_scale (int v, int range, int halign, int x, int y, int height, int mintick_step, int majtick_step, int mintick_len, int majtick_len, int boundtick_len, __attribute__((unused)) int max_val, int flags)
 
void hud_draw_linear_compass (int v, int home_dir, int range, int width, int x, int y, int mintick_step, int majtick_step, int mintick_len, int majtick_len, __attribute__((unused)) int flags)
 
void simple_artificial_horizon (float roll, float pitch, int16_t x, int16_t y, int16_t width, int16_t height, int8_t max_pitch, uint8_t n_pitch_steps, bool show_horizon, OnScreenDisplayPageSettingsCenterMarkOptions center_mark)
 
void draw_flight_mode (int x, int y, int xs, int ys, int va, int ha, int flags, int font)
 
void draw_alarms (int x, int y, int xs, int ys, int va, int ha, int flags, int font)
 
void draw_map_home_center (int width_px, int height_px, int width_m, int height_m, bool show_wp, bool show_home, bool show_tablet)
 
void draw_map_uav_center (int width_px, int height_px, int width_m, int height_m, bool show_wp, bool show_uav, bool show_tablet)
 
void introGraphics (int16_t x, int16_t y)
 
void introText (int16_t x, int16_t y)
 
void printFWVersion (int16_t x, int16_t y)
 
void showVideoType (int16_t x, int16_t y)
 
void render_user_page (OnScreenDisplayPageSettingsData *page)
 
int render_stats ()
 
void set_ntsc_pal_settings (enum pios_video_system video_system)
 
int32_t OnScreenDisplayStart (void)
 
int32_t OnScreenDisplayInitialize (void)
 
 MODULE_INITCALL (OnScreenDisplayInitialize, OnScreenDisplayStart)
 
static float get_accessorydesired (int idx)
 
static void onScreenDisplayTask (__attribute__((unused)) void *parameters)
 

Variables

uint8_t * draw_buffer_level
 
uint8_t * draw_buffer_mask
 
const char METRIC_DIST_UNIT_LONG [] = "km"
 
const char METRIC_DIST_UNIT_SHORT [] = "m"
 
const char METRIC_SPEED_UNIT [] = "km/h"
 
const char IMPERIAL_DIST_UNIT_LONG [] = "M"
 
const char IMPERIAL_DIST_UNIT_SHORT [] = "ft"
 
const char IMPERIAL_SPEED_UNIT [] = "MPH"
 
volatile bool video_active
 
const point_t HOME_ARROW []
 
uint16_t frame_counter = 0
 
static bool module_enabled = false
 
static bool has_battery = false
 
static bool has_gps = false
 
static bool has_nav = false
 
static bool has_baro = false
 
static bool has_mag = false
 
static struct pios_thread * taskHandle
 
struct pios_semaphoreonScreenDisplaySemaphore = NULL
 
float convert_speed
 
float convert_distance
 
float convert_distance_divider
 
const char * dist_unit_long = METRIC_DIST_UNIT_LONG
 
const char * dist_unit_short = METRIC_DIST_UNIT_SHORT
 
const char * speed_unit = METRIC_SPEED_UNIT
 
const char digits [16] = "0123456789abcdef"
 
float home_baro_altitude = 0
 
static volatile bool osd_settings_updated = true
 
static volatile bool osd_page_updated = true
 
static OnScreenDisplaySettingsData osd_settings
 
static bool blink
 

Detailed Description

Process OSD information.

Author
dRonin, http://dronin.org Copyright (C) 2015-2016
Tau Labs, http://taulabs.org, Copyright (C) 2013-2014
The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010-2014. OSD gen module, handles OSD draw. Parts from CL-OSD and SUPEROSD projects
See Also
The GNU Public License (GPL) Version 3

Definition in file onscreendisplay.c.