Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
This functions allows for sending SPORT / ACCESS telemetry data toward the receiver, and more generally, to anything connected SPORT bus on the receiver or transmitter.
When called without parameters, it will only return the status of the output buffer without sending anything.
@status current Introduced in 2.3
module
module index (0 = internal, 1 = external)
rxUid
receiver index
sensorId
physical sensor ID
frameId
frame ID
dataId
data ID
value
value
boolean
data queued in output buffer or not.
Returns (some of) the general radio settings
@status current Introduced in 2.0.6, imperial
added in TODO, language
and voice
added in 2.2.0, gtimer added in 2.2.2.
none
table
with elements:
battWarn
(number) radio battery range - warning value
battMin
(number) radio battery range - minimum value
battMax
(number) radio battery range - maximum value
imperial
(number) set to a value different from 0 if the radio is set to the
IMPERIAL units
language
(string) radio language (used for menus)
voice
(string) voice language (used for speech)
gtimer
(number) radio global timer in seconds (does not include current session)
Return flight mode data.
@status current Introduced in 2.1.7
mode
(number) flight mode number to return (0 - 8). If mode parameter
is not specified (or contains invalid value), then the current flight mode data is returned.
multiple
returns 2 values:
(number) (current) flight mode number (0 - 8)
(string) (current) flight mode name
This page describes the value that is passed to scripts in the event
parameter. It is used in Telemetry and One-Time scripts.
Each time a key is pressed, held and released a number of events get generated. Here is a typical flow:
when a key is pressed a FIRST
event is generated
if the key continues to be pressed, then after a while a LONG
event is generated
if the key continues to be pressed, then a REPEAT
events are being generated
when the key is released a BREAK
event is generated
Couple of examples:
a short press on key would generate: FIRST
, BREAK
a longer pres on key would generate: FIRST
, LONG
, BREAK
even longer press: FIRST
, LONG
, REPEAT,
REPEAT, ..., BREAK
This normal key event sequence can be altered with the killEvents(key) function. Any time this function is called (after the FIRST
event) all further key events for this key will be suppressed until the next key press of this key. Examples:
kill immediately after the key press would generate: FIRST
kill after the long key press would generate: FIRST
, LONG
The event
parameter in the Telemetry and One-Time scripts run function actually carries two pieces of information:
key number
type of event
The two fields are combined into one single number. Some of these combinations are defined as constants and are available to Lua scripts:
Radios with rotary encoder (X7 and Horus) have also:
Given the large number of radios supported by OpenTX, and the large difference in keys available on those, a set of VIRTUAL KEYS has been defined and are mapped to best fit available hardware
Return detailed information about field (source)
The list of valid sources is available:
@status current Introduced in 2.0.8, 'unit' field added in 2.2.0
name
(string) name of the field
table
information about requested field, table elements:
id
(number) field identifier
name
(string) field name
desc
(string) field description
'unit' (number) unit identifier
nil
the requested field was not found
Key Event Name
Comments
EVT_MENU_BREAK
MENU key release
EVT_PAGE_BREAK
PAGE key release
EVT_PAGE_LONG
MENU key long press
EVT_ENTER_BREAK
ENT key release
EVT_ENTER_LONG
ENT key long press
EVT_EXIT_BREAK
EXIT key release
EVT_PLUS_BREAK
+ key release
EVT_MINUS_BREAK
- key release
EVT_PLUS_FIRST
+ key press
EVT_MINUS_FIRST
- key press
EVT_PLUS_REPT
+ key repeat
EVT_MINUS_REPT
- key repeat
Key Event Name
Comments
EVT_ROT_BREAK
rotary encoder release
EVT_ROT_LONG
rotary encoder long press
EVT_ROT_LEFT
rotary encoder rotated left
EVT_ROT_RIGHT
rotary encoder rotated right
Virtual Key Event Name
Comments
EVT_VIRTUAL_NEXT_PAGE
for PAGE navigation
EVT_VIRTUAL_PREVIOUS_PAGE
for PAGE navigation
EVT_VIRTUAL_ENTER
EVT_VIRTUAL_ENTER_LONG
EVT_VIRTUAL_MENU
EVT_VIRTUAL_MENU_LONG
EVT_VIRTUAL_NEXT
for FIELDS navigation
EVT_VIRTUAL_NEXT_REPT
for FIELDS navigation
EVT_VIRTUAL_PREVIOUS
for FIELDS navigation
EVT_VIRTUAL_PREV_REPT
for FIELDS navigation
EVT_VIRTUAL_INC
for VALUES navigation
EVT_VIRTUAL_INC_REPT
for VALUES navigation
EVT_VIRTUAL_DEC
for VALUES navigation
EVT_VIRTUAL_DEC_REPT
for VALUES navigation
This section describes the Lua libraries, functions and constants that are provided by OpenTX.
Return the RAS value or nil if no valid hardware found
@status current Introduced in 2.2.0
none
number
representing RAS value. Value bellow 0x33 (51 decimal) are all ok, value above 0x33 indicate a hardware antenna issue.
This is just a hardware pass/fail measure and does not represent the quality of the radio link
RAS was called SWR in the past
This functions allows for sending telemetry data toward the TBS Crossfire link.
When called without parameters, it will only return the status of the output buffer without sending anything.
@status current Introduced in 2.2.0, retval nil added in 2.3.4
command
command
data
table of data bytes
boolean
data queued in output buffer or not.
nil
incorrect telemetry protocol.
Return current system date and time that is kept by the RTC unit
none
table
current date and time, table elements:
year
(number) year
mon
(number) month
day
(number) day of month
hour
(number) hours
hour12
(number) hours in US format
min
(number) minutes
sec
(number) seconds
suffix
(text) am or pm
Return the time since the radio was started in multiple of 10ms
The timer internally uses a 32-bit counter which is enough for 497 days so overflows will not happen.
@status current Introduced in 2.0.0
none
number
Number of 10ms ticks since the radio was started Example:
run time: 12.54 seconds, return value: 1254
Return the internal GPS position or nil if no valid hardware found
@status current Introduced in 2.2.2
none
table
representing the current radio position
lat
(number) internal GPS latitude, positive is North
lon
(number) internal GPS longitude, positive is East
'numsat' (number) current number of sats locked in by the GPS sensor
'fix' (boolean) fix status
'alt' (number) internal GPS altitude in 0.1m
'speed' (number) internal GPSspeed in 0.1m/s
'heading' (number) internal GPS ground course estimation in degrees * 10
'hdop' (number) internal GPS horizontal dilution of precision
OpenTX Version | Radio |
2.0 |
2.1 |
2.2 |
2.3 |
Load a Lua script file. This is similar to Lua's own API method, but it uses OpenTx's optional pre-compilation feature to save memory and time during load.
Return values are same as from Lua API loadfile() method: If the script was loaded w/out errors then the loaded script (or "chunk") is returned as a function. Otherwise, returns nil plus the error message.
@status current Introduced in 2.2.0
file
(string) Full path and file name of script. The file extension is optional and ignored (see mode
param to control which extension will be used). However, if an extension is specified, it should be ".lua" (or ".luac"), otherwise it is treated as part of the file name and the .lua/.luac will be appended to that.
mode
(string) (optional) Controls whether to force loading the text (.lua) or pre-compiled binary (.luac) version of the script. By default OTx will load the newest version and compile a new binary if necessary (overwriting any existing .luac version of the same script, and stripping some debug info like line numbers). You can use mode
to control the loading behavior more specifically. Possible values are:
b
only binary.
t
only text.
T
(default on simulator) prefer text but load binary if that is the only version available.
bt
(default on radio) either binary or text, whichever is newer (binary preferred when timestamps are equal).
Add x
to avoid automatic compilation of source file to .luac version.
Eg: "tx", "bx", or "btx".
Add c
to force compilation of source file to .luac version (even if existing version is newer than source file).
Eg: "tc" or "btc" (forces "t", overrides "x").
Add d
to keep extra debug info in the compiled binary.
Eg: "td", "btd", or "tcd" (no effect with just "b" or with "x").
env
(integer) See documentation for Lua function loadfile().
function
The loaded script, or nil
if there was an error (e.g. file not found or syntax error).
string
Error message(s), if any. Blank if no error occurred.
Note that you will get an error if you specify mode
as "b" or "t" and that specific version of the file does not exist (eg. no .luac file when "b" is used). Also note that mode
is NOT passed on to Lua's loader function, so unlike with loadfile() the actual file content is not checked (as if no mode or "bt" were passed to loadfile()).
Return OpenTX version
@status current Introduced in 2.0.0, expanded in 2.1.7, radio type strings changed in 2.2.0
This example also runs in OpenTX versions where the function returned only one value:
Output of the above script in simulator:
none
string
OpenTX version (ie "2.1.5")
multiple
(available since 2.1.7) returns 5 values:
(string) OpenTX version (ie "2.1.5")
(string) radio type: x12s
, x10
, x9e
, x9d+
, x9d
or x7
.
If running in simulator the "-simu" is added
(number) major version (ie 2 if version 2.1.5)
(number) minor version (ie 1 if version 2.1.5)
(number) revision number (ie 5 if version 2.1.5)
Returns the value of a source.
The list of fixed sources:
In OpenTX 2.1.x the telemetry sources no longer have a predefined name. To get a telemetry value simply use it's sensor name. For example:
Altitude sensor has a name "Alt"
to get the current altitude use the source "Alt"
to get the minimum altitude use the source "Alt-", to get the maximum use "Alt+"
@status current Introduced in 2.0.0, changed in 2.1.0, Cels+
and Cels-
added in 2.1.9
source
can be an identifier (number) (which was obtained by the getFieldInfo())
or a name (string) of the source.
value
current source value (number). Zero is returned for:
non-existing sources
for all telemetry source when the telemetry stream is not received
far all non allowed sensors while FAI MODE is active
table
GPS position is returned in a table:
lat
(number) latitude, positive is North
lon
(number) longitude, positive is East
pilot-lat
(number) pilot latitude, positive is North
pilot-lon
(number) pilot longitude, positive is East
table
GPS date/time, see getDateTime()
table
Cells are returned in a table (except where no cells were detected in which case the returned value is 0):
table has one item for each detected cell:
key (number) cell number (1 to number of cells)
value (number) current cell voltage
Getting a value by its numerical identifier is faster then by its name. While Cels
sensor returns current values of all cells in a table, a Cels+
or Cels-
will return a single value - the maximum or minimum Cels value.
,
, ,
, , ,