1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-14 03:49:52 +03:00
Commit graph

368 commits

Author SHA1 Message Date
Max Paperno
3542c8b807 Make build setup a little more Windows-friendly (#4435)
* [build][CMake] Use `find_package(Git)` to confirm existence before trying to use git for version stamp; Use friendlier detection of grep executable on Windows; Use "del" on Windows instead of "rm".

* [build][Windows] Include dirent and msinttypes headers in source tree.

* Remove grep dependency for lua exports generation

* Sneaky pythons hiding in code.

* [build] Change `git_id` macro to skip check if no git directory is present, also now fails gracefully; Fix `today` macro on Windows; Report git revision; Make sure QtSvg module is found.
2017-02-11 22:23:07 +01:00
Damjan Adamic
e80c4c858e Prevent Lua from allocating all heap memory (Horus) (#4440)
* Fixes #4284: Prevent Lua from allocating all heap memory (Horus)
Lua bitmap functions cleanup and docs update
Added x or y < 0 check to drawBitmap()

* Proper float constant
2017-02-11 22:21:14 +01:00
Damjan Adamic
be61e07939 Lua documentation update 2017-02-11 19:08:55 +01:00
Damjan Adamic
17a77114d0 Re #3882: parse theme/widget options depending on option type (#4391) 2017-02-04 15:35:00 +01:00
Damjan Adamic
b493973d7d Lua: Use incremental GC and also call it for Widgets (#4369)
Fixes #3885: Error in Lua Widget options handled better (does not disable entire Lua state)
Disable Lua Widget if any of its functions has error.
2017-02-04 10:58:06 +01:00
Bertrand Songis
40ece81de2 X10 (#4377)
[X10] New radio supported!
2017-02-04 10:42:50 +01:00
Damjan Adamic
fc01f77d49 Re #4384: Lua doc updated: added max image size to lcd.drawPixmap() 2017-02-03 20:22:55 +01:00
3djc
0c550588bb Make lcd.drawScreenTitle and lcd.drawCombobox compatible with X7 (#4374) 2017-02-02 10:33:42 +01:00
3djc
e7d7f9df95 Fix some events not sent to LUA telemetry scripts scripts.
Thix fixes #4366
2017-02-02 08:02:18 +01:00
3djc
ba21aec79f Update doc for functions not available on X7 (#4363) 2017-02-01 15:44:23 +01:00
Damjan Adamic
dcbfa92b03 Lua docs update: playNumber units updated 2017-01-30 21:53:06 +01:00
Florent Martel
4a76c023e6 Update the luadoc for sportTelemetryPop() (#4287)
Followup on #4232: DIY ID range changed to 0x5000 - 0x52FF
2017-01-25 18:16:30 +01:00
Bertrand Songis
cdb3f48da7 [Horus] Malloc check added 2017-01-22 21:44:44 +01:00
Damjan Adamic
2e12b6401f Re #3719: documentation updated for model.setLogicalSwitch() - how to set "and" parameter (previous commit was wrong). 2017-01-14 16:18:19 +01:00
Damjan Adamic
85306a0d91 Re #3719: documentation updated for model.getLogicalSwitch() - how to set "and" parameter. 2017-01-14 16:05:59 +01:00
Damjan Adamic
82dce3ee60 Projectkk2glider/flash savings (#4199)
* Flash savings: getFileExtension() de-templated, saves 160 bytes

* Flash savings: several variables moved to rodata, RGB macro optimization (speed and can now be used to initialize rodata)

Result for Horus:
   text	   data	    bss	    dec
1261182	 808603	  42020	2111805   before
1267149	 803335	  42124	2112608   after (data size also counts .sram section)

5kB saved in .data section (RAM and FLASH)

* Removed compiler warnings

* RGB() and ARGB() gtests added

* ARGB() optimized
2017-01-05 21:44:59 +01:00
Raphael Coeffic
1666fd7355 lua: added EVT_MENU_LONG on Taranis (#3991) 2016-12-28 22:39:59 +01:00
Max Paperno
e90bd0fd70 Enable Windows build with Qt5.5+ & MinGW-w64 (#4150)
* [Windows][MinGW] Update some WIN32 macro checks in source code to be MSVC-specific (not needed for GCC-based builds).

* [build] CMakeLists updates:
  Adjust for Windows MinGW builds: now fully compatible with Qt5.5+ and MinGW-w64 toolchain (included in Qt installs);
  Add option to specify path to required libraries/includes (instead of hard-coding `c:\programs`);
  Add package check for Python and use found executable name;
  Remove custom FindSdl package handler in favor of stock (and improved) CMake one (still works with Windows);
  Do not force SIMU_AUDIO and LUA_COMPILER in SIMU builds (leave it up to user);
  Add SIMU_LUA_COMPILER option specifically for SIMU builds (default = ON);

* [build][Windows] Rewrite/Fix Windows Companion `install` target, with two options:
    a) just copy supporting Qt and c++ DLLs to build folder so programs can be quickly be run from there (this is default and similar to the old behavior);
    b) full installation to CMAKE_INSTALL_PREFIX path, including all binaries, supporting DLLs, language files, and OTx utilities.
  Option b) can be selected with new WIN_DO_FULL_INSTALL parameter;
  Also cleans up the Linux install a bit and consolidates the OS X parts;

* [simulator][Windows] Add option to build Windows simulator with system console/terminal enabled (both standalone and when launched from Companion). Mostly useful for debug as it gives output messages much sooner in the startup process than the current debug console. Also helpful because you don't have to open it manually on every launch, and it remembers last window position and size. Possible candidate for a user-selectable runtime option in the future.

* [Windows] Fix MSVC build issues.

* [build] More build fixes:
  Use a customized FindSDL.cmake script again due to bugs and deficiencies in the official version (based on script from CMake v3.7);
  Fixes missing SDL DLL error in NSIS installer);
  Use string for Timers option (checkbox in GUI is confusing);
  Remove an unused variable.

* [simu][Windows] Fix f_getcwd() cutting off too many characters (fixes SD browser interactions).
2016-12-24 00:11:07 +01:00
3djc
d1ef22ee47 3djc/taranis draw number review (#4157)
* Move to Horus style implementation

* TINSIZE handling

* Fix timers

* Add the option to align left on first digit (ie '-' if left of alignment point)

* Compile fix

* Reduce DBL font dot size

* Get ready for PR

* Remove unused function

* Remove leftover declaration

* Performance

* Cosmetics
2016-12-23 23:57:32 +01:00
3djc
bab5fc339e Lua setTelemetryValue() function fixes (#4158)
* Protect subId, prevent endless loop in sensor discovery if more than 7 is passed.
* Documentation updated
* Add additional parameter checks
2016-12-23 19:32:39 +01:00
Max Paperno
5d5dc67605 Add runtime Lua script pre-compilation and general .luac file support (#3318) (#4119)
* [simu] simpgmspace: Populate file date/time/size  in f_stat(); Add f_utime(); Fix f_getcwd() on Windows; Fix f_mkdir() build error on Windows.

* [Lua] Add runtime support for script pre-compilation. Changes behavior with LUA_COMPILER (Re: https://github.com/opentx/opentx/issues/3318):
  All .lua scripts are now compiled and saved to binary "bytecode" file (.luac extension) upon first execution;
  Scripts are also automatically re-compiled if .lua source file is newer than existing .luac file;
  The pre-compiled .luac version is loaded if modification time is newer or equivalent to .lua source file;
  If a .luac version of a script exists, then the .lua version does not need to be present;
  Guards against bytecode compatibility issues (binaries from 64-bit sim will not run on 32-bit sim/radio);
  In SIMU and DEBUG builds, the source .lua file is always preferred in order to preserve full debug info (this is is controlled with new LUA_SCRIPT_LOAD_MODE macro, see lua_api.h);
  GC is now run after each script is loaded.

* [Lua] Add loadScript() API function as alternative to loadfile() from Lua base. This can take advantage of the new OTx script pre-compilation features to reduce memory footprint when loading functions dynamically. This is an interface to luaLoadScriptFileToState(). Fully documented.

* [SD][Lua] Flexible file extensions support:
  Allow for variable length file extensions throughout system (no longer hard-coded in LEN_FILE_EXTENSION);
  Fixes issues with renaming files in SD manager which have file extensions longer than ".ext";
  Expand general support for multiple file extensions per file type in sdListFiles() (eg. .lua and .luac for scripts);
  Lua scripts with .luac extensions can now be selected in custom/telemetry/function menus even if no .lua version exists (duplicates are not shown);
  .luac files can now also be executed from SD file manager UI.

* [Build] Added CMake options for LUA_COMPILER and LUA_SCRIPT_LOAD_MODE.

* Cosmetics.

* [SD][gui] Improve efficiency of some file name handling routines in sdmanager GUI and sdListFiles() by extending getFileExtension() function. Use shared isExtensionMatching() in place of isImageFileExtension(). Only allow executing .luac files when LUA_COMPILER defined (as per request).

* [simpgmspace] Fix f_mkdir() for MSVC build and misc. cleanup.

* [Lua] Use getFileExtension() in script loader to determine file type and check for buffer overflow.
2016-12-17 10:56:40 +01:00
Damjan Adamic
d6d91b5798 Fixes #4129: error in lua documentation of model.setGlobalVariable for flight mode parameter 2016-12-16 19:21:38 +01:00
Bertrand Songis
82d6b96f8b X7D renamed to X7 2016-12-12 07:39:51 +01:00
Damjan Adamic
4233e71954 Lua docs updated 2016-12-11 20:11:56 +01:00
Bertrand Songis
c23ac292b7 [Companion] Horus simulator fixes 2016-12-02 19:56:41 +01:00
Bertrand Songis
90cb917c24 [Horus] Compilation failed when LUA not defined 2016-11-30 07:55:32 +01:00
Damjan Adamic
92553b6589 Projectkk2glider/lua bitmap free (#4075)
* Better memory stats (CLI)

* Bitmap buffer overflow check added

* Lua bitmap improvements

* Proper handling of symbolic links in simulator

* S6R Lua script fixes:
 * added progress screen while loading bitmaps
 * memory for bitmaps is now freed when leaving the script

* S6R Lua script: improved bitmap loading

* * Lua Themes and Widgets moved to separate file and separate Lua state
* Stand-alone, mixer and function scripts now behave the same as on Taranis (restarted after the stand-alone script was run)
* both Lua states are independent: Themes and Widgets is initialized only at the start, the other one is initialized before and after the stand-alone script is run

* Better leak test and report in BitmapBuffer

* Re #3318: Lua compiler enabled in simu and Companion simulator. Usage:
 * any time <xxx>.lua file is about to be loaded and if file <xxx>.lua.src exists:
   * load contents of <xxx>.lua.src
   * compile Lua code
   * save compiled code into <xxx>.lua (effectively overwrites existing file)
 * immediately following the compilation the real file loading is done from <xxx>.lua (which by now contains compiled Lua bytecode)
2016-11-28 23:08:18 +01:00
Bertrand Songis
fb27acf286 Bsongis/x7d companion support (#4028)
[X7D] Companion support added
2016-11-16 12:59:15 +01:00
Bertrand Songis
bfb5e9b8a6 Bsongis/x7d fixes (#4019)
* [X7D] Various fixes

[Others]
- Fixes the Mixer / Inputs MOVE / COPY problem on X9E
- Adds the copy/paste/rename feature in SDCARD menu on X7D/SKY9X
- Merges some duplicated code using the new directory structure
- Cosmetics
2016-11-13 19:06:21 +01:00
Bertrand Songis
d58244ebde Bsongis/lua interpreter added on x7d (#3999)
* [X7D] Lua option added (only standalone scripts)

* [X7D] Compilation fix

* [X7D] Compilation fix

* [X7D] Compilation fix

* [X7D] Compilation fix
2016-11-10 21:41:16 +01:00
Raphael Coeffic
35571ad4d1 [LUA] added docs for telemetry push/pop functions (#4013)
related to #4009
2016-11-10 21:40:37 +01:00
Raphael Coeffic
a315f6702b lua: allow telemetry buffer availability to be queried
When crossfireTelemetryPush() or sportTelemetryPush() is called without arguments, it returns a boolean telling whether or not the output buffer is currently available.

This simplifies the LUA in case SPORT or Crossfire is used as a transport for bigger requests (like MSP/SPORT).
2016-11-09 16:17:54 +01:00
Arne Schwabe
345ea0f3e8 Add constants for LUA telemetry (#3990)
* Add constants for LUA telemetry

This commit added 896 bytes to flash size which is a significant size. An alternative would to just document the values in the lua telemetry function.

Shortening some of the UNIT names (e.g. UNIT_MW instead of UNIT_milliwatts) or shortening UNIT_ to U_ could save a few bytes but the

* #if 0 ... #endif constants

* horus has 2MB flash
2016-11-06 18:29:10 +01:00
Florent Martel
08148e2e33 Lua setTelemetryValue with optional params (#3993) 2016-11-05 13:16:56 +01:00
Bertrand Songis
19789c115c [Lua] popupConfirmation function added 2016-11-05 12:47:48 +01:00
Bertrand Songis
c52e9be3d5 [XFire] New function added to raise a warning popup 2016-11-02 22:13:45 +01:00
Damjan Adamic
5ba14734cb Projectkk2glider/gps misc fixes (#3970)
* Fixed Lua GPS date (year is now kept with four digits)

* * GPS year displayed with two digits
* GPS date/time handling fixes
2016-11-02 13:03:26 +01:00
Florent Martel
450430f22e Provide getRSSI lua method (#3976) 2016-11-02 12:53:07 +01:00
Arne Schwabe
54a9393588 Implement setting sensor values from LUA (#3977)
* Implement setting sensor values from LUA

* Fix name of lua sensors
2016-11-02 12:48:11 +01:00
Damjan Adamic
37ea272bd4 Replaced all 1900 with TM_YEAR_BASE 2016-10-30 11:35:12 +01:00
3djc
4825ffe2f3 Cosmetics 2016-10-23 14:44:07 +02:00
3djc
cff0b33f4b Cosmetics 2016-10-23 14:42:59 +02:00
3djc
4f24088719 Enable permanent scripts on Horus 2016-10-23 14:41:05 +02:00
Damjan Adamic
4513cf89f2 Projectkk2glider/fatfs 0.12 (#3925)
* Re #3815: Disk cache: Write statistic added. Bigger disk cache. Show disk cache misses in CLI.

* Update to the latest FatFS R0.12b (all existing OpenTX patches have been already applied in upstream, only few ff.h modifications needed for simulator)

* Missing file

* SD card manager: do not show parent dir [..] for root directory
2016-10-18 18:14:17 +02:00
Damjan Adamic
e5a5a6319f Fixes for lua_exports generation 2016-10-12 21:20:24 +02:00
3djc
1e4470a007 Revert commit 7c6dd36ee1, which was preventing LEFT even when specified 2016-10-08 12:04:48 +02:00
Damjan Adamic
88e1740422 Fixes #3882: Widget option min an max values were not parsed (resulted in Lua disabled) 2016-10-07 15:18:49 +02:00
3djc
0110578bfe Improve documentation 2016-10-07 11:21:12 +02:00
3djc
7c6dd36ee1 Ensure default for luaDrawNumber is RIGHT for consistency with 2.1.x 2016-10-07 10:54:54 +02:00
Bertrand Songis
298716189e Cosmetics 2016-09-15 19:30:54 +02:00