Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Aviphysics #400

Draft
wants to merge 36 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
bdd9a0e
Version bump to v1.7.3
teckel12 Aug 25, 2019
af0a1fa
Initial Nirvana testing
teckel12 Aug 25, 2019
ed7a1f2
Nice progress, glass cockpit seems 100%
teckel12 Aug 26, 2019
1952d18
Some cleanup, show FPS for testing
teckel12 Aug 28, 2019
d8762bd
Map starting to work
teckel12 Aug 28, 2019
23544ab
Menu may work now?
teckel12 Aug 30, 2019
7b53618
Config menu and controls working
teckel12 Aug 31, 2019
b97b405
Cleaned up missing event constants
teckel12 Aug 31, 2019
a4de015
Everything but RSSI/LQ done?
teckel12 Aug 31, 2019
b54e74a
Slight title position change
teckel12 Aug 31, 2019
f452ba9
Commit before I test a few things
teckel12 Sep 1, 2019
b45b034
Refactoring for local LCD functions
teckel12 Sep 1, 2019
116b163
Refactored to make string.format a local function
teckel12 Sep 1, 2019
8040967
Added RSSI/LQ
teckel12 Sep 1, 2019
2bb0f1f
Scaled map to fit
teckel12 Sep 1, 2019
07637de
Merge pull request #343 from iNavFlight/nirvana
teckel12 Sep 1, 2019
2b50b51
Format GPS coords for Nirvana/Horus
teckel12 Sep 1, 2019
d13d2e2
Fix for Taranis x9d+ 2019 version
teckel12 Sep 2, 2019
5e6263d
Center flight mode on Horus
teckel12 Sep 4, 2019
7bdc766
Multiply instead of divide, probably ever so slightly faster
teckel12 Sep 4, 2019
9c9d266
Updated readme to include FLYSKY Nirvana support, removed XM and XM+ …
teckel12 Sep 10, 2019
995b7dc
Updates to issue templates
teckel12 Sep 11, 2019
ac760c5
Better centering of text on Horus, compass table (dir)
teckel12 Sep 18, 2019
57842e2
Satellite count sanity check for Crossfire
teckel12 Sep 18, 2019
698e44e
Correctly center heading compass values on pilot view
teckel12 Sep 18, 2019
97287a0
Updated readme to list support for the Jumper T12
teckel12 Sep 19, 2019
fc47397
Readme updates
teckel12 Sep 23, 2019
1a3c465
Readme link changes
teckel12 Sep 23, 2019
2df70a8
Show script usage when testing, builds Horus on Taranis, added Nirvan…
teckel12 Sep 25, 2019
ec8115a
Updated Nirvana sample screenshot
teckel12 Sep 25, 2019
85e4e9c
Fix for OpenTX 2.3, remove fps from title on all but Nirvana
teckel12 Sep 25, 2019
3b6c269
Accomidate the Jumper T12 buttons using OpenTX 2.3, fix repeat direct…
teckel12 Sep 30, 2019
c41ec2b
Faster Taranis attitude display
teckel12 Oct 2, 2019
91fb61f
Changed INAV version requirement to 2.1.0 to clean up instructions
teckel12 Oct 16, 2019
bc40a45
Allowed lower cell calculation voltage for LiFE batteries
teckel12 May 31, 2020
ca2c6da
Merge branch 'master' into aviphysics
aviphysics Aug 5, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions .github/ISSUE_TEMPLATE/Bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,20 @@ assignees: teckel12
---

### Describe the bug
<!-- A clear and concise description of the bug and specify the transmitter model (ie: X9D, X7, Horus X10S) -->
<!-- A clear and concise description of the bug and specify the transmitter model (ie: X9D, X7, Horus X10S), telemetry protocol (ie: FrSky S.Port, Crossfire), receiver model and any other important hardware details. -->

### To reproduce
<!-- Steps to reproduce the behavior, example: -->
<!-- Steps to reproduce the behavior, example: -->
1. Go to '....'
2. Click on '....'
3. Scroll down to '....'
4. See error

### Expected behavior
<!-- A clear and concise description of what you expected to happen. -->
<!-- A clear and concise description of what you expected to happen. -->

### Screenshots
<!-- If applicable, add screenshots to help explain your problem. -->
<!-- If applicable, add screenshots to help explain your problem. -->

### Radio and model settings
<!-- Below are the instructions for exporting radio and model settings that are needed to simulate (and hopefully reproduce) your problem:
Expand All @@ -36,4 +36,4 @@ assignees: teckel12
-->

### Additional context
<!-- Add any other context about the problem here. -->
<!-- Add any other context about the problem here. -->
8 changes: 4 additions & 4 deletions .github/ISSUE_TEMPLATE/Feature_request.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@ assignees: teckel12
---

### Is your feature request related to a problem? Please describe
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->

### Describe the solution you'd like
<!-- A clear and concise description of what you want to happen. -->
<!-- A clear and concise description of what you want to happen. -->

### Describe alternatives you've considered
<!-- A clear and concise description of any alternative solutions or features you've considered. -->
<!-- A clear and concise description of any alternative solutions or features you've considered. -->

### Additional context
<!-- Add any other context or screenshots about the feature request here. -->
<!-- Add any other context or screenshots about the feature request here. -->
10 changes: 5 additions & 5 deletions .github/ISSUE_TEMPLATE/Question.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,20 @@ assignees: teckel12
---

### Describe your question
<!-- A clear and concise description of your question and specify the transmitter model (ie: X9D, X7, Horus X10S) -->
<!-- A clear and concise description of your question and specify the transmitter model (ie: X9D, X7, Horus X10S), telemetry protocol (ie: FrSky S.Port, Crossfire), receiver model and any other important hardware details. -->

### To reproduce
<!-- Steps to reproduce the behavior, example: -->
<!-- Steps to reproduce the behavior, example: -->
1. Go to '....'
2. Click on '....'
3. Scroll down to '....'
4. Should it be doing this?

### Expected behavior
<!-- A clear and concise description of what you expected to happen. -->
<!-- A clear and concise description of what you expected to happen. -->

### Screenshots
<!-- If applicable, add screenshots to help explain your question. -->
<!-- If applicable, add screenshots to help explain your question. -->

### Additional context
<!-- Add any other context about the question here. -->
<!-- Add any other context about the question here. -->
51 changes: 24 additions & 27 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,47 +1,49 @@
## INAV Lua Telemetry Flight Status for Taranis/Horus/Jumper T16 - v1.7.2
## INAV Lua Telemetry Flight Status for Taranis/Horus/Jumper/Nirvana - v1.7.3

### FrSky SmartPort(S.Port), D-series, F.Port & TBS Crossfire telemetry on Taranis, Horus & Jumper T16 transmitters
### FrSky SmartPort(S.Port), D-series, F.Port & TBS Crossfire telemetry on Taranis, Horus, Jumper & Nirvana transmitters

[![Build Status](https://travis-ci.com/iNavFlight/LuaTelemetry.svg?branch=master)](https://travis-ci.com/iNavFlight/LuaTelemetry)

## Interface

#### [Video of Lua Telemetry](https://youtu.be/YaUgywuT1YM)
#### [Video of Lua Telemetry running on X9D+](https://youtu.be/YaUgywuT1YM)

#### Horus/Jumper T16 view
#### Horus/Jumper T16 and Nirvana view

![sample](assets/iNavHorus.png "View on Horus transmitters")
![sample](assets/iNavHorus.png "View on Horus transmitters")&nbsp;&nbsp;
![sample](assets/iNavNirvana.jpg "View on Nirvana NV14 transmitter")

#### Pilot (glass cockpit) view for fixed wing pilots

![sample](assets/iNavQX7pilot.png "Pilot view on Q X7 and X-Lite")&nbsp;&nbsp;
![sample](assets/iNavQX7pilot.png "Pilot view on Q X7, X-Lite & Jumper T12")&nbsp;&nbsp;
![sample](assets/iNavX9Dpilot.png "Pilot view on Taranis X9D, X9D+ and X9E")

#### Radar (map) view

![sample](assets/iNavQX7radar.png "Radar view on Q X7 and X-Lite")&nbsp;&nbsp;
![sample](assets/iNavQX7radar.png "Radar view on Q X7, X-Lite & Jumper T12")&nbsp;&nbsp;
![sample](assets/iNavX9Dradar.png "Radar view on Taranis X9D, X9D+ and X9E")

#### Altitude graph view

![sample](assets/iNavQX7alt.png "Altitude graph view on Q X7 and X-Lite")&nbsp;&nbsp;
![sample](assets/iNavQX7alt.png "Altitude graph view on Q X7, X-Lite & Jumper T12")&nbsp;&nbsp;
![sample](assets/iNavX9Dalt.png "Altitude graph view on Taranis X9D, X9D+ and X9E")

#### Classic view

![sample](assets/iNavQX7.png "Classic view on Q X7 and X-Lite")&nbsp;&nbsp;
![sample](assets/iNavQX7.png "Classic view on Q X7, X-Lite & Jumper T12")&nbsp;&nbsp;
![sample](assets/iNavX9D.png "Classic view on Taranis X9D, X9D+ and X9E")

## Features

* Works with all FrSky telemetry receivers (X, R9 and D series), all TBS Crossfire receivers, all FrSky Taranis and Horus transmitters, and the Jumper T16 transmitter
* Compatible with Betaflight using FrSky X or R9 series receivers (with reduced functionality) and TBS Crossfire support with Betaflight 4.0.0+
* Supported receivers: All FrSky telemetry receivers (X, R9 and D series) and all TBS Crossfire receivers
* Supported transmitters: All FrSky Taranis and Horus transmitters, Jumper T12 & T16 and the FLYSKY Nirvana NV14
* Compatible with Betaflight using FrSky X or R9 series receivers (with reduced functionality) and TBS Crossfire support with Betaflight v4.0.0+
* Launch/pilot-based model orientation and location indicators (great for lost orientation/losing sight of your model)
* Compass-based direction indicator (with magnetometer sensor on multirotor or fixed-wing with GPS)
* Pilot (glass cockpit) view which includes attitude indicator as well as pilot-familiar layout of additional data
* Radar (map) view shows model in relationship to home position, can be displayed either as launch/pilot-based or compass-based orientation
* Altitude graph view shows altitude for the last 1-6 minutes
* Horus and Jumper T16 transmitters show all views at the same time, and include additional features like roll scale
* Horus, Jumper T16 & FLYSKY Nirvana NV14 transmitters show all views at the same time, and include additional features like roll scale
* Bar gauges for Fuel (% battery mAh capacity remaining), Battery voltage, RSSI strength, Transmitter battery, GPS accuracy (HDOP), Variometer (and Altitude for X9D, X9D+ and X9E transmitters)
* Display and voice alerts for flight modes and flight mode modifiers (altitude hold, heading hold, home reset, etc.)
* Voice notifications for % battery remaining (based on current), voltage low/critical, high altitude, lost GPS, ready to arm, armed, disarmed, etc.
Expand All @@ -56,12 +58,11 @@

## Requirements

* [OpenTX v2.2.2+](http://www.open-tx.org/) running on Taranis Q X7/Q X7S, X9D/X9D+, X9E, X9 Lite, X-Lite/X-Lite Pro, Horus X10/X10S or X12S (OpenTX v2.2.3+ is suggested)
* Jumper T16 requires [JumperTX 2.2.3+](https://www.jumper.xyz/jumpertx-t16) (May 23, 2019 or after release)
* The OpenTX/JumperTX firmware on your transmitter needs to [includes the `luac` build option](https://youtu.be/nYeB0IXT-10?t=283)
* FrSky X, R9 or D series telemetry receiver: X4RSB, X8R, XSR, R-XSR, XSR-M, XSR-E, RX4R, RX6R, XM, XM+, R9, R9 Slim, R9 Slim+, R9 Mini, R9 MM, D8R-II plus, D8R-XP, D4R-II, etc. or any TBS Crossfire receiver: Micro, Nano, Diversity, etc.
* [INAV v1.7.3+](https://github.com/iNavFlight/inav/releases) running on your flight controller (INAV v2.1.0+ is suggested for full functionality) - Also compatible with Betaflight (with reduced functionality)
* GPS - If you're looking for a GPS module, I suggest the [Beitian BN-880](https://www.banggood.com/UBLOX-NEO-M8N-BN-880-Flight-Control-GPS-Module-Dual-Module-Compass-p-971082.html)
* [INAV v2.1.0+](https://github.com/iNavFlight/inav/releases) running on your flight controller - Also compatible with Betaflight v4.0.0+ (with reduced functionality)
* [OpenTX v2.2.3+](http://www.open-tx.org/) running on Taranis Q X7/Q X7S, X9D/X9D+, X9E, X9 Lite, X-Lite/X-Lite Pro, Horus X10/X10S or X12S
* Jumper T12/T16 requires [JumperTX 2.2.3+](https://www.jumper.xyz/) (May 23, 2019 or after release)
* FrSky X, R9 or D series telemetry receiver: X4RSB, X8R, XSR, R-XSR, XSR-M, XSR-E, RX4R, RX6R, R9, R9 Slim, R9 Slim+, R9 Mini, R9 MM, D8R-II plus, D8R-XP, D4R-II, etc. or any TBS Crossfire receiver: Micro, Nano, Diversity, etc.
* GPS - If you're looking for a GPS module, I suggest the [Beitian BN-880](https://us.banggood.com/custlink/vvGD6DZWyg)

## Suggested Sensors

Expand All @@ -71,20 +72,16 @@

## Notes

* INAV v2.1.0+ is required for TBS Crossfire support (some telemetry missing from Crossfire: HDOP, GPS altitude, variometer and heading hold notifications)
* INAV v2.0.0+ is required for FrSky D-series telemetry and proper GPS accuracy (HDOP) display
* If using pilot or radar view or a Horus transmitter and INAV v2.0+, set `frsky_pitch_roll = ON` in CLI settings for more accurate attitude display
* INAV v1.9.1+ is required for F.Port compatibility
* INAV v1.8.0+ is required for `Home reset` voice notification
* OpenTX v2.2.2 (release version) is required for compatibility with Taranis X-Lite transmitter and Crossfire telemetry
* Betaflight compatibility is mostly complete, except for some GPS and flight mode information missing from Betaflight
* Use the OSD to control VTx band, frequency and power (Betaflight lua script can't be run at the same time as INAV Lua Telemetry due to limited transmitter memory)
* Some telemetry is missing from Crossfire: HDOP, GPS altitude and some secondary flight mode notifications like heading hold
* Betaflight v4.0.0+ mostly works, except for some GPS and flight mode information which is missing from Betaflight
* Use the OSD to control VTx band, frequency and power (except for on 2019 series Taranis transmitters, Betaflight's lua script can't run at the same time as INAV Lua Telemetry due to limited transmitter memory)

## Special Thanks

* [Team Black Sheep](https://www.team-blacksheep.com/) - Sponsoring TBS Crossfire telemetry support
* [FrSky](https://www.frsky-rc.com/) - Sponsoring Horus transmitter support
* [FrSky](https://www.frsky-rc.com/) - Sponsoring [FrSky Horus](https://us.banggood.com/custlink/vG3D6Kiprr) transmitter support
* [Jumper](https://www.jumper.xyz/) - Sponsoring Jumper T16 transmitter support
* [FLYSKY](https://www.flysky-cn.com/) - Sponsoring [FLYSKY Nirvana NV14](https://us.banggood.com/custlink/GmGm0GZcpt) transmitter support

## Setup

Expand Down
Binary file added assets/iNavNirvana.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified dist/SCRIPTS/TELEMETRY/iNav.lua
Binary file not shown.
Binary file modified dist/SCRIPTS/TELEMETRY/iNav.luac
Binary file not shown.
Binary file modified dist/SCRIPTS/TELEMETRY/iNav/alt.luac
Binary file not shown.
Binary file modified dist/SCRIPTS/TELEMETRY/iNav/crsf.luac
Binary file not shown.
Binary file modified dist/SCRIPTS/TELEMETRY/iNav/data.luac
Binary file not shown.
Binary file modified dist/SCRIPTS/TELEMETRY/iNav/func_h.luac
Binary file not shown.
Binary file modified dist/SCRIPTS/TELEMETRY/iNav/func_t.luac
Binary file not shown.
Binary file modified dist/SCRIPTS/TELEMETRY/iNav/horus.luac
Binary file not shown.
Binary file modified dist/SCRIPTS/TELEMETRY/iNav/log.luac
Binary file not shown.
Binary file modified dist/SCRIPTS/TELEMETRY/iNav/menu.luac
Binary file not shown.
Binary file modified dist/SCRIPTS/TELEMETRY/iNav/modes.luac
Binary file not shown.
Binary file added dist/SCRIPTS/TELEMETRY/iNav/nirvana.luac
Binary file not shown.
Binary file modified dist/SCRIPTS/TELEMETRY/iNav/other.luac
Binary file not shown.
Binary file added dist/SCRIPTS/TELEMETRY/iNav/pics/bgnv.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified dist/SCRIPTS/TELEMETRY/iNav/pilot.luac
Binary file not shown.
Binary file modified dist/SCRIPTS/TELEMETRY/iNav/radar.luac
Binary file not shown.
Binary file modified dist/SCRIPTS/TELEMETRY/iNav/reset.luac
Binary file not shown.
Binary file modified dist/SCRIPTS/TELEMETRY/iNav/save.luac
Binary file not shown.
Binary file modified dist/SCRIPTS/TELEMETRY/iNav/view.luac
Binary file not shown.
11 changes: 10 additions & 1 deletion dist/WIDGETS/iNav/main.lua
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
local buildMode = ...
local iNav = nil
local options = {
{ "Restore", BOOL, 0},
{ "Restore", BOOL, 1},
{ "Text", COLOR, BLACK},
{ "Warning", COLOR, YELLOW}
}
Expand All @@ -13,6 +13,15 @@ if string.sub(r, -4) == "simu" and buildMode ~= true then
loadScript(TELE_PATH .. "iNav", "tc")(true)
end

-- Nirvana NV14 doesn't have have these global constants, so we set them
if r == "NV14" then
EVT_SYS_FIRST = 1 --1542
EVT_ROT_LEFT = 2 --57088
EVT_ROT_RIGHT = 3 --56832
EVT_ENTER_BREAK = 4 --514
EVT_EXIT_BREAK = 5 --516
end

-- Run once at the creation of the widget
local function create(zone, options)
iNavZone = { zone = zone, options = options }
Expand Down
Binary file modified dist/WIDGETS/iNav/main.luac
Binary file not shown.
32 changes: 16 additions & 16 deletions src/iNav.lua
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
-- Docs: https://github.com/iNavFlight/LuaTelemetry

local buildMode = ...
local VERSION = "1.7.2"
local VERSION = "1.7.3"
local FILE_PATH = "/SCRIPTS/TELEMETRY/iNav/"
local SMLCD = LCD_W < 212
local HORUS = LCD_W >= 480
local HORUS = LCD_W >= 480 or LCD_H >= 480
local FLASH = HORUS and WARNING_COLOR or 3
local tmp, view, lang, playLog
local env = "bx"
Expand All @@ -17,17 +17,17 @@ local v, r, m, i, e = getVersion()
if string.sub(r, -4) == "simu" then
env = "tx"
if buildMode ~= false then
loadScript(FILE_PATH .. "build", "tx")(buildMode)
loadScript(FILE_PATH .. "build", env)(buildMode)
end
end

local config = loadScript(FILE_PATH .. "config" .. ext, env)(SMLCD)
collectgarbage()

local modes, units, labels = loadScript(FILE_PATH .. "modes" .. ext, env)()
local modes, units, labels, dir = loadScript(FILE_PATH .. "modes" .. ext, env)(HORUS)
collectgarbage()

local data, getTelemetryId, getTelemetryUnit, PREV, NEXT, MENU = loadScript(FILE_PATH .. "data" .. ext, env)(r, m, i, HORUS)
local data, getTelemetryId, getTelemetryUnit, PREV, NEXT, MENU, text, line, rect, fill, frmt = loadScript(FILE_PATH .. "data" .. ext, env)(r, m, i, HORUS)
collectgarbage()

loadScript(FILE_PATH .. "load" .. ext, env)(config, data, FILE_PATH)
Expand All @@ -49,7 +49,7 @@ collectgarbage()
local crsf, distCalc = loadScript(FILE_PATH .. "other" .. ext, env)(config, data, units, getTelemetryId, getTelemetryUnit, FILE_PATH, env, SMLCD, FLASH)
collectgarbage()

local title, gpsDegMin, hdopGraph, icons = loadScript(FILE_PATH .. "func_" .. (HORUS and "h" or "t") .. ext, env)(config, data, FILE_PATH)
local title, gpsDegMin, hdopGraph, icons, rect = loadScript(FILE_PATH .. "func_" .. (HORUS and "h" or "t") .. ext, env)(config, data, modes, dir, SMLCD, FILE_PATH, text, line, rect, fill, frmt)
collectgarbage()

local function playAudio(f, a)
Expand Down Expand Up @@ -459,20 +459,20 @@ local function run(event)
-- Clear screen
if HORUS then
-- Display error if Horus widget isn't full screen
if icons.nfs ~= nil then
icons.nfs()
if data.nfs ~= nil then
data.nfs()
return 0
end
-- On Horus use sticks to control the menu
event = icons.clear(event, data)
event = data.clear(event)
else
lcd.clear()
end

-- Display system error
--[[
if data.msg then
lcd.drawText((LCD_W - string.len(data.msg) * (HORUS and 13 or 5.2)) * 0.5, HORUS and 130 or 27, data.msg, HORUS and MIDSIZE or 0)
text((LCD_W - string.len(data.msg) * (HORUS and 13 or 5.2)) * 0.5, HORUS and 130 or 27, data.msg, HORUS and MIDSIZE or 0)
return 0
end
]]
Expand All @@ -486,15 +486,15 @@ local function run(event)
data.v = 9
end
tmp = config[30].v
view(data, config, units, lang, event, gpsDegMin, getTelemetryId, getTelemetryUnit, FILE_PATH, SMLCD, FLASH, PREV, NEXT, HORUS, env)
view(data, config, units, lang, event, gpsDegMin, getTelemetryId, getTelemetryUnit, SMLCD, FLASH, PREV, NEXT, HORUS, text, rect, fill, frmt, env)
if HORUS then
icons.menu(config, data, icons, tmp)
data.menu(tmp)
end
-- Exit menu or select log for playback, save config settings
if data.configSelect == 0 and (event == EVT_EXIT_BREAK or (event == EVT_ENTER_BREAK and data.configStatus == 34 and config[34].x > -1 and not data.armed)) then
view = nil
collectgarbage()
loadScript(FILE_PATH .. "save" .. ext, env)(config, data, FILE_PATH)
loadScript(FILE_PATH .. "save" .. ext, env)(config, data, frmt, FILE_PATH)
end
else
-- User input
Expand All @@ -520,15 +520,15 @@ local function run(event)
if data.v ~= config[25].v then
view = nil
collectgarbage()
view = loadScript(FILE_PATH .. (HORUS and "horus" or (config[25].v == 0 and "view" or (config[25].v == 1 and "pilot" or (config[25].v == 2 and "radar" or "alt")))) .. ext, env)()
view = loadScript(FILE_PATH .. (HORUS and (data.nv and "nirvana" or "horus") or (config[25].v == 0 and "view" or (config[25].v == 1 and "pilot" or (config[25].v == 2 and "radar" or "alt")))) .. ext, env)()
data.v = config[25].v
end
view(data, config, modes, units, labels, gpsDegMin, hdopGraph, icons, calcBearing, calcDir, VERSION, SMLCD, FLASH, FILE_PATH)
view(data, config, modes, dir, units, labels, gpsDegMin, hdopGraph, icons, calcBearing, calcDir, VERSION, SMLCD, FLASH, FILE_PATH, text, line, rect, fill, frmt)
end
collectgarbage()

-- Paint title
title(data, config, SMLCD)
title()

return 0
end
Expand Down
Loading