Commit Graph
903 Commits
Author SHA1 Message Date
Max PapernoandBertrand Songis 5bf7a6c28d Simulator key/mouse mapping improvements (#4175)
* [simulator] Keyboard and mouse control adjustments:
  ~ Make kay/mouse navigation more consistent between radios and ensure keyboard events are always properly detected (eg. after clicking on a control);
  * Fix mouse wheel direction for rotary encoder emulation (fixes https://github.com/opentx/opentx/issues/4160);
  * Fix page up/down buttons on Horus (also #4160);
  ~ Horus rotary encoder can now be controlled with +/- keys (also keeps X/C, otherwise supersedes https://github.com/opentx/opentx/pull/4087 );
  ~ DEL key now another alternative for ESC/BKSP (brings all controls to number pad);
  ~ "=" key now acts same as "+" key (+ requires SHIFT in main row on most US keyboards);
  * Fix controls direction when using mouse wheel over RC switches;
  + Add help text showing keyboard mappings for each radio type (activate on F1 key).

* [simulator] Enable mouse wheel scrolling on radios w/out a rotary encoder (acts as +/- keys on X9D, PU/DN keys on 9X).
2016-12-30 22:36:29 +01:00
Max PapernoandBertrand Songis 1eead1504c Clean up build warnings (#4169)
* [build][OSX] Fix clang warnings.

* [build][OSX] A few more warnings taken care of.

* [build] Fixed yet more build warnings across all platforms.

* [build] Fix final warning due to bad CMake flag.

* [build] Remove unused variables as requested, fix indent.

* Fix output display limit type for 8-bit targets.
2016-12-30 18:16:11 +01:00
Max PapernoandBertrand Songis 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
Arne SchwabeandBertrand Songis 06b0694f03 Schwabe/multi telemetry (#4151)
* Add FY805 protocol

* Fix stray space

* Fix multi sending 120% instead of 100%.

* Implement a custom telemetry for the multi module

The custom telemetry allows the module to tell the telemetry protocol to OpenTX and also allows signaling the status of the Module (e.g. invalid protocol) to OpenTX

This should also close #3979.

* Cosmetics and a few small bugfixes

* remove empty if

* Move status line directly below the mode to be always visible when selecting a protocol

* warn if internal RF module is on

* Replace sprint with small helper function to build on AVR ARM (AR9X, 9XPRO, …)

* TR in wrong order, RF_PROTO_OFF inverted

* Refactor definition of Multimodule protocols to have one central place to define all multi protocol properties

* Also update protocols in companion

* Update multi version number to display as a.b.c.d
2016-12-24 00:04:11 +01:00
Bertrand Songis df835da07d [X7] Typo 2016-12-23 23:51:51 +01:00
Bertrand Songis 7da9aa811a [TARANIS/HORUS] UNEXPECTED_SHUTDOWN() macro improved following @projectkk2glider advice 2016-12-19 23:11:37 +01:00
Bertrand Songis d52f89674c [X7] Pots calibration fix - #4143 2016-12-19 17:52:16 +01:00
Bertrand Songis 880216c544 [X7] Text view fix - #4143 2016-12-19 17:51:22 +01:00
Max PapernoandBertrand Songis a2e37c5dbc Minor build fixes (#4142)
* [480x272] Fix compiler warnings with awkward extern define in layout.h.

* [firmware][misc] Fix build error with undefined SPLASH; Fix 128x64 syntax error in model_setup.cpp; Fix compiler warning on static init in diskio.cpp.

* [480x272] Revert "Fix compiler warnings with awkward extern define in layout.h." and modify lcd::drawSource() to use mixsrc_t for consistency.

This reverts commit d85d994c877a94c1933c6ece806565ca822d0f54.

* [firmware] Cleanup struct init in diskio modules.
2016-12-17 13:48:55 +01:00
Max PapernoandBertrand Songis 143f5ce05e [simu] Fix Windows builds with SD-enabled targets; Centralize SD check condition. Make some compiler checks more specific (eg. !minGW). (#4144) 2016-12-17 13:41:16 +01:00
Max PapernoandBertrand Songis 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
Bertrand Songis 28006d26a9 Cosmetics - will help for #4142 2016-12-17 10:45:56 +01:00
Andre Bernet 1182f80e64 Symlimits should be always on on ARM platforms 2016-12-16 23:58:55 +01:00
3djcandAndre Bernet 822083300e X7 bootloader improvement (#4139) 2016-12-15 18:30:20 +01:00
Andre Bernet 6f325886a1 Fix X7 battery voltage calibration 2016-12-13 12:16:36 +01:00
Bertrand Songis 82d6b96f8b X7D renamed to X7 2016-12-12 07:39:51 +01:00
Damjan Adamic a4d899844e Re #4125: New functions usbStart() and usbStop() to make USB code cleaner 2016-12-11 16:28:23 +01:00
Damjan AdamicandBertrand Songis 29c43d9e33 Projectkk2glider/usb hardening (#4125)
* USB fixes:
 * USB initialized when USB cable is inserted and de-initialized when disconnected (this was the original way, which proved itself unreliable in the past. Now with the new USB library it appears to work without any problems. Used in this way result in safer operation - USB controller is disabled while unconnected)
Works without force device mod
 * Serial: initialization of global variables
 * Reduced RAM usage - data moved to FLASH

* Detailed USB interrupt counters (+ debug print fix)
2016-12-11 10:33:52 +01:00
Andre Bernet 6325c3d40f Compilation fix 2016-12-10 18:53:05 +01:00
Andre Bernet 86b85aabc5 Disable rotary encoder rotation while pressed (will hopefully prevent some of the common unwanted edits when pressing, thanks 3djc for the idea) 2016-12-10 18:44:09 +01:00
Andre Bernet a747d99ec4 VC++ compilation 2016-12-10 11:24:50 +01:00
Andre Bernet f99cba75d1 Enable multiprocessor compilation on windows 2016-12-08 22:31:00 +01:00
Bertrand Songis 8326c867be [X7D] Compilation fix for DEBUG mode 2016-12-07 08:11:27 +01:00
Damjan AdamicandBertrand Songis 5a5cf7cf33 Projectkk2glider/issue 4086 usb and serial (#4097)
* Serial2 changes:
  * stm32 driver moved to common dir.
  * earlier start of driver (Taranis)
  * wait for free buffer time limited
USB changes:
 * Upgrade to ST USB-Host-Device_Lib_V2.2.0 (from V2.1.0) - this fixed a problem with USB serial #4086)
 * other fixes for #4086

* USB-Host-Device_Lib: renamed directory to V2.2.0 (from V2.1.0)
2016-12-06 20:32:30 +01:00
Bertrand Songis 5c83d03134 [X7D/X9D/X9E] Reboot because of bad deinit of Trainer port when in SBUS mode 2016-12-06 20:24:44 +01:00
3djcandDamjan Adamic 01c4ddb8e3 Fix BT compile (#4104) 2016-12-06 11:17:01 +01:00
Bertrand Songis 9a43a6ebb7 [Sky9x] Remarks from @projectkk2glider taken into account 2016-12-03 11:15:40 +01:00
Bertrand SongisandGitHub 9b3cd8eeff [SKY9X] Audio fix - Tested on 9XR-PRO (#4088)
* [SKY9X] Audio fix - Tested on 9XR-PRO

* [X7D] Bootloader fixes
2016-12-02 18:50:23 +01:00
Bertrand Songis 705823a9a6 [X7D] UI fixes 2016-12-02 18:37:53 +01:00
Bertrand Songis bf0bdcb280 [X7D] Cosmetics 2016-12-01 21:38:23 +01:00
Bertrand Songis f244cacfd3 [X7D] Switches order modification 2016-12-01 21:36:56 +01:00
Damjan AdamicandBertrand Songis 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
3djcandBertrand Songis 10914c741c Fix compile with gvars (#4046)
* Fix compile with gvars

* Rework
2016-11-19 20:47:04 +01:00
Thibault JouanandBertrand Songis 908138d81a Fix build on FreeBSD (#4051)
* Fix radio firmwares build under FreeBSD (#4050)

* Fix companion "mountlist" build under FreeBSD (#4049)
2016-11-19 20:46:37 +01:00
Bertrand Songis a083342cda Fixes #3879 2016-11-19 12:35:12 +01:00
Damjan Adamic 4eac2e58a0 Added missing trainer detect pin initialization (Horus) 2016-11-16 21:32:14 +01:00
Bertrand SongisandGitHub fb27acf286 Bsongis/x7d companion support (#4028)
[X7D] Companion support added
2016-11-16 12:59:15 +01:00
Bertrand Songis d2a4ca1d12 Another fix for Mike's bootloader issue 2016-11-15 18:35:33 +01:00
Bertrand Songis 10fe5530f9 Fix analog input order for sky9x (all flavors except REVA) 2016-11-14 21:42:52 +01:00
Arne SchwabeandBertrand Songis 6b57f7afa7 Add FlySky Telemetry (#3997)
Add FlySky Telemetry
2016-11-13 19:09:33 +01:00
Bertrand SongisandGitHub 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
3djcandBertrand Songis dccfb03b67 3djc/add f gets (#3998)
* Introduce f_gets()

* Comment out debug TRACE

* Windows editing protection

* Store strlen result + uncrustify

* Uncrustify was probably too harsh !

* Cosmetics
2016-11-11 22:23:05 +01:00
Damjan AdamicandBertrand Songis 7b2d8b1f0a Bluetooth driver added to Horus, BT_EN_GPIO_PIN was wrong on beta board (#4005)
CLI interface for Bluetooth
2016-11-11 19:56:36 +01:00
Bertrand SongisandGitHub 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
Arne SchwabeandBertrand Songis dfc81cecad Fix Atmel ARM Linker script for gcc 5.4.1 (#3982)
Copy .init and .fni section over from the STM32 linker scripts to make targets like AR9X buildable again. Tested by @sreichholf on a AR9X board
2016-11-02 16:20:49 +01:00
Damjan Adamic 37ea272bd4 Replaced all 1900 with TM_YEAR_BASE 2016-10-30 11:35:12 +01:00
Arne SchwabeandDamjan Adamic 73a7027eb9 [X9D] Allow toggling Haptic option for Taranis X9D (closes #3946) (#3949) 2016-10-23 12:28:18 +02:00
Arne SchwabeandBertrand Songis ad8cd2546e Schwabe/silence register warnings clang (#3940)
* Ignore deprecated register warning for the the STM include files

Ignore the warning with the use of #pragma which is not elegant but otherwise we would have to change the vendor files

* Remove usage of register in C/C++ files.

Modern compilers ignore it anyway and C++11 actually deprecates it. Removing also removes a number of clang warnings about this
2016-10-21 00:09:54 +02:00
Bertrand Songis 71bb6de3dd [X7D] Rotary encoder initialization 2016-10-20 18:54:51 +02:00
Bertrand Songis d2f688c7d9 [X7D] Bootloader fix 2016-10-20 18:54:04 +02:00