* Add options to disable radio and model menu tabs.
- Update radio and model data structs
- UI for color LCD radios
- Convert existing 'noGlobalFunctions' property.
- Language strings.
* Make 'theme' control specific to color LCD radios.
* Add B&W radio UI.
* Simplify code, reduce compiled code size.
Fix page count display on model select tab.
Fix GVARS for 212x64 radios.
* Collapse timer sections if timer is off.
* Remove 'Use global functions' checkbox from B&W model setup.
* Make preflight checks, throttle and view options sections expand & collapse (default collapsed).
* Fix build.
* Add view options to companion data classes, save and load values in YAML files.
Fix scrolling for radio setup view options.
* Add Companion UI for view option settings.
* Remove 'Mixes' from list of tabs that can be hidden.
* Updated Companion UI from elecpower.
* Use view options flags to enable/disable functionality:
- skip heli mixer logic if heli not enabled
- Remove heli, gvars and telemetry options from source selection if not enabled
* Remove 'flight mode', 'curve' and 'global variable' settings from input & mix editors if option disabled.
* Rename 'View Options' to 'Enabled Features'.
Put GVAR option under Flight Mode and indent text.
Make relationship between FM and GV more obvious.
* Remove global variable option dependency on flight modes.
Hide FM1-FM8 in global variables if flight modes hidden.
* Hide 'Custom Mixer Scripts' in source selection menu popup if disabled.
* Add translation strings for Hebrew language file.
* Fix typo. Add comment for double call to setCurrentTab.
* Add support for the '1x' repeat option for 'Play Script' special functions.
* Add Companion and B&W radio support.
* Fix B&W radio logic and layout.
* Add translation hooks.
* Adds option to align value widget label and value to left, center or right border of the widget zone.
* Cpn sync
* Typofix thx to @Eldenroot
* fix: Add `TW` translation
* fix: Two spaces for indent
---------
Co-authored-by: elecpower <neilh713@tpg.com.au>
* Store 'zone' rectangle dat in Lua registry and update it when the screen layout changes or full screen mode changes. Allows Lua widgets to adjust to layout changes.
* Call widget 'update' function is layout has changed.
* chore(lua): revert useless c light function change
This change was part of the eLua LTR patches (based on 5.1), whereby this feature was already integrated in Lua 5.2.
* feat(lua): port of NodeMCU Lua53 read-only tables
# Conflicts:
# radio/src/lua/CMakeLists.txt
# radio/src/lua/api_general.cpp
* fix(nv14): missing SDRAM definition
* fix: l_mathop
* fix: use float functions in drawPower()
* fix: ltable resize
* fix: correct name is "bit32"
* fix: first Lua context must be closed last
As the lookup cache is attached to that one
* Revert to Lua using double
* Ensure byte-code compatibility
* Fix possible compatibility issue with `lua_typename`/`luaL_typename`
* Fix Bitmap symbol table
* Re-add table lib for COLORLCD
* WiP: new module interface
* WiP: softserial timer DMA
* WiP: setup() and send() in one step
and remove methods specific to internal or external module
* fixes and extra port config
* horus targets
* module ports have moved
* T8 support (only internal module)
* fix nv14
* stupid GCC....
* disable BT
* remove nv14 telem driver
* remove old aux serial driver
* Move module buffers out of pulses.h
* Soft serial fixes and PXX1 support
* Fixed PPM module output
* Fixed CLI
* compilation fixes
* Ported bluetooth and flysky gimbal to new serial driver
* Re-enable soft-serial RX
* fixes and cleanup
* nv14 fixes
* Fix flysky gimbals
* Ghost module
* 16 bytes of RAM
* Remove getByte from module API
* Ghost cleanup
* fix: _half_duplex_input() must be called after usart init
* WiP
* more cleanup
* Remove board specific settings from PXX1 / PXX2 drivers
* A bit of PXX2 header cleanup
* Add support for OVER8 and ONEBIT
* Add some support for inverters (NV14 / EL18)
* Support NV14 power fixes in generic board
* Fix polarity handling
* Fix RX DMA
* Fix mixer not running
* Add soft-serial polarity control
* Quick fix for telemetry polling while module port is changed
* Fix bootloader DEBUG
* Fix MPM telemetry
* Fix pulse start
* DSM2 soft-serial fallback
* DSMP async module restart
* Fix CRSF LUA upstream
* Remove global variable telemetryProtocol
* Use HAL/LL constants
* Fix various issue with AFHDS3 and NV14/EL18 internal module
* Fixed S.PORT unit tests
* fix: update widx after writing at current index
* fix: init error condition
* Fix: possible infinite loop in _find_port()
* Add support for bidir S.PORT init
* Add support for "getLastByte" in HW serial driver
* PXX1: Add support for S.PORT based on IDLE callback
* Fix rebase error
* Fix softserial _rx_fifo_push()
* Add softserial support for waitForTxCompleted()
* Fix MPM flashing (internal / external)
* Fixed external MPM
* Activate RX DMA on internal module
Seems to work with serial passthrough without issues, at least on the L3R PRO.
* Fix softserial DMA on stdlcd F4 targets
* Add softserial support for 32bit timers (mostly TIM2)
* More precise soft-serial
* Fix MPM update using inverters & HW uart
* Raise S.PORT DMA/USART IRQ prio to achieve faster switching to input
* Remove useless delays
* Fix flashing external ELRS module
* Added a retry mechanism for FrSky S.PORT update
* Remove useless enableRx()
* External FrSky modules are all flashed via S.PORT
* Remove power management unit update
This was only used on the first batch of X-lite.
* Lua array indexes start at 1
* LUA model.setFlightMode: use array index to compute trim index
This allows for providing an incomplete table like this:
```
-- Disable T5 & T6 on FM0
modes = {}
modes[5] = 31
modes[6] = 31
t = {}
t["trimsModes"] = modes
model.setFlightMode(0, t)
```
* Remove warning & cleanup
* Fix trim value constraints in model.setFlightMode()
Suppress `EVT_KEY_BREAK(KEY_PGDN)` after `EVT_KEY_LONG(KEY_PGDN)` on targets which don't have a physical `KEY_PGUP`.
This way, the sequence is now clean: no more `EVT_VIRTUAL_NEXT_PAGE` emitted after `EVT_VIRTUAL_PREV_PAGE` on these targets.
* Moved getFieldInfo and getValue up right after related functions
* Modified getValue to return a valid status, so Lua can see if it got zero because of invalid source id
* Added new getSourceValue Lua function per Issue #781
Also added alias getSourceInfo for getFieldInfo
* Updated according to comment https://github.com/EdgeTX/edgetx/pull/2175#issuecomment-1245605114
* Replaced isFresh() by !isOld() as requested in https://github.com/EdgeTX/edgetx/pull/2316#issuecomment-1246759370
* Clean up `lua_pushtablenil` - tables cannot hold nil values
* Changed isFresh() to !isOld() ... AGAIN
* Return both `!isOld()` and `isFresh()`
* Return nil for all values if the item does not exist
* Return 0 instead of pushing three nil values
* Update documentation
* Special Function to set main screen (#2135)
* chore: Add new SF to LUA constants list
* Companion support
* Formatting
* get rid of magic number
* Add function to get the number of custom screens
* Change screen numbering from 0-based to 1-based.
* Allow SetScreen custom function for Color LCD only
* add range protection
* cleanup
* yet, range protection once again
* fix: paintSpecialFunctionLine can't alter SF param data
* Fix screen initialization in companion
* move screen switching to the UI
* Trigger view change from guiMain()
* chore: Change "SET" to "Set" for consistency
* fix: Somehow missed extra comma in `TW`
Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
Co-authored-by: elecpower <neilh713@tpg.com.au>
Co-authored-by: Raphael Coeffic <raphael.coeffic@frafos.com>
* First build
* Fix X9
* Update api_general.cpp
* Update translations.h
* clean up translations
* fix: B&W option handling, remove magic numbers, cleanup
- Remove references to invertRotary, change to RotEncDir or similar
- Add compatabilty importing to companion, firmware
- Rename Lua API call
- Move magic numbers to enum
- Improve B&W option handling so it doesn't apply changes while in menu
* chore: yaml regen
* fix: Add missing guards for X9D/X9D+
* fix: Wrong enum name in simu
* fix(cpn): Use correct names for UI elements
* fix: Translations
* fix: Allow `rotEncMode` in all yaml due to x9d var
Of the three X9D variants, the X9D+2019 is the only one that
has a rotary encoder as standard. However, as the base config
file is for the X9D, this meant it wasn't reading or writing the
config value. Rather than add a seperate config file for it for
a single variable, simple to just allow it across all targets.
* fix: Companion string, change colorlcd to `Choice`
Co-authored-by: Peter Feerick <peter.feerick@gmail.com>