Commit Graph
934 Commits
Author SHA1 Message Date
Max PapernoandBertrand Songis 3a026a80f2 [Simulator] Add ability to update .otx files. (#4422)
* [SimulatorInterface] Add ability to read eeprom data back from simulator instance.

* [Simulator] If started with .otx file, Simulator will now update (or create) the file upon exit using current radio/model data; Consolidate internal startup and shutdown code for handling various data sources.
2017-02-07 22:15:18 +01:00
Max Paperno bb5c092d4f [build] Add MIXERS_MONITOR option to taranis/CMakeLists.txt (but disable for X7). 2017-02-06 13:49:26 -05:00
PT_DreamerandBertrand Songis fbd881f8d9 Telemetry/AVR/Function renaming
renamed processSerialData to processTelemetryData acording to PR review
2017-02-04 12:08:26 +01:00
PT_DreamerandBertrand Songis b87fddf3e7 Telemetry/Mavlink add 58798bps 2017-02-04 12:08:26 +01:00
PT_DreamerandBertrand Songis 503422d2f7 Cmake fix telemetry option 2017-02-04 12:08:25 +01:00
PT_DreamerandBertrand Songis f83aef4606 Telemetry/AVR/Unify serial driver 2017-02-04 12:03:20 +01:00
Bertrand SongisandGitHub 40ece81de2 X10 (#4377)
[X10] New radio supported!
2017-02-04 10:42:50 +01:00
Andre Bernet c8d0154a9e VC++ compilation 2017-02-02 09:12:59 +01:00
Arne SchwabeandBertrand Songis 8ba5af7049 Use C++11 clock implementation instead implementation platform specific code ourselves (#4358)
* Use C++11 standard chrono API instead of platform specific code (fixes Mac OS X < 10.12)

* Divide by /2 to get 2ms steps
2017-02-01 07:37:29 +01:00
Damjan AdamicandBertrand Songis baa5929671 Fixes #4350: Horus 2pos switches need different switch conditions, fixes SF and SH switches in simulator (#4351) 2017-01-31 07:41:59 +01:00
Damjan AdamicandAndre Bernet a45aafff33 Fixes: Mixers were not calculated in simulator. CoGetOSTime() needed … (#4342)
* Fixes: Mixers were not calculated in simulator. CoGetOSTime() needed implementation.

* Cleanup
2017-01-30 15:33:22 +01:00
Bertrand Songis c36d4d0be5 [X9E] Compilation fix on recent gcc 2017-01-28 19:48:42 +01:00
Andre Bernet cb35a59fc9 [Horus] Backlight driver wouldn't turn backlight on before 15% for prod hardware - no reason for it to be different from beta (#4326) 2017-01-28 19:37:39 +01:00
Max Paperno 6a52458e15 [simu][Simulator] Fix X7 switch position indexes. 2017-01-25 13:10:05 -05:00
Bertrand Songis de49d155c6 [Companion] Compilation fix 2017-01-24 22:06:28 +01:00
Bertrand Songis 8f970fdbbf [9XR-PRO] Warning fixed (ATMEL code) 2017-01-24 18:57:45 +01:00
Bertrand Songis 0d05beae80 CRLF line endings converted to LF 2017-01-24 18:48:28 +01:00
Bertrand Songis 2f7bf7bcbd [9XR-PRO] Warning fixed (ATMEL code) 2017-01-24 18:47:09 +01:00
Damjan AdamicandBertrand Songis b3f4870da7 Refactoring of startup code, mainly dealing with detection of unexpec… (#4275)
* Refactoring of startup code, mainly dealing with detection of unexpected restart/shutdown

* Added g_FATFS_Obj initialization [Horus]

* Fix normal startup

* Use g_eeGeneral.unexpectedShutdown only on radios that have PWRMANAGE defined
Fixes for radios that don't have power control.
Other fixes

* CLI test for new()

* [Horus] Reboot protection reworked to also handle non-WDT events

(cherry picked from commit fe9a52779d062e3f24639479273c906abe6e440b)

Conflicts:
	radio/src/targets/horus/board.h

* Reverting most of the changes

* Cleanup

* Added comment that explains apparent non usage of the wdt_disable() function

* More cleanup

* Missing include

* Compilation fix
2017-01-24 07:52:33 +01:00
Bertrand Songis 89680ddf70 Warning fixed on Manjaro 2017-01-21 21:22:53 +01:00
Damjan AdamicandBertrand Songis 3085ba7d91 Fixes for simulator paths on Windows (#4259) 2017-01-20 21:45:47 +01:00
Max Paperno 2bca437e55 [simu] Fix a few simufatfs.cpp build issues on MinGW and clang. 2017-01-17 06:35:14 -05:00
Bertrand SongisandGitHub 4d4a7471f3 [X7] EEPROM Variant introduced for Companion import (#4245)
* [X7] EEPROM Variant introduced for Companion import
* [X7] Also different FourCC needed if we want to use .otx files
* Allow early version of X7 firmware Eeprom to migrate to new variant (#4246)
* Allow early version of X7 firmware Eeprom to migrate to new variant
2017-01-16 21:52:34 +01:00
Damjan Adamic 19213c8013 Windows build fixes 2017-01-16 15:09:39 +01:00
Arne Schwabe 22a9ec286a Fix compilation on OS X 2017-01-16 12:40:53 +01:00
Damjan AdamicandBertrand Songis f7543e3220 Projectkk2glider/simu tmp sd path (#4231)
* Re #4224: Introduced settingsPath and use std::string for paths in simpgmspace.

* Re #4224: Relevant parts of simpgmspace.cpp moved into simufatfs.cpp and simudisk.cpp

* Removed "/" from "mask_monitor_logsw.png"

* Re #4224: findTrueFileName() refactoring

* Faster gtests (less waiting for eeprom operations to finish)

* Re #4224: Radio settings and models directories now taken from alternate path (if set) [simu]

* Fixes #3322: together with previous changes to the SD browser this prevents the simulator from browsing higher than SD card root path.

* f_chdir() debug traces
2017-01-15 21:53:18 +01:00
Max PapernoandBertrand Songis f4f07d3c0c [build] Add comprehensive firmware size reporting scripts for ARM MCUs. (#4218)
* [build] Add comprehensive firmware size reporting scripts for ARM MCUs.

* [build] Add firmware size reports to commit-tests.sh.

* [build] Set permissions on new scripts.

* [build] Add -Wno-error option to commit-tests.sh.

* [build] Revert firmware size report to using `arm-none-eabi-size` if bash not found (eg. on Windows).

* [git] Add .gitattributes to force line endings on UNIX shell scripts.
2017-01-12 21:32:36 +01:00
Damjan AdamicandBertrand Songis 4fd42e0e3d Fixes #4209: Backlight was always 100% due to wrong test for the unexpected shutdown. (#4220) 2017-01-11 22:36:21 +01:00
Bertrand SongisandGitHub 58382d8aca [Horus] Fixes #4205 (#4210)
[Horus] Fixes #4205
2017-01-09 18:17:19 +01:00
Max PapernoandBertrand Songis 1f788723f9 Build system updates, including -Werror on TravisCI (#4202)
* [TravisCI] Build using avr-gcc 4.9.2 (up from 4.8.2). Relies on https://github.com/opentx/opentx/pull/4169 . Fixes all linker warnings, makes clean build.

* [build] Add ARM/AVR compiler version check/display and a workaround for avr-gcc linker warnings when using WARNINGS_AS_ERRORS=true.

* [TravisCI] Enable -Werror on all build targets (WARNINGS_AS_ERRORS=true).

* [build] CMake script updates:
  Enable WARNINGS_AS_ERRORS option for all targets (not just firmware);
  Consolidate some C/CXX flag settings for firmware target, avoid duplication/redundancy;
  All warning flags are now passed to linker (GCC only);
  Add a "build report" for each main target showing compiler, flags, and defines, with verbosity controlled by new VERBOSE_CMAKELISTS option;
  Added properties to PCB, TRANSLATIONS, and a few other options (makes option selector lists in cmake-gui);
  Add macro for conditionally adding C++11 flag;
  Silence CMake >3.0 warnings about CMP0054 policy not being set;
  Reverts AVR linker -Werror workaround;
  Misc. cleanup/consolidation.

* [build] More CMakeLists updates:
  Silence superfluous "CRT_SECURE" series MSVC warnings;
  Formalize finding pthread lib/dll on MSVC builds and fix some issues with install target script;
  Add property string lists to more options;
  Quotes some paths with possible spaces, & other minor cosmetics.

* [build] firmware/bootloader: Remove remaining CMake default compiler flags and add FIRMWARE_C[XX}_FLAGS[_DEBUG] options for user to specify additional flags. Also move ASM language call to silence CMake warning w/MSVC.

* [build] Workaround bogus "uninitialized" warnings from AVR linker.

* [tests] Add custom printer for less verbose gtest output (use --verbose option to revert to gtest default).

* [build] Use less verbose CMake output for TravisCI builds. Formalize search for gtest code and enable gtests target on WIN32-GCC. Minor language fix.
2017-01-08 09:44:33 +01:00
Bertrand Songis 54742fcad9 Compilation fixes for Arch Linux 2017-01-07 18:42:56 +01:00
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