Compare commits

...

5320 Commits

Author SHA1 Message Date
3djc cca7180834 Release prep 2017-12-17 10:07:54 +01:00
Bertrand Songis 104ab8c7f3 Typo fix
Because omeone asked to to explain what means LDC today ...
2017-12-16 22:09:38 +01:00
Bertrand Songis e4d273aa0e Update CREDITS.txt 2017-12-16 17:12:32 +01:00
Bertrand Songis df61a1ab4e Update CREDITS.txt 2017-12-16 17:11:01 +01:00
Raphael Coeffic 1dcd8cc419 small fixes for french translation (#5517)
* fixed VKEYS french

fixes #5481

* fix french confirmation popup

fixes #5475
2017-12-16 15:42:26 +01:00
Max Paperno b55b68f191 [Companion] Fix incorrect Settings dialog tab shown by default (closes #5511). 2017-12-15 19:15:14 -05:00
3djc 2c2339e229 Merge pull request #5514 from opentx/bsongis/r9m_navigation_issue
R9M navigation issue (when external module is R9M-EU and internal mod…
2017-12-14 15:35:40 +01:00
Bertrand Songis d7645252bb Power issue with R9M (always max power) (#5513) 2017-12-14 15:34:14 +01:00
3djc dc89bb1dfc Fix SHUTDOWN_CONFIRMATION compile 2017-12-14 07:58:31 +01:00
Bertrand Songis 47383fd053 Update CREDITS.txt 2017-12-13 22:15:32 +01:00
Bertrand Songis f80406c7cb R9M navigation issue (when external module is R9M-EU and internal module is OFF) 2017-12-13 22:13:40 +01:00
3djc 75b382e619 Simply hide unavailable choices (#5509) 2017-12-13 12:51:01 +01:00
Bertrand Songis 566c616abb Update CREDITS.txt 2017-12-13 09:18:47 +01:00
Arne Schwabe 59d2ef8aa1 Rework rssi code a bit (#5507)
* Switch backlight on when displaying a warning.

This is especially visible on the power off RSSI warning. This will also show the other warnings at start with backlight, even when blocklight is set to always off. But my X9D+ will switch its backlight on after boot once even with backlight on, so backlight=off is not so off as it seems.

* Rework power rssi code a bit

- Cleanup shutdown_confirm code
- allow x9d+ to be compiled as power button too to be able to test these things on the x9d+
- Fix shutoff after 10s in warning dialog on x9d
- Make warning dialog always turn on backlight

* Revert CMakeLists.txt
2017-12-12 22:01:32 +01:00
3djc 977262232a Better handle interactions with internal module telemetry (#5506) 2017-12-12 20:32:53 +01:00
Bertrand Songis fa5895de39 Update CREDITS.txt 2017-12-11 19:27:40 +01:00
Sebastien Charpentier f2fb788eac Fixed some typo. (#5499) 2017-12-11 18:12:04 +01:00
Max Paperno c8c3b79f2d [X10] Accept old OTX_FOURCC for X12 as valid when reading data. (#5497) 2017-12-11 13:05:40 +01:00
Bertrand Songis 1c7012726a FourCC added for X10 (last minute change, not tested at all (#5495)
FourCC added for X10
2017-12-10 20:23:59 +01:00
Arne Schwabe e3bbbdcecf Fix compiler warning is Russian tts 2017-12-10 13:00:03 +01:00
Max Paperno 4e8867c819 [Companion] Include global functions and function source types in conversions. 2017-12-10 06:21:17 -05:00
Max Paperno cffb5e767f [Companion] Ensure proper number of model slots after radio data conversion. 2017-12-10 06:10:26 -05:00
Max Paperno 204711d313 [Companion] Fix possible out-of-bounds array access crash. 2017-12-10 06:05:41 -05:00
Max Paperno e43807540e [Companion] Adjust X10/S hardware options to match radio (no L1/L2/JSx/JSy). Fixes #5488 (#5493) 2017-12-10 10:09:24 +01:00
Bertrand Songis eb79d4f774 Update CREDITS.txt 2017-12-10 10:02:05 +01:00
Bertrand Songis e80b63f66f Update CREDITS.txt 2017-12-09 22:09:04 +01:00
Kilrah ada0712e1a French translations 2017-12-09 11:53:35 +01:00
3djc 0a7aece40f Inc SDCard version for RC2 2017-12-09 10:32:26 +01:00
3djc 63bcb4693d Merge pull request #5485 from opentx/LapinFou/Update_Wizard
Updated Wizard
2017-12-09 10:30:46 +01:00
Max Paperno dec630efa0 [X9] Allow LSs 33-64 in main view & fix X9E view of channels 17-32 (#5486)
* [212x64] Main view toggle LS groups 1-32 and 33-64 with +/-/encoder. Closes #5476

* [212x64] Also allow encoder events in channels view for switching channels range (fix for X9E).

* Pad LS range numerals to 2 digits.
2017-12-09 10:20:07 +01:00
Sebastien Charpentier 2a0984408f Updated French Translation (#5484)
* Initial version

* Updated French Translation.
2017-12-09 10:19:06 +01:00
3djc 8e5027dcb2 Better support for R9M EU (#5487)
* POC for X9, requires -DBINDING_OPTIONS=YES

* There are apparently 4 valid choices

* - make BINDING_OPTIONS part of standard code
- adapt R9M EU LBT dialog to choice on bind

* - remove option from Companion
- cosmetics

* Compilation fixes
2017-12-09 10:17:56 +01:00
3djc f489742c9e Fix German compilation 2017-12-09 09:23:54 +01:00
LapinFou bcc6e3c67d Updated Wizard: reduced mixers name to 6 caracters. 2017-12-08 16:53:18 +01:00
3djc 12ad7b0d9c Reorganize ana display for X7 (#5482) 2017-12-08 11:27:37 +01:00
Bertrand Songis a6044a684d Bsongis/r9 m fixes (#5406)
R9M support
2017-12-08 11:26:46 +01:00
Max Paperno 9c27947345 [Companion] Ensure no duplicates in recent files menu (thanks capitaineflam25). Fixes #5336 (#5478) 2017-12-08 09:26:01 +01:00
Max Paperno c96a30aea0 [Companion] Fix GVar min corrupted when upgrading from firmware <= v217 (fixes #5466). (#5477) 2017-12-08 09:25:22 +01:00
Raphael Coeffic 934578118b added support for min/max contrast to eeprom interface and use it (#5473)
Added support for min/max contrast to eeprom interface and use it. Fixes #5468
2017-12-07 22:10:24 +01:00
3djc 81dbebb663 Show multi failsafe to x7 UI (#5471)
* Show multi failsafe to x7 UI

* Cosmetics

* Fix also horus ui and remove useless ifs
2017-12-07 18:49:55 +01:00
Arne Schwabe afd3103506 Update multi protocols (#5461)
* Update multi protocols

* SFHSS also has failsafe implemented

* Show failsafe setting in Companion

* Fix missing protocol names

* Update failsafe format and only show bind when module reports to support it
2017-12-07 18:48:10 +01:00
Raphael Coeffic 8b34c96a2d fixed switch direction in X10 simulator (#5472) 2017-12-07 18:41:49 +01:00
Bertrand Songis ec2c4302cb Update CREDITS.txt 2017-12-07 18:12:07 +01:00
Alexander Novikov 23eeccec9c Ru tts (#5456)
Russian TTS
2017-12-05 20:02:10 +01:00
Bertrand Songis 421f16d0dd Update CREDITS.txt 2017-12-05 18:08:35 +01:00
Bertrand Songis cb73261c60 Update CREDITS.txt 2017-12-04 23:18:10 +01:00
Arne Schwabe 6bc02fd838 Add sane defaults for X10/X12. Also set battery warnings when creating general settings in simulator/companion (#5465) 2017-12-04 21:17:02 +01:00
3djc a7e4b0b062 Post RC1 fixes 2017-12-04 16:53:10 +01:00
3djc 4b75c42218 Fix 2017-12-04 07:50:45 +01:00
3djc 4a187699fa Fix for rc on strech 2017-12-04 07:45:58 +01:00
Bertrand Songis b4710f0f0c Update CREDITS.txt 2017-12-02 21:30:18 +01:00
Arne Schwabe 99c4c4a0ef add cgi build script 2017-12-01 19:51:21 +01:00
Sebastien Charpentier adb9a55719 Fr translation (#5451)
Fr translation.
2017-12-01 19:47:02 +01:00
3djc 078748243d RC auto increment 2017-12-01 19:45:29 +01:00
3djc eaa5c7a7b0 Suffix handling for RC builds 2017-12-01 19:41:59 +01:00
3djc 8dafd4680b Fix 2017-12-01 19:32:12 +01:00
3djc 6c6fc2d7db Workaround 2017-12-01 16:29:34 +01:00
3djc 3eccbc2963 Allow RC type version number ( translated 900 to 999) (#5450)
Allow RC type version number (translated 900 to 999)
2017-12-01 15:59:29 +01:00
3djc d90ac05d6e One settings to rule them all ! (#5449) 2017-12-01 11:54:30 +01:00
Bertrand Songis bdf0983642 Update CREDITS.txt 2017-11-30 23:39:26 +01:00
Neil Horne 16f219d6d3 Various model print fixes (#5433)
* Fixes #5411 print curve
Rename Limits to Outputs for consistency with radio and Companion
Fix gvars printed as values
Print PPM Center and Linear Subtrims

* code formatting
2017-11-30 19:14:02 +01:00
Max Paperno ba1073ace6 [Lua] Allow global functions to play scripts. (#5440) 2017-11-30 19:10:11 +01:00
Sebastien Charpentier 1d5c06ccd6 Fixed #5443 & Updated French translation (#5444)
* Initial version

* Updated French Translation.
Fixed and enhanced X7 Wizard.
2017-11-30 19:03:03 +01:00
Bertrand Songis afeba0d07e Update CREDITS.txt 2017-11-30 18:30:23 +01:00
3djc 4ad2bbdf2c Fix some server side build path 2017-11-30 12:02:53 +01:00
Bertrand Songis 0faee13bc3 A 3rd branch for RC compilation (#5441)
A 3rd branch for RC compilation
2017-11-30 11:51:22 +01:00
3djc e74349e36c Prep work 2017-11-29 18:05:51 +01:00
Bertrand Songis 2c2bbdd912 Update .travis.yml
Stop Sonar PR check
2017-11-29 12:58:13 +01:00
3djc d772cd39ea Allow RC builds 2017-11-29 10:17:28 +01:00
3djc 13f364d96a Add American time format to lua getDateTime() (#5431)
Add American time format to lua getDateTime()
2017-11-29 09:18:50 +01:00
3djc 779b39e237 Use X10 picture during X10 calibration (#5435)
* Use X10 picture during X10 calibration

* Scale down radio picture a little

* last x10 change requires a sd version bump

* Differentiate X10 and X10S
2017-11-29 09:17:33 +01:00
Max Paperno 0f34bf3850 [Companion] Fix crash when closing main window while model/radio editor is open and cursor is in a field which has editingFinished() event handler. 2017-11-27 07:05:18 -05:00
Max Paperno f085f11ea8 [Companion] Fix custom functions availability: set timer was available on AVR and screenshot on non-Taranis. 2017-11-27 06:18:11 -05:00
Kilrah 1c1624b8a6 [companion] Adjust GVAR not possible in global functions (fix #5425) 2017-11-26 23:03:43 +01:00
Max Paperno caa9cd3060 [Companion] Telemetry screen bar range limits were unsigned (but are signed on ARM radios), didn't allow negative values. 2017-11-25 14:56:49 -05:00
Max Paperno b8042c9da1 [Companion] Default RSSI low and critical alarm values were reversed (fixes #5407). 2017-11-25 14:36:46 -05:00
Bertrand Songis 478411bf82 [Sonar] Condition always evaluated to false 2017-11-24 09:27:45 +01:00
Damjan Adamic 49a63d43b3 Fix some bugs found by Sonar (#5392)
* Fix some bugs found by Sonar

* Different syntax for NOSONAR

* Switch Sonar badge to proper branch
2017-11-23 23:28:36 +01:00
Neil Horne 5b4dc4ee08 Fixes 4944 Skeleton input after cancel of add (#5397) 2017-11-23 23:27:26 +01:00
Max Paperno 2cf2603155 [Companion] Fix conversion of switches between X7 and X9/10/12 radios. (#5415)
* [Companion] Fix conversion of switches between X7 and X9/10/12 radios.

* [Companion] Also convert raw sources in ExpoData (inputs) when switching radio types.
2017-11-23 23:26:22 +01:00
3djc 462e5f05e6 Also play model name on model changes (#5416)
Fixes #5414
2017-11-23 23:25:38 +01:00
Max Paperno 3caf83e920 [Companion] Fix crash when editing model with gvars but no GvarsFlightModes (most AVR radios); Always show value label; Update unit/prec/min/max fields for Horus. (#5417) 2017-11-23 23:25:18 +01:00
Bertrand Songis 58df785d70 Revert ... 2017-11-23 14:25:13 +01:00
Bertrand Songis 4c0526ce0c Sonar fix - test
use `[[fallthrough]];` instead of `// no break`
2017-11-23 13:59:03 +01:00
Bertrand Songis 6c2de17229 Update README.md 2017-11-23 13:31:54 +01:00
Bertrand Songis d649420212 Fixes #5402 (#5405) 2017-11-22 21:08:13 +01:00
Sebastien Charpentier 7f53f340ad French Translation (#5409)
* Initial version before translation.

* Updated French translation.
2017-11-22 21:08:00 +01:00
3djc c4c5516315 fix typo 2017-11-22 20:15:39 +01:00
Andre Bernet 8662de39f5 USB modes cleanup (#5396)
* USB modes cleanup

* Forgot a couple

* Exclude joystick code from bootloader
2017-11-22 10:41:19 +01:00
Bertrand Songis f2cf444a64 Update CREDITS.txt 2017-11-22 10:35:49 +01:00
Max Paperno 1634d81e4a Fix brackets in MEGA2560 isBacklightEnabled() macro (caused comparison warning in simpgmspace.cpp). 2017-11-21 13:21:00 -05:00
Max Paperno 9c74cc215c Fix gvars build error on libsimulator for PCBSTD. 2017-11-21 11:54:55 -05:00
Kilrah 659f506e5f Build libsimulator on commit tests instead of simu 2017-11-21 17:48:32 +01:00
Kilrah 7df776e7ed Typo 2017-11-21 17:34:22 +01:00
Kilrah 5762fd61e9 Add GVARs option to commit tests 2017-11-21 17:28:56 +01:00
Andre Bernet 39ea315c97 Fix X10 power loop (fix #5270) (#5391)
* Fix X10 power loop (fix #5270)

* "EMERGENCY MODE" text wasn't visible anymore since d4a00dec3b
2017-11-21 07:25:38 +01:00
3djc 6fc40cb7cb Move to simple menu to prevent the need for dual RTN when scroll wheel is used (#5390) 2017-11-20 19:04:02 +01:00
Kilrah 0658b2a2c4 UI speedup 2017-11-20 12:47:32 +01:00
3djc 6064d3222b Cosmetics on companion radio names 2017-11-20 08:37:01 +01:00
3djc d13fb8918f - X7S option removed (#5388)
- runtime detection of bluetooth chip
2017-11-19 23:49:38 +01:00
Martin Hotar d11618eb3f x10 simulator skin fixes (#5389) 2017-11-19 17:47:08 +01:00
Bertrand Songis 3b4f5e0882 Update README.md 2017-11-19 16:49:26 +01:00
Bertrand Songis 01f5c65eb9 Update README.md 2017-11-19 16:38:10 +01:00
Bertrand Songis 94bdeb6929 Update README.md 2017-11-19 16:37:05 +01:00
Bertrand Songis f36615f1e2 Update README.md 2017-11-19 16:34:00 +01:00
Sonar agent ab4b159d06 Bsongis/sonar (#5382)
Sonar integration
2017-11-19 15:27:49 +01:00
Max Paperno 90e58e4a5f [Simulator] Fix coordinate of X10 skin encoder button. (#5387) 2017-11-19 14:31:23 +01:00
Max Paperno 7759403f3e [Simulator] Quick fix for showing gvars with precision and unit in Radio Outputs view (fixes #5360). (#5384) 2017-11-19 11:21:20 +01:00
Kilrah 18aa849cc7 Trainer detect on X10 is inverted compared to X12 (fix #5378) 2017-11-19 10:54:33 +01:00
Harpalyke a9c25d1935 Adding a button to the log viewer to save the currently selected session to its own CSV log file (#5379) 2017-11-18 12:14:55 +01:00
Andre Bernet 7f4daf3f5b Lua themes with no options wouldn't load anymore (got broken in b4939… (#5351)
* Lua themes with no options wouldn't load anymore (got broken in b493973d7d)

* Keep protection

* Changes according to PR comments
2017-11-18 11:59:59 +01:00
Neil Horne f7828ad4a3 Companion gvar refactor for special functions to match radio (#5361) 2017-11-18 11:25:46 +01:00
Raphael Coeffic 2631ad00bd allow additional cake params to be passed via env variables (#5371)
This allows for non-standard paths and the likes (helps a lot on OSX).
2017-11-18 11:24:16 +01:00
Raphael Coeffic d4a00dec3b small cosmetic colour changes (#5367)
Small cosmetic colour changes

This allows the RSSI/Tx-Battery/Volume display to be displayed with the proper background colour when changing the main theme colour. Also puts the background colour at some use, as I could not see it used anywhere.
2017-11-18 11:23:34 +01:00
Bertrand Songis 46e8474e77 Update CREDITS.txt 2017-11-18 09:24:17 +01:00
Martin Hotar c8dfccc365 X10 simu (#5376)
* X10 simu images

* X10 simu UI
2017-11-16 21:49:39 +01:00
3djc 2e14773f1a Make stat bottom bar text more V centered 2017-11-16 10:35:16 +01:00
Bertrand Songis 968fbd4c60 Update CREDITS.txt 2017-11-16 07:43:58 +01:00
Arne Schwabe 37b7b25208 Use IS_PXX instead of IS_XJT for failsafe, closes #5373 2017-11-15 22:19:47 +01:00
Bertrand Songis a2c6d60782 Update CREDITS.txt 2017-11-15 19:21:23 +01:00
Kilrah 808e44388a Update AND switch list on paste (fix #5365) 2017-11-15 10:22:10 +01:00
Kilrah f8ff44c78f No copy/paste on SF/LS (fix #5366) 2017-11-15 10:01:39 +01:00
3djc 7e29932072 Shift 3rd column a bit right (#5364) 2017-11-15 09:52:09 +01:00
Bertrand Songis c1b0e9fea3 Update CREDITS.txt 2017-11-14 18:17:21 +01:00
3djc df91e93034 Tiny cosmetic 2017-11-14 10:37:02 +01:00
Harpalyke fd265eccbb Adding regex check for crossfire gps format when reading logs in tele… (#5347)
* Adding regex check for crossfire gps format when reading logs in telemetry simulator

Adding a regex check when the telemetry simulator parses gps cords from a log file to see if the if the cords are in the crossfire gps log format. 
The GPS telemetry sensor from crossfire logs the coordinates as latitude with a precision of six decimal places followed by a space and then longitude also to six decimal places. e.g. "53.279969 -7.701416"
When the cords are already in this format their is no need to call convertDegMin on the values

* Fixing code styling

* Updating code style

* Updating code style

* Checking the gps coordinates format once before the full file is processed instead of evaluating the regex for every line of the file.

Optimize regex by removing surrounding parenthesis
2017-11-13 22:21:22 +01:00
Bertrand Songis 57d53abd6e Fixes #5300 (#5353) 2017-11-13 22:18:07 +01:00
Sebastien Charpentier c62e0cc7d1 Updated French Translation (#5356)
* Starting point before translation.

* Updated French translation.
2017-11-13 22:17:48 +01:00
Bertrand Songis e5b2b8ef64 Bsongis/issue 5311 (#5354)
Fixes #5311
2017-11-13 22:17:13 +01:00
Neil Horne e6542a78d0 Fix displayed file path for Windows OS (#5355) 2017-11-13 15:30:15 +01:00
Arne Schwabe 084680b5fd Fix custom string in multiprotocols companion 2017-11-13 11:11:41 +01:00
3djc bdfcc5d181 Improve commit tests 2017-11-13 10:55:19 +01:00
Arne Schwabe 2d6962d937 Also fix compiler warning on sky9x 2017-11-13 10:52:33 +01:00
Arne Schwabe d8210b832f Fix multi build on Sky9X 2017-11-13 10:42:25 +01:00
Kilrah ac22e33cec Missing def 2017-11-13 09:41:55 +01:00
Kilrah 7f05df2627 Only apply theme option changes when exiting edit mode for color type options (fix #3799) 2017-11-13 00:17:35 +01:00
Bertrand Songis 9d7dab724b Bsongis/issue 5338 (#5344)
Fixes #5338
2017-11-12 14:15:19 +01:00
3djc b8b67ba864 Push model name audio after hello (#5350) 2017-11-12 14:07:26 +01:00
Bertrand Songis f6309138f6 Fixes #5312 (#5345) 2017-11-11 22:20:05 +01:00
Sebastien Charpentier 7ca3f60999 Updated Wizard for X9 radios. (#4910) 2017-11-11 09:46:38 +01:00
Damjan Adamic f0f3e35bf6 Lua memory (de)allocation tracer: (#5191)
* Lua memory (de)allocation tracer:

Usage:
 * turn on: `cmake -DLUA=YES -DLUA_ALLOCATOR_TRACER=YES -DDEBUG=YES -DNANO=NO`
 * get debug output and make plot data: `./simu 2>&1 | grep "^LT" | ../radio/util/lua_trace2plot.py > data.plot`
 * plot: `gnuplot  -e 'set xtics rotate;  plot "data.plot" using 2:xtic(1) ; pause mouse close'`

* Changes based on Bertrand comments
2017-11-11 09:41:05 +01:00
3djc c30ff28f85 Replace S6R text by SxR since it handles both S6R and S8R 2017-11-11 09:38:10 +01:00
Bertrand Songis 5a121bfcb8 License dates changed and contents converted to UTF-8 2017-11-11 09:33:14 +01:00
Arne Schwabe 613b2edf49 Multi improvements (#5322)
* implementing syncing with multi

* Send config command

* Implement setting failsafe for multimodule

* Fix

* Fix last bugs. Multi sync now working as expected.

* Add eww multi protocol
2017-11-11 08:57:04 +01:00
Neil Horne 8e9d370770 Companion global variables refactor (#5328)
* Companion Global Variables refactor to support changes to radio in 2.2

* Update model print for global variables refactor

* Check and if necessary update all flight modes gvar after updating min or max

* Fix loop limit

* Add clear single gvar context menu
Add gvar popup values to model print
Minor fixes
2017-11-11 08:56:30 +01:00
Damjan Adamic 69afa9d0f8 Fixes #5302: added zesty (Ubuntu 17.04) and artful (Ubuntu 17.10) and removed yakkety (Ubuntu 16.10) 2017-11-10 19:23:01 +01:00
Damjan Adamic 955d5775cb Add Lua getUsage() function that returns percent of already used up i… (#5313)
* Add Lua getUsage() function that returns percent of already used up instructions in current script execution cycle. It can be used to avoid script being killed when doing long lasting tasks (like telemetry logs loading and parsing)

* Compilation fixes

* Doc fix

* Disable Lua script instructions limit in DEBUG mode
2017-11-10 17:23:37 +01:00
Damjan Adamic 6c7e4b5597 Debug Timers: add 10ms period measurement, delete unused timer debugT… (#5319)
* Debug Timers: add 10ms period measurement, delete unused timer debugTimerPerMainPeriod

* Typo in drawSplash() if MENUS_LOCK == 1
2017-11-10 17:23:09 +01:00
3djc ff8f4a3a92 Reassigns stats icon to better match actual screen content (#5339) 2017-11-10 17:22:32 +01:00
Arne Schwabe 2e248e7bc0 Do double pythrogoras if altitude is involved (fixes #5280) (#5341) 2017-11-10 16:41:52 +01:00
Arne Schwabe f9d5201b0c Only set telemetry to streaming when receiving rssi from RX on crossfire (closes #5340) 2017-11-10 10:48:57 +01:00
Kilrah baa3938f06 [companion] Edit checklist always available 2017-11-10 10:16:36 +01:00
Kilrah 12a0d6d5bc [companion] LCD type was not read (fix #5337) 2017-11-10 10:12:27 +01:00
Bertrand Songis 0f8c868d6b Update CREDITS.txt 2017-11-10 07:20:31 +01:00
Kilrah 761b0e0cfa Simu compilation fix 2017-11-08 22:01:35 +01:00
Neil Horne 5bb759a0e7 Replace spaces in model name with underscores for file name (#5335) 2017-11-08 21:33:12 +01:00
Kilrah 1ef1109b5f Add some saves (related to #5137) 2017-11-08 13:57:56 +01:00
Kilrah 36789bff3f 128x64 telemetry page was out of sync (fix #5166) 2017-11-08 13:49:42 +01:00
Kilrah d8f1ad3a82 Flight mode 0 value of a Global Variable should not be able to refer to another FM (fix #5310) 2017-11-08 13:30:28 +01:00
Bertrand Songis f197aa52ac Update CREDITS.txt 2017-11-08 13:06:29 +01:00
Kilrah fdec738485 Prevent lockup on boot in case of 32kHz oscillator failure (fix #5294) 2017-11-08 13:02:32 +01:00
Kilrah e2858dbb03 [companion] Some fields missing for Sky9x (fix #5326) 2017-11-08 12:55:31 +01:00
3djc 8d75f9c991 Merge pull request #5318 from opentx/3djc/more-datetime-fixes
Fix datetime
2017-11-07 08:30:23 +01:00
Bertrand Songis 8c6b5717f7 Update CREDITS.txt 2017-11-05 19:25:22 +01:00
Kilrah 63536b9819 Cosmetics 2017-11-04 10:15:56 +01:00
Kilrah 8780339c72 Crossfire baudrate selection for X10 (fix #5315) 2017-11-04 10:14:22 +01:00
Kilrah 90542b189c Cosmetics 2017-11-04 10:14:22 +01:00
Kilrah 83766bc3f6 Simu Debug compile fix 2017-11-04 10:14:22 +01:00
Bertrand Songis 6a61a911de Update CREDITS.txt 2017-11-02 17:45:15 +01:00
3djc 7b074305af Instead off dealing with individual exception, rule out all 'internal' sensors 2017-11-01 09:05:46 +01:00
RCdiy 973716fbfa Companion Build Option Lua Toot Tip change wording from "model" to "custom" (#5277)
* Companion Build Option Lua Toot Tip Change model to custom
2017-10-31 21:56:54 +01:00
Damjan Adamic b153cdec93 Fixes #5266: Lua docs updated: radio type has different names for the various radios in 2.2.0 2017-10-31 18:04:21 +01:00
Bertrand Songis c63ad89a8c Update CREDITS.txt 2017-10-29 22:42:53 +01:00
3djc 9a95b47c96 Prevent negative values in DMAFillRect (#5308) 2017-10-29 16:28:51 +01:00
Kilrah b4cf7315a5 X10 sport connector support 2017-10-29 16:22:31 +01:00
Kilrah d775a09095 Fix X10 backlight (min level of 46 to prevent display interference, must be hardware problem, FrOS uses same lower limit) 2017-10-29 16:02:51 +01:00
Arne Schwabe 318d77e863 Show telemetry UART errors in statistics debug page (#5185)
* Show telemetry errors in Debug statistics

This introduces a second debug page on X7 and X9 platform since the original page is almost full.
Also fix the X7 menu navigation to be able to go back and forth

* Fix compile error on platforms without key_page

* avr-gcc bails on missing eolf

* Fix navigation

* Just keep pushing ....

* compile fixes of 9x and use chainMenu

* Fixes

* Align x9 behavior to x7 (for once !)

* Allow total timer reset on both long menu and long enter

* Improve 9x handling
2017-10-29 09:06:17 +01:00
Florent Martel 1962336316 Add access to vBatWarn from luaGetGeneralSettings() (#5293) 2017-10-29 08:38:50 +01:00
3djc 3fed1aa157 Fix timer display (is DATETIME but no date available) (#5299) 2017-10-29 08:36:30 +01:00
Bertrand Songis 176845047d Update CREDITS.txt 2017-10-27 08:06:13 +02:00
Bertrand Songis 62662159e1 Update CREDITS.txt 2017-10-26 22:14:36 +02:00
Bertrand Songis c932090ed5 Update CREDITS.txt 2017-10-26 21:28:57 +02:00
Bertrand Songis 24b8ead576 Update CREDITS.txt 2017-10-25 22:20:12 +02:00
Bertrand Songis cb2e9be6cd Update CREDITS.txt 2017-10-25 19:25:32 +02:00
Bertrand Songis 6ff301bf27 Update CREDITS.txt 2017-10-15 21:22:07 +02:00
3djc fe3a7babcc Fix NL compîle with heli mode 2017-10-14 11:19:20 +02:00
Bertrand Songis f611942f61 Update CREDITS.txt 2017-10-11 16:36:22 +02:00
Bertrand Songis 979e93c7be Update CREDITS.txt 2017-10-11 09:45:10 +02:00
Bertrand Songis 83383df4dd Update CREDITS.txt 2017-10-09 18:00:29 +02:00
Kilrah a54c0a435e Remove unused files 2017-10-09 13:43:31 +02:00
Kilrah 3d8f1c4780 Fix gtests 2017-10-09 10:20:27 +02:00
Kilrah 64a4f10ec7 X10 simu upright and working 2017-10-09 09:56:37 +02:00
Kilrah 380adaad3b Fix X10 simu crash 2017-10-09 09:41:18 +02:00
Kilrah 69118a96be Python not just for Windows... 2017-10-08 21:14:02 +02:00
Kilrah 6a14fe728e Bundle OpenSSL libs in Windows installer (fix #5217) and image format plugins the app loads 2017-10-08 20:06:18 +02:00
Bertrand Songis b58be017f4 Update CREDITS.txt 2017-10-07 09:17:58 +02:00
Bertrand Songis 408a44110f Update CREDITS.txt 2017-10-03 20:05:57 +02:00
3djc aa527fc6bd GPS datetime display fixes (#5254)
* Fix x9

* Fix x7

* Apparently - is standard separator for dates

* Consistency
2017-10-03 07:45:40 +02:00
Bertrand Songis cbd824eb10 [X10S] PWM sticks support - with autodetection (#5251)
[X10S] PWM sticks support - with autodetection
2017-10-01 09:07:07 +02:00
Bertrand Songis a1c0aafc16 Update CREDITS.txt 2017-09-30 19:49:20 +02:00
Arne Schwabe fd782538d8 Implement SBUS output for external module bay. (#5225)
* Implement SBUS output for external module bay.

* Bugfixes and Companion support
2017-09-29 18:29:39 +02:00
Arne Schwabe 710e6ddc4c Also use https for nightlies 2017-09-28 15:05:57 +02:00
Sebastien Charpentier 3ce754137d French translation (#5244)
* Comparison point before translation.

* Updated French translation.

* Match radio strings
2017-09-28 11:29:18 +02:00
3djc f4ea92d1fc move to https (#5247) 2017-09-28 11:25:09 +02:00
Kilrah 24917a9952 Adjust SD card download folder for firmware nightlies 2017-09-28 08:28:25 +02:00
Bertrand Songis f60ea00fb8 Update CREDITS.txt 2017-09-26 17:57:26 +02:00
Bertrand Songis 851da15bc7 Update CREDITS.txt 2017-09-25 18:08:28 +02:00
Kilrah f6e7b4e291 Hide F000 sensor from GRX8 2017-09-25 09:53:45 +02:00
Arne Schwabe a502a99768 Fix logic mistake I made earlier (closes #5229) 2017-09-23 19:17:51 +02:00
Bertrand Songis 39386676d8 External module on X10 now tested OK 2017-09-21 23:15:50 +02:00
Bertrand Songis f48d6bba35 Update CREDITS.txt 2017-09-21 16:47:35 +02:00
Bertrand Songis fcbb23af92 Update CREDITS.txt 2017-09-21 07:36:23 +02:00
Bertrand Songis 7f7dfeab12 Compilation fix 2017-09-20 21:09:49 +02:00
Bertrand Songis 450ba42558 External module not working on X10 2017-09-20 09:16:11 +02:00
Bertrand Songis 76f27ae452 Update CREDITS.txt 2017-09-20 07:18:31 +02:00
Kilrah 6bb7ba3795 Fix typo 2017-09-18 18:02:00 +02:00
Bertrand Songis 509df44c4f X10 fixes (#5221)
1. BackLight < 42 was bad
2. SWB D E F direction inverted
3. Wrong battery voltage
2017-09-17 21:40:51 +02:00
Roderick Taylor 9cb4b782e1 Fix FrSky D cable telementry for 9XR PRO and DJT module. (#5220)
* Fix FrSky D cable telementry for 9XR PRO and DJT module.

* Revert a breaking change.
2017-09-17 19:10:45 +02:00
3djc 6f3577c9a5 x9e with horus bt module (#5214)
* Basics to allow Horus BT module on X9E

* wip

* Temporary hack to prevent X9E to enter reset loop

* The wait game starts :)

* Temporary compil fixes

* More sensibles defines
2017-09-16 16:08:21 +02:00
Bertrand Songis 06f5e408ee Update CREDITS.txt 2017-09-16 12:03:25 +02:00
Arne Schwabe 0402c37a07 Shorten a too long string in German translation 2017-09-14 18:13:01 +02:00
3djc 7ae9bfef0f Remove Visual C++ warning 2017-09-14 08:15:54 +02:00
3djc 1bfcdb5dfa Fix compilation server 2017-09-13 20:23:44 +02:00
3djc 2983cfc531 Merge pull request #5212 from opentx/bsongis/nightly_warning_setup
Nightly build enabled when suffix starts with 'N'
2017-09-13 19:02:41 +02:00
Bertrand Songis d80861db37 Nightly build enabled when suffix starts with 'N' 2017-09-13 18:43:01 +02:00
Arne Schwabe 23ceb830b3 Translate nightly warning (#5211)
* Translate nightly warning

* Oops, move define to right place
2017-09-13 15:44:01 +02:00
Arne Schwabe 4c5f0ca83c Let other python Qt scripts also fallback to Qt5 2017-09-13 14:18:17 +02:00
Bertrand Songis 1b370076b6 Update CREDITS.txt 2017-09-13 13:12:49 +02:00
3djc 9415b3086d More nightly prep 2017-09-12 19:55:42 +02:00
3djc e7fcc71d8e Prep for nightly 2017-09-12 19:14:41 +02:00
Arne Schwabe 7e21e13ec9 Disallow writing running firmware (#5208)
Overwriting running firmware leads to crash and incompletely written firmware
2017-09-12 18:49:40 +02:00
Arne Schwabe 360a521f11 Improve German translations (#5207)
- No different menu heading than other languages (also in NL)
- Fix a few strings
- also don't shorten two strings in English where we have the space
2017-09-12 18:49:01 +02:00
3djc 53d4547918 x7 rssi indicator (#5205)
Draw horizontal bars next to Batt (only for FRSKY Telem)
2017-09-12 18:48:37 +02:00
Kilrah 2d0c14c3c0 String lengths 2017-09-12 08:24:46 +02:00
Bertrand Songis b9fd1b01d1 Update CREDITS.txt 2017-09-12 07:32:07 +02:00
Arne Schwabe 45213124dd Remove unused CASE_PWM_BACKLIGHT entires
212x64 does not even have the ITEM_BACKLIGHT entries for it
2017-09-11 22:52:28 +02:00
Kilrah 76371d6087 Cosmetics 2017-09-11 22:47:24 +02:00
Kilrah 37c0589a27 Menu navigation was broken by USB setting addition 2017-09-11 22:46:22 +02:00
3djc da71f4cbbc Make Horus widgets 'shadow' effect an option (#5203)
* Add shadows to c++ widgets

* Add BOOL zone option to Horus LUA

* LUA widgets too
2017-09-11 07:34:49 +02:00
Arne Schwabe 093034f9e7 German translations for USB 2017-09-11 03:30:17 +02:00
Kilrah a7b9b30108 Fix DEBUG=YES build for sky9x family (better fix would be to implement rtcGetTime on the platform) 2017-09-10 22:36:55 +02:00
Kilrah 6a2a730cdc X7 simu compilation 2017-09-10 21:48:33 +02:00
Kilrah 97b777ae4f String cosmetics 2017-09-10 21:44:23 +02:00
Kilrah 09f257026e Disable Serial USB choice if !DEBUG (no function currently) 2017-09-10 21:23:36 +02:00
Kilrah e59afb6ec1 Enum was misaligned with UI text... 2017-09-10 20:50:05 +02:00
Arne Schwabe b7acee5723 Allow USB mode selection on USB connect (#5193)
Allow all USB modes to be compiled in at the same time
2017-09-10 17:28:08 +02:00
3djc 2910488a30 Add nightly warning (#5202)
Nightly build Warning
2017-09-10 17:25:04 +02:00
3djc 67817918f4 Add SQT5 that was missing in 2.2 (#5179)
Add SQT5 that was missing in 2.2
2017-09-10 17:17:23 +02:00
sirPerna 390342af78 Crossfire baudrate selection for X7 support ( fixes #4922 ) (#5194)
* Crossfire baudrate selection for X7 support ( fixes #4922 )

* Moved baurate selection to general settings

* renamed mavbaud to telemetryBaudrate for ARM targets
translation added

* typo fixed
2017-09-10 17:10:47 +02:00
3djc 653273f82e X7 and X9E have been left out ! (#5199) 2017-09-09 15:42:39 +02:00
3djc b33a88a69f Do not display blank space when switch is not available (#5183) 2017-09-09 15:11:06 +02:00
NiklasVoigt 7cd7869d6a Taranis Q X7 optimized wizard (#5198)
* Redesigned Wizard for the X7

Check this out:
https://www.youtube.com/watch?v=86H1YKcVyB4

* Removed the developers name

* Rendering issue fix

* Removed bottom bar & removed Heli

uncommented Heli for easier implementing in the future
2017-09-09 13:47:05 +02:00
3djc 9ae429e03b Shouldn't copyright be there too ? (#5200) 2017-09-09 13:43:38 +02:00
Bertrand Songis 0053412f87 Update CREDITS.txt 2017-09-06 18:11:01 +02:00
Arne Schwabe 63baa76cba Remove dead code (from pre 2.1 telemetry) 2017-09-05 18:58:36 +02:00
Bertrand Songis bd6bd4deeb Bluetooth fixes (reconnection issues, telemetry mode not working) (#5186)
Bluetooth fixes (reconnection issues, telemetry mode not working)
2017-09-05 18:21:29 +02:00
Arne Schwabe 5b5c88fb4e Switch to nano version of newlib (#5180)
* Switch to nano version of newlib

save about 50k of flash and 2k of RAM on Taranis

* Make nano optional, default=off and use bin_alloc for it
2017-09-01 18:37:30 +02:00
3djc fdacf83ad0 Improve pilotPosition when internal GPS is available (#5187)
* Update pilotposition when internal GPS does have a fix *** UNTESTED YET ***

* Cosmetics, tested OK
2017-08-31 19:11:44 +02:00
3djc 8e04a6e2e4 Horus : improve add widgets (#5189)
* Go automatically to widget setup after adding a widget

* Cosmetics
2017-08-31 19:11:04 +02:00
IdefixRC 5791645877 Crossfire LUA for Horus (#5190)
* First iteration of the Horus Crossfire LUA

Under development.
- crossfire.lua working and tested with micro TX and micro RX
- devices.lua basic layout working. Work in process:
     - getLastPos which is not available in Horus hard-coded currently. needs to be adjusted
     - Taranis page method replaced by Horus single page approach with 22 lines in 2 columns. Still throws an error message and unclear if 22 lines of settings are enough for all devices and whether different approach will work better.
    - Save menu not tested.

* Working script (tested with MicroTX)

- updated getlastpos and concenated strings instead
- went back to single column and implemented scrolling
- still need to figure out speed (fields are sometimes populated very slowly)
2017-08-31 19:10:37 +02:00
Damjan Adamic 6cc40c65b2 Lua docs update (CrossfireTelemetryPush and crossfireTelemetryPop and some small spelling fixes) 2017-08-27 16:45:56 +02:00
Bertrand Songis 1bb8aab866 Update CREDITS.txt 2017-08-25 08:22:32 +02:00
Bertrand Songis 13b566746d Update CREDITS.txt 2017-08-24 21:00:49 +02:00
Bertrand Songis 4b5bd10aa2 Update CREDITS.txt 2017-08-23 16:17:15 +02:00
3djc 251e83b1a4 Looks like FRSKY_STICKS option was missing in 2.2 (#5177) 2017-08-22 13:07:21 +02:00
OhmEye d4f108a849 Add TBS Crossfire lua scripts or X7 SDCard (#5176)
I edited the scripts for X9D to change the input events for the rotary wheel and the drawing coordinates for the smaller LCD. Tested by a handful of volunteers and myself on X7's with working CRSF.
2017-08-22 13:07:00 +02:00
Bertrand Songis 19219bf8f8 Update CREDITS.txt 2017-08-22 02:37:54 -07:00
3djc 74db7dafa7 Merge pull request #5173 from opentx/3djc/build-fixes
Fix currently known compile errors
2017-08-22 08:28:31 +02:00
Arne Schwabe 9bc8fc493d Fix German multi protocol string 2017-08-21 20:59:03 +02:00
Arne Schwabe abe857225a Fix assert in multiprotocol 2017-08-20 19:30:51 +02:00
3djc 9c46b9afa0 Fix currently know compile errors 2017-08-20 16:55:25 +02:00
Bertrand Songis a41d2af10d Update CREDITS.txt 2017-08-20 07:06:33 -07:00
Bertrand Songis 42cbc56880 Comment added 2017-08-18 18:02:22 +02:00
Kilrah 9ba843d82f Enable X10 2017-08-18 14:50:44 +02:00
3djc 81589d22f8 B&W LCD receiver ID improvement (#5018)
* - Use @schwabe int/ext matching
- Display model name where the receiver in currently used

* French colom doesn't seem to be standard (wonder why :D)

* Implement showing multiple names

* Another way

* Improvement suggested by @schwabe (thx m8!)

* let's say it's a typo ..

* By unanimous vote of participants

* Updates based on Bertrtand's comments

* Colon right this time ?

* Cosmetics
2017-08-16 23:27:04 -07:00
Bertrand Songis 576be96935 Update CREDITS.txt 2017-08-16 11:59:47 -07:00
Bertrand Songis f487cdd581 Update CREDITS.txt 2017-08-16 11:01:03 -07:00
Sebastien Charpentier bf177d6cce French translation update (#5163)
* Initial version.

* French translation.
2017-08-16 10:08:19 -07:00
Arne Schwabe e16b48db30 Reduce RF_PROTO_OFF logic, disable R9M Sport out when internal telemetry is on (#5159)
* Remove most of the special logic associated with RF_PROTO_OFF

This simplifies code in many areas since the internal module does not require special handling and also fixes a few bugs with INTERNAL_PPM

* Disable R9M sport option if internal module has telemetry

* Fix X12s build

* Use macros instead of direct comparisions

* Fix sport bit sent the wrong way. Rename S.port out to Telemetry

* Compile fix
2017-08-15 21:47:45 -07:00
Arne Schwabe 8e84724c62 Implement R9M Companion support (#5157)
also implement (like with multi) own pxx struct for pxx options
2017-08-15 21:45:15 -07:00
3djc 2f7694dee7 3djc/horus chan mon fix (#5152)
* Fixes : #5124

* Adjust display accordingly
2017-08-15 21:44:45 -07:00
3djc 019e2aee1b Merge pull request #5161 from opentx/3djc/Timer-name-handling
Timer name handling
2017-08-15 17:27:16 +02:00
3djc 8cb7031cf6 Cosmetics based on Bertrand's commments 2017-08-15 17:02:51 +02:00
Damjan Adamic a167e9f751 Fixes #5055: infinite loop in lcdDrawFilledRect() when h parameter is bigger than 127. Similar fixes in other places. (#5058) 2017-08-15 06:57:29 -07:00
Arne Schwabe 824f39330f Reorder mm_protocol struct and remove pack to silence compiler warnings (#5158)
Since chance costs 48 byte of flash space
2017-08-15 06:51:21 -07:00
3djc bf600140d3 480x272 2017-08-15 10:55:15 +02:00
3djc 871302a1b1 128x64 and 212x64 2017-08-15 10:49:59 +02:00
3djc 5a8a074f0c Neutralise BT on X9E, unless DEBUG is defined (#5148)
* Neutralise BT on X9E, unless DEBUG is defined

* Adjust to Bertrand comments
2017-08-14 22:03:26 -07:00
Bertrand Songis 0e139fd0d6 X10 HAL update
- ADC OK
2017-08-12 16:15:40 +02:00
Bertrand Songis de00d223c4 X10 HAL update
- LCD OK
 - Backlight OK
 - Sound OK
 - Keys OK
 - Haptic OK

 - ADC KO
2017-08-12 10:48:38 +02:00
Bertrand Songis 8d8fef23c9 Bsongis/x7 bluetooth (#5068)
* Trainer Bluetooth support added
X7S board added (X7 has no bluetooth while X7S has)
X10 HAL updated

* Bluetooth Telemetry

* En fix
Add all languages

* Temporary test for @bsongis

* Missing translations
2017-08-12 00:49:54 +02:00
Arne Schwabe 51be7b000e Add support for R9M module (#5101)
* Implement R9M protocol according to PXX spec 1.7

Some of the things here are guesswork as I don’t have a R9M at hand. Also Companion support for the extra R9M options is not implemented yet.

* Fix build errors
2017-08-12 00:27:23 +02:00
Arne Schwabe 87295776ff Fix issue #4961 (#5009)
* Fix issue #4961

Fix yet another reference to HORUS_OR_TARANIS that should be IS_ARM
Also rename C9X function to export/import to be inline with the rest

* Another two IS_ARM/HORUS_TARANIS mixups

* Fix condition

* Simplify/fix two if statements

* Really fix if statement
2017-08-12 00:26:28 +02:00
Andre Bernet b3e9d8d97d Improve settings migration and management (#5107)
* Settings can now be optionally removed during uninstall (didn't find how to translate)

* Settings import from previous versions now optional

* Hopefully cleaner implementation

* This crashes (already on 2.2)

* Translation

* Remove broken settings import from companion9x

* Fixes for MainWindow
2017-08-11 17:42:30 +02:00
Bertrand Songis 96f1a16744 Avoid repeat i.e. Telemetry Lost / Trainer Lost until prompts fifo is… (#5121)
* Avoid repeat i.e. Telemetry Lost / Trainer Lost until prompts fifo is full ...

* Rename functions

* Belt and braces
2017-08-09 11:59:13 +02:00
Kilrah 7d386e7821 Merge branch 'bsongis/companion_sensor_switches' into 2.2 2017-08-09 11:37:56 +02:00
Bertrand Songis ee258b8ec8 Curves buttons broken on Linux 2017-08-09 11:02:57 +02:00
Bertrand Songis 0641adc5f4 Segfault fixed 2017-08-09 10:47:01 +02:00
Bertrand Songis 045294d53b Unify element names 2017-08-09 10:29:33 +02:00
Bertrand Songis 169df7130b Update CREDITS.txt 2017-08-08 20:39:47 +02:00
Bertrand Songis 49e252337e Sensors names changed to "SensorX:YYYY" 2017-08-08 20:38:29 +02:00
Bertrand Songis 7906107d6c Update CREDITS.txt 2017-08-06 22:15:35 +02:00
Bertrand Songis e3d881be76 Update CREDITS.txt 2017-08-05 20:46:15 +02:00
Arne Schwabe bd968bd60f Bundle and use avrdude.conf on OS X (closes #5050) (#5127) 2017-08-04 12:19:27 +02:00
Bertrand Songis 541aa459cf Lua drawBitmap on X7 2017-08-04 12:08:10 +02:00
Kilrah c82c7ee5db No serial debug on X7 2017-08-04 11:22:42 +02:00
Bertrand Songis 76e72c8a86 RssiPowerOff alarm enabled by default (#5129)
* RssiPowerOff alarm enabled by default
+ Companion support

* Fix continuously toggling RSSI on shutdown setting on X9
2017-08-04 11:01:52 +02:00
Bertrand Songis 6304f0daf6 Sleep bitmap on X7 (#5125) 2017-08-04 10:41:36 +02:00
Bertrand Songis e00efb1566 Cosmetics 2017-08-03 21:50:26 +02:00
Bertrand Songis 258347fbd1 Warning fix 2017-08-01 17:04:20 +02:00
Bertrand Songis 7434e330c8 3djc/rssi poweroff safety (#5126)
Shutdown RSSI Alert
2017-08-01 14:13:25 +02:00
Bertrand Songis b55070f939 [Companion] Sensor switches support added
+ some refactoring to hide irrelevant switches in the combobox

More refactoring to come:
 - have only one SwitchModel per model instead of one per tab
 - only do the update work if something has changed
2017-07-30 12:12:27 +02:00
Arne Schwabe a7524ba74d Fix clang warnings (#4988)
* Fix clang warnings

- signed char on AVR vs unsigned char on ARM
- use references instead of points in calculation (same code size)
- Ignore packed address warning for mavlink includes
- Turn error on packed addresses to warning for Horus (Cannot fix that without major refactoring, might even need eeprom change)

* Revert fixes for clang on AVR as the old AVR gcc does not like them
2017-07-30 09:59:15 +02:00
Damjan Adamic 3436273fdf Fixes #5090: periodically update sensor ratios from the radio when the telemetry simulator is running. (#5110) 2017-07-30 09:56:16 +02:00
Damjan Adamic 4dcd49a516 Fixes #5093: usbasp udev were rules missing from the installation package (#5111) 2017-07-30 09:55:16 +02:00
Sebastien Charpentier 2f4ed3b35f Updated Fr Translation (#5115)
* Initial version

* Update French translation.
2017-07-30 09:52:06 +02:00
Bertrand Songis b814f997f8 Update CREDITS.txt 2017-07-27 16:17:44 +02:00
Bertrand Songis e37872398e Fixes #5100 2017-07-27 12:22:24 +02:00
Kilrah 3b7c3fb217 Clarify upgrade text (fix #2967) 2017-07-24 12:41:42 +02:00
Kilrah e04aa4b3cc Revert "Add sam-ba location to list of settings that must not be imported"
This reverts commit 1bb6a82cf3.
2017-07-24 11:51:26 +02:00
Kilrah 1bb6a82cf3 Add sam-ba location to list of settings that must not be imported 2017-07-24 11:43:02 +02:00
Kilrah 022f7121b4 Fix unneeded conversions between 9XR-Pro and AR9X/Sky9x 2017-07-24 11:33:13 +02:00
Bertrand Songis cc19c8027a Update CREDITS.txt 2017-07-22 19:14:00 +02:00
Sebastien Charpentier 7dfb5b6a28 Updated French translation (#5074)
* Starting point.

* French translation.
2017-07-21 11:06:51 +02:00
Bertrand Songis 397b78fe06 Update CREDITS.txt 2017-07-21 11:02:05 +02:00
3djc 1e2f4d6c0c - Add 'quick' mode compatibility (#5099)
- Add compatibility with previous receiver firmware
- rename S6R to SxR to acknowledge S8R is supported too
2017-07-20 13:38:30 +02:00
Bertrand Songis 387cd98efe Update CREDITS.txt 2017-07-19 14:08:02 +02:00
Bertrand Songis 7eddd662e7 Update CREDITS.txt 2017-07-18 20:00:30 +02:00
Bertrand Songis 21f61fe498 Update CREDITS.txt 2017-07-13 07:25:39 +02:00
Bertrand Songis 0437314ae3 Update CREDITS.txt 2017-07-10 07:34:43 +02:00
Bertrand Songis 21e8551787 Update CREDITS.txt 2017-07-09 21:35:48 +02:00
Arne Schwabe 129bbe2198 Fix getcurve reporting 0 as first x value instead of -100 2017-07-07 23:44:23 +02:00
Bertrand Songis cfcac8c51d Update CREDITS.txt 2017-07-04 18:18:40 +02:00
Bertrand Songis eaeb90dc07 Update CREDITS.txt 2017-07-01 23:01:20 +02:00
Bertrand Songis ae68dea923 Update CREDITS.txt 2017-07-01 12:06:37 +02:00
Arne Schwabe 1ae8e40a3f Fix setCurve not probably working for custom curves
ypoints used for x instead of xpoints
2017-07-01 01:55:31 +02:00
3djc 779aecfbee Add mechanics for x9 IMAGES import into sd card file 2017-06-29 15:56:18 +02:00
3djc 1c62b19f9f Fully adjustable splash timer on x7, matching x9 implementation (#5008)
* Fully adjustable splash timer on x7, matching x9 implementation

* Make splash adjustable for all ARM, and just check box for AVR
2017-06-28 22:10:40 +02:00
Neil Horne c00775b2d1 Add model checklist edit to Companion (#5047)
* Add model checklist edit to Companion

* minor fix

* Add only write file if text changed.
Add @bsongis feedback.
Minor code changes.
2017-06-28 22:09:47 +02:00
3djc b7b7c48d8e x7/x9 GPS datetime fix (#5051)
* Fix x7 display in telemetry widget (only time is displayed)

* rename drawDate to a more specific name, since it is not generic
fix for x9

* Travis build fix

* Introduce time FONTSIZE_MASK macro

* Cosmetics based on Bertrand's last feedbacks
2017-06-28 20:28:57 +02:00
3djc 76ffd4fcb4 Do not display popup menu on last line (cpy trim -> sub for all chan) (#5061) 2017-06-28 13:22:37 +02:00
Arne Schwabe 9ad5094909 Display XJT version in analogs (#5039)
* Display XJT version

* On Horus too
2017-06-26 21:28:30 +02:00
3djc 0fd23d3e61 Fix COLORLCD compile for PT (#5063) 2017-06-26 18:05:53 +02:00
Andre Bernet a587f8b825 Edge detection only on "Reset Flight", commit 6bc6e074e17e28138fcb23b1e6a3e91eef0b406a introduced unnecessary change in behavior for Reset Timer (fix #5036) 2017-06-25 17:40:54 +02:00
Bertrand Songis fb1098c16e Update CREDITS.txt 2017-06-25 16:47:45 +02:00
Damjan Adamic 97ef444648 Travis build fix 2017-06-24 19:17:51 +02:00
Bertrand Songis c672d2544b Update CREDITS.txt 2017-06-19 22:30:02 +02:00
Sebastien Charpentier 72ca1b021a Fixed Typo. (#5046) 2017-06-19 16:09:34 +02:00
Sebastien Charpentier 044b3a706c French Translation (#5045)
* Starting point for French translation.

* Updated French translation.
2017-06-19 15:10:05 +02:00
3djc 4c40aec8b3 x7/x9e startup review (#5033)
* Turn on X7 like it is done on X9

* 4 squares like shutdown + prep for firmware option to disable

* Compile option

* - rollback firmware option
- fast one second power on
- unchanged power off
- animation added for x7 power on
- animation for power off changed to 'removing' quarter instead of adding (ie the power on anim fills in, the power down fills out)

* Cosmetics

* Cosmetics
2017-06-18 20:55:49 +02:00
Bertrand Songis 4226e9cc45 Update CREDITS.txt 2017-06-18 19:29:25 +02:00
3djc f659e98a52 Improve default voice tempo (pith remains untouched) 2017-06-18 10:01:53 +02:00
Bertrand Songis 97b2aa804d Crossfire parsing script updated 2017-06-17 09:12:13 +02:00
Arne Schwabe 8e07f9b0f4 Allow to disable telemetry alarams (#4981)
* Allow to disable telemetry alarams

This mainly useful for cheap transceivers that have telemetry but no power amplifier and very limited range of often 10-20 meters. This includes fishpepper's tinyFISH FC (and its legal/illegal clones) and also Spektrum BNF models.

* Always disable a warning when RSSI Warnings are disabled

* Compile fix

* Fix typos, also mute sensor lost

Refactor the FrskyRSSIAlarm[2] into a EEPROM compatible RssiAlarm struct

* Compile fixes

* Also refactor Companion

* Cleanup unused datastruct on ARM

* Compile fix for AVR

* Change int to uin8_t for avr

* Fix strings
2017-06-14 23:34:27 +02:00
3djc 656daa75fa Fix SDcard size and format issue (#5004)
* - fix overflow in SDcard size computation
- fix format function
- implement more informative format error handling

* Move to a function
2017-06-14 23:33:31 +02:00
3djc 547606b44e Cleanup unused (#5027) 2017-06-14 23:27:35 +02:00
3djc 15a29f3a43 Adjust audio for X9E hardware (#5028) 2017-06-14 23:27:02 +02:00
3djc ab81838d87 Merge pull request #5020 from opentx/3djc/isSwitchAvailable-fix
Review isSwitchAvailable for correct context detection
2017-06-11 10:00:12 +02:00
3djc 854ce93c07 Missed indent 2017-06-11 09:36:14 +02:00
Bertrand Songis 08ae9ddedb Update CREDITS.txt 2017-06-10 23:38:22 +02:00
Max Paperno 3f5a3995cc [Companion] Inputs and Mixes lists formatting & DnD fixes: (#4919)
* Fix/improve margin/padding issues, consistent between inp/mix views, better x-platform and older Qt (closes #4599, closes #4341);
    * Allow dropping onto lines instead of only between them;
    * Fix dropped data always going to line above the actual drop target (closes #4622);
    * Always force DnD move operations between windows to copy instead (fixes deletion of any selected line in target window, and source line was never actually removed but looked like it was);
    * Add alternate-row coloring for each Input/Mixer group;
    * Fix non-contrasting selected row font color on Linux & OS X (was black on blue);
    * Add actions to change font size (size persists until app close);
    * Show inactive lines with dimmer font for input/channel name;
    * Make drop indicator more obvious;
    * Restore mouse hover highlight (Win), which also helps indicate actual drop target (also re: #4622);
    * cosmetics: Code indentation in MixersListWidget.
2017-06-10 23:35:16 +02:00
3djc 2a86918508 Add varioCenterSilent option to x7 and rework telem screen accordingly (#4923) 2017-06-10 23:34:33 +02:00
Max Paperno f50ee3fb39 [Companion] Add optional logging of all debug output. (#4974)
* [AppDebugMessageHandler] Add ability to write debug output to any number of QIODevices.

* [Simulator][DebugOutput] Use new QIODevice hook in AppDebugMessageHandler instead of signal/slot.

* [AppData] Add new settings for debug logging; Refactor property creation macro to work with any data type and add varName_init() method to set default; Refactor all boolean settings to use new macro (others to be migrated later).

* [AppPreferencesDialog] Add UI for appDebugLog, fwTraceLog, & appLogsDir settings; Clean up layout on application prefs. tab, move and re-label a couple items.

* [Companion][Simulator] Enable optional application debug output logging.

* [Simulator] Enable optional logging of firmware debug output to file.

* [EEPROMInterface] Use qDebug() instead of std::cout so that now all debug output can be routed via custom message handler/logger.

* [Companion][Simulator] Add missing #include.
2017-06-10 23:33:03 +02:00
3djc bae44d2812 Review handling is global function detection.
Fixes !sensor been selectable in global scripts

Thanks to @Max for his help
2017-06-09 09:47:34 +02:00
Bertrand Songis 2e4775b19a Create CREDITS.txt 2017-06-09 08:05:25 +02:00
Max Paperno 655e2f9010 [Companion][AppData] Fix possible crash when importing settings from Companion < v2.1 (fixes #5016). 2017-06-07 10:49:48 -04:00
3djc a4008a2550 Enable FAI Choice for Horus (#4994)
* Test a different approach

* Implement jump over

* Much better implementation (and fixing an existing bug on top of that :))
2017-06-03 12:08:12 +02:00
Andre Bernet 9e39dfa9d7 Fix #4997 2017-06-03 11:46:22 +02:00
Bertrand Songis 94ee3c65b3 Update CREDITS.txt 2017-06-02 20:25:15 +02:00
Arne Schwabe d609d37798 Ignore UNIX dotfiles (#4973)
* Ignore UNIX dotfiles

This has the advantage of hiding all the stupid .DS_STORE and ._foo.lua attributes files from Mac OS X

* Do not ignore ..
2017-06-02 16:37:35 +02:00
3djc d0a57d4c47 Align Taranis 128*64 stats to its larger sister (#4985)
* Align Taranis 128*64 stats to it's larger sister

* Make it for all ARM
2017-06-02 16:37:12 +02:00
3djc 726b989f6c Horus Shadowed (#4979)
* Introduce SHADOWED and use it for BattCheck

* numbers too

* For drawTimer too

* Compilation fix
2017-06-02 16:36:27 +02:00
3djc 5f76e61240 Handle tinsize dot blinking (#4986) 2017-06-01 23:22:09 +02:00
Bertrand Songis 42d66bb2c1 Compilation fix (PCB=9X CURVES=NO HELI=NO TEMPLATES=YES) (#4983)
* Compilation fix (PCB=9X CURVES=NO HELI=NO TEMPLATES=YES)

* String length fixes
2017-06-01 23:21:47 +02:00
3djc e4135a9adb Merge pull request #4984 from cprinos/patch-1
drawComboBox luadoc fix
2017-06-01 07:08:22 +02:00
Chris Prinos fe1146b62c drawComboBox luadoc fix
remove extraneous 'page' param
2017-05-31 21:17:46 -04:00
Damjan Adamic 7956bd6bab Launchpad files for 2.2.0 release:
* updated changelogs
 * use suffix only for nightly builds
2017-05-31 23:31:16 +02:00
Arne Schwabe 32142e25ea add multimedia libs depency (#4982) 2017-05-31 22:31:28 +02:00
3djc 85bb6ea3a7 This fixes #4980 2017-05-31 10:47:20 +02:00
3djc d5e42992d2 2.2.1Nxx pre prep 2017-05-31 10:24:07 +02:00
Andre Bernet fbdcef3733 Release notes updated (a bit late) 2017-05-30 21:42:41 +02:00
Andre Bernet a13c857b53 Release notes updated (a bit late) 2017-05-30 21:40:32 +02:00
Max Paperno 85863358fb [Horus] Outputs widget: Fix bar graph overflow with extended limits (#4969)
* [Horus][Widgets] Outputs widget: Fix bar graph overflow with extended limits (closes #4968); Show standard/translatable source names (CHxx) when no custom name is defined; More const-ness, less math.

* [OutputsWidget] Yet more const-ness and less calculation repetition.
2017-05-30 18:37:38 +02:00
3djc b397af1bac Fix overflow when firmware filename is too long (#4971) 2017-05-30 18:36:36 +02:00
Max Paperno 0906bdc6d7 Adjust logical switch abbreviations. (#4965)
* [Companion] Change logical switch abbreviations to "LS##" in Source/Switch selection lists.

* [LogicalSwitchesPanel] Normalize LS name label.

* We had decided on "Lxx"

* Match firmware side

* ARM wasn't using the translations

* Update strhelpers.cpp
2017-05-30 18:36:04 +02:00
Arne Schwabe 77925f6abc Fix issue #4961 (#4963) 2017-05-29 18:16:01 +02:00
Martin Hotar 0a0893e6cc cz translations of companion (#4964) 2017-05-29 18:15:21 +02:00
3djc 3d17023bc9 Fixes numbering discrepancy for Horus inputs (#4967)
Fixes #4966
2017-05-29 13:24:29 +02:00
3djc fd16151850 Update CREDITS.txt 2017-05-28 10:21:12 +02:00
Arne Schwabe 2ae0472f76 Minor fixes to lua dua 2017-05-28 09:48:34 +02:00
Arne Schwabe cd23fedb56 Schwabe/lua set curve (#4955)
* Implement setCurve for lua

* Bug fixes after actual testing of API

* Fix documentation

* Even more error checking

* Add example code how to use this function

* Silence gcc warnings

* Drop points and start array index at 1 and note about wrong index in getCurve

* Add standard example

* Fixes

* Don’t use an invalid number in example

* fix missing 0
2017-05-28 07:30:43 +02:00
Bertrand Songis 1cb0156cd0 Update CREDITS.txt 2017-05-25 11:25:30 +02:00
Arne Schwabe 4880c029b7 Schwabe/fix curve overflow (#4951)
* Fix curve editing function not checking if there is space for the curve

* Fix compile error
2017-05-24 18:42:56 +02:00
Arne Schwabe c79994d812 Exit if the FindSDL script finds 2.x instead of 1.x (#4948) 2017-05-23 16:46:36 +02:00
Sebastien Charpentier f462af1b0e Updated French translation (#4946)
* Updated French .ts file.

* Updated French Translation.

* Missing space.
2017-05-23 16:12:04 +02:00
David Zumbrunnen 8729bbc41b Fixed syntax error in UDEV rules (#4945)
Extraneous semicolon results in an error saying: `invalid key/value pair in
file /lib/udev/rules.d/45-companion22-taranis.rules on line 1, starting
at character 83 (';')`
2017-05-23 13:46:10 +02:00
Max Paperno 0fc1681d5c [Companion] Improve first use of Companion & upgrade notice (#4940)
* [Companion] On first use of Companion show preferences dialog and new welcome message (closes #4731); Improve detection of new version upgrade & reformat message; Add download link URL to Linux update notice (closes #4774); Fix issue with leftover top-level settings categories when checking for older versions which don't exist; Introduce basic structure for warnings/messages to be suppressed by user preferences (eg. "don't show this message again" option).

* Welcome msg typo fix.
2017-05-23 09:44:47 +02:00
Max Paperno 69576cb17d [Companion] Speed up/fix findMassstoragePath(): Use Qt methods when available (v5.4+) and only check for path on FAT[32] file systems; For older Qt, skip root (/), /net, /proc, & /run devices on Linux/macOS; Fixes long delay on eg. macOS due to network access. Remove unused #include "mountlist.h" in process_flash.cpp. (#4937) 2017-05-20 21:34:26 +02:00
3djc 1a85956dcb Tentative fix (#4939) 2017-05-20 21:33:43 +02:00
Arne Schwabe 01150497bb Schwabe/log sensors by default (#4932)
* Log telemetry sensors by default

* Renome now redundant logs = True code from Frsky
2017-05-19 17:19:43 +02:00
Sebastien Charpentier 0ed7f5a5ad French translation (#4936)
* Created French .ts file.

* Fixed some French translation.
2017-05-19 17:18:59 +02:00
Bertrand Songis ce83cf00e0 Update CREDITS.txt 2017-05-19 17:16:38 +02:00
Andre Bernet 8eea072cd1 Don’t spam simulator with dummy values on telemetry reset anymore (#4933)
* Don’t spam simulator with dummy values on telemetry reset anymore, simulator can be used if needed

* Ditch more dummies
2017-05-18 07:11:48 +02:00
Andre Bernet 4d23292ad3 Empty error message box is no fun 2017-05-16 14:39:27 +04:00
Damjan Adamic 618832974e Re #4718: added missing dependency libqt5multimedia5-plugins for Debian/Ubuntu packages (missing sound when using Qt Multimedia) 2017-05-14 19:20:51 +02:00
3djc c80fbf2de7 Get lua fields info from inside docker 2017-05-14 12:35:13 +02:00
3djc 5b69ceff0d Further follow up 2017-05-14 08:40:47 +02:00
3djc 3cc3687dcb Follow up on next rename 2017-05-14 08:11:04 +02:00
Andre Bernet eb7c73668f Leftover stuff on Windows uninstall 2017-05-13 16:18:56 +02:00
Damjan Adamic d35d3b5e22 Prepare Launchpad scripts for non-nightly release 2017-05-13 14:02:59 +02:00
3djc 935518f6dd Let's build a few more 2017-05-13 13:37:02 +02:00
3djc 20dcee3a5c Release prep 2017-05-13 13:17:14 +02:00
Arne Schwabe 5825a2ec2c remove dubious GNUC and rename 9x refrences 2017-05-13 13:05:47 +02:00
Arne Schwabe 355f4b5f92 Also download and open new updates on OS X (#4926)
* Also download and open new updates on OS X

* Cosmetics
2017-05-13 13:03:39 +02:00
Andre Bernet 9437d98df9 Merge branch 'kilrah/companion_sdcard_download' into next 2017-05-13 11:55:59 +02:00
3djc 7a8ca1c675 Match release dir struct 2017-05-13 11:49:58 +02:00
3djc 79d9359e56 More release prep 2017-05-13 11:46:13 +02:00
3djc 006166a25c Release helping change 2017-05-13 11:17:48 +02:00
3djc 33cc0861a6 Release prep 2017-05-13 11:00:07 +02:00
Bertrand Songis d48ab63497 Update CREDITS.txt 2017-05-12 22:09:07 +02:00
3djc bd62281144 X12 : split S6R settings and calibration scripts (#4920)
* Quick and dirty split

* Some cleanups
2017-05-12 19:53:46 +02:00
Bertrand Songis 50397d0052 3djc added
Thanks for your help!
2017-05-12 07:56:00 +02:00
Andre Bernet 460e6aab96 Update all custom screen references after deleting one (fix #4909) (#4914) 2017-05-11 18:39:26 +02:00
3djc 95b0a21cfc Introduce S6R calibration tool to x7 (#4916)
Introduce real time position feedback
Autosense between S6R and S8R (not same sensor orientation)
2017-05-11 18:39:10 +02:00
Max Paperno f7b6d95910 [Companion] Input names formatting (#4888)
* [Companion] Re-format Inputs list to format input name consistently with rest of UI; Add leading zeros to RawSource numbers in names; Show custom channel name in MixerDialog.

* [Companion] Remove colon separator between input number and custom name.

* Fix segfault when no model pointer is passed to RawSource::toString() (problem was only on this branch).
2017-05-11 07:37:13 +02:00
Sebastien Charpentier 6e0bec9db4 Update French translation (#4908)
* Generated new French .ts file.

* Update French translation concerning the new SD sync mechanism.

* Skip must be translated as "Ignorer", not "Sauter".

* French mistake.
2017-05-11 07:36:54 +02:00
Bertrand Songis 83132ef041 Update README.md 2017-05-09 09:30:06 +02:00
Max Paperno c1586b72bb [Companion] SD Sync reworked: (#4906)
* Complete re-write of SyncProcess, now more robust, UI-independent, runs in own thread, large speed boost;
    * Use file hash comparisons instead of byte-level compare with string methods (probable fixes for #4837 and #4848);
    * New pre-sync options dialog with selectable folders and other settings (settings are remembered until app exit);
    * Option to choose sync direction(s) (up/down/bi) and the order in which bi-directional sync runs;
    * Option to choose file comparison mode (timestamp/hash/both) or force overwrite (for one-way sync);
    * Option to set a maximum file size to copy;
    * Option to do a test run w/out actually copying any files;
    * Better reporting of progress, total counts (copied/updated/skipped), and errors, with color coding;
    * Much more reliable to cancel long-running/hung copy process;
    * ProgressWidget can now display rich-text in the text browser, added some new functions for usage;
    * Misc. small layout tweaks to ProgressDialog and ProgressWidget to make them behave/look better;
2017-05-08 20:51:26 +02:00
Max Paperno ca25696d1a [Companion] Radio module setup: Fix custom failsafe no-pulse and hold options not being saved properly (closes #4904). 2017-05-08 08:29:11 -04:00
Bertrand Songis 11579d9118 Update CREDITS.txt 2017-05-08 13:48:13 +02:00
Andre Bernet 32714fb841 No more subdomain 2017-05-08 12:33:15 +02:00
Andre Bernet 2bc2030f86 Merge branch 'next' into kilrah/companion_sdcard_download
# Conflicts:
#	companion/src/fwpreferencesdialog.cpp
2017-05-08 09:48:53 +02:00
Bertrand Songis 93dbdf8680 Just some comments, the very minimum 2017-05-07 22:27:10 +02:00
3djc 301e33a271 gTTS (#4899)
* Release prep work

* Add CZ support

* Prep for release

* No more need to prefix unicode strings (we use python3)
Some fixes
Italian fixes
2017-05-07 17:39:31 +02:00
Sebastien Charpentier 53bb8bc6c3 Updated French translation. (#4902)
* Generate nex French .ts file.

* Updated French translation.
2017-05-07 17:39:06 +02:00
Max Paperno e2502772cb [Companion] Model Setup: Prevent bogus modification signals. (#4896)
* [Companion] Model editor Setup panel: Prevent bogus modification signals, eg. when populating protocols box or when removing focus from some fields w/out the value actually changing; Remove unnecessary function.

* [SetupPanel] Fix comparison warning and also a translation issue with Multiprotocols subtype and option names.

* [ModelPrinter] Add a missing include.
2017-05-06 18:09:20 +02:00
Max Paperno 24de312a30 [Companion] Some radio settings Hardware tab fixes. (#4895)
* [Companion] Radio -> General Settings -> Hardware: Hide external serial port option for Horus; Fix battery voltage and current calibration changes not registering (wrong signal handler name); Prevent modified() event if edited value wasn't actually changed (this is a problem in all panels with onEditingFinished() signals); Fix some cosmetic layout issues when no hardware names are editable.

* [HardwarePanel] Minor layout fix for BT option.

* [HardwarePanel] Fix comparison issue.
2017-05-06 18:08:55 +02:00
3djc efe53eb034 Fix translation for audio files (#4889)
Switch the time mechanic to english one (may not be perfect, but current italian is not working at all)
2017-05-06 18:08:28 +02:00
Max Paperno 96ccb4cb3f [Companion] Fix a few translations. (#4890)
* [Simulator] Fix keymap translations.

* [Companion] Fix translations in file type selector dialogs.

* [Simulator] Fix inadvertent help text delimiter change.
2017-05-06 18:04:51 +02:00
Bertrand Songis 3f06037e1b [Companion] Credits dialog refactoring 2017-05-06 17:55:03 +02:00
Bertrand Songis 38d8f6a326 Update DONATIONS.txt 2017-05-06 00:13:12 +02:00
Bertrand Songis 2bec60517a Update DONATIONS.txt 2017-05-05 07:28:32 +02:00
Bertrand Songis d3b8133ee2 Add LapinFou to CREDITS.txt 2017-05-02 07:33:10 +02:00
Sebastien Charpentier 4b2b5a9d37 Logical switch L% or LSw% are now translated in IL% (Interrupteur Logique). (#4886) 2017-05-01 17:44:08 +02:00
Bertrand Songis 6edc3b61ff Update DONATIONS.txt 2017-05-01 08:29:22 +02:00
Arne Schwabe f525b1762b Fix #4881 (#4884)
Thanks Mike for noticing: In pxx_arm.cpp, the pulse duration is set to either 48 or 32. This value gets put into the ARR register of the timer (via DMA). Counters count from 0 to the ARR value, then go back to 0. This will result in either 49 or 33 counts for the pulse width, thus making the pulses 0.5uS too long.

Tested only with external PXX
2017-05-01 00:33:45 +02:00
3djc 4f5f241669 Fix opentx-9x-autoswitch-autosource-dblkeys-battgraph-telemetrez-sp22-stickrev-pgbar-en.hex (#4883) 2017-04-30 23:19:43 +02:00
Bertrand Songis 0b25332171 Add @schwabe to CREDITS.txt 2017-04-30 12:58:49 +02:00
3djc 054c87c91e Fix adjust GVAR and Volume (#4880) 2017-04-30 12:53:25 +02:00
Bertrand Songis e053abfc3e Max added to the CREDITS.txt 2017-04-30 08:57:36 +02:00
Max Paperno 6abd36d628 [Simulator] Revert logic switch names in Radio Outputs view to numbers-only (since @72b1ad0, closes #4877). 2017-04-29 20:49:04 -04:00
Damjan Adamic 582546f8ed Fixes #4839: path buffer overflow if LUA widget or theme directory name was too long (max length of directory name is 13 characters) (#4876) 2017-04-29 22:18:11 +02:00
Damjan Adamic c1e7235375 Launchpad changelogs for 2.2.0 RC18 2017-04-29 19:26:49 +02:00
Bertrand Songis 975023bdc7 Update DONATIONS.txt 2017-04-29 16:02:37 +02:00
Max Paperno 4df32f8247 [Companion] Prevent crash when importing (converting) more models than current radio can handle. 2017-04-29 07:30:44 -04:00
Sebastien Charpentier 630dec62f5 Fixed French translations (#4875)
* Updated French .ts file.

* Updated French translations.
2017-04-29 10:34:50 +02:00
3djc a58a541bb6 Only display RAS for XJT modules (#4869) 2017-04-29 09:10:15 +02:00
3djc 0cff67e032 Fix some too long translation (#4873)
* Fix FR, DE, PL

* Such a better fix thanks to @mhotar !

* Create conditional linebreak for 128pixels and Horus, but not X9

* CosmeticsCo
2017-04-29 09:04:23 +02:00
Max Paperno 72b1ad085f [Companion] Show custom channel, G-Var, and Curve names throughout UI. (#4874)
* [Companion] Move RadioData constructor.

* [Companion] Move getCapability(SwitchPositions) to Boards class.

* [Companion] Show custom channel, g-var, & curve names throughout UI; Remove redundant name formatting and other unused functions in ModelPrinter and Helpers; Add CustomFunctionData::isEmpty().

* [Companion] Add LogicalSwitchData::isEmpty().

* [Companion] Fix small bug in HardwarePanel.

* [Companion] Rename logical switches to "LSw##" in selections lists to avoid confusion with "L#" and "LS" hardware controls; remove unused RotaryEncoderString().
2017-04-29 09:03:53 +02:00
3djc 04bcc70422 X7 output main view : dynamic PREC also for PPM_US (#4871)
* Differentiate PREC threshold for PPM_US and PPM_PERCENT

* Cosmetics
2017-04-28 16:14:48 +02:00
Sebastien Charpentier d5eec9b8dc Fixed typo. (#4870) 2017-04-28 16:13:19 +02:00
Bertrand Songis 36afe4127c Update DONATIONS.txt 2017-04-28 16:12:41 +02:00
Bertrand Songis 572463bb0d Update DONATIONS.txt 2017-04-27 21:13:09 +02:00
3djc 6f066253f0 Proper (?) fix (#4868) 2017-04-27 21:08:46 +02:00
Sebastien Charpentier f3cbc37067 Fix French translation (#4862)
* Fixed too long French translation for the Horus.

* Fixed some French translations.
2017-04-27 21:06:40 +02:00
Arne Schwabe 37b0dab9da Add RAS to X7 analogs screen (#4865)
* Add RAS to X7 analogs screen

* Also fix SWR->RAS in simulator UI

* Only display RAS for external XJT module

The „this is almost useless but I have done the work, now it stays commit“
2017-04-27 20:31:00 +02:00
Damjan Adamic c6d15c6f37 Launchpad changelogs for 2.2.0 RC17 2017-04-27 11:19:57 +02:00
Damjan Adamic 73f4b8f172 Projectkk2glider/issue 4827 (#4855)
* Reverting a part of f94b4c743d that deals with the size of table hash. Fixes 4827, but uses more memory and CPU.

* New internal Lua traces
2017-04-26 21:45:46 +02:00
Bertrand Songis 3aceed62c9 [Companion] Fixes #4777 (#4860) 2017-04-26 21:43:35 +02:00
Bertrand Songis f10bad7abe Proposal to fix #4831 (CZ TTS problem with PREC1 and units) (#4856)
* Proposal to fix #4831

* Next fix for #4831

* Initiate some CZ docs

* Some more structure, still a workframe

* My attempt to help with #4831

* Update tts_doc_cz.md

* copy/paste error

* Update tts_doc_cz.md

* missed one number/qr.quot

* Cosmetics

* Consistency in parameters order

* Nearly complete doc

* Cosmetics to facilitate coding for non CZ devs

* Fix integer+unit, cosmetics

* Update tts_doc Radians and Mililiters are Male gender

* Radian and Millimeter are Male (so i've been told)

* Cosmetics

* Invers pushUnitPrompt parameters as per bsongis request
2017-04-26 21:42:01 +02:00
Bertrand Songis c15922a942 Update DONATIONS.txt 2017-04-26 17:30:34 +02:00
Bertrand Songis c2a6a20fc1 [TTS] Fixes 2017-04-26 13:13:55 +02:00
Bertrand Songis 37155363ff [TTS] gTTS method added 2017-04-26 12:33:12 +02:00
Bertrand Songis b0183efaf1 Fixes #4841 2017-04-25 21:25:46 +02:00
3djc 6dd8524ea5 Differentiate message despite so little space :s (#4850) 2017-04-25 12:08:20 +02:00
Arne Schwabe 50cb102a34 [MULTI] Fix fallback to Flysky and Spektrum telemetry without MULTI_TELEMETRY (#4851) 2017-04-25 12:07:34 +02:00
3djc be20e90630 3djc/gps display fixes (#4852)
* Remove top GPS coord display on X7 sensor edit (not enough space for it)

* Improve GPS coord display on X9
2017-04-25 12:06:40 +02:00
Martin Hotar c15a86dc19 cz rtanslation fixes and mode sources aligned a bit -it fixes EN version as well (#4854) 2017-04-24 20:53:09 +02:00
Bertrand Songis b790a844f1 Fixes #4806 2017-04-24 19:33:06 +02:00
Bertrand Songis faacf7f9c5 Update DONATIONS.txt 2017-04-24 18:00:45 +02:00
Max Paperno f9b7f567c3 [Companion] Fix Special/Global Functions action selector being reset for all lines when one line is deleted/cut/pasted (closes #4825). 2017-04-23 21:10:17 -04:00
3djc 591522c25a fix drawSource (#4843) 2017-04-23 18:00:11 +02:00
3djc 9193604aff X7 : fix calibration interuption (#4835)
* Fix 4833

* Less worse fix ?

* Trying something else
2017-04-23 12:38:50 +02:00
Bertrand Songis 1ad8769fff [Horus] Vector table updated (#4842) 2017-04-23 10:11:01 +02:00
3djc fbc3bac6d3 Review handling of combine INTERNAL_PPM and MULTIMODULE (#4826)
* First attempt

* Fix

* Review IS_INTERNAL_MODULE_ENABLED() macro
2017-04-23 10:10:43 +02:00
Bertrand Songis ea5401084c Update DONATIONS.txt 2017-04-22 20:50:50 +02:00
Bertrand Songis 902473fe6f Update 2017-04-20 09:39:44 +02:00
Sebastien Charpentier bc6ed93b0f Updated Frencht ranslation for "SimulatorMain". (#4817) 2017-04-19 10:57:31 +02:00
reichi b5f5e64d95 Fix DS3231 RTC read/write on AR9X (#4819) 2017-04-19 10:55:48 +02:00
3djc fa951acf40 Review line ending handling (#4820)
* New line end handling rules

* Normalize all the line endings
2017-04-19 10:54:43 +02:00
Bertrand Songis 189b65b724 Update DONATIONS.txt 2017-04-18 22:11:39 +02:00
3djc 6e427bca74 Do not allow past SWSRC_TELEMETRY_STREAMING for global functions (#4814) 2017-04-18 12:56:03 +02:00
3djc 0c260ce12d Invert outputs limits when output is reversed (#4813)
* Invert outputs limits when output is reversed

* Cosmetics
2017-04-18 12:55:43 +02:00
Bertrand Songis 9a93d85ef6 Update DONATIONS.txt 2017-04-18 08:33:23 +02:00
3djc 46f0384828 No reason for that just yet 2017-04-17 12:02:33 +02:00
Arne Schwabe 54c1f22312 Multimodule has a pulldown resistor and does not work with open drain, use push pull instead (#4808) 2017-04-17 10:25:56 +02:00
Bertrand Songis 2b41ba94ff Update opentxsimulator.cpp 2017-04-17 10:23:09 +02:00
Arne Schwabe 471c38628f Fix key variable not initialised (#4790) 2017-04-17 10:22:21 +02:00
Andre Bernet b0b270963c Cosmetics 2017-04-17 10:16:20 +02:00
Bertrand Songis a719c391a1 Fixes #4768 (#4807) 2017-04-17 10:04:09 +02:00
3djc 13e6ae1d08 Move tm_year to unsigned (#4811)
Fixes 4627
2017-04-17 10:03:45 +02:00
Bertrand Songis c6148c109c Update DONATIONS.txt 2017-04-17 09:59:12 +02:00
3djc 95bc595f50 Better manage additional switches declared as toggle or 2pos (#4793) 2017-04-16 21:13:51 +02:00
Max Paperno 1d6f2acbc2 [Simulator] Refactor CLI option parsing, add "--sd-path" and "--start-with" options (#4798)
* [Simulator] Refactor CLI option parsing to use QCommandLineParser, remove QxtCommandOptions external lib; Add "--sd-path" and "--start-with" options; Qualify all translatable text (SimulatorMain context).

* Add date string to version.
2017-04-16 21:03:31 +02:00
Andre Bernet 5d5c915ea9 [Horus] Language specific char handling was missing in text view 2017-04-16 21:02:10 +02:00
Sebastien Charpentier f795528d21 Translate last missing field + correct some translation (confirmation box) when deleting models/categories. (#4797) 2017-04-16 20:58:14 +02:00
3djc 1d4ec6f73e 3djc/fix #4795 (#4802)
* Prevent popup in undue places

* Working fix ?
2017-04-16 10:18:52 +02:00
Damjan Adamic 723b5df4f1 Launchpad changelogs for 2.2.0 RC16 2017-04-15 11:54:12 +02:00
mhotar f197268ca7 Merge branch 'next' of https://github.com/opentx/opentx into next 2017-04-13 21:58:45 +02:00
mhotar c152f983da yerico add model and category icons 2017-04-13 21:57:42 +02:00
Arne Schwabe adeb088e93 Fix IBUS telemetry scaling (#4784)
In my first implementation I guess some scalings wrong (and forgot PREC1 when trying to subtract 40)
2017-04-13 18:31:50 +02:00
Jacek Drewniak 70c837f9f0 Driver33/pl translation (#4785)
* partial pl translation

* pl partial translation

* partial pl translation

* partial pl translation

* pl translation changes

* pl translation changes
2017-04-13 18:31:33 +02:00
Arne Schwabe 78c5bf1ec2 Fix high dpi on Windows 2017-04-13 12:13:02 +02:00
Sebastien Charpentier c6a024289f Updated FR translation for Companion 2.2.0N368 (#4771) 2017-04-12 14:20:11 +02:00
3djc fe55889495 Prevent delay to be accessible for edge LS (#4781) 2017-04-12 14:19:15 +02:00
Max Paperno 111bcad9a7 [Companion] Do not create a category in new file when loading data from radio; Fix crashes when editing category name. 2017-04-12 07:18:01 -04:00
Max Paperno a062efeb21 [Companion] Fix some Special/Global Functions editor source selection lists being broken and Action selector disappearing for simple actions with no parameters (fixes #4775 and #4779). 2017-04-12 05:41:04 -04:00
Andre Bernet d4ed05c98c Fix translations again 2017-04-12 10:13:05 +02:00
3djc 39a631d31d Dramaticaly reduce spam on companion/simu 'debug' output 2017-04-12 10:07:47 +02:00
Bertrand Songis 0a6518eb30 Compilation fix for french firmware / AVR 2017-04-12 09:50:17 +02:00
Bertrand Songis 37a21ffef6 Update DONATIONS.txt 2017-04-12 09:06:11 +02:00
Max Paperno 2808b85fce [Companion] Clean up some AppPreferencesDialog layout size policies and fix height shrinking when options change; Fixes issues on HiDPI displays. 2017-04-12 02:51:25 -04:00
Max Paperno 924ecced98 [Companion] Fix issue with category edit and dbl-click not working after category name edit; Add translator warnings on default model names; Remove redundant variable and consolidate filename change routines. 2017-04-11 22:54:58 -04:00
Max Paperno 077a651dc3 [Simulator] Fix intermittent crc errors with telemetry simulator. 2017-04-11 21:21:09 -04:00
Max Paperno c2ef10724d [Simulator] Fix data not being saved back to file in standalone simulator when using .otx file with non-Horus radio types. 2017-04-11 19:12:58 -04:00
Max Paperno 350c3a6d44 [Companion] Do not run model wizard on a duplicated/copied model (fixes #4773); Replace existing file extension with .otx when first saving a converted bin/hex/eepe file (fixes #4772); Make sure no other models exist before setting first model as default (fix index 0 always being auto-selected). 2017-04-11 16:42:20 -04:00
Max Paperno de3c503e02 [Companion] Fix startup switch warnings wraparound issue with X9E SQ-SR switches (closes #3359). 2017-04-11 12:07:09 -04:00
Bertrand Songis 95b31ee147 Update DONATIONS.txt 2017-04-11 07:52:50 +02:00
Arne Schwabe 7779bc51cd Remove unused pointer startP (#4770)
Clang complains about startP pointer pointing to a member of a packed structure, resulting on in a unaligned pointered address. The compiler will optimise the pointer out anyway
2017-04-11 07:50:02 +02:00
Bertrand Songis df0e306458 Update DONATIONS.txt 2017-04-11 07:48:23 +02:00
Max Paperno d864a67c3b [Companion] Restore model drag/drop/compare, many UI improvements to main and sub-windows. (#4769)
* [Companion] Refactor MdiChild & TreeModel, restore drag/drop, and more:
    * Add full drag-and-drop functions to the models list, including model copy, move, and insert actions (also between windows);
    * Add general radio settings copy/paste across file windows;
    * Full MIME support with distinct types for various data (eg. models vs. general settings), also add new type for metadata (header);
    * Copied/cut models can now be inserted in any spot (similar to drop-insert);
    * Deleted/cut models can now be removed entirely (including the empty slot) for all radio types (any models after the removed one move up, like for Horus) (may need to make this an option);
    * Empty model slots can now also be removed (any models after the removed slot move up)  (but total # of slots is still maintained);
    * Default model can be deleted (new default is picked);
    * Completely revamp the actions system (copy/paste/edit/etc) to make it fully functional:
      * Actions exist in the window, not just context menu, therefore all keyboard shortcuts actually work, w/out any duplicated code;
      * Provides access from MainWindow in a comprehensive manner: all actions are available and properly updated based on selections in current editor window, w/out awkward event monitoring;
      * More actions available from context menu, and somewhat reorganized;
      * Also show all actions on mini toolbars right in the MDI window (possibly make optional later);
      * Updated English localization file to account for plurals usage in new action item names (other languages need to be updated);
    * Keyboard navigation in the model list now works/practical;
    * MDI window uses all available height by default;
    * Newly added models/categories are selected and highlighted; Category names are immediately editable; Model editor is/can be launched if wizard is not (need to make option);
    * MainWindow updates:
      * Edit toolbar and menu now showing all available edit actions, with proper context;
      * File menu properly updates with all "general" radio actions: edit/copy/paste settings and simulate radio;
      * Added Windows menu showing list of open windows (eg. to switch when full screen) and tabbed window option (need to make persistent setting);
      * Immediate update of icon size preference;
      * Do not delete toolbars when re-translating UI (they don't lose assigned position);

* [Companion] Restore model compare functionality by using new MIME data exchange system; Add ability to compare any number of models at a time; Multi-model printer now shows custom hardware settings for each dropped model (even from different radios).

* [Companion] Add missing monoblue & monowhite theme sdsync icons.

* [Companion] Model wizard starts with default model name populated.

* [Companion] Properly re-translate UI instead of recreating all the actions/etc.; Tell Mac specifically where to put our actions (seems to make it happier too).

* [Companion] Further improve handling of Window menu items/detection of sub-window changes.

* [Companion] Add file-close action.

* [Companion] Add user options and save preferences:
    * Option to use wizard, open editor, or do nothing on new model creation;
    * Option to remove empty model slots when deleting/moving models (in non-Horus radios);
    * Options to hide toolbars in document windows (r-click on TBs);
    * Save/restore size of document windows, and maximized/tabbed state;
    * Save/restore size/position of model compare window;
    * Add shortcuts for model compare, FW download, log viewer;

* [Companion] Disable being able to "delete" empty model slots (more awkward than helpful).
2017-04-10 19:29:41 +02:00
3djc 9c19889309 Remove trailing silence from audio files 2017-04-10 13:16:39 +02:00
3djc 0a1cacf77c Fixes to BattCheck widget 2017-04-10 10:39:14 +02:00
Andre Bernet eca531d743 More translation fixes 2017-04-10 10:14:15 +02:00
Andre Bernet 3326ff3f61 Translation fixes 2017-04-10 09:31:37 +02:00
3djc d4c3ff743b 3djc/x7 draw timer (#4764)
* Use drawText with tiem string like x12s. Change font ':' which where way to large for SMLSIZE

* MIDSIZE ':' lower dot was not horizontaly symetrical, moving it up one pixel

* Make it all ARM

* Let's try not to brake timer adjust

* Fix
2017-04-08 16:59:21 +02:00
Bertrand Songis d04cb84c5b Update DONATIONS file on 'next' 2017-04-08 12:41:36 +02:00
Bertrand Songis 0359cb244e Bsongis/server compilation fix (#4763)
* Fix following automatic server emails

CMake options:
-DTHR_TRACE=YES -DVARIO=YES -DGAUGES=NO -DAUTOSWITCH=YES -DTRANSLATIONS=FR -DACCURAT_THROTTLE_STATS=NO -DSP22=NO -DPCB=9X -DARITHMETIC_OVERFLOW_CHECK=NO -DFONT=SQT5 -DHELI=NO -DEEPROM_PROGRESS_BAR=YES -DTEMPLATES=NO -DFRSKY_STICKS=NO -DVOICE=NO -DDBLKEYS=NO -DGRAPHICS=YES -DFAI=YES -DBATTGRAPH=YES -DTURNIGY_TRANSMITTER_FIX=NO -DPWM_BACKLIGHT=NO -DNAVIGATION=NO -DBOLD=YES -DDSM2=NO -DGVARS=NO -DAUTOSOURCE=YES -DCURVES=NO -DWS_HOW_HIGH=YES -DPPM_LIMITS_SYMETRICAL=NO -DHAPTIC=NO -DUNITS=METRIC -DPPM_UNIT=PERCENT_PREC1 -DAUDIO=YES -DGPS=NO -DPPM_CENTER_ADJUSTABLE=NO -DSPLASH=YES -DFAS_OFFSET=NO -DFLIGHT_MODES=NO -DOVERRIDE_CHANNEL_FUNCTION=YES

* Fix some missing translations for avr

* Compilation fixes
2017-04-08 12:39:30 +02:00
3djc 76f3edb50d Handles premature exit (no pun intended) (#4762) 2017-04-08 10:32:59 +02:00
3djc 116d24ec37 Horus : adjust INVERS background for all text sizes (#4755)
* Adjust INVERS background for all text sizes

* More proper fix (I think)
2017-04-08 10:32:30 +02:00
Andre Bernet 87c45beba2 Remove throttle reverse warning for AVR too 2017-04-08 10:32:10 +02:00
Andre Bernet db48158956 Main view index is now in model settings (fix #4761) 2017-04-07 19:52:28 +02:00
Andre Bernet f3d56d31c0 Export Horus joystick to lua 2017-04-07 18:45:59 +02:00
Max Paperno ee50096754 [Companion] Fix another possible crash during model conversions (divide by zero). 2017-04-07 04:46:50 -04:00
Max Paperno 629d82fe27 [Simulator] Fix trims issue with AVR simulators (build failure since 57dc015); Fix possible array bounds issue if data is corrupt. 2017-04-07 03:50:40 -04:00
3djc 3a8f9adb4d Enable set binding mode as a firmware option for frsky radios (#4743)
* Enable set binding mode as a firmware option for frsky radios

* Improvements based on Bertrand's comments

* Last feedbacks
2017-04-06 22:36:10 +02:00
Andre Bernet 8794f45816 Check for confirming inversion of throttle channel is no more possible since Virtual Inputs got introduced (Fix #4757) (#4758) 2017-04-06 22:34:11 +02:00
3djc b291faf7a7 Add unit to lua getFieldInfo (#4750)
* Create getUnit lua function

* Cosmetics

* Expend getFieldInfo instead of creating a new function

* Streamline units table

* @projeckk2glider comments

* Cosmetics

* Use simple division
2017-04-06 22:31:17 +02:00
3djc 537fe906ce Add GVAR handling similar to X9 (#4749) 2017-04-06 22:30:50 +02:00
Max Paperno 339592d681 [Companion] Fix model setup panel not being populated with data upon initial load (since 4c0dbfc). 2017-04-05 03:56:31 -04:00
Sebastien Charpentier 3d7d57df7c Fixed typo 2017-04-04 15:39:31 +02:00
3djc 0cdff35bd3 More italian plural unit support (that will just say something, since I do not speak italian, don't know if it will be right) 2017-04-03 09:50:53 +02:00
3djc e7c882e826 Needed for #4742 2017-04-03 09:35:51 +02:00
3djc 7e8cec005b Fix #4742 2017-04-03 09:03:07 +02:00
Sebastien Charpentier e264a06670 Updated French translation. (#4740)
* Updated French translation.

* Fixed some mistakes.

* Updated kebyboard shortcut according @mpaperno comment.
2017-04-02 22:24:10 +02:00
Max Paperno 57dc0159d6 [Simulator] Asynchronous SimulatorInterface & a few new features. (#4738)
* [Simulator] Create RadioKeyWidget class for UI buttons & refactor ButtonsWidget; Refactor SimulatedUIWidget (and subtypes) to use new RadioKeyWidgets/ButtonsWidget; Centralize help text for key mappings and get creative with some icons; Simplify some radio UI setups with rectangular buttons.

* [Simulator] Convert all simulator data I/O to signals/slots mechanism:
    * SimulatorInterface/OpenTxSimulator:
       - Now inherits from QObject to allow signal/slot interface;
       - Allows data exchange on a per-item basis (eg. each I/O value is treated separately instead of sending whole arrays or structs of data);
       - Checks for data changes and only emits signals when change is detected (GUI can now assume only new values are being sent);
       - Manages its own 10ms timer (doesn't rely on GUI to do that);
       - Sends "heartbeat" signals @ 1Hz for status monitoring;
    * Simulator GUI:
       - All data is exchanged between GUI elements as well as SimulatorInterface via signals/slots using standardized methods;
       - Data is sent immediately, and only, when actually changed (eg. a control is moved) instead of in bulk at specific time intervals;
       - Similarly, an asynchronous method is used for reading incoming data, w/out timers or loops;
       - Improve VirtualJoystickWidget to be more encapsulated and configurable;
       - Pause telemetry simulator if window is hidden;

* [Simulator] Move SimulatorInterface instance to separate thread, ensure safe asynchronous operations & proper timer interactions; Protect/remove some functions, & reorganize the order (cosmetics).

* [Simulator] Traces are now delivered to OpenTxSimulator and one or more QIODevice(s) can be added as recipient(s); Add SimulatorInterface::getCapability() for compile-time settings; Remove reversed POT1/SLIDER1 mixer exception (Taranis) requirement for SIMU; Fix plus/minus key delay on wheel event w/out encoder.

* [Simulator] Add current knob/slider/trim input value in tool-tips (KnobWidget and SliderWidget).

* [Simulator] Fix trims widget internal value not properly updating, and remove trim influence on virtual joystick X/Y value display (closes #4671).

* [SimulatorInterface] Add handling of transmitter input voltage, including a rough conversion of volts to ADC value for different boards, and default battery volts lookup function; Clear analogs array before starting.

* [Simulator] Add SimulatorInterface::init() method to separate pre-startup tasks; Report actual trim range, not just extended on/off; Change how radio widget states are restored; VirtualJoystickWidget: Connect trim changes directly from simulator, connect joystick events directly, report stick mode directly instead of setting values/constraints externally.

* [Simulator] Calculate default Tx V input based on configured range in radio settings (or warning V+2 for radios which don't support a range).

* [Simulator] Add functional aux. trims for Horus (closes #4699).

* [Companion] Remove problematic QMessageLogContext from AppDebugMessageHandler::messageOutput().

* [Simulator] Prevent trim change via slider if disabled for flight mode (closes #4600).

* [OpenTxSimulator] Fixes for Qt < 5.4.

* [OpenTxSimulator] Fix slot name.
2017-04-02 12:17:37 +02:00
Max Paperno 36bb951314 [Companion] Radio profile/current firmware handling: (#4737)
* Fix possible confusion/data corruption when deleting radio profile (closes #4734, ref: #4686);
    * Add Delete Profile action to Radio Profiles menu (closes #4736) (but remove from from app prefs. panel);
    * Add confirmation prompt before deleting profile;
    * Open profile settings dialog when creating/copying a profile (closes #4735);
    * Make sure current (global) firmware flavor is properly updated when changing fw type/options in profile;
    * Append "-Copy" to name of copied profile;
    * Factor out Firmware global vars/functions in favor of static members.
2017-04-02 12:17:06 +02:00
Arne Schwabe 8d0db05e78 Copy useful links from 2.1 to 2.2 (#4732) 2017-04-02 12:16:12 +02:00
Max Paperno 8b61cd56bc [Simulator] Prevent two possible concurrency issues with FIFOBufferDevice/FilteredTextBuffer. 2017-04-01 20:50:13 -04:00
Max Paperno 5dabe53af4 Minor misc. fixes (#4729)
* [Simulator] Remove extraneous format value in microsTimer; Better way to delete SimulatorStartupDialog (in case no event loop starts).

* [Simulator] No helpers dependency for SimulatorStartupDialog.

* [simpgmspace] Rename micros timer function and make externally available.

* [Companion] Fix possible uninitialized value in TreeModel (compiler warning).

* [multi_arm] Fix minor compiler warning (MSVC: "unsafe mix of type 'uint8_t' and type 'bool' in operation").

* [lua] Fix compiler warning ("'data' may be used uninitialized in this function").

* [OpenTxSimulator] Fix analogs array range.

* [Simulator] Auto-start simulator when SimulatorMainWindow is first shown (vs. before it was shown).

* [Simulator] DebugOutput: prevent possible mutex deadlock on buffer overflow (force queued connection for Qt < 5.3).

* [Companion] Display calibration data for Horus joysticks (MOUSE1/MOUSE2)
2017-04-01 08:13:24 +02:00
Damjan Adamic 9c7c8244f4 Fixes #4715: model notes were read from the settings path, but should be read from SD card path (#4728) 2017-04-01 08:11:16 +02:00
3djc b22e45cf18 Companion : display warning on eeprom upgrade (#4724)
* Display warning on eeprom upgrade

* Use existing function
2017-04-01 08:10:46 +02:00
Damjan Adamic fa275793ad simpgmspace CoGetOSTime() was returning wrong values (too big) 2017-03-31 19:52:20 +02:00
Max Paperno 9d3960f0f5 [Simulator] TelemetrySimulator: Fix instance values not being populated with radio settings (also now reloads instance values with rest of radio data). (closes #4711) 2017-03-31 13:19:12 -04:00
Damjan Adamic 2aebcb842a Lua docs update: lcd.drawText() added link to fonts 2017-03-31 18:33:48 +02:00
3djc e2722509f7 Instead of copying current profile, start from a blank one (#4714)
* Instead of copying current profile, start from a blank one

* Handle both add profile (which add a new (ie blank) one) and copy current profile which behaves like before (but says it)

* Avoid duplicate code
2017-03-31 16:14:00 +02:00
3djc b17a6d470f Only allow saving to OTX format (#4727) 2017-03-31 16:13:36 +02:00
3djc d1cacc2f0f Use filename when no name is defined (#4726) 2017-03-31 16:12:43 +02:00
3djc 9ff1dab6b8 Hide non working serial2 for Horus 2017-03-31 10:06:34 +02:00
Max Paperno 369bac9950 [Companion] Improve handling of non-supported splash image (Horus) in radio profile settings page. (#4720) 2017-03-31 07:56:22 +02:00
Max Paperno 4c0dbfcb6c [Companion] Make simulator startup from ModelEdit panel act the same as simulating a model from the models list widget (that is, including the other radio data as well); Simplify some code, remove automatic signal connections and use new syntax. (#4721) 2017-03-31 07:55:25 +02:00
Arne Schwabe 965849ee41 Small progress on German translations (#4719) 2017-03-31 07:53:40 +02:00
3djc 89bfd6dcf4 Earlier is better 2017-03-30 08:43:50 +02:00
3djc 361b2b707f Do not recompile if firmware is already there
Always print filename on compile error so that the email handler can attach the error log
2017-03-30 08:15:58 +02:00
3djc 443d75c0ac Make default category translatable (with dev warning) (#4712) 2017-03-29 15:10:29 -04:00
Max Paperno 3eb39ddac2 [build] Add "all-libsimulators" target to build all simulator flavors at once. (#4710)
* [build] Add "all-libsimulators" target to build all simulator flavors at once.

* [build] Refine the "all simulators" target setup and deal with GNU 'make' parallelism issue (ninja=faster); rename to "all-simu-libs".
2017-03-29 15:46:48 +02:00
Max Paperno 6709c55fea [Simulator] Fix timing issues in all AVR simulators on Windows (MSVC) (#4709)
* [simpgmspace] Fix 2MHz and 16KHz timers on MSVC builds (fixes LCD/key/switch response delay on all AVR simulators); Introduce experimental use of Qt to simplify x-platform code (disabled by default).

* Qt timer scaling fix.
2017-03-29 15:44:51 +02:00
Arne Schwabe 10c6c9a1ec Add DM002 multipl protocol (#4716) 2017-03-29 15:43:16 +02:00
Andre Bernet 19e3fba836 [companion] Update all translation files 2017-03-28 11:16:07 +02:00
Andre Bernet 061297e9b5 Harmonize play delay across radios 2017-03-28 10:51:09 +02:00
Andre Bernet 02c7ef70ea Add headers to GVAR grid... (Re #4707) 2017-03-28 09:49:31 +02:00
3djc 19688ff924 Add warning for translators 2017-03-28 09:38:40 +02:00
Max Paperno c8be6d406d [Companion] Replace erroneously removed File menu items (closes #4708). 2017-03-27 23:03:12 -04:00
Bertrand Songis c9df941ee6 Conversion issues #4570 and #4264 2017-03-27 19:56:55 +02:00
Max Paperno f5ab145d2f [Companion] Show custom control names throughout the UI (& internal refactoring) (#4693)
* [Companion] Introduce new Boards class to further consolidate hardware metadata and remove some globals.

* [Companion] * RawSource::toString() and RawSwitch::toString() can now return custom hardware names (if given a GeneralSettings object) for the following types (respectively):
    SOURCE_TYPE_STICK, SOURCE_TYPE_SWITCH, SWITCH_TYPE_SWITCH, & SWITCH_TYPE_MULTIPOS_POT;
* RawSource::isPot() and isSlider() can now return their own index position in potConfig[]/sliderConfig[];
* Switch indicator strings can be localized if necessary.

* [Companion] Refactor model printers to use new RawSource/RawSwitch capabilities; Simplify model-to-printer mapping scheme in multimodelprinter; Use const ModelData pointer.

* [Companion] Refactor how RawSource and RawSwitch selection combo boxes are populated, using cache-able data models instead of direct manipulation; Refactor some other Helpers function into their own namespace.

* Cosmetics & forgotten qualifier.
2017-03-27 19:02:19 +02:00
3djc 627347a48c Horus as vario handling too (#4700) 2017-03-27 18:59:34 +02:00
Bertrand Songis 4086374249 Compilation fixes 2017-03-27 18:43:23 +02:00
Max Paperno aaaaf1a806 [simulation] Fix reported multi-position switch output being outside of normal range due to SIMU exception in mixer.cpp. 2017-03-27 01:31:59 -04:00
Bertrand Songis 6c28efdd4f Fixes #4695 2017-03-26 20:40:13 +02:00
Damjan Adamic 29018fae9c Keys code cleanup and documentation (#4692) 2017-03-26 20:11:06 +02:00
Thibault Jouan 36a6ba24b8 Add firmware update tools location for FreeBSD (#4688)
Add paths for avrdude and dfu-util programs under FreeBSD. SAM-BA does
not exist yet in the FreeBSD port collection.
2017-03-26 20:07:35 +02:00
Max Paperno 1d21309935 [Companion] Speed up loading of model editor (#4689)
* [Companion] Speed up loading of model editor by only displaying Logical Switches and Custom Functions which are actually used.

* [Companion[ Constrain size of Repeat options combo box.

* Missing indent.
2017-03-26 20:06:55 +02:00
3djc bed9f56b9d Fix non overlapping text (#4691) 2017-03-26 20:04:49 +02:00
Sebastien Charpentier fc5835a327 Added some tiny cosmetic changes in order to help user to make the link between Companion and the radio menu. (#4694) 2017-03-26 19:51:58 +02:00
Damjan Adamic 2bbb704c3e Fixed: AudioQueue::playTone() with 0 frequency caused radio reboot (divide by zero) 2017-03-26 19:16:08 +02:00
3djc 8c52e57c46 Eeprom upgrade checks tools 2017-03-26 13:28:12 +02:00
Damjan Adamic 5e55a3f5d3 Lua killEvents() docs update 2017-03-25 20:37:05 +01:00
mhotar 701125b0ca Images converted to plain SVG #4677 2017-03-25 15:11:29 +01:00
3djc 380024547a Merge pull request #4687 from opentx/LapinFou/FR_Translation
Updated French translation
2017-03-25 13:56:52 +01:00
LapinFou 259f76e1b5 Updated French translation. 2017-03-25 13:53:05 +01:00
LapinFou 0fa50df355 Update French transation. 2017-03-25 13:27:28 +01:00
Max Paperno dcdbff74b0 [Companion] Translation system improvements. (#4676)
* [Companion] I18N:
    * Introduce new Translations class to centralize all related functionality;
    * Add ability to search multiple locations for .qm translation binaries (local folders, resources, system paths);
    * Add ability to reload translations dynamically w/out application restart;
    * Improve support for loading Qt translations (if available);

* [build][i18n] Look for and include pre-built Qt translations with other translation resources; Generate translations.qrc dynamically with rest of build files;  Add EN "translation" file (simpler UI string edits and possible abstractions); Rename ZH translation file to be country-specific.

* [build] Centralize finding all the Qt bits into root CMakeLists; Make sure QT_QMAKE_EXECUTABLE is defined; Disable dysfunctional simulator installer script generation.

* Cosmetics (unused includes).

* [Companion] Make language options menu dynamic based on available translations, and always show native language name; Allow changing language of some elements w/out restarting (esp. menus/toolbar buttons); Simplify menus/actions/handlers for themes and icon sizes.

* [build] Better way to generate translations.qrc using input file again (previous method was generating new qrc for each reconfig);  Make sure common library is linked to other modules which may need it; Remove unused script.
2017-03-25 13:06:36 +01:00
Martin Hotar d5560d68f4 simuicons (#4677)
* simuicons

* exported as plainSVG

* restart icons

* some more of the -active ctates
2017-03-25 13:06:25 +01:00
3djc 98388a7ec8 Used rouding like arm radios (#4683) 2017-03-25 13:04:33 +01:00
Thibault Jouan 1f7dd5a5bc Improve companion CMake programs name condition (#4684)
* Refactor condition to avoid repeating the test in `else' and `endif';
* Suffix programs name with `${C9X_NAME_SUFFIX}' under FreeBSD, as for
  Linux build, else cmake build is failing because a `companion'
  directory already exist in the build directory.
2017-03-25 13:03:52 +01:00
Max Paperno 64e960adc5 [Simulator] Fix startup error in standalone mode when eeprom file does not exist (create file instead, as usual). 2017-03-24 03:40:31 -04:00
Max Paperno d82244adc0 [Companion] Allow translating some "missing" strings (fixes lupdate warning in multiprotocols.cpp). 2017-03-23 15:27:08 -04:00
Damjan Adamic 93f6abd81a Launchpad changelogs for 2.2.0 RC14 (and compilation fix for trusty) 2017-03-23 19:48:13 +01:00
Martin Hotar e1dac6e58e cz translations - radio part (#4675)
* cz translations

* cz translations
2017-03-23 18:22:32 +01:00
3djc 7de823f140 Only increment nightly index on successful processing 2017-03-23 12:17:09 +01:00
3djc 1856334e7e Still build firmware stamps even if .deb binary is already there 2017-03-23 10:36:06 +01:00
3djc a7050e4b51 Allow 'pre put' of 'exe' for release too 2017-03-23 10:20:19 +01:00
3djc 99f1965aa6 fix typo 2017-03-23 10:09:27 +01:00
3djc 3ddd809b2c Skip building if nightly item already there 2017-03-23 10:06:11 +01:00
3djc d586b7cd2b Allow neg value for telem comparison fonctions (#4667)
* Allow neg value for telem comparison fonctions

* Protect avr
2017-03-22 21:57:45 +01:00
Max Paperno d68778ec81 [Simulator] Virtual joystick tweaks. (#4666)
* [Simulator] Create a reusable RadioTrimWidget; Move all trim-related enums to boards.h; Make sure aux trims are accounted for in SimulatorInterface; Trims now use toolbuttons with icons instead of pushbuttons with text.

* [Simulator] New buttons & icons for virtual joystick axis hold/fix toggles; Joystick ball is now slightly scaled to stick area.

* [Simulator] Virtual joystick now "follows" mouse clicks within the stick area (left-click on empty space will attract the control node).
2017-03-22 21:05:27 +01:00
Max Paperno 919e8eb962 [build] Only build companion/simulator resources files once. (#4670)
* [build] Only build companion/simulator resources files once and include in common lib; Consolidate/cosmetics.

* [build] Fix "missing" translation resource files with some builds (since last commit); move resource file declarations to after app init as recommended; fix name of Qt translation file since v5.3 (this still only works on some systems with Qt installed and on the build machine).
2017-03-22 21:03:17 +01:00
Max Paperno 4faf323aed [Simulator] Fix and refactor Joystick configuration dialog and internal stick-to-radio axis mapping system. Stick was not always showing active in config. dialog, and mappings were sometimes wrong. (#4672) 2017-03-22 21:02:04 +01:00
Arne Schwabe 4f6931faab Fix typo in multi model name (H3 3D instead of H8 3D) 2017-03-22 15:55:37 +01:00
Max Paperno dc00757cd7 [Simulator] New skin for channel output indicators. (Fix #4638 ) (#4669) 2017-03-22 12:39:02 +01:00
Bertrand Songis 76f5d029a0 Warning when Multiply used on first mix of a channel, fix #4525 (#4647)
* Proposal to fix #4525

* Clearer text

* Companion side

* Translation not needed
2017-03-22 11:39:09 +01:00
Bertrand Songis 618345a2ef Fixes #4589 (#4644)
Produces a segfault with the telenowa script (missing bitmap)
2017-03-22 09:41:07 +01:00
Andre Bernet 12d231443c Output reset wasn't saved (Fix #4662)
Remove dead code
2017-03-22 08:38:23 +01:00
Bertrand Songis b81c483be3 Fixes #3795 (#4643)
Multiple bugs found
2017-03-21 20:11:48 +01:00
Bertrand Songis e0022ac287 Bitmaps with a too big filename were displayed in the selection popup (#4646) 2017-03-21 19:49:58 +01:00
Max Paperno e48b1fd07d {Companion] Unload simulator libraries after each use -- reset all statically initialized firmware variables. (#4655)
* [simulatormainwindow] Move sub-window destructors to main destructor.

* [simulation] Move SimulatorInterface creation/ownership to SimulatorMainWindow.

* [simulation] Add option to unload simulator libraries after each use (eg. from Companion) so as to properly reset all statically initialized firmware variables; Introduce new SimulatorLoader class.
2017-03-21 19:48:25 +01:00
Damjan Adamic dc89d2d630 Projectkk2glider/performance tests (#4658)
* Transparency and fonts gtests added (Horus)

* Added to CLI: Graphics performance test, memory speed test (Horus)

* Gtests fixes
2017-03-21 19:47:41 +01:00
Arne Schwabe fc376b3603 Define multi subtype strings in the same way as all other strings (#4656) 2017-03-21 19:40:08 +01:00
3djc f953087311 Merge pull request #4657 from opentx/LapinFou/FR_Translation
French Translation
2017-03-21 14:37:45 +01:00
LapinFou facbfc7cf8 Small typo. 2017-03-21 13:47:55 +01:00
LapinFou cfcc120183 Intermediate version. 2017-03-21 13:47:14 +01:00
3djc c16256bb8a Fix 4652 (#4653) 2017-03-21 10:06:01 +01:00
Bertrand Songis 91a042200b Fixes #4619 (#4645) 2017-03-21 07:45:05 +01:00
Max Paperno 4aa0c1bbe4 [simulation] Fix some potential crashes & 26 memory leaks, improve LCD redraws. (#4634)
* [simulation] Hardening: Fix some potential crashes & 26 memory leaks, improve LCD performance.
  * [simpgmspace] Init trims; Make sure `REa` is really defined (to match board files).
  * [simpgmspace][opentxsimulator] Verify current running state before start/stop; Move rotary enc. init.
  * [simpgmspace][LcdWidget] Improve performance by moving LCD content change check to lcdRefresh() & limiting LcdWidget refresh time to 60 fps max.
  * [simueeprom] Ensure thread could be started, set default running state to false.
  * [simufatfs] Fix paths report trace.
  * [eepromimportexport] Fix memory leaks resulting from import debugging scheme being used.
  * [customdebug] Introduce new scheme for custom debug output in compliance with Qt recommendations (see docs for QLoggingCategory).
  * [opentxeeprom] Fix extra conversion table cache elements being created and also not properly deleted (and hence leaking).
  * [opentxinterface] Unregister EEpromInterfaces in unregisterOpenTxFirmwares();
  * [storage] Unregister storage factories on exit (fixes leak); create virtual StorageFormat/StorageFactory destructors (prevents warnings).
  * [helpers] GVarGroup now emits own signal, no need to pass ModelPanel pointer (removes dependency on modeledit.h)
  * [DebugOutput] Clear simulator trace hook before exiting (prevent possible issues); Fix leak and possible bad QString allocations when reading from buffer; Fix leak with combo box event filter.
  * [TelemetrySimulator] Fix leak by deleting LogPlaybackController object on exit; Only set up data fields once; convert timers to static.
  * [build] Consolidate all Companion/Simulator shared items in `common` library to reduce build time/etc (node & edge still remain awkward).

* [simulatorwidget] Delete removed spacer object (previously-forgotten "26th" leak).

* [DebugOutput] Fix stray trailing characters issue with new text buffer allocation (from previous commit); Increase maximum buffer sizes to better accommodate slower systems.

* Cosmetics.
2017-03-21 07:43:40 +01:00
3djc 52e65179a8 Tools for 2.2 release handling (#4649)
* Scripts

* No suffix for docker image

* generate sdcard file to subdirectories to match companion changes

* Massively increase options for simus
backup lua_fields info for lua docs

* Allow both nightly and release to be built

* $ ambiguity

* Cleanup

* Tidy up

* Cosmetics
2017-03-21 07:43:13 +01:00
Damjan Adamic 8375304d61 Several fixes for Lua Widgets and Themes options (#4648) 2017-03-21 07:42:00 +01:00
Damjan Adamic 1f1098e270 Lua getValue() docs updated (fixed source links for 2.2 added) 2017-03-20 17:51:02 +01:00
LapinFou 8ae0bb88fa @3djc send me the new French .ts file. 2017-03-20 16:47:53 +01:00
Andre Bernet b8e0f26a22 Cosmetics 2017-03-20 10:31:39 +01:00
Andre Bernet 22217e8e22 [companion] Replace voice download by SD download, new URL for 2.2 (sd-22.open-tx.org, needs to be created) 2017-03-20 10:24:43 +01:00
Damjan Adamic fab3b96815 Compilation fix for gcc 6.2.0 2017-03-19 22:30:40 +01:00
Damjan Adamic 4ecc41229a Launchpad changelogs for 2.2.0 RC13 2017-03-19 20:51:06 +01:00
Max Paperno 1973eaf67c [Simulator] Improve CoGetOSTime() for MSVC. (#4635)
* [Simulator] Increase resolution of CoGetOSTime() on Windows MSVC (possible fix for #4529, ref. #4342).

* Return total time, not delta time.

* Improve efficiency.
2017-03-19 20:07:30 +01:00
3djc eba95dd227 Allow HAPTIC to be defined for avr too (#4633) 2017-03-19 20:06:31 +01:00
3djc 6807a08a7e It is usually better to not deleted a file before needing to copy it ! 2017-03-19 17:33:43 +01:00
Andre Bernet b01de7797c Remove dangling empty file after download error 2017-03-19 17:22:15 +01:00
Andre Bernet 87ef351b03 Multi missing in FW build script for arsky9xrpro... 2017-03-19 17:05:37 +01:00
Andre Bernet 91b4ff60c6 Multi can now be exported to all ARM boards 2017-03-19 16:47:40 +01:00
Andre Bernet ab737c05f3 Remove templates in build script too 2017-03-19 16:31:15 +01:00
Andre Bernet 0362ddbc94 No more templates on ARM (since they all support virtual inputs now) 2017-03-19 16:18:48 +01:00
3djc b443d4b60e Prep for nightly 2017-03-19 08:42:20 +01:00
Andre Bernet 7628866def Register .otx files on Win 2017-03-18 23:59:57 +01:00
Bertrand Songis 87685cf84c Fixes #4631 - Same problem was happening on ATTITUDE (16bits signed value)
Tested by @sirPerma
2017-03-18 11:00:39 +01:00
Bertrand Songis 99472b4fb3 Fixes #4631
Tested by @sirPerma
2017-03-18 10:30:55 +01:00
Franck Aguerre 49d1aafc1b Jivarofad/m2560 update (#4593)
* New drivers : buzzer/speaker, voice wtv20 / jq6500 , i2c

First commit, testings to be done

* Voice correction

* Better way to drive voice modules

Same thing as LCD drivers

* Issue #2337 (error mismatch) solved

* Font correction

* Fonts correction again

* oups...

* Voice modules (Companion) & flash saving (ST7920)

* Documentation update

* I2C driver correction

* Mega2560 directory renamed to mega2560

* M2560 driver correction

* Voice directory correction

* Voice=ON does not works with MEGA2560 (OFF/WTV20/JQ6500)

* Compliant to cmake documentation

* On M2560, audioAVR use playnumber et playduration declared in voice.h
Don't know why, must be discuted...

* ‘{’ token forgotten

* Simplier way for AVR voice
2017-03-18 09:44:47 +01:00
3djc 225ca3160e Merge pull request #4630 from craftandtheory/horiz_vert_drawline
LUA horizontal and vertical lcd.drawLine(...) fix
2017-03-17 16:41:32 +01:00
Florent Martel 47f029f01c LUA horizontal and vertical lcd.drawLine(...) fix
Fixes #4608
2017-03-17 10:04:36 -05:00
3djc b18ae12e08 Make smlsize font '.' a single dot and remove corresponding X9 code (#4626) 2017-03-16 18:50:02 +01:00
3djc 8a84c215a9 Fix #4582 (#4623) 2017-03-15 18:52:43 +01:00
Bertrand Songis 04d506b1e4 Fixes #4587 2017-03-15 17:45:55 +01:00
3djc df8ef1074f Fix #4603 (#4605)
* Fix #4603

* Don't break 9XR-PRO !

* Fix

* I should stop drinking
2017-03-15 08:57:28 +01:00
Damjan Adamic b965cac481 Projectkk2glider/issue 4099 leaks (#4617)
* Re #4099: memory leaks on model select screen fixed [Horus]

* Re #4099: memory leak in wizard background image [Horus]
2017-03-14 20:09:53 +01:00
3djc 0020941740 Re-organize nightly sequence (#4597)
* Re-organize nightly sequence

* Remove ambiguity around vars
2017-03-14 18:27:47 +01:00
3djc 7cb3d27174 Filter out hidden and system files (#4609) 2017-03-14 18:26:04 +01:00
Sebastien Charpentier 13cf25e829 French translation for the new simulator (#4602)
* update fr translations file for LapinFou

* Intermediate version.

* Intermediate version.

* Updated most of the new stuff.
Remaining: new simulator windows.

* 1st final version based on OTX 2.2.RC11
2017-03-14 18:25:40 +01:00
3djc c5a09270a6 Update tts_fr.py 2017-03-14 17:17:20 +01:00
Max Paperno 2fb92e3d23 [Companion] Fix missing curve image(s) in model printer (fixes #4612). 2017-03-14 11:25:53 -04:00
Arne Schwabe 3de35e5b60 [AR9X/9XPRO] Fix multi module not selectable for not Frsky radios (fix #4607) 2017-03-14 11:36:47 +01:00
3djc 457b271c86 Fine tune 6 pos dispay on main view (#4610)
* Fine tune 6 pos dispay on main view

* Fine tune after real radio tests
2017-03-14 11:33:19 +01:00
Andre Bernet 8921f5528b +/- sources of unnamed telemetry sensors were visible (fix #4586) 2017-03-14 11:22:58 +01:00
Damjan Adamic ac2a424353 Lua docs update: lcd.clear() 2017-03-13 20:21:53 +01:00
Damjan Adamic 7aae618ff8 Lua docs fix: playNumber() units table correction 2017-03-13 20:16:58 +01:00
Damjan Adamic 97734f2d9a Fixed a leak in Companion import: name can't be const char, it must store the string locally because some classes construct name dynamically. 2017-03-13 18:28:05 +01:00
Damjan Adamic c05ea013f6 OpenTX 2.2.0 RC12 Launchpad files 2017-03-13 18:26:12 +01:00
3djc aaad391a4a Update build-nightly.sh
Force some docker operations
2017-03-13 10:07:53 +01:00
3djc 67ee51b976 Fix #459 2017-03-13 07:05:43 +01:00
joaquins 59f8ee3283 Fix #4590 (horus->x12s rename) (#4591) 2017-03-12 10:02:17 +01:00
Max Paperno f103c8851f [Simulator] Improve middle mouse button handling over radio navigation key areas: clicks were ignored, now either activates the current key under mouse, if any, or triggers default middle-mouse action (enter/menu/rotary press). (closes #4585) 2017-03-11 20:11:45 -05:00
3djc 2144bb77e3 Remove mixermon option (make it always true) (#4573)
* Remove mixermon option (make it always true)

* Cosmetics

* Compile fix
2017-03-11 10:26:05 +01:00
3djc d04193e62d 3djc/x7 swcheck improve (#4579)
* Switch more like x9

* Fix

* The shift is only for x7

* Add pots check and compil fixes

* Fix SF cannot be disabled

* Various fixes
2017-03-11 10:25:01 +01:00
3djc 1cc59f4298 X7 review telem bars screen (#4580)
* SMLSIZE version

* Leave existing code untouched for non arm

* Fine tune rect

* bars title in SMLSIZE and v centered
2017-03-11 10:23:52 +01:00
3djc a0b3c46c2b LUA drawline fix (#4581) 2017-03-11 10:23:06 +01:00
Max Paperno 0a5732b953 [Simulator] Fix Radio Outputs window not updating GVars/flight mode when re-launched from Companion or restarting radio in Simulator. 2017-03-10 22:06:02 -05:00
Andre Bernet c6ba263572 [companion] No GVAR popups on Horus 2017-03-10 19:46:47 +01:00
Arne Schwabe 4c42769104 cosmetics (remove ifdef indentation for HORUSSTICKS) 2017-03-10 13:05:50 +01:00
3djc 2868c079e6 Update tts_en.py 2017-03-10 13:00:59 +01:00
Arne Schwabe 2c80679eb9 Also define ana_mppings if horus sticks are used (closes #4565) (#4566) 2017-03-08 22:05:09 +01:00
Bertrand Songis 0c37e04bfc Fixes #4478 (#4577) 2017-03-08 22:03:53 +01:00
Damjan Adamic 03b65b06b6 Projectkk2glider/issue 4479 slow joystick (#4569)
* Missing debug timer

* USB driver cleanup

* Re #4479: Joystick update called from mixer thread every 10ms

* Cosmetics

* Compilation fix

* Cosmetics

* Another compilation fix
2017-03-07 22:59:32 +01:00
3djc 15a373c1cd Casting fix (#4572) 2017-03-07 20:47:41 +01:00
Arne Schwabe 1dd30598fd Also add QT5Svg_plugins bundle as QT_GUI includes all image formats but not sag 2017-03-07 12:40:38 +01:00
Damjan Adamic acfeb7b47a Closes #4560: Lua uses double (again) for numbers. The float usage was not good for bit32 library where only ~24bits (out of 32) were correct, others were lost. This is supposed to be a temporary solution. 2017-03-06 18:21:41 +01:00
Max Paperno 6c493fddd9 [Companion][Simulator] Misc. minor fixes:
Fix Qt < 5.3 compat. issue in DebugOutput;
  AppDebugMessageHandler: Filter out verbose QPainter warnings on Linux Qt < 5.3; Do not return any instance if disabled entirely;
  Fix style sheet for simulator radio background.
2017-03-06 06:28:33 -05:00
Damjan Adamic 0e906162e1 Added files and scripts to enable Launchpad.net package building 2017-03-05 21:11:22 +01:00
alteman d9c95f97d7 Add support for PX4 RSSI (#4559) 2017-03-05 17:41:15 +01:00
alteman cd6eef2cfa Replace thirdparty/GCS_MAVLink with a git submodule (#4556)
* Replace thirdparty/GCS_MAVLink with a git submodule

* Try to recover from missing submodules
2017-03-05 13:04:52 +01:00
Andre Bernet 2af7751caa [companion] Missing options for sky9x family 2017-03-05 12:39:43 +01:00
Andre Bernet c3febf3560 [companion] Default category on new file was added at the wrong place and also created when reading form radio 2017-03-05 10:37:18 +01:00
alteman b4059849e2 Update third party mavlink header files to git revision 8e864d2 (#4552)
* Update mavlink protocol definitions to mavlink GIT revision 8e864d2

* Change struct initializers due to updated mavlink proto headers
2017-03-05 08:50:28 +01:00
Max Paperno 45cfcd67ff [simu][horus] Replace 2nd knob/pot with functional 6-pos switch (must be calibrated). (#4554) 2017-03-05 08:48:10 +01:00
Max Paperno c1da4b9b4f [Companion][MdiChild] Add model context-menu actions for moving a model between categories (only if > 1 category exists). (#4555)
(ref. #4224 : Horus models cannot be moved from one category to another)
2017-03-05 08:47:10 +01:00
Max Paperno 2540e166b0 [Companion][Horus] Add joystick axes (JSx & JSy) and trims T5 & T6 as usable sources. (#4550)
* [Companion][Horus] Add joystick axes (JSx & JSy) to sources list (fixes #4336).

* [Companion][Horus] Add aux trims T5 & T6 and associated switches to respective selector lists. Rename "Joysticks" enum to "MouseAnalogs".
2017-03-05 08:46:27 +01:00
Andre Bernet d911d382f2 [companion] X7 only has 6 chars for sound file names 2017-03-05 08:42:07 +01:00
Andre Bernet 86fbb071da [companion] Horus models didn't get their defaults set (thanks @Max) 2017-03-05 08:40:16 +01:00
Max Paperno 51cad78030 [Companion][Multiprotocol] Fix exception when selecting DIY Multiprotocol Module in model editor.
Cosmetics.
2017-03-04 17:01:54 -05:00
Andre Bernet 8e3f86383c [companion] Add first category automatically when creating a new Horus file 2017-03-04 22:56:21 +01:00
Andre Bernet 8bced60784 [companion] Horus splash replacement currently unavailable 2017-03-04 22:12:09 +01:00
Max Paperno 2778040497 [Simulator] Fix 6-position switch operation (only last 3 pos. were usable and were reported incorrectly). NOTE that for these switches calibration IS important (either from actual radio settings or done in standalone Simulator/simu). 2017-03-04 15:03:08 -05:00
Max Paperno 8563ed8eac [lua-api] Prettify loadScript() API docs. [ci skip] 2017-03-04 04:25:06 -05:00
3djc 80b44444ec Fix lcdLastPos (#4487)
* Fix lcdLastPos
Introduce lcdLeftPos

* Cosmetics

* Cosmetics

* Non ARM code cleanup

* Move telem screen to midsize

* Fine tune

* Renaming
2017-03-04 10:16:45 +01:00
alteman 4a2bbc665c Update thirdparty/GCS_MAVLink sync script to work with updated mavlink repo (#4548) 2017-03-04 10:16:21 +01:00
Bertrand Songis 6f0e58351a [Horus] Fixes #4407 (#4543)
* [Horus] Fixes #4407

* Tab replace by spaces
2017-03-04 10:15:06 +01:00
Bertrand Songis 481df9ee3d [Horus] Fixes #3775 (#4544)
* [Horus] Fixes #3775

Quick fix ... comments welcome :)

* Better hash function for strings

* One comment, one!

* One comment, one!
2017-03-04 10:14:38 +01:00
3djc 883ab9a937 Reduce colon size in DBL font (#4540) 2017-03-02 23:27:51 +01:00
Bertrand Songis bfb6e855e0 [Companion] Compilation fix on ArchLinux
Dones as adviced here:
https://bugs.archlinux.org/task/52956
2017-03-02 21:49:49 +01:00
Bertrand Songis d724ec1128 Fixes #4136 - Reset all logical switch fields on change of function type - By @elecpower 2017-03-02 20:24:01 +01:00
Arne Schwabe 40dae8a8a7 [MULTI] Implement option Value adjustment in Companion (#4459)
* [MULTI] Implement option Value adjustment in Companion

Also refactor ui code to use the same multi table as the radio to make updates easier and consistent

* Fix warnings with gcc 6

* Make the whole thing more C++ like

Using QVector instead of std::vector gives me strange errors.

* Fix gcc warning

* another signedness fix

* Add missing include

* Add Gw008 protocol and move subtype definitions out of the translations

* Add note about struct

* More cleanups

Integrate @mpaperno’s latest ideas about cleaning up
2017-03-02 18:40:31 +01:00
Max Paperno 00b2799427 [Companion][Simulator] Add custom qDebug message handler/formatter (#4475)
* [Companion][Simulator] Add custom qDebug message handler/formatter as an option. Keeps support for QT_MESSAGE_PATTERN env. var.

* [Simulator] Show system messages of level qInfo and above in debug console.

* [Simulator] Still capture screenshot to clipboard if path is not accessible (and screenshot results now print to simulator debug console).

* Fix for older CMake.

* [Companion] Do not start debug message handler if app is shutting down, and add null checks before using it; Increase backtrace report depth; Add OTx headers; Add Companion exit status debug; Clean up unused code.

* [Simulator] Add asynchronous FIFO buffer for handling debug output/display more efficiently. (#4488)
(cherry-picked from b12bd7d7be)
2017-03-02 18:35:00 +01:00
Nathan 620094e358 remove src/radio/stamp.h from the gitignore list to make it make cmake idempotent (#4530) 2017-03-02 18:33:29 +01:00
3djc c9555e510c Allow datestamp for ARM 128x64 model backups (#4534)
* Allow datestamp for x7 model backups

* Add ability to restore too

* Make this all 128x64 instead of x7 only
2017-03-02 18:32:24 +01:00
3djc b800642090 Add popup menu to Play value SF on X7 (#4535) 2017-03-02 18:30:37 +01:00
3djc f1b83e7295 Remove Heli choice from model wiz as we do not have one (#4538) 2017-03-02 18:29:36 +01:00
alteman 26259f398d Fix a regression that omitted filenames from allsrc.cpp (#4531) 2017-03-02 18:28:10 +01:00
Max Paperno d8b4f8594d [Companion] Smarter app settings import from old versions... (#4485)
* [Companion] Smarter app settings import from old versions; Do not import flash tool locations on Windows which are already included with Companion (closes #4330).

* [Companion] Exclude Windows installation-specific keys when importing settings from previous versions (truly fixes #2645).
2017-02-28 17:48:52 +01:00
3djc 865e04c9ec Fix binaries names 2017-02-28 09:42:04 +01:00
Jim Taylor b75fa3b06f Change text "not" to ! to fix VS15 Build Issue_4522 (#4523)
* Change text "not" to ! to fix VS15 Build (closes #4522)
* Change !cb_fp[i]->checkState() to !cb_fp[i]->isChecked() per comments in PR
2017-02-27 18:14:32 -05:00
Bertrand Songis 9f3898ae1e [9XR-PRO] Navigation issue in FlightModeOne screen 2017-02-27 14:04:44 +01:00
3djc 4d847e6943 Fix FM screen on X7 (#4515)
* Fix 4513

* Fix 9XR-PRO (hopefully)
2017-02-27 13:51:19 +01:00
Bertrand Songis 7bc557b4eb Trainer code simplification (#4519) 2017-02-27 13:50:03 +01:00
Bertrand Songis 89e1dfeeff [Warnings] Removed sRGB warnings raised by libpng 2017-02-27 13:49:35 +01:00
Bertrand Songis 99b01d396c [Sky9x] skipHiddenLines broken on 128x64 LCD 2017-02-27 13:46:37 +01:00
Bertrand Songis 029e12860a Cosmetics 2017-02-27 13:43:54 +01:00
Damjan Adamic d7801f4a06 Lcd gtests added for Horus 2017-02-26 20:33:43 +01:00
Damjan Adamic cc36f189f2 Re #4502: Removed cache in Lua rotable search, tests have proven it does not speed up search significantly. Scripts that use some function a lot can use simple local variable to store pointer to the function - simpler and faster that cache. 2017-02-26 18:12:37 +01:00
Damjan Adamic ca6a31016a Re #4498: Comment removed 2017-02-26 17:57:39 +01:00
Max Paperno 171e08c2fd [Companion][ModelEdit] Fix/improve module custom failsafe value settings (fixes #4443): (#4492)
* Properly set limits based on model's Extended Limits setting;
    * Fix rounding issues between percentile display and underlying value in μs;
    * Add ability to display values in μs as well as percent.
    * Channels numbering & count is responsive to module's defined start/end channels.
2017-02-26 13:00:49 +01:00
Damjan Adamic a1a58ad8f8 Lua: All usage of double converted to float (#4502)
* Lua: All usage of double converted to float. printf("%f") still uses promotion to double, (floating point va_args are always promoted to double)
Speed improvements:
 * reordering of rotable to put most used tables at the top
 * caching of last found global table
Use real pointer to rotable instead of misusing void* to pass integer value
Lua internal traces now turned on by TRACE_LUA_INTERNALS cmake option

* Replaced floating point division with multiplication (where possible), the hardware FPU is much faster at multiplication vs division.
stb_image: enabled STBI_NO_HDR and STBI_NO_LINEAR (removes code that we don't need)
2017-02-26 12:59:39 +01:00
Neil Horne 3b149a22d1 Inputs and Mixes dialogs - add flight modes context menu to set, clear and invert all modes (#4494) 2017-02-26 12:51:06 +01:00
Damjan Adamic 455fc1f79f Proper skipping of hidden menu lines, old code accessed mstate_tab[] out of bounds (#4491) 2017-02-26 12:43:06 +01:00
Damjan Adamic 7081f924de Some memory leaks and out of bounds array access fixed (#4498) 2017-02-26 12:39:26 +01:00
3djc 1910af51b6 Make lcd.clear() color aware on color screens (#4504)
* Make lcd.clear() color aware on color screens

* Compilation fix
2017-02-26 11:46:23 +01:00
Andre Bernet 86d897b23f [Horus] Restore emergency mode priority over "no SD card" warning 2017-02-23 23:20:16 +01:00
Andre Bernet b866baae65 [Horus] Restore emergency mode priority over "no SD card" warning 2017-02-23 23:04:09 +01:00
3djc 0857e27665 Merge pull request #4497 from opentx/3djc/x7-trainer-fix
X7 fix
2017-02-22 23:40:25 +01:00
Damjan Adamic 2c99de86d0 RTC Year fix for simulators 2017-02-22 16:26:21 +01:00
3djc f3e951e0fb X7 fix 2017-02-22 15:19:17 +01:00
Max Paperno 051a4638f3 [radio] Improve TRACE macro. (#4484) 2017-02-21 11:05:54 +01:00
Max Paperno b12bd7d7be [Simulator] Add asynchronous FIFO buffer for handling debug output/display more efficiently. (#4488) 2017-02-21 11:04:53 +01:00
Bertrand Songis 24c0f5008d [X7] S.PORT devices update is now done on the bottom connector (#4457)
* [X7] S.PORT devices update is now done on the bottom connector

* [X7] I introduce a PCBREV option, as previous versions didn't have this S.PORT bottom connector

* [X7] Introduce a PCBREV PIN to avoid having different 2 different firmware on X7

* Compilation fix

* [X7] PCBREV PIN was inverted

* [X7] PULL DOWN on PCBREV PIN

* S.PORT bottom connector is powered by PB.02, not PB.01

* [X7] PCBREV resistor changed

* [X7] PCBREV resistor changed
2017-02-21 11:03:37 +01:00
Damjan Adamic 2fbd1d8955 Re #4477: All usage (except Lua) of double converted to float. printf("%f") still uses promotion to double, (floating point va_args are always promoted to double) (#4483) 2017-02-21 11:02:26 +01:00
Damjan Adamic f36d01d560 Fixes #4438: wrong cast used when setting Lua mixer script input source (#4470)
* Fixes #4438: wrong cast used when setting Lua mixer script input source
Improved parsing of Lua mixer script inputs

* Additional type check

* ScriptDataInput union introduced.
Fixed: when using SOURCE input, do not use default value
Fixed: when using SOURCE input, min-max range is fixed
2017-02-21 10:59:47 +01:00
Max Paperno 177acb95e5 [212x64] Fix channels display view with PPM_UNIT_PERCENT_PREC1. 2017-02-20 12:14:17 -05:00
Max Paperno bb8dd1294f [480x272] Fix extra channel showing up in custom failsafe settings menu. (closes #4486) 2017-02-20 03:41:40 -05:00
Max Paperno a19748dba7 [Companion] Fix model being moved to wrong category after wizard run (closes #4482) 2017-02-19 18:38:15 -05:00
Max Paperno ac9b781647 [build] Minor fixes for Windows and OS X. 2017-02-19 17:20:10 -05:00
3djc 95668a2bcf Fixes #4345: Enable print (even for model idx 0) (#4474) 2017-02-19 09:33:37 +01:00
3djc e4c3326c0a isExtensionMatching is case insensitive, but not further checks, making those whole function case sensitive, which it should not 2017-02-18 11:00:13 +01:00
Damjan Adamic 299c5924fa Projectkk2glider/hardware floating point (#4477)
* Turn on compiler hardware floating point support for F4 targets

* Fixes, works on Horus

* Comment updated
2017-02-18 00:52:52 +01:00
Bertrand Songis 3e84e7930c Bsongis/9x fixes (#4463)
[9x] Fixes + make firmware target added
2017-02-17 17:11:38 +01:00
Arne Schwabe 6106d1b228 Fix warnings with avr-gcc 6.2 (#4471) 2017-02-17 17:00:39 +01:00
Max Paperno 357ffd0b92 [Simulator] Debug console output listener now starts immediately upon creation; Fix debug console not printing last line in buffer; Shorten debug output print time by 2ms; Don't check buffer if not appending line; Report buffer overflow errors every 30s (if still needed). 2017-02-17 04:24:17 -05:00
Bertrand Songis 25ea90817a Added Coverity badge
Crossing the fingers :)
2017-02-16 13:58:37 +01:00
Damjan Adamic 0e97d30363 DebugOutput buffer increased and overflow message only printed once. 2017-02-16 10:22:01 +01:00
3djc aecd7d15f1 Fix companion wizard behavior for Horus (#4467)
* Fix wizard behavior for Horus (was treated like an 9X)

* Cosmetics
2017-02-16 09:19:34 +01:00
Damjan Adamic ee43d3fb97 Projectkk2glider/issue 4449 drawline (#4464)
* Gtest pattern changed

* Fixes #4449: lcdDrawLine_line() was wrong for slanted lines [128x64]

* Fixes #4449: lcdDrawLine_line() was wrong for slanted lines [480x272]

* lcdDrawLine() coordinates check moved to Lua API
2017-02-16 00:23:42 +01:00
Bertrand Songis 53f55f8e1d Fixes #4399: problem getting/setting curve on output with Lua (#4455) 2017-02-15 21:25:08 +01:00
Bertrand Songis 27b1255584 [X9D/X9D+/X9E] Fixes #4334 (#4451) 2017-02-15 18:25:26 +01:00
Bertrand Songis 733cfb3218 Fixes #3865 (#4456) 2017-02-15 18:18:08 +01:00
Andre Bernet fe49fb5442 Multiprotocol working on sky9x and co (#4409)
* MULTI working on sky9x

* Fix crash with module OFF

* Cosmetics

* Compilation fix / cosmetics

* Typo....

* Multi now available on all ARM platforms

* Does this help?

* Compilation fix
2017-02-15 17:31:38 +01:00
hrenz e8b04cdee6 Updated german translations (#4390)
* Update de.h.txt

shorten some texts for Q X7 Display

* Update de.h.txt

shorten some texts for Q X7 Display

* Update de.h.txt

shorten some Texts for Q X7 display

* shorten some Text for  Q X7 display

* Shorten some texts for QX7
2017-02-15 16:55:40 +01:00
Bertrand Songis d44848022c In addition to #4454 2017-02-15 16:40:18 +01:00
3djc b5798e219d Menu updates handling cat/models for Horus (#4452)
* Alt+S is properly set

* Copy menu fixed

* Cosmetics

* Better handling of model and categories signaling

* Cosmetics

* Cosmetics and handling of special case after model or cat creation

* Remove unused viableModelSelected

* Take 2

* Start work on connect to new standards
2017-02-15 16:28:39 +01:00
Max Paperno 7762bac360 [firmware][gui] Extended limits fixes, issue #4447 (#4453)
* [firmware][gui] Adjust custom failsafe (and some channel display) ranges for proper extended limits (fixes #4447).  This also fixes some display issues in *x64 GUIs when adjusting failsafe settings and cleans up code in those functions.

* [firmware][gui] Fix 480x272 channel output progress bars to show full extended limits; Fix alignment issues on all 212x & 480x gui mixes screens with custom channel names; Streamline some channel outputs display code.

* Fix AVR build.
2017-02-15 16:25:40 +01:00
Arne Schwabe fb49d1197d Use gawk if available, fixes running on OS X if gawk is installed (#4460) 2017-02-15 16:14:58 +01:00
3djc 03125ccad6 Fix X7 sd logs (#4462)
* X7 has only 6 switches
2017-02-15 14:27:23 +01:00
3djc f2841bf904 X7 add copy/paste/.. long press menu to global func and custom funcs (#4454)
* Custom functions

* Enable long push for Global functions too

* Cleanup commented code

* Compilation fix
2017-02-14 20:59:27 +01:00
Bertrand Songis 777707db43 Fix telemetry protocol switching on Horus (Fix #4404) (#4450)
* Cosmetics

* Fixes #4404

* [9XR-PRO] Telemetry bug

* DMA apparently doesn't like being reinitialized before a deinit
2017-02-14 09:43:36 +01:00
Andre Bernet 5fc685d598 Crudely fix switch shift for X7 in hardware tab 2017-02-13 09:52:45 +01:00
Andre Bernet a87afcecdb Naming consistency (Fix #4437) 2017-02-13 09:43:18 +01:00
Bertrand Songis 4170acba79 [X12S] No additional duration for the splash (#4448) 2017-02-13 09:10:49 +01:00
Max Paperno 9e268eba89 [128x64] Fix switch diagnostics display on 9X family. (#4176) 2017-02-12 23:10:19 +01:00
Bertrand Songis 8cb46f2425 [SKY9X / 9XR-PRO] A couple of UI bugfixes 2017-02-12 22:58:24 +01:00
Bertrand Songis 85bdca8d44 Remaining trace removed 2017-02-12 22:26:09 +01:00
Bertrand Songis 5d2220c842 [SKY9X/9XR-PRO] Shift in Switches display 2017-02-12 22:22:58 +01:00
Max Paperno d90b1e0640 [Simulator] Fix crash if error happens at startup before timer was created. 2017-02-12 16:01:43 -05:00
Max Paperno 586567927a [Companion] Prevent error when trying to simulate a model right after wizard run. 2017-02-12 16:01:43 -05:00
Bertrand Songis b96ad42f20 [Simu] Simu did shutdown on its own 2017-02-12 21:46:57 +01:00
Bertrand Songis b9bb831b7f Bsongis/horus flash external device (#4446)
* CMake options changed to UNEXPECTED_SHUTDOWN=YES/NO and  PWR_BUTTON=PRESS/SWITCH

* [X12S / X10] Flash an external device is now OK
2017-02-12 21:04:46 +01:00
Bertrand Songis 808d7749c7 Travis builds failure (missing force-yes) 2017-02-12 20:58:46 +01:00
Max Paperno d5476af719 [build][Windows] Fix date parsing regex for varying locales. 2017-02-12 06:53:22 -05:00
Bertrand Songis 5e63bbcd83 [X12S] Cosmetics 2017-02-12 11:42:00 +01:00
3djc 0af868a852 Reduce HORUS modelset left top icon width by 5 pixels to avoid selected model box to 'hit' it.
SD Version INCREMENTED
2017-02-12 10:26:18 +01:00
Bertrand Songis bd954478c6 [X12S] AUDIO is back 2017-02-11 23:35:47 +01:00
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
3djc a53db11e1a Horus : limit model bitmaps filemane to 6 chars (#4432)
* Limit filename to 6 as sdcardfilelist controls size without extension.

* Bring constant in line with naming convention
2017-02-10 22:24:30 +01:00
Bertrand Songis 9511923581 RAM used for nothing on Taranis (change made originally for Horus) 2017-02-10 22:16:45 +01:00
Damjan Adamic 12a5af98b4 Fix for f_readdir() in simulator. 2017-02-10 20:58:44 +01:00
Bertrand Songis 70cfbbd646 Bsongis/issue 4400 (#4425)
* Cosmetics before fixing #4400

* Cosmetics before fixing #4400

* Now one more conversion issue (SF => SH sources conversion from X9D to X7)

I don't know what is exactly the conversion issue as I don't have the original EEPROM, but I used this one for my tests, so I fix it

* Now we display correctly the corrupted mixers list so that copy/paste will work correctly (it was not consistent)

+ some cosmetics

* Test removed too quickly

* One global removed ;)
2017-02-10 17:17:52 +01:00
Sebastien Charpentier 4d16e8391e Updated again French Translation. (#4436)
Rotary Encoder is now translated in "Sélecteur Rotatif" with the abbreviation "Sel.Rot."
2017-02-10 17:17:33 +01:00
3djc 3bccefe2fc Introduce S6R lua script for X7 2017-02-10 12:39:00 +01:00
3djc 022b773205 Not implemented yet 2017-02-09 10:58:37 +01:00
Andre Bernet 62e0e38635 Revert "Add translation"
This reverts commit 7bfc13fc3e.
2017-02-09 10:44:15 +01:00
Andre Bernet 7bfc13fc3e Add translation 2017-02-09 10:23:49 +01:00
3djc d6fc134e26 Default model in french should not include accents, as those are not handled at radio end 2017-02-09 07:38:47 +01:00
3djc 100bcd3c2d Merge pull request #4430 from opentx/LapinFou/FR_Translation_Companion
Type correction, again.... ;)
2017-02-08 09:53:23 -08:00
LapinFou e6fe518ed3 Type correction, again.... ;) 2017-02-08 18:47:15 +01:00
3djc 5a46b6ecbd Cosmetics 2017-02-08 17:54:29 +01:00
3djc ed6a74c2c6 X7 switch warning, take 2 (#4428)
* More like X9 proposal

* There's no E

* Fixes for compatibility
2017-02-08 16:42:42 +01:00
Sebastien Charpentier dc9129e6f1 Corrected some typo. (#4429) 2017-02-08 16:40:32 +01:00
Max Paperno a60e080ce1 [Simulator] Cosmetics: rename SimulatorDialog -> SimulatorWidget. 2017-02-08 00:37:07 -05:00
Max Paperno c4acbf6054 [Simulator] LCD screenshot file name now includes radio type; Remove unnecessary class dependence in SimulatedUIWidget initializer; Show exit status debug; Cosmetics. 2017-02-08 00:02:34 -05:00
Andre Bernet 62bcfb52c0 We only have 32 inputs! (Fix #4423) 2017-02-07 22:56:00 +01:00
Max Paperno 4e24d0ef7d [Companion][ModulePanel] Clean up some layout issues in outputs/trainer protocol setup UI; Make sure proper form fields are shown for radios with only one external radio system (eg. PPM on 9X). (#4424) 2017-02-07 22:17:05 +01:00
Max Paperno 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 2589e35ad5 [Companion] Fix crash when converting radio splash image to RGB32 (closes #4420). 2017-02-07 15:54:29 -05:00
3djc 25848a83bb Merge pull request #4405 from opentx/3djc/X7-sw-warning-v2
X7 switch warning setup
2017-02-07 11:10:11 -08:00
3djc 343446a86d Merge pull request #4417 from opentx/3djc/X7-fix-#4412
Do not reset telem on ENT push while in telem view
2017-02-07 00:20:38 -08:00
Max Paperno cdf4335d95 [Simulator] Set main window title based on radio type & flight mode. 2017-02-07 03:01:54 -05:00
Max Paperno 7e1c05fcab [Simulator] Navigation buttons in radio UIs are now animated in response to keyboard shortcuts. 2017-02-06 22:16:48 -05:00
Max Paperno 5309b527a5 [Simulator] Add X9E radio skin. 2017-02-06 22:16:48 -05:00
Max Paperno b28bd82515 [Simulator] Improve radio UI keyboard shortcut handling for commonly used keys (pg. up/down, arrows); Cosmetics. 2017-02-06 22:16:48 -05:00
Raphael Coeffic 559bde6b4a make “reset” menu consistent with X9D (long enter press) 2017-02-06 22:18:23 +01:00
Andre Bernet 1e0046f9d6 Leftover cast (Fix #4416) 2017-02-06 20:07:55 +01:00
3djc dc3a26df1c Fix #4412 2017-02-06 19:49:29 +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
3djc 65249db838 Fine tune X7 trim display (#4410)
* Fine tune trim display

* Further fine tune
2017-02-06 18:28:36 +01:00
Arne Schwabe 561501a337 No longer ignore output files (#4411)
* No longer ignore output files

If these are present in a 2.2 OpenTX repo, they are remainds from a
OpenTX 2.1 build

* more output files from 2.1
2017-02-06 18:27:57 +01:00
Max Paperno ded843b989 [Simulator] UI tweaks for last major update. (#4414)
* [Simulator] Debug output: Adjust exclusion filter, help text <kbd> background color, fix help text typos & mark as translatable.

* [Simulator] Radio Outputs: Fix wrong FM highlighted (closes #4408) and current FM not highlighted until switched once; Change highlight color role of active LS/FM so it is always shown (fixes #4393); Active LSs now much more obvious (bold font & sunken frame).

* [Simulator] Rework some SimulatorMainWindow functionality:
    * Fix floating dock widgets appearing behind other applications on Linux (https://github.com/opentx/opentx/issues/4403#issuecomment-277510273);
    * Fix previously-unused floating dock widgets appearing in top-left corner upon subsequent launches of application (https://github.com/opentx/opentx/pull/4385#issuecomment-277315158);
    * Fix various anomalies due to not using a "central widget" in QMainWindow (extra separators appearing, vertical resize not working in some cases), radio widget is now central by default;
    * Add (keep) option to float the radio widget separate from main window, though this may cause the minor visual anomalies mentioned above;
    * Add options to disable radio widget size constraints while docked.
2017-02-06 18:27:03 +01:00
Bertrand Songis b0eeeb4dbc Fixes #4315 (#4406) 2017-02-05 22:01:44 +01:00
3djc 08989fb745 Another option 2017-02-05 13:21:00 +01:00
3djc 7e2271905e Fix switch warning setup on X7 2017-02-05 13:06:53 +01:00
Andre Bernet 93781748c3 X7 has no mixersmon for now (re #4402) 2017-02-05 12:24:09 +01:00
Bertrand Songis fcadd48444 Cosmetics 2017-02-05 10:34:13 +01:00
Arne Schwabe 32f7e322b2 [Companion] Add missing mask when reading multi protocol (fixes #4372) 2017-02-05 02:54:41 +01:00
Kelly Byrd 3bd37bf4e0 Removed const modifer to Widget::update in the 480x272 GUI. (#4397)
I was getting const errors with a recent gcc. So I removed the const modifer
to Widget::update in the 480x272 GUI. This caused menu_settings.cpp
menuSettings() to complain, because it was being passed a param called
'object' of type pointer to a const T, and then called object->update(),
which is not a const function.

However, the one call site I found to menuSettings() (menu_settings.cpp:224)
is passing currentWidget, which is of type Widget*.
2017-02-04 21:28:04 +01:00
3djc 38934767c8 Fix missing line on X7 and on x9 and x7 prevent unnecessary redraw of line (#4398) 2017-02-04 21:26:05 +01:00
Damjan Adamic 17a77114d0 Re #3882: parse theme/widget options depending on option type (#4391) 2017-02-04 15:35:00 +01:00
3djc b17122acf8 Fix GPS display in telem screen for X9. (#4389)
* Fix for X9. Right now, it is working, but maybe could be improved later by moving to right aligned

* X7 work

* X7 and X9 working

* Another fix for processTelemetryData
2017-02-04 15:33:52 +01:00
Damjan Adamic c66e45f0f7 Another fix for processTelemetryData 2017-02-04 14:47:33 +01:00
Arne Schwabe 839f8ae557 Fix another instance of processTelemetryData 2017-02-04 13:09:02 +01:00
Andre Bernet 101eb91c8f Hopefully fix broken PR... 2017-02-04 12:59:49 +01:00
Andre Bernet a95626ca9d Missing rename in f83aef4606 2017-02-04 12:53:04 +01:00
PT_Dreamer fbd881f8d9 Telemetry/AVR/Function renaming
renamed processSerialData to processTelemetryData acording to PR review
2017-02-04 12:08:26 +01:00
PT_Dreamer b87fddf3e7 Telemetry/Mavlink add 58798bps 2017-02-04 12:08:26 +01:00
PT_Dreamer 503422d2f7 Cmake fix telemetry option 2017-02-04 12:08:25 +01:00
PT_Dreamer 6cb86dd16b Telemetry/Mavlink clean and bugfix 2017-02-04 12:03:20 +01:00
PT_Dreamer f83aef4606 Telemetry/AVR/Unify serial driver 2017-02-04 12:03:20 +01:00
Max Paperno 2f9d9c1a99 [Simulator] New main UI window, debug console, separate outputs window, more. (#4385)
* [package] Add QtSvg support DLLs for Windows.

* [Simulator] Add images/css resources for new version; Create SimulatorIcon and SimulatorStyle classes; Build with SVG support, remove unused bitmaps.

* [Simulator] Improve and simplify VirtualJoystickWidget resize event (sticks maintain X/Y position) & improve values layout w/out trims.

* [Simulator] Refactor Trainer simulator to use VirtualJoystickWidget, gains lock/hold buttons and X/Y position readout.

* [Simulator] More compact layout for Telemetry simulator, reduces min. width and adds scrolling columns to allow smaller window sizes.

* [Simulator] Add new SimulatorMainWindow and RadioOutputsWidget UI classes.

* [storage] Add non-persistent sessionId() to AppData for tracking currently active radio profile ID.

* [Simulator] Major UI updates:
    * Use a MainWindow interface with dockable/floatable windows, proper toolbar & menu;
    * Persistent size/layout state of all windows/docks/etc between uses, per radio profile;
    * Completely separate radio Outputs window with configurable layout (also persistent between uses);
    * Translations now enabled in standalone Simulator, follows main Companion setting (they need a lot of updates);
    * New custom icons throughout, toolbar icon sizes adhere to user preference in Companion.

* [Simulator] Debug Output console updates:
    * New filter feature with optional full RegEx support, can work in inclusive or exclusive modes (full help text is included in UI);
    * Up to 50 user-defined filters are saved to permanent settings, also a few predefined filters are provided;
    * Saves/restores the last filter used and if it was en/disabled;
    * Added word wrap and clear screen features;
    * Configurable scroll-back buffer size;
    * Increased efficiency & performance of the buffering/printing process.

* [Simulator][OSX] Visual UI tweaks for OS X.

* [Simulator] Fix some debug console settings not being restored properly.

* [Simulator] Add ability to hide/show menu bar; Persist view state of menu bar and radio title bar; Reduce font size on OS X; Other small visual tweaks and improvements.

* [build] Add QtSvg to Linux build scripts (a guess for Dockerfile).

* [build] Fix for Qt 5.3.

* Add OpenTx headers to new files.

* [Companion][storage] Update GeneralSettings() initializer to use current sessionId for profile data retrieval, removes workaround for standalone Simulator being started with arbitrary profile; AppData: always update sessionId when global id() changes.

* [X10] Fixes for new simulator
2017-02-04 11:59:42 +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
RealTadango d594843de2 Fixes telemetry stream confusion (#4386)
[S.PORT] DIY range updated:

0x5000 to 0x52ff is full DIY range
0x5000 to 0x50ff is DIY streaming range
0x5100 to 0x52ff is DIY sensor range
2017-02-04 10:49:03 +01:00
Bertrand Songis 40ece81de2 X10 (#4377)
[X10] New radio supported!
2017-02-04 10:42:50 +01:00
Kongse ebee591990 Layout tweak (#4388)
Chineses fonts width of ubuntu is differents from windows, layout re-modified for windows, considering most people use windows version
2017-02-04 10:10:11 +01:00
Martin Hotar de572b53e4 X9E simu images for @mpaperno 2017-02-04 00:19:49 +01:00
Kelly Byrd 86d0ac6745 Fixes #4368: Don't duplicate categories in OTX's models.txt (#4370) 2017-02-03 20:55:18 +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 3dba82622e Fix fields name (mixer,GC,..) (#4383) 2017-02-03 13:58:29 +01:00
Kelly Byrd a0aa883743 Fixed #4375, fix pasting multiple items in Companion. (#4381) 2017-02-03 10:26:31 +01:00
Damjan Adamic 2b83160284 Fix needed to get f98f63fa5 working (PR was based on some older code) 2017-02-03 10:18:49 +01:00
Kelly Byrd f98f63fa55 Issue #4224: Implement "duplicate model" in Companion (#4367) 2017-02-03 10:10:51 +01:00
3djc fb44581496 Merge pull request #4376 from opentx/3djc/comp-french-uncomplete
3djc/comp french uncomplete
2017-02-02 22:17:47 -08:00
LapinFou e911922430 Updated French translation. 2017-02-02 15:49:45 +01:00
Andre Bernet 00074c508f Module compartment trainer input currently unavailable on Horus 2017-02-02 15:28:53 +01:00
3djc 0c550588bb Make lcd.drawScreenTitle and lcd.drawCombobox compatible with X7 (#4374) 2017-02-02 10:33:42 +01:00
Andre Bernet 8775550147 [128] Navigation fix 2017-02-02 09:42:35 +01:00
Andre Bernet c8d0154a9e VC++ compilation 2017-02-02 09:12:59 +01:00
Kelly Byrd bdd62104c1 Issue #4224: Paste into and across categories in Companion (#4371)
* Issue #4224. Allow pasting models into and across categories.
* Issue #4224: Add "Paste" to category conext menu.
2017-02-02 09:05:26 +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
Andre Bernet d2415b35db Change physical ID for remote SPORT lua scripts to 0x17 to avoid conflict with existing sensor. Also matches info from back in 2013 and FrSky's own implmentation of a ground setup device (smart dashboard).
Should actually be an OpenTX setting, possibly even hardcoded instead of scripts being able to choose it.
2017-02-01 22:44:41 +01:00
Andre Bernet 4554f19a4a Screenshot SF currently unsupported on Horus 2017-02-01 21:10:31 +01:00
Arne Schwabe 5790b36589 Check X7 epprom sizes (#4364)
Since X7 is released now, we should not modify its data struct sizes anymore

X7 is too different from Taranis/sky9x to merge it into one of the other blocks
2017-02-01 16:36:13 +01:00
3djc ba21aec79f Update doc for functions not available on X7 (#4363) 2017-02-01 15:44:23 +01:00
Max Paperno 9c6a543434 [Simulator] Make sure a default Data File is always suggested in startup dialog; Fix silent exit upon startup if no file/data was provided. 2017-02-01 04:04:51 -05:00
Damjan Adamic fe76ecfe02 Re #4353: Header background color is now 70% of base color. 2017-02-01 09:56:43 +01:00
3djc 883154dad6 Make dot smaller (#4361) 2017-02-01 09:04:37 +01:00
Arne Schwabe 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
Kelly Byrd c6026e8a0f Re #4224 Add "rename" item to Category context menu in companion. (#4360)
- Adds "rename" to the context menu for categories, it uses the
same code path as the default dblClick handler for the base class.

- Added a separator so the context menu looks more like the one
for models

- Some whitespace changes in mdichild.h, my editor truncates
whitespace on blank lines.
2017-02-01 07:35:46 +01:00
3djc 58971dffea Move antenna switch to module switches (#4355)
* Move antenna switches to module switches and fix display when moduel is OFF

* One line is missing and the whole field feels empty...
2017-01-31 14:50:18 +01:00
Arne Schwabe 7fb9aad61f [MULTI] Fix Frksy EU pulses actually send the right type 2017-01-31 07:48:58 +01:00
Damjan Adamic 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
Arne Schwabe 59d9ec131b Schwabe/multi protocol update (#4352)
* Add multi frisky eu protocols

* Also implement MULTI_STATUS, the alternative to MULTI_TELEMETRY used by er9x/ersky9x
2017-01-31 07:41:08 +01:00
Max Paperno cab26a6a0f [Simulator] Make 2-way switches return -1 || 1 instead of 0 || 1. Fixes https://github.com/opentx/opentx/issues/4343 . 2017-01-30 20:19:04 -05:00
Damjan Adamic dcbfa92b03 Lua docs update: playNumber units updated 2017-01-30 21:53:06 +01:00
Damjan Adamic 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
Damjan Adamic bbe82db087 Cosmetics 2017-01-30 14:52:37 +01:00
Andre Bernet 5077b10274 Only convert storage if boards are actually different 2017-01-30 11:03:42 +01:00
Andre Bernet 00adc318ce The "Downloads" dialog (previously firmware preferences) doesn't actually change anything anymore, so shouldn't update anything and thus run a storage conversion 2017-01-30 10:54:26 +01:00
Andre Bernet b05d57fcce One more qt plugin needed on Win for jpg Horus model images 2017-01-30 10:02:35 +01:00
Bertrand Songis 11c20a5c2c [Build] Filelock added to avoid to compile the same firmware many tim… (#4333)
* [Build] Filelock added to avoid to compile the same firmware many times simultaneously
2017-01-30 09:16:18 +01:00
Bertrand Songis cc8de81128 [Build process] Rather move the binary than copy it to avoid race conditions 2017-01-29 13:42:46 +01:00
Bertrand Songis 3e00d016b2 [Horus] Better fix for #4222 - at least I hope so 2017-01-29 10:23:26 +01:00
Damjan Adamic 8eadee0719 Projectkk2glider/misc fixes (#4331)
* Re #4326: default backlight mode keys+sticks

* Re #4329: when saving radio/model data work on a copy of it, because Export() can change values. Fixes switch warnings change for Horus
2017-01-29 10:02:38 +01:00
Damjan Adamic d5e3fabf03 Read/write backup fixes: (#4327)
* Read/write backup fixes:
 * radio not found was show behind all windows (missing parent)
 * bad behavior on write when radio not found

* Disable model backup read/write for Horus (needs implementation)
2017-01-29 09:59:58 +01:00
3djc 8e73d25f1c Add more logs to firmware build 2017-01-29 09:41:08 +01:00
Max Paperno 06a024e3e9 [Simulator] Replace default structure version value. 2017-01-28 20:36:46 -05:00
Max Paperno 122104daf5 [build] Fix MSVC build with WIN_USE_CONSOLE; silence new CMake warning for now (from fbb6c13). 2017-01-28 19:29:27 -05:00
Max Paperno fae095ea18 [Simulator] Fix startup when using a new file for radio data (file is now properly created, errors from Storage are ignored); Do not start simulator at all in case of data errors; Fix startup option dialog when finding radio type from profile for first time; Fix RadioOptions struct version control; Cleanup unused WinConsole code; Fix a warning and a missing const reference; Move ~SimulatedUIWidget() to public. 2017-01-28 19:15:46 -05:00
Andre Bernet 32dc0dd2a0 [companion] Missing default for backlight off on Horus (fix #4326) 2017-01-28 21:07:52 +01:00
3djc 673d54cfee Rework X7 flight mode screen (#4319)
* Working ONE, need to check ALL for pertinence of drawShortTrimMode

* Show more data on screen ALL for X7

* Make trim display for FM0 X7 only

* Cosmetics
2017-01-28 19:59:11 +01:00
Kelly Byrd 7cff468239 Fix for #4222: On Horus GUI, can't edit X values for < 3-point curves. (#4325)
After looking at the Taranis GUI code, I decided to emulate what that
does, which is just skip over the X coord line in the menu if when
curve type is custom and points is <= 2.
2017-01-28 19:56:54 +01:00
Bertrand Songis dfbdcdba85 [X7] Hardware menu navigation fix (last line) + some TODO removed 2017-01-28 19:52:34 +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
3djc 5cae3148ea Put back X7 in line with other radios (#4323)
Enabled LUA and GVARS for X7 in tools/build-companion.sh
2017-01-28 18:48:34 +01:00
Arne Schwabe fbb6c1308c Fix current simulator lib not included in dmg (#4296) 2017-01-28 18:00:22 +01:00
Damjan Adamic d1547dd32d Prevent Companion crash if input data is smaller than required (#4309) 2017-01-28 13:47:45 +01:00
3djc 2fbe5a78d1 Proposition : model number handling (#4308)
* Try something for discussions

* Better alternative

* Typo

* Improve

* Change delimiter

* Move delimiter to space

* * Refactoring of CategorizedStorageFormat::load() and CategorizedStorageFormat::save() to support unused model slots
* Fix all unsafe usages of QString::toStdString().c_str()

* Fixed radio data import [Horus] (broken in 0f90ff0b65)

(cherry picked from commit cc12601a01)

* Added Q_OBJECT to TreeModel and some cosmetics

(cherry picked from commit f40e64c2aa)

* Cleanup
2017-01-28 13:46:45 +01:00
Max Paperno de68db0905 [Simulator] Further improvements (reload radio, momentary switches, etc.) (#4303)
* [Simulator] Add ability to reload all radio data w/out exiting simulator (will also adjust UI for any hardware changes); Refactor how keymap help text is generated.

* [Simulator] Only update channel/logical switch/GVar output displays if the corresponding tab is actually visible (further CPU usage reductions).

* [Simulator] Implement momentary toggle switches with "latch" function.

* [Simulator] Mouse wheel event over multi-position knobs now properly rotates them to detent positions.

* [Simulator] Fix mouse wheel event propagation after multi-position knob rotation; Cosmetics.

* [Simulator] Internals: Greatly improve object cleanup on exit; Refactor SimulatedUIWidget timer event triggering.

* [Simulator] Fix throttle stick position/lock not being set properly upon repeated launches from Companion.

* [Simulator] Fix build w/out SDL. KnobWidget cleanup.

* [Companion] Do NOT delete SimulatorInterface on simulator dialog exit (fix possible crash on dialog close).

* [Simulator] Ensure joystick is NULL at start.

* [Simulator] Fix/improve color blending on 4-bit screens with different BG colors; Cosmetics.

* [Simulator] Fix LCD screenshot folder path; Fix timer slot for Qt backwards compatibility.

* [TravisCI] Set Qt version to 5.3 to match release build servers.

* Fixed segfault when saving setup with no models defined [Horus]

* Fixed radio data import [Horus] (broken in 0f90ff0b65)

* [Simulator] Always keep toggle switch active while held with mouse button.
2017-01-28 13:43:56 +01:00
3djc 2a1e5914f5 Translate some of the new stuff 2017-01-27 20:35:29 +01:00
Damjan Adamic f40e64c2aa Added Q_OBJECT to TreeModel and some cosmetics 2017-01-27 20:07:00 +01:00
Damjan Adamic cc12601a01 Fixed radio data import [Horus] (broken in 0f90ff0b65) 2017-01-27 19:26:21 +01:00
3djc 2f316b858a Fix #4302 (#4305)
Fixed: L1 switch was always edited in LS sub-menu [X7]
2017-01-27 09:39:09 +01:00
Damjan Adamic 16960cb9a0 Fixed segfault when saving setup with no models defined [Horus] 2017-01-27 09:32:43 +01:00
Damjan Adamic 7d849e1c4c Hide Show Splash Screen on Startup option in general settings [Horus] 2017-01-27 09:21:24 +01:00
Damjan Adamic 0f90ff0b65 Fixes #4299 and #4298 and other Horus import/export bugs. Checked all existing IS_TARANIS() macros and tuned them to IS_HORUS_OR_TARANIS() where needed. (#4301) 2017-01-26 22:15:17 +01:00
Damjan Adamic 8b1078d081 Fixes #4290: Input Offset fix [Horus] (#4293) 2017-01-26 18:26:40 +01:00
Damjan Adamic 8102f870fe Fixes for "Read Models and Settings from the radio": (#4291)
* show errors
 * close dialog in nothing in progress widget
2017-01-26 18:24:27 +01:00
3djc 1202fa84fa This just allow spanish to compile, no clues if translations are ok or not (#4297) 2017-01-26 15:33:50 +01:00
Bertrand Songis 764b18d883 [Companion] Fixes #4288 2017-01-26 07:22:58 +01:00
Max Paperno 8c9f574f92 [Simulator] Fix the Lua Reload button and help text which was shown/hidden for wrong radio types (the actual reload still worked using F7 key). 2017-01-26 00:25:56 -05:00
Max Paperno efcfdf171d [Simulator] Fix keymap help text (closes #4289). 2017-01-25 23:43:14 -05:00
Max Paperno d6d694a36f [simu] Fix keyboard switch controls for X7. 2017-01-25 14:01:07 -05:00
Max Paperno 6a52458e15 [simu][Simulator] Fix X7 switch position indexes. 2017-01-25 13:10:05 -05: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
Arne Schwabe 51d1e6e94a Add q303 multi protocols and fix subtype selection on 128x64 ui (#4286)
* Multi: add Q303 protocol and variants (CX10D/CX10WD)

* Fix subType selection on 128x64 UIs

* Fix options display on other radios for custom photo as well
2017-01-25 16:23:21 +01:00
Max Paperno 6e2474081f [Simulator] Further Simulator improvements. (#4282)
* Refactor CompStoreObj to use templates. Clean up some formatting.

* [Simulator] Add SimulatorOptions type to replace individual simulator options; Fix storage handler for custom types; Cleanup some redundant code.

* [Simulator][Joystick] Rework the joystick options/calibration dialog.  Can now enable/disable/select the Joystick from there. Delay start of calibration until Start is pressed (otherwise looks like last calibration didn't work). And generally refactor a lot of it to be smarter.

* Cosmetics.

* [Simulator] Add state handling for RadioWidget class. Split code to cpp file.

* [Simulator] Add SimulatorStartupDialog as its own UI class.

* [Simulator] Multiple changes and new features:
    All Horus data source options are now fully supported with data properly saved after use (SD path, .otx file, or custom data path);
    Loading .otx files now works for all radio types (but not saving data back to .otx);
    Switch and knob/slider states are now saved to per radio profile;
    Joystick configuration/calibration is now available directly from inside Simulator;
    Due to refactoring, all previously saved per-profile simulator settings are now invalid;
    Further consolidated simulator dialog startup/shutdown, now handles temp. paths internally, etc;
    With WIN_USE_CONSOLE defined, Simulator and Companion when started from Windows command line will now use that console for all messages (instead of opening a new one). This allows full debug output to be seen at all stages of execution and after exit.

* [Simulator] Fix build w/out SDL Joystick support.

* [Simulator] Fix bogus throttle warning on simulator start; Add forgotten RadioWidgetState flags to stream handlers; Add debug state saver in SimulatorOptions.
2017-01-25 16:20:45 +01:00
Bertrand Songis b53ec7392c [Companion] OTX format bug with X9D boards
The files were always converted as X9D doesn't have its own FourCC
2017-01-25 15:32:30 +01:00
Damjan Adamic 362698484f Url traces added (Companion) 2017-01-25 13:20:08 +01:00
3djc cbe0dc60e6 Enable LUA_COMPILER (#4283)
Added Companon firmware option luac
2017-01-25 13:09:53 +01:00
3djc 37b7714aff Prep for nightly 2017-01-25 10:59:42 +01:00
Damjan Adamic 398c3b1e33 DIY ID range changed to 0x5100 - 0x52FF (#4232)
[S.PORT] DIY range updated. The spec should follow soon
2017-01-25 08:22:24 +01:00
Bertrand Songis de49d155c6 [Companion] Compilation fix 2017-01-24 22:06:28 +01:00
Bertrand Songis 57aafeb062 [Companion] Refactoring - fixes the X9E=>X7 conversion segfault 2017-01-24 20:08:48 +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
Bertrand Songis 6aa8337fc2 [9XR-PRO] Navigation issue in InputOne screen 2017-01-24 18:46:31 +01:00
3djc f686d15354 Shorten GVx to Gx on 128x64 radios, where screen estate is a real issue (#4280) 2017-01-24 18:29:21 +01:00
3djc aa19475c90 3djc/x7 mixer screen rework (#4281)
* Optimise display on 128x64

* Name if present are displayed (like now), but when the row is selected, the name moves on top and the display alternates between FM and other info

* Compile fix
2017-01-24 18:25:38 +01:00
Damjan Adamic 36928b7b60 Cosmetics 2017-01-24 11:26:19 +01:00
Damjan Adamic 6d2ea5c801 Changes to allow compilation with Qt5.2 2017-01-24 10:19:20 +01:00
Max Paperno 17a03e6c18 [Simulator] Dyanamic Simulator virtual hardware generation and many other improvements (#4260)
* Move simulator widgets to subfolder (no code changes).

* [Simulator] Major Simulator re-structuring to reduce code redundancies and allow for fully dynamic simulated hardware setup:
    SimulatorDialog is no longer sub-classed by individual radio UIs, instead a new class is added which handles just the "skin," LCD, and navigation controls (also makes setting up new models much quicker);
    All radio switches/knobs/sliders are populated dynamically based on loaded hardware configuration data (eeprom/bin), including control types and names (in case of no hardware config data, reasonable "factory defaults" are loaded);
    Starting Horus sim with alternate path for RADIO and MODEL data folders is now supported (.otx file is WIP);
    6-way switch now works properly and various other inconsistencies addressed (eg. some Horus analogs were backwards).

* Add missing OpenTX headers to new files.

* [Simulator] Fix loading of Horus hardware settings from Companion simulation.

* Update Travis CI build environment to Qt 5.7.

* [Simulator] Fix 9X missing colored side LCD images, an #include fix, and some cleanup.

* [TravisCI] Set up for parallel Travis builds and use Qt5.7 (#4263)

* Fix starting Simulator with non-existing file/folder structure (now properly creates new ones as needed, including Horus directories with default radio/model);  Temporarily remove option for using .otx file with Horus (until that feature is added).

* Load correct simulator skin for X7 when launching from Companion.

* X7 hardware defaults changed to match production hardware

* Fix minor compiler warning in mdichild.cpp, and some cleanup in eeprominterface.cpp.

* [Simulator] Centralize radio UI flavor determination.

* [Simulator] Updates:
    Add X7 UI flavor;
    Centralize LCD settings;
    Simplify drawing curved UI widgets;
    LCD color can be changed for any 1/4-bit display radio;
    Slight change on default LCD "off" color;
    Refactor LcdWidget to not use globals.

* [Companion] X7 EEPROM import fix

+ cosmetics
+ compilation error fixed on Manjaro

* [Companion] 9XR-PRO EEPROM import fix

+ cosmetics
+ compilation error fixed on Manjaro

* Navigation fix
French translations

* [X7] Main view cosmetics

* Fix switch/ana custom name import

* [Simulator] Add white border above/below X7 bezel, and use white-colored padding on sides; Adjust X7 default LCD color.

* Does this work? (#4269)

Read an Horus SD card produces a temporary .otx file now

* Bsongis/companion warning before automatic conversions (#4271)

* Does this work?

* Warning before automatic conversions

* Force different file name after conversion (#4272)

* Force different file name after conversion

* More detailed instructions

* [Companion] Files automatically named during XXX => Horus conversions
2017-01-24 07:54:12 +01:00
Damjan Adamic 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
Andre Bernet bf15410bf1 3djc/x7 outputs (#4273)
[128x64] Rework Outputs screen
[X7] Fix for min/max limits bug
[X7/X9] UI fixes
2017-01-24 07:36:40 +01:00
Andre Bernet 824317c477 Fix linking problem due to SDL main definition 2017-01-23 22:11:07 +01:00
Bertrand Songis 821efb3499 .gitignore updated 2017-01-23 21:05:25 +01:00
3djc 6027c519e4 Force symlimits and ppmca for ARM (#4267)
Make PPM_LIMITS_SYMETRICAL(symlimits), PPM_CENTER_ADJUSTABLE(ppmca)  and CURVES mandatory on ARM platforms.
2017-01-23 20:08:39 +01:00
Bertrand Songis 227e412b68 [Companion] Cosmetics 2017-01-23 19:48:07 +01:00
3djc a5577da36d Fix firmware version recognition for Horus (#4276) 2017-01-23 19:42:31 +01:00
Bertrand Songis d60de4466a [Horus] Malloc check added 2017-01-22 22:01:39 +01:00
Bertrand Songis cdb3f48da7 [Horus] Malloc check added 2017-01-22 21:44:44 +01:00
Bertrand Songis 2f0492cec5 [Horus] Malloc check added 2017-01-22 21:41:06 +01:00
Bertrand Songis fb6c9cde6b [Horus] Malloc check added 2017-01-22 21:32:19 +01:00
Bertrand Songis 05129b6785 [Companion] Horus default view setup 2017-01-22 19:07:46 +01:00
Bertrand Songis ff7c698371 [Companion] Files automatically named during XXX => Horus conversions 2017-01-22 18:17:14 +01:00
Andre Bernet 7c33043ac0 Force different file name after conversion (#4272)
* Force different file name after conversion

* More detailed instructions
2017-01-22 17:44:55 +01:00
Andre Bernet be0ef50195 Fix Horus haptic import without code complexification. Will reset people's haptic mode setting on Horus, but we can afford it. 2017-01-22 17:24:58 +01:00
Andre Bernet 7990973b35 Revert "Fix Horus haptic mode (#4224)"
This reverts commit 9bbc595eb1.
2017-01-22 17:20:28 +01:00
Andre Bernet 9666a7f649 Horus model image support 2017-01-22 16:25:40 +01:00
Bertrand Songis 285b8786b9 Bsongis/companion warning before automatic conversions (#4271)
* Does this work?

* Warning before automatic conversions
2017-01-22 15:31:22 +01:00
Andre Bernet 7a60714071 [companion] Missing General settings items added 2017-01-22 14:52:12 +01:00
Bertrand Songis c21be4845e Does this work? (#4269)
Read an Horus SD card produces a temporary .otx file now
2017-01-22 14:08:13 +01:00
Andre Bernet 9bbc595eb1 Fix Horus haptic mode (#4224) 2017-01-22 13:19:20 +01:00
Andre Bernet d9d7920c1c Fix switch/ana custom name import 2017-01-22 12:08:55 +01:00
Andre Bernet eea7d503fa [X7] Main view cosmetics 2017-01-22 11:26:28 +01:00
Andre Bernet 293f1e8805 Navigation fix
French translations
2017-01-22 11:16:14 +01:00
Bertrand Songis 7140eec2df [Companion] 9XR-PRO EEPROM import fix
+ cosmetics
+ compilation error fixed on Manjaro
2017-01-22 09:09:15 +01:00
3djc 2ffbb4e46c Changes to allow Linux companion to be compiled with qt5.7 (#4262) (#4265)
* Changes to allow Linux companion to be compiled with qt5.7

* Optimize
 (reverted from commit cc205dcc91)
2017-01-22 00:03:06 +01:00
Bertrand Songis 54d1cb8f9a [Companion] X7 EEPROM import fix
+ cosmetics
+ compilation error fixed on Manjaro
2017-01-21 23:56:34 +01:00
Max Paperno 3e9a60b9b7 Fix minor compiler warning in mdichild.cpp, and some cleanup in eeprominterface.cpp. 2017-01-21 16:47:54 -05:00
Andre Bernet 5144550e4e UI cosmetics 2017-01-21 21:53:23 +01:00
Bertrand Songis 89680ddf70 Warning fixed on Manjaro 2017-01-21 21:22:53 +01:00
Andre Bernet e94d123404 Horus has 9 scripts 2017-01-21 20:12:48 +01:00
Andre Bernet 8cc8b53d63 Add "Adjust RTC" option for ARM128 2017-01-21 17:30:24 +01:00
Max Paperno 70e4dbd45b [TravisCI] Set up for parallel Travis builds and use Qt5.7 (#4263)
* [TravisCI] Set up for parallel Travis builds and use Qt5.7 (with option of selecting version).  commit-tests.sh script can now optionally build one, all, or sets of targets.

* [TravisCI] Move "COMPANION" build to first slot and rename to "DEFAULT".

* [TravisCI] Fix "ALL" build flavor, remove TARANIS flavor, rename HORUS to X12, streamline some code, add comments, fix indents.
2017-01-21 17:18:42 +01:00
Andre Bernet 0ee59dc438 X7 hardware defaults changed to match production hardware 2017-01-21 12:21:57 +01:00
Damjan Adamic 3085ba7d91 Fixes for simulator paths on Windows (#4259) 2017-01-20 21:45:47 +01:00
3djc cc205dcc91 Changes to allow Linux companion to be compiled with qt5.7 (#4262)
* Changes to allow Linux companion to be compiled with qt5.7

* Optimize
2017-01-20 20:13:33 +01:00
Bertrand Songis 0ff8ed35b9 [Companion] clang warning fixed 2017-01-20 20:10:07 +01:00
Damjan Adamic 7e0c461740 Copyright OpenTX Team 2011-2017 2017-01-20 20:00:21 +01:00
Damjan Adamic 0a351112dd Re #4224: Enable .otx file drag&drop on main window 2017-01-20 19:35:46 +01:00
Damjan Adamic f3521728ef Cosmetics 2017-01-20 19:22:18 +01:00
3djc 12a8770ad5 Companion : add Horus antenna handling (#4258)
Horus antenna handling
2017-01-20 07:40:13 +01:00
Bertrand Songis 212838f12a [Companion] clang / linux compilation fix 2017-01-20 07:38:46 +01:00
Bertrand Songis 28ccf7d8ee [Companion] Crash fix 2017-01-20 07:22:26 +01:00
Bertrand Songis 324544835a [Companion] Compilation fix 2017-01-19 21:31:18 +01:00
3djc 905301fc06 Change "External" to "Ext+Int" to reflect actual Horus antenna handling (#4255) 2017-01-19 21:28:47 +01:00
Damjan Adamic e59a51e25f Re #4224: Enable reading and writing Models and Settings from/to Horu… (#4254)
* Re #4224: Enable reading and writing Models and Settings from/to Horus radio (SD card)

* Fix for findMassstoragePath() on Windows (which got there in previous commit)
2017-01-19 21:26:18 +01:00
Bertrand Songis 3c62cbf200 [Companion] Better storage traces 2017-01-19 21:19:17 +01:00
Bertrand Songis 0d6f5b470b [Companion] Crash fixed 2017-01-19 19:14:55 +01:00
Bertrand Songis 1460620483 [Companion] Rename category function added 2017-01-18 18:43:12 +01:00
Bertrand Songis c707715f3d [Companion] Delete category function added 2017-01-18 16:37:38 +01:00
Bertrand Songis a412992783 [Companion] Conversions from Taranis to Horus (default category added) 2017-01-18 16:21:50 +01:00
Bertrand Songis 83380d288c [Companion] Refresh problems fixed 2017-01-18 15:46:12 +01:00
Bertrand Songis 01a4470e23 [Companion] Compilation fixes 2017-01-18 15:32:16 +01:00
Bertrand Songis 1924d28be3 [Companion] Fixes 2017-01-18 15:25:43 +01:00
3djc 38c7f1c7d3 Do not use color coded RSSI alarms on Taranis/Horus prints (#4253)
* Do not use color coded RSSI alarms on Taranis/Horus prints

* Cosmetics (yes, again :s)
2017-01-18 14:29:50 +01:00
Bertrand Songis b84398bcc7 [Companion] New fixes:
* New signal MainWindow::FirmwareChanged
* New RadioData conversions introduced
2017-01-18 12:57:01 +01:00
Bertrand Songis 173d5aba06 [Companion] Another fix for #4224 2017-01-18 11:34:21 +01:00
Bertrand Songis badea8e6a8 [Companion] Another fix for #4224 2017-01-18 11:29:05 +01:00
Bertrand Songis 0e8fba1fe6 [Companion] Another fix for #4224 2017-01-18 11:12:52 +01:00
Bertrand Songis 61e91a9c32 [Companion] All Horus functions now enabled 2017-01-18 10:55:37 +01:00
Bertrand Songis 98357995fa [Horus] In case of current model missing on SD we create an empty model 2017-01-18 10:35:32 +01:00
Bertrand Songis cfdd37bbbb Switch to .otx extension instead of .eepe for new files 2017-01-18 10:22:37 +01:00
Bertrand Songis 125c301c56 Another fix for #4224 2017-01-18 10:11:47 +01:00
Bertrand Songis 9535e80745 Compilation fix 2017-01-18 09:15:56 +01:00
Bertrand Songis 8abc2a7179 [Companion] It's now possible to add Categories 2017-01-18 08:27:17 +01:00
Bertrand Songis e740a88e13 Cosmetics 2017-01-18 07:37:06 +01:00
3djc 55ee19b50a 3djc/enhance companion get capability (#4243)
* Add info on switches/sliders/pots setup when delivered from factory (other calls return user installed max possible)

* Fix

* getCapability() : Refine actoryInstalledSwitches, add NumTrimSwitches, remove FactoryInstalledPots & FactoryInstalledSliders;
GeneralSettings() initialization : Use `FactoryInstalledSwitches` count instead of `Switches` for default setup, and also set up correct number of sliders for X9E (4) and X7 (0).

* Enum order cosmetics.  [ci skip]
2017-01-18 07:34:08 +01:00
Max Paperno d29c381c19 [Companion] Move SwitchType enum to RadioData GeneralSettings (#4249)
* [Companion] Move SwitchType enum to RadioData GeneralSettings for consistency.

* Fix default 9X switch index positions & trainer switch name.
2017-01-18 07:33:28 +01:00
Max Paperno 56dc2f94ce [build] Only add SIMU_AUDIO option if SDL was found, and turn it ON by default. (#4248) 2017-01-17 19:49:12 +01:00
Bertrand Songis 61d27ebd75 Bsongis/horus create radiodata from scratch (#4251)
[Companion] It's now possible to add models on an empty EEPROM, save and reload the .otx
2017-01-17 19:41:09 +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
Max Paperno c67fdcfd6e [Simulator] Fix standalone simulator setting SD card path. 2017-01-17 04:54:05 -05:00
Max Paperno 992c4c4822 [Simulator] Remove keyboard grabbing, causing issues in Linux. 2017-01-17 02:47:54 -05:00
Bertrand Songis 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 979de6bfa2 Re #4224: Companion Hours simulator now uses temporary directory for radio/models settings. (#4247) 2017-01-16 21:35:52 +01:00
mhotar 99b9de271c X7 simu images 2017-01-16 20:46:59 +01:00
Arne Schwabe e0113e9bb9 Another small multi protocol update, add H26WH mjxq subprotocol and telmetry as option for Bayang (#4244) 2017-01-16 18:58:43 +01:00
Damjan Adamic 19213c8013 Windows build fixes 2017-01-16 15:09:39 +01:00
Arne Schwabe 0de4d9e7ad Fix clang warnings about virtual save methods not overriding the base method (const vs non const) 2017-01-16 12:54:16 +01:00
Arne Schwabe 22a9ec286a Fix compilation on OS X 2017-01-16 12:40:53 +01:00
Andre Bernet 5623760c3e String lengths 2017-01-16 11:35:22 +01:00
Bertrand Songis 263c07ace1 Compilation fix 2017-01-16 06:49:15 +01:00
Damjan Adamic 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
Arne Schwabe bedaa505a2 Add two new multi protocols (#4240)
- Add binding sound while multi module is binding.
2017-01-15 21:51:44 +01:00
3djc 81e042971c getCapability review (#4238)
* getCapability review

* X7 has haptic too

* Typo

* @bsongis feedback and other cosmetics
2017-01-15 20:53:05 +01:00
Max Paperno 616eb9206d [companion] Minor warning fix. 2017-01-15 14:46:17 -05:00
Andre Bernet 2b9badf728 Compilation fix 2017-01-15 17:48:32 +01:00
Bertrand Songis a65aa3d6c7 [Companion] Work in progress - QTreeView in MdiChild (#4197)
[Companion] QTreeView in MdiChild, Horus and X7 support added, fixes for #4224
2017-01-15 17:45:57 +01:00
3djc d6b84371a9 Create a home for x7 sdcard data (#4230) 2017-01-15 15:27:58 +01:00
Neil Horne 05ca719522 Port #4189 to next (#4235)
Add data modification for su trim, min and max
2017-01-15 15:27:23 +01:00
3djc dcf9870b3a 3djc/x7 rssi levels (#4236)
* Remove color leveled RSSI warning in line with X9 and Horus

* Some AVR love (or not !)
2017-01-15 15:26:53 +01:00
Damjan Adamic 985dff2af7 Fixes #3683: Display trainer icon in master mode when IS_TRAINER_INPUT_VALID() is true, don't rely on trainer jack connected detection. (#4233) 2017-01-15 10:01:30 +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
mhotar d9bac83532 9X simu photo button action 2017-01-13 20:45:04 +01:00
Arne Schwabe 0bdf935fc1 Only show telemetry selection if it is sensible to do (as on Taranis/… (#4215)
* Only show telemetry selection if it is sensible to do (as on Taranis/Horus)

* Cosmetics
2017-01-12 21:42:47 +01:00
Max Paperno 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
3djc 3944f30d06 3djc/x7 hardware screen (#4221)
* Introduce hardware screen for X7

* Cosmetics

* Shorten pot string for 128, other cosmetics

* Fix translation strings
2017-01-11 22:44:26 +01:00
Damjan Adamic 4fd42e0e3d Fixes #4209: Backlight was always 100% due to wrong test for the unexpected shutdown. (#4220) 2017-01-11 22:36:21 +01:00
Andre Bernet d520dac7ba French translations 2017-01-11 15:43:18 +01:00
Andre Bernet b06864f286 Add new S6R parameters for FW 20161226 2017-01-11 13:50:52 +01:00
Andre Bernet 79ab38af8a French translations 2017-01-11 13:29:54 +01:00
Kongse e70a857459 Chinese translation minor revise (#4217) 2017-01-11 10:23:44 +01:00
3djc 070d24ef66 fix curves on X7 (#4216)
* fix curve selection display on X7

* Fix undue telemety type row being show on telem screen

* Fix undue telemety type row being show on telem screen (reverted from commit f3d082f44fa70020d0787d7e7d3d5b494ef062b7)
2017-01-11 10:02:54 +01:00
Bertrand Songis f2b283c585 [All] All FourCC changed (o9x changed to otx) (#4214) 2017-01-09 22:30:01 +01:00
Bertrand Songis 58382d8aca [Horus] Fixes #4205 (#4210)
[Horus] Fixes #4205
2017-01-09 18:17:19 +01:00
3djc dc51a95029 Allow my X9e to boot ! (#4211)
Thanks
2017-01-09 18:16:16 +01:00
Arne Schwabe 707b000111 Install also multimedia and print support plugins for OS X (#4212)
* Install also multimedia and print support plugins for OS X

* cosmetics
2017-01-09 18:14:37 +01:00
3djc 651f7b3f93 X7-improvement (#4208)
* Allow autoswitch for LS AND

* Add POPUPMENU base edit/clear/copy/paste to LS screen

* Add long menu to OUTPUTS screen

* Compil fix

* Compil fix

* Translations for outputs POPMENU 128x64
2017-01-08 19:54:57 +01:00
3djc 1642732e8f 3djc/horus checklist improvement (#4195)
* Add the possibility of modelfilename.txt to Horus checklist

* Typo

* Cosmetics
2017-01-08 19:00:45 +01:00
Andre Bernet e7f258ee45 Fix Chinese translation (fix #4179)
Remove disabled languages from build
2017-01-08 10:10:41 +01:00
Max Paperno 95e59d931e [build] Suppress TRACE_SIMPGMSPACE messages in TravisCI build. Cosmetics. 2017-01-08 03:52:09 -05:00
Kongse 01a1b74028 #4179 cn translation done (#4196)
translation finished
2017-01-08 09:50:51 +01:00
Max Paperno 4f988babbf Fix initializer list issue with ZoneOptionValue (#4203)
* [480x272] Fix initializer list issue with ZoneOptionValue (technically not C++11), now works x-platform as well, lowers Flash use; Spit out Zone, ZoneOption, ZoneOptionValue to own unit. (Fixes https://github.com/opentx/opentx/pull/4199/files#r94867147)

* [480x272] Revert to Flash usage for ZoneOptionValue types (still fixes MSVC build). (Ref: https://github.com/opentx/opentx/commit/82dce3ee601049cf548ff4518902ab8e8fa62a0b#commitcomment-20388918 & https://github.com/opentx/opentx/pull/4199#discussion_r94835251)

* Cosmetics.

* [480x272] Cosmetics.
2017-01-08 09:48:37 +01:00
Max Paperno 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
3djc 91c00d0728 Cosmetics 2017-01-07 12:09:51 +01:00
3djc a05f20a829 3djc/x7: LS fix limits (#4204)
* X7 limits where wrong : for exemple, if you not set a compare value bigger than 15 in a logicial switch.

This fix it and also takes into account some radio settings (like extended limits)

* Take II

* Cosmetics

* Cosmetics

* Cosmetics (reverted from commit 2282c2633b6986ed999f898ef9611f236477ff7c)

* some #ifdef nightmare cleanup
2017-01-07 10:30:46 +01:00
Damjan Adamic 865ec6eca3 Remove extra NULL from OutputsWidget::options[] 2017-01-07 09:04:26 +01:00
Max Paperno 52b68c9ea2 [companion] Fix a few reasonable warnings brought up by MSVC /W3. (#4206) 2017-01-07 08:33:56 +01:00
Andre Bernet 51f186597c [companion] One more DLL was missing in distrib, fixes the long standing companion play sound issues on Windows 2017-01-06 14:48:57 +01:00
3djc bf549ace10 Merge pull request #4200 from opentx/3djc/Horus-optimize-plane-wiz
Move to image elements rather than full screen pictures
2017-01-06 09:53:09 +01:00
Andre Bernet e49bbfe91f Cleanup 2017-01-05 23:24:29 +01:00
Andre Bernet 0e65aad1a8 [companion] Distributing qm files is useless since we compile them in as qrc 2017-01-05 23:16:23 +01:00
Andre Bernet af34a1568f [companion] Don't disable standard buttons on printdialog 2017-01-05 23:01:28 +01:00
Andre Bernet c7e0bf23ad [companion] Fix Windows printing 2017-01-05 22:43: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
Andre Bernet 3b58ee8d3c Missing reference to CN translation 2017-01-05 20:58:19 +01:00
mhotar 0586c8fb05 horus wizard, image adjustments 2017-01-05 20:33:38 +01:00
3djc 51c5eba087 3djc/x7 custom scripts (#4201)
[X7] Custom scripts
2017-01-05 20:26:44 +01:00
3djc 540c56d8ab Move to image elements rather than full screen pictures, thanks to @Mhotar 2017-01-05 07:29:36 +01:00
Bertrand Songis fa5e5d670b [Simu] Revert to the good old keys until there is a compromise found
C is used for SWC
2017-01-04 18:33:31 +01:00
Bertrand Songis 0933a258e3 [Horus] Categories names were written in SMLSIZE when selected, that was weird 2017-01-04 18:32:08 +01:00
Bertrand Songis 1d9c9a6cdb Cosmetics 2017-01-04 18:31:10 +01:00
Bertrand Songis b77332e75a [Horus] Fixes #4177 2017-01-04 09:27:57 +01:00
3djc bdf3d17652 Move fix to a better place 2017-01-03 11:42:12 +01:00
3djc 406a568c2c This fixes #4191 while maintaining 2.1 and 2.2 taranis behavious (ie instant trim can go up to extended trim, ignoring if extending trim is activ or not) 2017-01-03 10:57:34 +01:00
Damjan Adamic 659f9e0556 Fixed a problem with MSVC 2017-01-02 22:36:46 +01:00
3djc f8c6b20a35 Add missing units (#4181)
* Add missing units

* Add import shift
2017-01-02 11:32:54 +01:00
Damjan Adamic 803dc7d853 Projectkk2glider/issue 4138 and other fixes (#4182)
* Fixed Companion translations cmake target

* Some translations had problems with string termination (missing or excessive " characters)

* Fixes #4138: Use [RTN] instead of [EXIT] on Horus

* Define spare bits if BUZZER is not defined
2017-01-02 11:31:55 +01:00
Damjan Adamic afe3d4a1e9 Custom OpenTX types moved to separate file opentx_types.h, fixes linker problem with lcdDrawBitmapPattern() in release build (#4188) 2017-01-02 11:29:20 +01:00
3djc 2a0a75a178 3djc/horus narrow arrows gap (#4183)
* Narrow gap between previous char and up and down arrow in STDSIZE

* Change font generator too and run it once

* Only apply to stdsize
2017-01-02 11:24:43 +01:00
3djc b931b0c85c Add handling of negative width (#4187) 2017-01-02 11:20:56 +01:00
Andre Bernet eb4508e12d [companion] Add zh_CN Chinese translation (fix #4179)
Fix lupdate working dir
2017-01-01 09:25:00 +01:00
Max Paperno bcdc4fef88 [libsimulator] Fix MSVC build. 2016-12-31 11:42:54 -05:00
Max Paperno ebdc73a421 [simulator] Fix standalone simulator radio type name in window title. 2016-12-30 19:12:20 -05:00
Max Paperno 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
3djc 1d3b6721c6 If no WIZARD are present, do not display anything (#4173)
* If no WIZARD are present, do not display anything

* Cosmetics

* More cosmetics ;)

* String cleanup

* Bertrand's feedbacks
2016-12-30 18:20:46 +01:00
Max Paperno 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
Raphael Coeffic 1666fd7355 lua: added EVT_MENU_LONG on Taranis (#3991) 2016-12-28 22:39:59 +01:00
joaquins 5e00436b79 Horus outputs widget: display channel name when available (issue #4145) (#4147)
* Display channel name instead of number, when name is non-empty

* Bars made full width, channel + name on left side, output value on right side. Background color added.

* Reverted redefinition of chanString, background color changed to BARGRAPH_BGCOLOR

* Added borders around bars

* Added BG border configuration. Refactored RECT_OFFSET into RECT_BORDER to allow easy change in border thickness.

* Fixed vertical line offset.

* BG settings affecting actual BG, not the border
2016-12-27 22:07:49 +01:00
Max Paperno e204031ef6 Standalone simulator startup options (#4164)
* [simulator] Save and restore Simulator window sizes and positions (based on current radio profile).

* [simulator] Set startup throttle stick lock in standalone sim based on default mode in current Companion radio profile;
  Add new flag indicating standalone simulator;
  Unique titles for simulator console windows.

* [simulator] New/updated Simulator startup options:
  Radio profile used for standalone Simulator can now be separate from Companion;
  Allow selecting a radio profile and EEPROM image file (in addition to radio type) at startup via GUI and CLI;
  All startup settings are saved between uses.
2016-12-27 22:04:24 +01:00
Damjan Adamic fd01376f1e Reduced Companion simulator CPU usage by a factor of 5. (#4167) 2016-12-27 22:00:23 +01:00
Andre Bernet 625babc55e Companion modification propagation fixes (Fix #4155 and #3254) 2016-12-24 11:31:57 +01:00
Max Paperno 8f74388ae1 [companion] Fix CP1252 Windows build warnings by reverting arrow character encoding (fixes https://github.com/opentx/opentx/pull/4154#discussion_r93789409) 2016-12-23 18:44:56 -05: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
Arne Schwabe 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
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
Max Paperno b0de35f57d Reduce width of all simulator windows (#4154)
* [simu] Reduce width of all simulator windows and also height of Horus window. (https://github.com/opentx/opentx/issues/3135)

* [simu] New vertical channel outputs layout for all simulators, all outputs in one window and horizontally scrollable. Consolidate outputs and gvars widgets to one code base for all sims. Make simulator dialog re-sizable.

* [simu] Make simulation dialog resizable, and greatly reduce minimum size requirements of all simulators. Introduces new VirtualJoystickWidget class with all controls. Simplifies every simulator dialog UI form.
2016-12-23 23:56:28 +01:00
Bertrand Songis df835da07d [X7] Typo 2016-12-23 23:51:51 +01:00
Bertrand Songis 74c03f0d4e [Horus] Companion default types for switches / pots / sliders 2016-12-23 23:49:51 +01:00
joaquins d9981b25d9 Fixes #4085: Horus simulator rotary control improvements (#4087)
* Fix for issue with trackpad & mouse wheel: Small movements up or down send delta=0, causing always events in the same direction.
* Changed keys to X,C
2016-12-23 20:13:00 +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
Andre Bernet 1b43d8993e [128x64] French translations 2016-12-20 00:30:36 +01:00
Andre Bernet ca7d82fc5b UI cosmetics 2016-12-20 00:17:50 +01:00
Bertrand Songis 226877ec1e [X7] SD Manager fix (when coming from Text view) - #4143 2016-12-19 23:58:25 +01:00
Andre Bernet cdc739a663 Forgot about poor old 9x 2016-12-19 23:26:32 +01:00
Bertrand Songis 7343ad0de5 Warnings removed 2016-12-19 23:20:11 +01:00
Bertrand Songis 7da9aa811a [TARANIS/HORUS] UNEXPECTED_SHUTDOWN() macro improved following @projectkk2glider advice 2016-12-19 23:11:37 +01:00
Andre Bernet 1d42d329cf Text view scroll for X9E 2016-12-19 22:37:30 +01:00
Andre Bernet a2a88ae8d2 [128x64] Fix LS V2 display format 2016-12-19 22:03:08 +01:00
Andre Bernet 6b80e6572b [128x64] Telemetry item handling in Reset SF 2016-12-19 21:31:14 +01:00
Andre Bernet 2b56ea70df [128x64] UI fixes, French translations 2016-12-19 21:26:12 +01:00
Bertrand Songis 86ee899905 [X7/X9/SKY9X] Bad handling of UNEXPECTED_SHUTDOWN ! 2016-12-19 19:44:32 +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
Bertrand Songis eb3da74331 [X7] Telemetry scripts terminated with [EXIT Long] - #4143 2016-12-19 17:50:03 +01:00
Andre Bernet aabbc375a3 Add dot and "W" to TINSIZE font 2016-12-18 20:20:39 +01:00
Bertrand Songis 2fdf621b2f Typo - Fixes #4149 2016-12-18 09:53:52 +01:00
Bertrand Songis fa0cc546e4 Compilation fix 2016-12-18 09:45:37 +01:00
Bertrand Songis 66fb949c82 [HORUS] Arbitrary limit for themes / layouts / widgets now removed 2016-12-17 23:33:47 +01:00
Max Paperno bce42bb25c Fix static initialization order problem with Horus GUI (#4141)
* [480x272] Fix static initialization order problem with Layout, Theme, & Widget factories.

* [480x272] Fix return from drawTimerMode().

* [480x272] Remove use of macros for registered Layout, Widget, & Theme class lists; remove extern declarations (cosmetic).

* [480x272] Convert Layout and Theme registry to dynamic lists (still max. of 10 each);
  Hide indicator arrow when user is at start/end of available widgets in spinner UI;
  Add some sanity checking to pointer usage in screens_setup;
  Add an (arbitrary) limit of 20 Widgets;
  And a line break! :)
2016-12-17 23:29:26 +01:00
Bertrand Songis d4d3d51a9d [X7] Sources / Switches popup menu fix - #4143 2016-12-17 23:26:35 +01:00
Bertrand Songis e99e47aeac [X7] Text view fix - #4143 2016-12-17 23:15:34 +01:00
Bertrand Songis 00ab6e2294 [X7] SH fix - #4143 2016-12-17 23:09:42 +01:00
Bertrand Songis ad8df76c37 [X7] Screenshots fix - #4143 2016-12-17 14:14:16 +01:00
Max Paperno 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 Paperno 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 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
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
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 a7e7050af3 2 new sensors parsed in sport-parse.py script 2016-12-16 18:52:44 +01:00
Bertrand Songis d35736732b [X7D] EEPROM support fixes 2016-12-16 07:29:14 +01:00
3djc e2a18d3fdc Deletion confirm changed from filename to modelname(filename) (#4100)
* Deletion confirm chnaged from filename to modelname(filename)

* Improvements based on Bsongis remarks

* Fix taranis confirm that was not displaying anything

* Got carried away, back to a simpler requirement

* Cosmetics

* Bertrand's feedbacks, take 2 :)

* Use reusable buffer
2016-12-15 20:14:33 +01:00
3djc 6e7eb99763 Typos 2016-12-15 19:07:31 +01:00
3djc 0c7c77706d Add X7 sdcard pack generation for nightlies22 (#4140) 2016-12-15 18:30:37 +01:00
3djc 822083300e X7 bootloader improvement (#4139) 2016-12-15 18:30:20 +01:00
Andre Bernet 1f46295c68 [128x64] Fix failsafe press-to-set 2016-12-13 15:29:54 +01:00
Andre Bernet 71a354c1a0 [X7] Too many horizontal lines completely screw the X7 LCD - removing the rectangle solves it, still clear enough 2016-12-13 15:22:20 +01:00
3djc 2dd220e1b9 Fix copy and move not happening on X9E (#4130) 2016-12-13 13:20:05 +01:00
Andre Bernet fbe11119b8 Fix battery bars on small screens 2016-12-13 12:34:36 +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
Bertrand Songis 7b5dfd7de5 [X9D/X7D] FrSky splash is now an option 2016-12-11 21:05:29 +01:00
Mike Morrison 4f47c13efc fix log playback when log frequency is .1s (#4115) 2016-12-11 20:36:30 +01:00
Damjan Adamic 4233e71954 Lua docs updated 2016-12-11 20:11:56 +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
Benjamin Boy aecf53b3e1 Fixed a problem with precesion 0,0 0,00 (#4120)
When precesion is set to 0,0 or 0,00 and the choosen value is 1,0 or 1,00 following happens:
eins meter
This is incorrect so i coded another part in the else part of "qr.rem > 0"  that checks if qr.quot is 1. If it is following happens now:
ein meter
2016-12-11 10:35:57 +01:00
Damjan Adamic 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
3djc c3238ee38c Port #4116 to Next (#4118)
Fixes #4103: SF repeat parameter was not reset when changing function type
2016-12-10 19:33:13 +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 98b695c284 [128x64] Fix and cleanup custom failsafe menu (Fix #4123) 2016-12-10 17:51:24 +01:00
Andre Bernet a747d99ec4 VC++ compilation 2016-12-10 11:24:50 +01:00
Andre Bernet 74a7ae3134 VC++ compilation 2016-12-10 10:35:41 +01:00
Andre Bernet 985541db50 Add X7D to build script 2016-12-10 09:34:43 +01:00
Andre Bernet e3cb1fe91b Merge branch 'kilrah/vc_mp' into next 2016-12-09 11:24:43 +01:00
Andre Bernet a743068fdc Compilation fix 2016-12-08 23:58:26 +01:00
3djc fe85290a18 Fix #4111 and fix capitalize issue (#4112) 2016-12-08 22:35:16 +01:00
Andre Bernet f99cba75d1 Enable multiprocessor compilation on windows 2016-12-08 22:31:00 +01:00
Arne Schwabe 85f3e3510e Update protocols of Multi module (#4093)
* Update protocols of Multi module

* Fix missing ;
2016-12-08 21:33:59 +01:00
Bertrand Songis ec56d2dbdb [Companion] MdiChild now use a QTreeWidget instead of a QListWidget (… (#4096)
* [Companion] MdiChild now use a QTreeWidget instead of a QListWidget (for Horus compatibility)

* [Companion] Horus models.txt parsing / writing implemented

* Fix for QT53 (#4109)
2016-12-08 21:26:08 +01:00
Arne Schwabe dd77670007 Also bundle avrdude in addition to dfu-util and default to the executables in the bundle (#4106) 2016-12-08 21:22:12 +01:00
3djc 3f4502d970 Fix ROT encoder nav for wizards (#4105) 2016-12-08 20:41:50 +01:00
Arne Schwabe 0c255572ec Enable hide according to http://doc.qt.io/qt-5/highdpi.html (#4110)
* Enable hide according to http://doc.qt.io/qt-5/highdpi.html

* Also enable Retina support for OS X
2016-12-08 20:38:39 +01:00
Bertrand Songis 59f3e1aea8 Cosmetics 2016-12-07 11:38:52 +01:00
Bertrand Songis 886f9661fd [All] Default value for GVARS option is OFF 2016-12-07 11:38:23 +01:00
Bertrand Songis 8326c867be [X7D] Compilation fix for DEBUG mode 2016-12-07 08:11:27 +01:00
Arne Schwabe d37eb70b42 Fix build on non Taranis ARM platforms 2016-12-06 22:42:11 +01:00
Damjan Adamic 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 9a6e64e67b [X7D] Prevents the user from selecting an external module when there is already a Wireless trainer module in the module bay 2016-12-06 20:30:23 +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
3djc 01c4ddb8e3 Fix BT compile (#4104) 2016-12-06 11:17:01 +01:00
Andre Bernet 2b01481151 [Taranis] MODELS directory was missing on SD card 2016-12-04 18:52:39 +01:00
Damjan Adamic 300b8ece4e CLI fix 2016-12-04 18:30:54 +01:00
3djc 119f3ef88c Fix tricky access to Horus settings (#4094) 2016-12-04 12:18:57 +01:00
3djc 3cd139b906 Update build-sdcard.sh
Keep version history for now
2016-12-03 18:58:57 +01:00
3djc e4848200a0 Update build-nightly.sh 2016-12-03 18:30:14 +01:00
3djc 75cbe0f984 Fix (#4090) 2016-12-03 15:53:30 +01:00
Bertrand Songis 9a43a6ebb7 [Sky9x] Remarks from @projectkk2glider taken into account 2016-12-03 11:15:40 +01:00
3djc 35e199b579 Prep for Nightly (#4089)
* Prep for Nightly

* Compile fix

* Much nicer :)

* One more

* Fix

* Last one

* Cosmetics
2016-12-03 09:36:51 +01:00
Bertrand Songis 862ff2f80d Compilation fix 2016-12-02 22:22:08 +01:00
Bertrand Songis 1512266eac [Companion] Horus fixes 2016-12-02 22:15:10 +01:00
Bertrand Songis 8cd581f770 [Companion] Horus fixes 2016-12-02 20:41:49 +01:00
Bertrand Songis 440ca771df [Companion] Horus analog input names fixed 2016-12-02 20:27:28 +01:00
Bertrand Songis c23ac292b7 [Companion] Horus simulator fixes 2016-12-02 19:56:41 +01:00
Bertrand Songis 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 1d192d9fd2 [Crossfire] LF instead of CRLF 2016-12-01 22:08:24 +01:00
Bertrand Songis 9229a08625 [Crossfire] Lua script fixes 2016-12-01 22:07:32 +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
Bertrand Songis a0ee52bb44 [X7D] Logical switches screen bugs 2016-12-01 18:26:34 +01:00
Bertrand Songis c5ae06c163 [X7D] Timer2 flashing when negative 2016-12-01 18:07:10 +01:00
3djc a5e8994028 Cosmetics 2016-11-30 12:01:42 +01:00
3djc 9f0f79469a 3djc/horus wizard plane (#4082)
* Introduce plane Wizard

* Simplify code
2016-11-30 11:51:23 +01:00
3djc 781ce1ea34 3djc/horus s6 r improvement (#4081)
* Progressive bitmap loading

* Cosmetics
2016-11-30 11:49:30 +01:00
Bertrand Songis 90cb917c24 [Horus] Compilation failed when LUA not defined 2016-11-30 07:55:32 +01:00
Bertrand Songis 702cd56aae Update CREDITS.txt 2016-11-29 23:17:26 +01:00
Bertrand Songis d59fc2999b [X7D/SKY9X] Order changed in About screens 2016-11-29 20:05:36 +01:00
Bertrand Songis f497c1169a [X7D/SKY9X] About screen bugs 2016-11-29 20:02:42 +01:00
Bertrand Songis 5b37b00e17 [X7D/SKY9X] Custom views bugs 2016-11-29 19:56:00 +01:00
Bertrand Songis c0a6f3f9e3 [X7D/SKY9X] Telemetry screen bug 2016-11-29 19:39:38 +01:00
Bertrand Songis 6cd031d2cc [X7D/SKY9X] Logical switches screen bugs 2016-11-29 19:34:58 +01:00
Bertrand Songis 9ab415dadb Cosmetics - translations alignment 2016-11-29 18:11:56 +01:00
Bertrand Songis 7ee85da0cf [X7D] Error message too long 2016-11-29 18:00:50 +01:00
Andre Bernet d052caf65a Horus Multimodule compilation fix 2016-11-29 12:08:57 +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
Mike Morrison ae383cd6a4 fixed fq777-124 and assan protocol selection 2016-11-28 10:48:02 +01:00
Bertrand Songis 510e2ea450 [Companion] Horus support missing the top bar and current view 2016-11-27 20:11:36 +01:00
Bertrand Songis 3c47da2b39 [Companion] .eepe files should be again OK 2016-11-27 19:45:41 +01:00
Arne Schwabe 7a8f8d611e [FlySky IBUS] Fix some sensor interpretation (#4077)
Also use SNR instead RSSI for FlySky since SNR gives a better indication of signal quality and also our current implementation of RSSI warning cannot really handle negative values
2016-11-27 18:50:46 +01:00
Bertrand Songis ee1f6e5bdc [Companion] It's now possible to create an empty Horus storage and simulate it (only the 1st model) 2016-11-27 14:47:01 +01:00
Bertrand Songis 8854cf9e87 [Companion] Horus models export for simulation now OK 2016-11-27 00:45:24 +01:00
Bertrand Songis 0ca0785912 [Companion] Another simplification 2016-11-24 07:24:49 +01:00
Bertrand Songis d82ec0fe9c [Companion] Unix format used everywhere 2016-11-23 16:46:56 +01:00
Bertrand Songis d5e4f7b6e9 [Companion] Unix format used everywhere 2016-11-23 16:42:24 +01:00
Bertrand Songis b0f5b646af [Companion] Copyright added to all files 2016-11-23 16:40:47 +01:00
Bertrand Songis 5f9737fc70 [Companion] Old EEPROM support removed 2016-11-23 16:40:47 +01:00
Bertrand Songis 9590b5f00e [Companion] Horus support. Now the GVars and Telemetry sensors 2016-11-23 16:40:46 +01:00
Bertrand Songis 343d6daf86 [Companion] Some refactoring around the splash image handling (#4067) 2016-11-23 08:46:22 +01:00
Arne Schwabe 9983ff9851 Add new sensors for Spektrum’s Serial Telemetry Receiver (SPM4649T) (#4037)
* Add new sensors for Spektrum’s Serial Telemetry Receiver (SPM4649T)

* Use define instead of hardcoded number
2016-11-22 21:08:39 +01:00
Jim Taylor 324addba2c Fix Issue 4057 for X9E also. (#4066) 2016-11-22 18:19:40 +01:00
Jim Taylor bda86d6e6a Fix issue 4957 Taranis splash screens formatted incorrectly. (#4064) 2016-11-22 07:40:38 +01:00
Bertrand Songis 380b42c57f [Companion] Horus support. Now the Logical switches, Special functions and Flight modes 2016-11-21 23:28:21 +01:00
Bertrand Songis a2dd222c9c [Companion] Horus support. Now the curves are OK 2016-11-21 22:36:29 +01:00
Bertrand Songis a3bff8cf61 [Companion] Code refactoring 2016-11-21 22:15:52 +01:00
3djc 03bb622456 Fine tune model select screen (#4059) 2016-11-21 21:11:10 +01:00
3djc a6bdf58619 Fix two column handling (#4061) 2016-11-21 20:09:09 +01:00
Bertrand Songis 4b84cd27b2 [Horus] Protection against buffer overflow 2016-11-21 18:40:22 +01:00
Bertrand Songis 34fa612f07 [Companion] Horus support continued
Now the inputs
2016-11-20 23:26:41 +01:00
Bertrand Songis aade6933ea [Companion] Horus support continued
Timers + Mixes should be OK now
2016-11-20 22:55:58 +01:00
Bertrand Songis ecb5416057 [Companion] Horus support started
We only have the model name of the 1st model, but that's a good start ;)
2016-11-20 22:49:26 +01:00
Bertrand Songis d42fc6c471 [Companion] Cosmetics in EEPROM import 2016-11-20 22:49:26 +01:00
Bertrand Songis f5e1b01cd3 [Horus] I really prefer when model name is aligned 2016-11-20 22:49:26 +01:00
Damjan Adamic 2763567122 Companion firmware options:
* layout changed to 4 columns
 * fixed broken options (by commit 51cb50151)
 * added missing "horussticks" for X9E
2016-11-20 18:37:58 +01:00
Bertrand Songis 286ef8bdc1 [ARM] Always 3 timers now 2016-11-20 11:38:55 +01:00
Bertrand Songis 51cb501510 [Companion] Firmware options simplification 2016-11-20 11:32:01 +01:00
Bertrand Songis b93b0a6500 [X7D/X9E] GVars display fixed (menus INPUTS / MIXES / OUTPUTS) (#4053) 2016-11-20 11:07:59 +01:00
Damjan Adamic 2d0a8a9611 Add display of detailed failure message when TX module firmware updat… (#4048)
* Add display of detailed failure message when TX module firmware update fails.

* Cosmetics
2016-11-19 23:25:22 +01:00
Bertrand Songis 147d042747 [Horus] XXL font is now 64px high 2016-11-19 20:49:06 +01:00
3djc 10914c741c Fix compile with gvars (#4046)
* Fix compile with gvars

* Rework
2016-11-19 20:47:04 +01:00
Thibault Jouan 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
3djc a35d6b6a05 3djc/horus fix #4041 (#4042)
* Reduce model name size until they fit into the buffer

* SMLSIZE is better (but cut is still needed)

* Rework screen layout to handle up to 15 chars

* Allow for the two scroolbars (models and cats)
2016-11-19 13:07:06 +01:00
Bertrand Songis a083342cda Fixes #3879 2016-11-19 12:35:12 +01:00
3djc e14d04b57d Revise column for mixer (#4045)
This fixes #4043
2016-11-19 12:27:22 +01:00
Bertrand Songis 796f0b75ff [X9E] Switch warning export issue 2016-11-18 22:52:31 +01:00
3djc 32581568d3 Follow up clean 2016-11-18 18:59:49 +01:00
3djc 6c006c3e2c Horus/fix #4036 (#4038)
* Remove 'static' from bitmapbuffer that where causing issues when changing theme. I have checked that this does not create extra sdcard access

* Cosmetics

* Move calibration bitmaps to theme

* Overlaping PR

* There no theme changing during shutdown

* Cosmetics
2016-11-18 18:51:11 +01:00
3djc d59fdc07c4 Catch up for Dark Blue theme (#4040) 2016-11-18 18:43:14 +01:00
Bertrand Songis 9582f76f91 [Crossfire] Lua script continued 2016-11-18 18:26:03 +01:00
Bertrand Songis a09565fcd6 [Crossfire] Lua script continued 2016-11-18 18:25:41 +01:00
Bertrand Songis c4582b45bb Fixes #3967 2016-11-17 23:22:44 +01:00
3djc cf10ab5f20 3djc/horus wizard (#4034)
* Initial commit

* Cosmetics

* Add dummy wizard for testing purposes

* Graphics enhancement by MHotar

* Only if LUA + cosmetics

* cosmetics on the sample wizards

* Remove warning
2016-11-17 23:13:56 +01:00
3djc e6e9d8eca1 Fix german units (#4032) 2016-11-17 23:13:09 +01:00
Martin Hotar ced1dc83b0 simulator22 horus buttons (#4035)
* horus simulator control buttons

* button polygon setPoints
2016-11-17 23:12:44 +01:00
Bertrand Songis a0a460087f Warnings removed 2016-11-17 09:49:07 +01:00
Bertrand Songis 905cb497d8 Remaining trace removed 2016-11-17 09:37:41 +01:00
Bertrand Songis 18f5ea37f5 Fixes #3953 - Tests needed! 2016-11-17 09:32:53 +01:00
Bertrand Songis 916d7038f7 Warning removed 2016-11-17 09:32:01 +01:00
Bertrand Songis c0fa5734ab Fixes #3969 2016-11-16 23:53:26 +01:00
Bertrand Songis 9fb6f7b5f5 Fixes #3996 2016-11-16 23:47:19 +01:00
Bertrand Songis 00447e5fe6 Fixes #3972 2016-11-16 23:23:20 +01:00
Damjan Adamic 4eac2e58a0 Added missing trainer detect pin initialization (Horus) 2016-11-16 21:32:14 +01:00
Damjan Adamic b95eaa147f Struct size checks adjusted for PCBSKY9X 2016-11-16 21:31:40 +01:00
Bertrand Songis 295f7f3a9f Compilation fix 2016-11-16 13:07:18 +01:00
Damjan Adamic 60524f77f0 Projectkk2glider/companion archive support (#4017)
* Files moved to thirdparty directory
* Miniz library added
* Unused simulators removed: er9x, th9x, ersky9x
* Example of opening archive file .eepe2 (File->Open)
* File reorganization, bunch of files moved to storage directory
* Added StorageSdcard class to handle storage for radios that use SD card to store radio settings and models
2016-11-16 13:05:57 +01:00
Bertrand Songis fb27acf286 Bsongis/x7d companion support (#4028)
[X7D] Companion support added
2016-11-16 12:59:15 +01:00
Jim Taylor 4dda2c64d3 Fix Issue 4026 - Companion 2.2 Model Setup still using SD card BMP (#4027)
directory instead of IMAGES directory for model images.
2016-11-16 08:38:17 +01:00
mhotar 83b81b4bb9 horus wizard images for @3djc 2016-11-15 21:57:45 +01:00
3djc 878c1bb80b Fix center stop that was not working when trim was changing from positive to negative (#4024) 2016-11-15 19:42:11 +01:00
Bertrand Songis d2a4ca1d12 Another fix for Mike's bootloader issue 2016-11-15 18:35:33 +01:00
Bertrand Songis 89504963a5 Dead code removed 2016-11-15 18:34:40 +01:00
Bertrand Songis e1815b576f Typo, Horus build was still fetching Mike's bootloader 2016-11-15 07:42:42 +01:00
Bertrand Songis 55ede8541b [9XR-PRO] Google tests OK 2016-11-14 23:52:37 +01:00
Bertrand Songis 8e77430cb1 [9XR-PRO] Warnings removed 2016-11-14 22:53:59 +01:00
Bertrand Songis 06e7e258e8 [9XR-PRO] UI Fixes 2016-11-14 22:36:04 +01:00
Bertrand Songis 10fe5530f9 Fix analog input order for sky9x (all flavors except REVA) 2016-11-14 21:42:52 +01:00
Bertrand Songis a46acf09e3 Mike's Bootloader was fetched for Horus 2016-11-14 18:16:18 +01:00
Bertrand Songis b2878e6ea6 Google tests didn't compile correctly on all platforms and it was not reported as an error 2016-11-14 18:08:56 +01:00
Bertrand Songis 26a35ebcee [9XR-PRO] CMake error when Mike's bootloader is not correctly downloaded 2016-11-13 20:28:29 +01:00
Arne Schwabe 6b57f7afa7 Add FlySky Telemetry (#3997)
Add FlySky Telemetry
2016-11-13 19:09:33 +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
3djc fd33cc9d2b This merges S6R dir on Taranis (two different lua still exist for config and calib) (#4020) 2016-11-13 11:20:37 +01:00
3djc 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 Adamic 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
3djc 5869b81e9c Rb10 support (#4015)
* Rb10 support

* Even more thorough check

* A simpler test for the more complex scenario :) (thx Bsongis :))
2016-11-11 19:55:53 +01:00
3djc c0837a59a6 Add back model bin name, currently needed if you want to use model notes (#3994)
* Add back model bin name, currently needed if you want to use model notes

* Turn into code graphics by Mhotar(tm)
2016-11-10 21:45:07 +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
Andre Bernet 23ee9d1d6b [Horus] An empty GF line would default to Override the first time it is used, but Override is not available in GFs. 2016-11-10 21:45:37 +04:00
Raphael Coeffic 95598e5de0 Merge pull request #4009 from opentx/raphaelcoeffic/lua_sport_buffer_query
lua: allow telemtry output buffer availability to be queried
2016-11-09 21:22:05 +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
Andre Bernet fd127e1ec2 Fix curve settings alignment (Fix #4006) 2016-11-09 09:36:50 +04:00
fraternl 80085cc76c NL translations (#4007)
* Added translation for expected version and delete error

* Some more translations

* consolidated "Toon Trims" to 1 string
2016-11-09 08:59:31 +04:00
fraternl a8940ede63 Added NL translation for expected version and delete error (#4004) 2016-11-08 18:56:16 +01:00
3djc b06d14b4c7 Add bottom mixer status bar when editing mixer (#4001)
* Add bottom mixer status bar when editing mixer

* Cosmetics
2016-11-08 15:32:29 +04:00
3djc 189c49f725 Merge pull request #3936 from rcbebo82/rcbebo82/de_spoken_language
German spoken language fixed.
2016-11-08 11:38:51 +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
Bertrand Songis 3b3b528bbf [Crossfire] Bind and OTA Rx firmware update now OK 2016-11-06 11:54:05 +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
Benjamin Boy a67135d139 Normal number 1 is spoken now as "eins" not "ein"!
All numbers should work now, anyone who can test the code?
2016-11-04 17:04:40 +01:00
Arne Schwabe 6b5d2039dc Add firmware-size target to ARM 2016-11-04 12:46:58 +01:00
Benjamin Boy 3e952be074 Precison 1 now also works. Could anyone else check the code? 2016-11-04 11:42:15 +01:00
3djc 2fcab1e8c5 Fix column alignment between text/digits (#3984) 2016-11-03 22:07:03 +01:00
3djc 00b23a4210 3djc/fix #3777 (#3986)
* Models notes where overwritten before even having a chance to be displayed

* Models notes where overwritten before even having a chance to be displayed (reverted from commit 0834894b61ed527c3c65d6356793a08ff6e3be6a)

* Delay the checks until after the main menu is launched to avoid the model notes to be overwritten even before appearing
2016-11-03 22:06:18 +01:00
Bertrand Songis 0318d63bf8 [X7D] Quick & dirty fix for special functions navigation which was broken 2016-11-03 22:01:30 +01:00
Bertrand Songis f01f588ad2 [SKY9X/AR9X/X7D] Main timer badly displayed 2016-11-03 18:24:00 +01:00
Bertrand Songis c52e9be3d5 [XFire] New function added to raise a warning popup 2016-11-02 22:13:45 +01:00
Damjan Adamic d2144001d1 Various fixes for gtests that were shown when running tests in random… (#3978)
* Various fixes for gtests that were shown when running tests in random sequence. Enabled random gtests shuffling in commit tests.

* 9X gtests fixes

* more gtests fixes

* even more gtests fixes

* Another round of gtests fixes

* Code deduplication with test fixtures

* More fixtures
2016-11-02 22:03:44 +01:00
Arne Schwabe 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
3djc b22bd1f315 3djc/fix #3965 (#3981)
* Introduce 'magnetic 0' for trims

* Removing magnetic 0 that could feel unnatural to a force to 0 when changing side

* Efficiency

* Optimise

* Optimise (reverted from commit 41fc09f0bd37dd4c3067f7406562ab68c07b22ca)

* Bertrand's feedback incorporated

* Another one (bites the dust ?)
2016-11-02 13:33:02 +01:00
Bertrand Songis 45a8cd94e7 [Crossfire] Lua script continued 2016-11-02 13:31:50 +01:00
Arne Schwabe a50d69c3b2 Mark gtest variables cached (#3980)
* Mark gtest variables cached

Set GTEST location variables as CACHE so they can be modified when gtest is in a different location from the cmake call (/usr/src, /usr/include is not writable on OS X)

* Uppercase location and write Google Test like Google does
2016-11-02 13:05:13 +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
Damjan Adamic a332f7a872 Fixes #3964: Added free space check before putting new data into Lua … (#3968)
* Fixes #3964: Added free space check before putting new data into Lua Telemetry Fifo

* Copy-paste error

* Compilation fix

* Another compilation fix
2016-11-02 12:56:43 +01:00
Florent Martel 450430f22e Provide getRSSI lua method (#3976) 2016-11-02 12:53:07 +01:00
Bertrand Songis 0fe85834ab [XFire] Crossfire parameters chunks support added 2016-11-02 12:50:17 +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
3djc 2974af5018 Make abs macro AVR specific. This fixes gcc >= 6.2 compile issues. (#3960)
* Make abs macro AVR specific. This fixes gcc >= 6.2 compile issues. Tested on gcc 6.2 and 4.9.2

* Since we are getting conflicting result, and only 4 byte diff, lets remove it altogether ! And yeah, there was that typo too ;)
2016-11-02 11:10:03 +01:00
Bertrand Songis c3f0b01307 [XFire] Telemetry parser script updated 2016-11-02 09:19:14 +01:00
Andre Bernet 8a9f541753 Merge pull request #3974 from craftandtheory/frsky_definescleanup
Simple cleanup of #if defined
2016-11-01 15:28:20 +04:00
floaledm 74df9778bb Simple cleanup of #if defined 2016-11-01 04:56:58 -05:00
Andre Bernet 8408c1017d Merge pull request #3971 from opentx/schwabe/show_commit_on_radio
Display commit on radio
2016-11-01 09:55:15 +04:00
Arne Schwabe bbcd5c9336 Explicilty set CMP0042 to NEW, which is the default anyway, to silence cmake warning on OS X 2016-11-01 01:19:42 +01:00
Arne Schwabe 798f5e6826 Display commit on radio
This makes it easier to diagnose which exact version is on a radio when dealing with build from source version
2016-10-31 21:32:15 +01:00
Damjan Adamic ff2fdacfb2 Fixes #3872: Companion export to Google Earth now converts feet to meters if GPS altitude is logged in feet. 2016-10-31 11:58:35 +01:00
Damjan Adamic 258b8adfb9 Fixes #3912: Deleting file in SD manager updates the list wrongly (Horus) 2016-10-31 11:07:44 +01:00
Damjan Adamic c043c377a7 Fixes #3935: overlapping display of EDGE logical switch parameters (Horus) 2016-10-30 16:50:50 +01:00
Damjan Adamic 37ea272bd4 Replaced all 1900 with TM_YEAR_BASE 2016-10-30 11:35:12 +01:00
Andre Bernet 6378c97b33 Companion works on WinXP again 2016-10-30 12:05:57 +04:00
Damjan Adamic 024b07a384 Incorrect unit was used for UNIT_CELLS in SD Logs 2016-10-29 21:28:04 +02:00
Damjan Adamic 88f8ea0e14 Merge pull request #3959 from opentx/schwabe/fix_clang_warnings2
Schwabe/fix clang warnings2
2016-10-27 20:21:03 +02:00
Bertrand Songis 8626c0728c [Companion] Fixes #3858 (#3958) 2016-10-27 20:12:45 +02:00
Arne Schwabe 1a9a23c420 Completely remove verify macro in favour of static_assert 2016-10-27 15:08:10 +02:00
Arne Schwabe ae01156598 Use static_assert instead of using homegrown macro 2016-10-27 14:59:01 +02:00
Arne Schwabe 2e65e745ee - Remove warnings about deprecated QStyleOptionView by using unversioned version
- Fix warning about converting strings.
2016-10-27 14:53:24 +02:00
Arne Schwabe 0b0059908c Abort cmake if leftover files of 2.1 are found (#3955)
This is becoming a FAQ. File selection might not be perfect but is good enough to trigger the error.
2016-10-26 20:36:58 +02:00
Arne Schwabe 92dde79dec New protocol and telemetry: FlySky AFHDS2A (#3948)
* New protocol for multimode FlySky AFHDS2A

* Also add AFHDS2A protocol to companion

* fix compile error
2016-10-25 22:51:34 +02:00
3djc d218b33609 Merge pull request #3950 from opentx/3djc/Horus-enable-perm-scripts
3djc/horus enable perm scripts
2016-10-24 09:04:15 +02:00
Damjan Adamic 0eba5c4c9c Added missing audio volume initialization (caused by ed07dd76ef) 2016-10-23 21:00:47 +02: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
Arne Schwabe e580927fc1 Add opentx os x build vm and allow more cores to be used for fast mac… (#3947)
* Add opentx os x build vm and allow more cores to be used for fast machines.
2016-10-23 13:18:26 +02:00
Arne Schwabe 73a7027eb9 [X9D] Allow toggling Haptic option for Taranis X9D (closes #3946) (#3949) 2016-10-23 12:28:18 +02:00
3djc ae47b1a4d1 Fix sdcard rev 2016-10-22 15:49:05 +02:00
3djc 566b6f1dfa Fix version for sdcard 2016-10-22 15:41:57 +02:00
3djc 3ad33410b1 Reuse firmware code location 2016-10-22 15:07:53 +02:00
Andre Bernet f8d5a7763a Merge pull request #3883 from opentx/schwabe/spektrum_dsm2_bind
Update OpenTX Multi code to match current DIY-MULTI module code
2016-10-21 20:32:09 +02:00
Damjan Adamic 17ebe560f6 Removed unneeded debug trace (audio) 2016-10-21 19:57:07 +02:00
Andre Bernet 978867d509 Merge branch 'next' into schwabe/spektrum_dsm2_bind
# Conflicts:
#	radio/src/translations/de.h.txt
2016-10-21 19:36:31 +02:00
Arne Schwabe 186634cc08 Change the companion bundle name to not include the version (#3943)
* Change the companion bundle name to not include the version

This show only up in the Apple Menu, a version numbers look really strange there. The title of the main window and CMD-TAB still show 2.2 there.

* Drop OpenTX instead of version
2016-10-21 19:24:23 +02:00
3djc a57298fc8f Fix path and names 2016-10-21 17:39:19 +02:00
Arne Schwabe e13dd6490d Rename "autobind" to "bind on powerup"
The autobind designation confused many users. Bind on power up should give more clarity
2016-10-21 17:14:01 +02:00
Arne Schwabe c4ad38670f Fix french translation and move custom protocol string in its own string 2016-10-21 17:00:59 +02:00
Damjan Adamic f4b54ea332 Fixes #3937: When executed from Special Functions, Flight Reset cause… (#3942)
* Fixes #3937: When executed from Special Functions, Flight Reset caused a GUI lockup

* Cosmetics
2016-10-21 12:16:33 +02:00
3djc 81e9fe5201 Standardize app naming 2016-10-21 10:48:37 +02:00
3djc 93d7e134b0 Since we do not have support for nl TTS, better not compile it 2016-10-21 09:40:27 +02:00
3djc e730bf1968 Port to next (#3941) 2016-10-21 09:24:21 +02:00
Bertrand Songis e8f043921f [Companion] Warning removed 2016-10-21 08:37:05 +02:00
Bertrand Songis d4b6ebd2fe [Companion] Warning removed 2016-10-21 00:19:28 +02:00
Arne Schwabe 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 ba824537d4 [Companion] Cosmetics 2016-10-20 21:14:34 +02:00
Bertrand Songis 3db86b2276 [Companion] Warning removed 2016-10-20 20:58:34 +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
Bertrand Songis 2b1c8ee783 [X7D] DMA write on adcValues overflow over rotary encoder value (rotary encoder was always moving) 2016-10-20 18:53:32 +02:00
Bertrand Songis 774bd48b47 [X7D] Audio volume initialization was not correctly done 2016-10-20 18:26:22 +02:00
Bertrand Songis ed07dd76ef [X7D] Audio volume initialization was not correctly done 2016-10-20 17:54:06 +02:00
Damjan Adamic 44133b595d Re #3815: Audio refactoring (#3926) 2016-10-19 22:56:25 +02:00
Arne Schwabe a19f4c78bf Fix building with precompiled QT (rpath fix), fix build-compaion.sh script 2016-10-19 22:26:29 +02:00
Bertrand Songis 9f67c0c49b [X7D] Software volume 2016-10-19 20:40:47 +02:00
Arne Schwabe 9a02e0b6b3 Schwabe/cpack osx (#3776)
* [Companion] Add logic to add background and DS_Store. Start with Cpack for OS X

* Major overhaul of the OpenTX packing for OS X

* Update DS_Store to not show toolbar (noticed by @Kilrah, thanks!)

* Minor fixes

* set BU_CHMOD_ITEMS to avoid packaging errors

* Rename the app to a nicer name on OS X (OpenTX Companion 2.2.app instead of companion.app)

* Embed dfu-util into bundle (first part of #3908)

* Fix showing status bar showing in disk image

* Workaround for CMAKE_OSX_DEPLOYMENT_TARGET
2016-10-19 18:00:27 +02:00
Benjamin Boy 236d3149ee German spoken language fixed.
Spoken numbers fixed:
100 -> "ein", "hundert"
1000 -> "ein", "tausend"
999 -> "9", "hundert", "99"

Timers:
60 seconds -> "eine", "minute"
3600 seconds -> "eine", "stunde"
120 seconds -> "2", "minuten"

Sound files needed to be generated because new words are used.
2016-10-19 14:17:15 +02:00
3djc 72bffae7fd Horus deserves it too ! (#3938) 2016-10-19 13:27:23 +02:00
Arne Schwabe 25a91076d6 Multiple fixes for German translation (#3930)
* Multiple fixes for German translation

* Add changes/better wording by @rcbebo82, thanks!

* Use less controversial translation for killed

* change all line ending to '\n'

* Also add translations from pull request #3929

* Fix too long strings for 128x64 UIs
2016-10-18 23:34:11 +02:00
Damjan Adamic 85f7a09b9c Fixes #3858: added edge detection to RESET and GVAR INC/DEC functions (#3921)
* Fixes #3858: added edge detection to RESET and GVAR INC/DEC functions

* Re #3858: Gtests added for Special Functions: FLIGHT_RESET and GVAR_INC

* Re #3858: Gtests fixed

* Re #3858: Gtests fixed 2
2016-10-18 18:19:11 +02:00
3djc b56a65cc1a 3djc/horus fix3924 (#3932)
* Forbid delete category when not empty. Add confirmation
This fixes #3924 and #3823

* Cosmetics
2016-10-18 18:18:00 +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
3djc eb24bbacbb Merge pull request #3916 from opentx/3djc/revise-sdcard-version
3djc/revise sdcard version
2016-10-18 10:38:07 +02:00
Bertrand Songis 407cc432f2 [X7D] Switches fixes 2016-10-18 00:06:50 +02:00
Bertrand Songis b85dcb9f85 [X7D] ADC fixes 2016-10-17 22:55:03 +02:00
Arne Schwabe 1aa6d113ee Remove DSM wrong PNRG since the multi will avoid ids that trigger this problem 2016-10-17 01:03:50 +02:00
3djc 325af01421 Cosmetics 2016-10-16 23:12:24 +02:00
Arne Schwabe 6bec8cef5a Stop bind on bind response received 2016-10-16 22:24:37 +02:00
Arne Schwabe f12ce22ade SFHSS also allows frequency fine tuning 2016-10-16 22:24:37 +02:00
Arne Schwabe a21d3e6f2e Fix sending number of dam channels, give DSM2 debug telemetry output a better name 2016-10-16 22:24:36 +02:00
Arne Schwabe 543a1d14e8 Port all Multi changes also to 9X and Horus UI 2016-10-16 22:24:36 +02:00
Arne Schwabe 4082a320b8 Fix also companion not use the CUSTOM protocol as normal protocol anymore. 2016-10-16 22:24:36 +02:00
Arne Schwabe 278e71d6f9 Fix the custom protocol logic for multi
There parts that were not handling custom vs non custom right
2016-10-16 22:24:18 +02:00
Arne Schwabe b56b7d06cb Allow Companion to read/write the change struct format and make reading/writing a bit cleaner 2016-10-16 22:17:38 +02:00
Arne Schwabe c055e93247 Rework DSM2/X support, auto protocol selection for DSM2
Support more than 31 protocols for the multi module. Breaks existing multi eeproms, need to reselect protocols
2016-10-16 22:17:38 +02:00
Arne Schwabe c592fed9f1 Implement the new multi protocols 2016-10-16 22:17:38 +02:00
Arne Schwabe bcf7b48359 Implement parsing the bind packet from DSM2 (untested) 2016-10-16 22:17:38 +02:00
Damjan Adamic b8e5d60fca Fixes #3580: GVAR Subtrim option only available on Taranis and Horus (thanks to elecpower) 2016-10-16 17:47:03 +02:00
3djc 41dc15f765 Wording and translations 2016-10-16 13:21:24 +02:00
3djc b2bf90be34 Revise (tentative) wording
Put back full version string
2016-10-16 13:02:07 +02:00
3djc cd2204893e Missing bits 2016-10-16 12:00:43 +02:00
3djc 3ef83348b1 Generate sdcard files zip with version number 2016-10-16 11:58:58 +02:00
3djc 2b61f674bb Displays required sdcard version on error 2016-10-16 11:45:06 +02:00
Bertrand Songis 52c4ab4c75 [X7D] LCD was upside down 2016-10-16 10:39:09 +02:00
lichtl adb4b122bb Fix #3837 - Fix wizard for non Horus (#3902)
* move WIZARD in correct folder

* remove lcd.lock function
2016-10-16 09:29:12 +02:00
3djc 26d2de18c2 Change default at model creation from XJT-D16 8CH to XJT-D16 16CH on … (#3913)
* Change default at model creation from XJT-D16 8CH to XJT-D16 16CH on Taranis and Horus

* Set defaultto 16CH also on protocol change

* External module on Taranis

* MACRO's are good for you

* They are so good they should be used everywhere !

* And everywhere also includes the 9X UIs!
2016-10-16 09:22:36 +02:00
Andre Bernet 504bb7a98c [Horus] Reset SF didn't handle telemetry sensors 2016-10-15 13:51:52 +02:00
3djc 8de57dc1a3 Prevent segfault on extended trim (#3907)
* Prevent segfault on extended trim
This fixes @3860

* Cosmetics
2016-10-15 10:33:56 +02:00
3djc 7e02981c52 Merge pull request #3906 from opentx/3djc/S6R-improvement
Use a less controversial wording + performance fixes.
2016-10-15 10:22:39 +02:00
Damjan Adamic b50fca5849 Move standalone simulator EEPROM back in user documents directory (changed in aec2170e7e) 2016-10-14 11:07:45 +02:00
Damjan Adamic 5ca9280627 Fixed: standalone simulator could not create directory for EEPROM file 2016-10-14 09:57:40 +02:00
3djc 253208d20e Merge pull request #3903 from opentx/3djc/XJT-Latency-info
3djc/xjt latency info
2016-10-14 08:13:22 +02:00
3djc b1d9011dae Improve Taranis as well 2016-10-14 07:31:26 +02:00
3djc c30d99a7e3 Use a less controversial wording + performance fixes.
This fixes #3905
2016-10-13 23:08:49 +02:00
Damjan Adamic 0c26cd0723 Fixes #3841: simulator EEPROM thread was not created in Release build 2016-10-13 16:10:04 +02:00
3djc 628c7150df proper handling of external module 2016-10-13 11:46:19 +02:00
3djc 233ce403de XJT lat for Taranis 2016-10-13 10:22:56 +02:00
3djc 2ff1a075b2 Display XJT latency on Horus 2016-10-13 10:13:29 +02:00
Damjan Adamic 10f3d1c4b7 WARNINGS_AS_ERRORS enabled in commit tests for X7D 2016-10-12 22:21:36 +02:00
Damjan Adamic 0d74148d70 Added WARNINGS_AS_ERRORS cmake option for radio firmware 2016-10-12 22:05:29 +02:00
Damjan Adamic e5a5a6319f Fixes for lua_exports generation 2016-10-12 21:20:24 +02:00
Bertrand Songis 85273d07c1 #3817 fixes 2016-10-12 18:12:12 +02:00
Andre Bernet ed2a232bda Allow selecting a model image from the SD manager (#3817) 2016-10-12 17:42:34 +02:00
3djc 515c122521 3djc/build revise handling sdcard.version (#3897)
* Move opentx.sdcard.version creation to server build process

* opentx.sdcard.version should not exist prior, but just in case ...
2016-10-12 17:38:24 +02:00
Bertrand Songis f0608f4837 Registered widgets limit removed (#3899) 2016-10-12 17:36:37 +02:00
3djc 7e8bebfaac S6R support (#3896) 2016-10-09 21:25:19 +02:00
Andre Bernet fcdab1ff4e Bump SD version on repo 2016-10-09 17:01:26 +02:00
3djc e7281c957c 3djc/add sdcard dir struct (#3894)
* Add taranis

* Add readme to folder structure

* Add templates

* Add directory structure for Horus

* remove snake for Horus

* No telem folder for Horus, use widgets instead

* Include some details on formats

* Improvement based on bsongis feedbacks

* Cosmetics

* sdcard version change required
2016-10-09 10:37:52 +02:00
Damjan Adamic 2dd8b8702f Re #3827: added mutex to getADC(), because adcRead() is not reentrant (#3889)
* Re #3827: added mutex to getADC(), because adcRead() is not reentrant

* Re #3827: alternative solution to prevent calling getADC() from different threads, because adcRead() is not reentrant

* Cosmetics
2016-10-08 22:09:25 +02:00
3djc 1e4470a007 Revert commit 7c6dd36ee1, which was preventing LEFT even when specified 2016-10-08 12:04:48 +02:00
Bertrand Songis 8c1231869e [Horus] S.PORT to Lua passthrough (#3810)
* [Horus] S.PORT to Lua passthrough

* Fixes. Still not tested

* Do not speak when we have nothing to say

* Move outputTelemetryBufferSize check earlier
2016-10-08 09:40:31 +02:00
Damjan Adamic 7509146a8f Fixes #2577: order of displayed GPS coordinates changed according to ISO 6709 (latitude before longitude) (#3878) 2016-10-08 09:39:46 +02:00
Arne Schwabe c4a1dc4c70 Add 'Z' as key to the rotary encoder emulation (#3881)
This helps us people with non AZERTY keyboards that have Z left to the X. Doesn't help German layouts with 'Y' next to 'X' but that key is already used as trim key.
2016-10-08 09:38:21 +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 c240042207 Merge pull request #3880 from opentx/3djc/lua-make-luaDrawNumber-consistent
Ensure default for luaDrawNumber is RIGHT for consistency with 2.1.x
2016-10-07 13:39:17 +02:00
3djc 0110578bfe Improve documentation 2016-10-07 11:21:12 +02:00
Arne Schwabe 3d9e2357c0 Make tools/commit-tests.sh work again on OS X 2016-10-07 11:10:49 +02:00
Arne Schwabe c41455aac4 Fix typo that breaks internal PPM for Taranis 2016-10-07 11:09:00 +02:00
3djc 7c6dd36ee1 Ensure default for luaDrawNumber is RIGHT for consistency with 2.1.x 2016-10-07 10:54:54 +02:00
Damjan Adamic def3ba9d66 S-PORT GPS parsing was wrong: latitude and longitude were exchanged with each other
Telemetry simulator latitude and longitude were exchanged with each other (reverted from commit e7f6d321dd)
2016-10-06 10:51:45 +02:00
Damjan Adamic e7f6d321dd Telemetry simulator latitude and longitude were exchanged with each other 2016-10-06 10:31:26 +02:00
Damjan Adamic f3c2a4db93 Fixed Frsky-D telemetry protocol GPS sensor, gtests added 2016-10-05 17:57:02 +02:00
Damjan Adamic 5157a9f33c Fixes #3843: GPS logging in decimal degrees format. Companion export to Google Earth fixed. 2016-10-05 17:57:02 +02:00
3djc 5864834661 Merge pull request #3876 from opentx/3djc/Horus-input-tidy-up
Tidy up column spacing
2016-10-05 11:09:46 +02:00
3djc c766d44bbd Tidy up column spacing 2016-10-05 10:21:02 +02:00
Arne Schwabe 850f41df42 Compilation fix for Clang/OS X 2016-10-03 23:39:46 +02:00
3djc b8985b9d19 Fix indexing in outputs (listed bug was also affected copy sticks/trims to subtrims) (#3871)
Fix #3870
2016-10-03 15:03:32 +02:00
Damjan Adamic 29e618146c Taranis compilation fixes 2016-10-02 17:43:01 +02:00
Damjan Adamic 2a8629c670 Fixes #3826: disable Lua platform optimizations (lua_number2integer() behaves the same way on all platforms) 2016-10-02 17:00:03 +02:00
3djc 689587c2e0 Merge pull request #3848 from rcbebo82/patch-3
Update tts_de.py
2016-09-27 10:14:27 +02:00
Benjamin Boy b95deeee9f Update tts_de.py
Final change for trims.
2016-09-26 21:37:24 +02:00
Benjamin Boy 33608b3eb2 Update tts_de.py
Changed Endtrim and Mintrim to the same spoken words.
2016-09-26 15:55:12 +02:00
Benjamin Boy 069576515d Update tts_de.py 2016-09-26 14:24:48 +02:00
3djc 670a832985 Bug fix for X9E (FM all active at the same time in special funcitons) (#3854)
* Bug fix for X9E (FM all active at the same time in special funcitons)

* Fix the fix
2016-09-25 09:36:44 +02:00
3djc 435346ce3a Merge pull request #3850 from opentx/3djc/companion-fixes-port2-next
Port fixes by elecpower to next
2016-09-24 14:12:29 +02:00
3djc 88177572fc Port fixes by electpower to next
Fixed #3662
2016-09-24 13:05:07 +02:00
Benjamin Boy f00d5d9417 Update tts_de.py
Translated crow to "Butterfly", changed filenames accordingly to the english ones so its possible to change from english to german without the need of editing the Special Functions section per model.
Removed "Minimale Trimmung", in my opinion this makes no sense a trim only can be at maximum or at center.
2016-09-23 13:58:53 +02:00
Bertrand Songis 013a5c06e6 [X7D] Impossible to play a wav file from the SD File Manager 2016-09-23 07:03:15 +02:00
3djc ad8394cbd3 Merge pull request #3842 from opentx/3djc/fix-3774
Companion bugfix
2016-09-22 09:51:08 +02:00
3djc b1332c6494 Port to next work by Elecpower: https://github.com/opentx/opentx/pull/3838 2016-09-22 07:43:24 +02:00
Damjan Adamic fa174a8279 CLI cosmetics 2016-09-20 21:58:25 +02:00
Damjan Adamic f03837f45d Fixes #3836: if multi-block SD read fails, fall back to the single block reads [Horus] 2016-09-20 21:12:43 +02:00
Damjan Adamic 444d552d5a CLI improvements:
* repeat last command on empty line input
 * added SD card read test [testsd] (multi block read of last sectors)
2016-09-20 20:04:02 +02:00
Damjan Adamic 3b10c28b66 SD timeouts increased [Horus] 2016-09-19 22:07:05 +02:00
Damjan Adamic 3fddb28c4f CLI readsd fixes 2016-09-19 22:07:05 +02:00
Damjan Adamic ac85678616 Disk cache debug traces fix 2016-09-19 22:07:05 +02:00
mhotar 2ab636b9ed CZ translations 2016-09-19 22:02:17 +02:00
mhotar f4e5d27b6c CZ translations 2016-09-19 21:59:38 +02:00
mhotar 562f33e224 CZ translations 2016-09-19 21:43:34 +02:00
3djc e82ff230a5 Allow timer up to the max the timer can handle (#3830) 2016-09-19 21:00:18 +02:00
3djc 0a5b357bab Add (again ?) saving perstistanttimers/pot/sensoors on Horus model change (#3829) 2016-09-19 20:59:33 +02:00
3djc 9b6217e1c3 S6R : Add nice graphics by mhotar (#3831)
* Add nice graphics by mhotar

* Cosmetics
2016-09-19 20:58:26 +02:00
Damjan Adamic d12015e91d Sector size fix for non SD-HC cards [Horus] 2016-09-18 23:03:05 +02:00
3djc f675506bc6 3djc/taranis improve s6 r (#3825)
* Step 1 : calibration

* Step 2 : remove calib for main LUA

* Clean BMP
2016-09-18 15:59:55 +02:00
3djc 3107bbb88b Insert a calibration complete step and move bmp to folder (#3819) 2016-09-17 21:50:25 +02:00
Damjan Adamic 91cea45a43 Audio fixes (#3818)
* * Switches audio filenames were wrong [Horus]
* sdAvailableLogicalSwitchAudioFiles was too small (we now have 64 LSW), fixed with BitFiled class

* Enabled Travis Gtests on Horus

* SD card version mismatch trace

* Re #3815: Audio debug timers added
2016-09-17 21:49:52 +02:00
3djc 9a40902c9d Fix too happy Travis 2016-09-17 12:08:56 +02:00
3djc 7bfb213687 Allow sdcard version change from cmake (#3816)
* Allow sdcard version change from cmake

* Make it sdcard version check ARM only

* Move to common ARM
2016-09-17 08:53:01 +02:00
3djc 6c38dcc885 Sound filemane too long 2016-09-16 13:21:23 +02:00
3djc 04ead96133 Typo, thx Kilrah 2016-09-16 10:36:38 +02:00
3djc 5254f0cc7b Make linux Companion happy 2016-09-16 08:58:45 +02:00
mhotar 980f8c52e8 CZ partial cz translation 2016-09-15 21:41:08 +02:00
Bertrand Songis 298716189e Cosmetics 2016-09-15 19:30:54 +02:00
Bertrand Songis 7635f9d91e Warning fixed 2016-09-15 19:30:24 +02:00
3djc 64748a6339 Cosmetics 2016-09-15 18:17:15 +02:00
3djc 8f54e3188e Merge pull request #3809 from rcbebo82/patch-1
Update tts_de.py
2016-09-15 18:11:44 +02:00
Benjamin Boy de67a9c215 Update tts_de.py 2016-09-15 17:00:22 +02:00
Benjamin Boy 584c9b592c Update tts_de.py 2016-09-15 16:46:47 +02:00
Benjamin Boy 5f80f9b246 Update tts_de.py
Some Translation Errors corrected.
2016-09-15 16:44:05 +02:00
3djc 740356c4c2 Tested ok on X9E and HORUS dev, more test needed (#3802) 2016-09-14 18:59:08 +02:00
3djc 576c148b9c Add X12S keypad FIRST events to LUA (#3801)
* Add X12S keypad FIRST events to LUA

* X9E fix
2016-09-14 18:57:45 +02:00
3djc 8bafdb1725 3djc/faster local commit tests (#3800)
* Allow passing desired core usage for commit-tests (speed up local execution)

* Cosmetics

* Cosmetics

* Allow make style -j8 as well

* Looks better like this I think
2016-09-14 18:55:37 +02:00
3djc bbb2fe2dbc Merge pull request #3796 from opentx/3djc/Horus-fix-model-setup-pots
Fix model setup screen for Horus of pots and slides checks handling
2016-09-14 08:15:40 +02:00
3djc b4f957a166 Cosmetics 2016-09-14 08:01:07 +02:00
3djc 856cddbc84 Fix model setup screen for Horus of pots and slides checks handling
Note : this fix only the UI, another PR will fix behaviour
2016-09-13 20:21:37 +02:00
Bertrand Songis edee15b21d Typos 2016-09-13 20:16:48 +02:00
Bertrand Songis dbd47737cb Compilation fix 2016-09-13 19:39:23 +02:00
Bertrand Songis c3a07675e4 Compilation fix 2016-09-13 18:48:35 +02:00
Bertrand Songis 2b32abe467 [ARM boards] Model persistent timers / telemetry / pots positions were not always correctly saved 2016-09-13 18:35:03 +02:00
Bertrand Songis 4a88d3477d Fixes #3766 2016-09-13 18:31:57 +02:00
Damjan Adamic acebc53470 Fixes #3782: nl translations updated (by fraternl) 2016-09-12 21:22:53 +02:00
Bertrand Songis d44f98d677 Fixes #3770 2016-09-12 18:32:26 +02:00
3djc 4d44eb97f5 Add rotary encoder support (#3792) 2016-09-12 11:49:58 +02:00
Bertrand Songis 1684256ed2 Merge pull request #3791 from opentx/3djc/LUA-move-evt-to-event_t
Move lua evt param from signed uint8_t to unsigned event_t
2016-09-12 07:41:59 +02:00
3djc d84fd993c9 Move lua evt param from signed uint8_t to unsigned event_t 2016-09-12 07:20:06 +02:00
Bertrand Songis 0f217b3507 Compilation fix 2016-09-11 23:34:49 +02:00
Bertrand Songis 8a31c1d555 Merge pull request #3789 from opentx/projectkk2glider/issue_3771_sd_lockup
Projectkk2glider/issue 3771 sd lockup
2016-09-11 22:36:01 +02:00
Damjan Adamic 038c997b8f Disable GPS messages that are not needed
GPS RTC sync fixes
2016-09-11 21:53:45 +02:00
Damjan Adamic cb08d37369 Interrupts must stay enabled on Horus when pushing audio buffer from audio thread (this affected 1ms interrupt) 2016-09-11 21:53:45 +02:00
Damjan Adamic 0076dd99e0 SDIO timeout fixes 2016-09-11 21:53:44 +02:00
Damjan Adamic e229c8f8e7 Log file moved to RAM and aligned for proper DMA access. Log functions renamed. 2016-09-11 21:37:54 +02:00
Damjan Adamic 6ddb9e414f Getting rid of sdMountPoll() on ARM 2016-09-11 21:37:54 +02:00
Damjan Adamic 183b24086a Trace installed 2016-09-11 21:37:54 +02:00
Bertrand Songis 4d03db1c49 Merge pull request #3787 from opentx/3djc/Horus-fix-hard-setup
Fix column handling
2016-09-11 18:36:19 +02:00
Bertrand Songis c15b35fff2 Merge pull request #3786 from opentx/3djc/TARANIS-Fix-Pots-checks
3djc/taranis fix pots checks
2016-09-11 18:35:51 +02:00
3djc de479fe6fc Fix column handling 2016-09-11 13:50:45 +02:00
Andre Bernet 0d12832d30 Revert "[Horus] Fixes #3770 - needs tests"
This reverts commit f131c79b87.
2016-09-11 13:41:53 +02:00
3djc 5590feac0f Make column handling consistent. Simu tested on x9d, x9d+, x9e 2016-09-11 13:14:03 +02:00
Damjan Adamic 8e3a228fc9 Cleanup 3 2016-09-11 11:21:58 +02:00
Damjan Adamic 8899d70e08 Cleanup 2 2016-09-11 11:05:33 +02:00
Damjan Adamic 3653b06ad9 Cleanup 2016-09-11 10:58:59 +02:00
3djc 60dc0cc68c Fixes 2016-09-11 09:39:06 +02:00
3djc c9b590465c Fix 2016-09-10 20:14:01 +02:00
3djc 3b5e5ebfa3 The 4 sliders are now treated equally :)
WARNING :
-you WILL need to go in hardware menu to add the 2 missing sliders .
definition
- you also NEED to go to calibration (where you will now see the 4 sliders)
2016-09-10 19:31:18 +02:00
mhotar 35ebe455c0 CZ tts updated 2016-09-10 19:00:46 +02:00
Damjan Adamic 294611c457 Fixes #3772: USB Joystick channels were mapped incorrectly on Horus 2016-09-10 12:06:51 +02:00
3djc df7882e14f Yes, commit-check would have been a good idea :s 2016-09-10 11:12:45 +02:00
3djc 19fd1f2556 Finaly working on X9E, tested both man and auto 2016-09-10 10:40:54 +02:00
Bertrand Songis 95fc89ec67 Merge pull request #3779 from opentx/mhotar/fullczcharset
Reduced anf full cz charset for Horus and the others
2016-09-09 21:51:13 +02:00
3djc 42cdf71b8d Change language directly 2016-09-09 20:46:28 +02:00
3djc 77010ee7e3 TRACE test 2016-09-09 20:41:48 +02:00
3djc 6769dab121 NOT HORUS = cz_reduced 2016-09-09 09:13:55 +02:00
Arne Schwabe c0cc4e250e Fix polarity for last pulse with DSM2/Multi
The DSM/Multi timing changed the index to begin with 0 instead of 1 and that broke the putDSM2Flush logic
2016-09-08 23:01:13 +02:00
Bertrand Songis a61c206c38 Merge pull request #3778 from opentx/schwabe/fix_pulses_timing
Fix timing of Multi and DSM2 protocol
2016-09-08 21:26:28 +02:00
Arne Schwabe de3db6eec0 Fix timing of Multi and DSM2 protocol
We send an extra stopbit and the logic for driving the transistor was swapped. Thanks Mike for noticing (http://www.rcgroups.com/forums/showpost.php?p=35671709&postcount=5151)
2016-09-08 20:24:22 +02:00
Arne Schwabe 753b12f886 Compile fix for gcc 5 2016-09-08 20:23:39 +02:00
3djc 833d6a6b27 Add some missing plural forms, increment audio version 2016-09-08 08:52:51 +02:00
Bertrand Songis 4343bd9826 [Crossfire] Tx power enum was displayed instead of real value 2016-09-08 06:43:34 +02:00
Andre Bernet 15f62be1db Cosmetics 2016-09-07 19:19:15 +02:00
mhotar 610762a89d blue theme images 2016-09-06 22:40:17 +02:00
Bertrand Songis f131c79b87 [Horus] Fixes #3770 - needs tests 2016-09-06 20:12:24 +02:00
Bertrand Songis 3156dd3040 [Horus] Display problem in INPUT screen (no scroll) 2016-09-06 19:53:58 +02:00
mhotar f2218fa44d dmg background 2016-09-06 16:50:14 +02:00
Bertrand Songis a5e8deabac Merge pull request #3744 from opentx/schwabe/multi_new_protocols
Add new protocols supported by the DIY Multi module
2016-09-05 22:14:27 +02:00
Bertrand Songis 250bcde474 Merge pull request #3765 from opentx/3djc/Horus-add-timer3
Add timer3 as default on Horus
2016-09-05 22:12:58 +02:00
Bertrand Songis 1ac835d420 Cosmetics 2016-09-05 22:11:48 +02:00
3djc db326b6723 Make timer3 default for all arm boards 2016-09-05 20:20:19 +02:00
Bertrand Songis 9d94f26ed6 Merge pull request #3756 from opentx/projectkk2glider/gps_clock_to_rtc_improvements
Projectkk2glider/gps clock to rtc improvements
2016-09-05 19:44:09 +02:00
Bertrand Songis 5dd46afaac Merge pull request #3767 from opentx/schwabe/pxx_own_struct
[Horus] Give pxx its own substruct instead of using ppm (cosmetics)
2016-09-05 19:34:47 +02:00
Bertrand Songis cc2c2b094e [Horus] S.PORT devices update should work (not tested)
[Horus] SD Manager files renaming fixed (quick & dirty, I would prefer a popup)
2016-09-05 19:33:06 +02:00
Arne Schwabe c16317609f [Horus] Give pxx its own substruct instead of using ppm (cosmetics) 2016-09-05 15:57:27 +02:00
Arne Schwabe 17adab3177 Telemetry on MULTI default to FrSky Hub telemetry, not smartport 2016-09-05 15:47:11 +02:00
3djc 209f8d646c Add timer3 as default on Horus 2016-09-05 10:20:04 +02:00
Bertrand Songis fd138cf22a [X7D] Compilation fix 2016-09-04 22:27:36 +02:00
Bertrand Songis d178982ec5 Cosmetics 2016-09-04 20:10:16 +02:00
Bertrand Songis 9a525f453b [HORUS] Bigger checkboxes 2016-09-04 20:05:51 +02:00
Bertrand Songis 04651784b5 [X9D+] S3 not available if disabled in HARDWARE menu 2016-09-04 20:05:51 +02:00
Bertrand Songis 7100eb990e Merge pull request #3759 from opentx/3djc/Fix#3757
Fix #3757
2016-09-04 20:03:04 +02:00
3djc 3d1a35c41f The simu needs it too 2016-09-04 18:54:20 +02:00
3djc 7be125ee4d Fix #3757 2016-09-04 18:20:38 +02:00
Bertrand Songis 75fe828e21 [X9D+] SH was not working anymore 2016-09-04 16:32:15 +02:00
Bertrand Songis ba74f3e61c [X9D] Fixes #3758 (not tested) 2016-09-04 00:03:32 +02:00
Damjan Adamic 61e6e63856 Missing menu itema and compilation fix 2016-09-02 23:25:05 +02:00
Damjan Adamic 874483ba55 Compilation fixes 2016-09-02 23:07:58 +02:00
Damjan Adamic bbadf9064a Compilation fix 2016-09-02 22:48:20 +02:00
Damjan Adamic 37df6f1968 * GPS sensor date/time now kept in UTC (previous conversion to local time was wrong)
* internal GPS sensor can now set RTC clock [Horus]
2016-09-02 22:35:54 +02:00
Damjan Adamic f9a5c99f29 Code style fixes (uncrustify + manual) 2016-09-02 21:18:19 +02:00
Damjan Adamic d8a00c3f3d * Code refactoring for GPS to RTC clock
* Enabled GPS adjust RTC option for Horus
* Moved sensor ID to the right to allow display of GPS date/time in Telemetry screen
2016-09-02 20:47:56 +02:00
Bertrand Songis 2463a077b6 [Horus] Delay reduced for each step during calibration of the 6POS switch 2016-09-02 19:23:47 +02:00
Bertrand Songis 712be64016 [Horus] Cosmetics 2016-09-02 19:22:53 +02:00
Bertrand Songis b1cf4da7bb [Horus] Optimization for the Model Select screen (proxy design pattern) 2016-09-02 18:55:33 +02:00
Bertrand Songis aecf70158e Cosmetics 2016-09-02 18:54:32 +02:00
Bertrand Songis 3763552f4a Cosmetics 2016-09-02 18:53:36 +02:00
Bertrand Songis 061e163a62 [Horus + Taranis] Navigation improvement in the Trainer menu 2016-09-02 18:51:56 +02:00
Bertrand Songis 6225c048ef [Taranis] Display problem in the Mixer screen 2016-09-02 18:50:55 +02:00
3djc 07c4563764 Adjust languages for DB (#3754) 2016-09-02 17:49:05 +02:00
3djc 7bb5ece2c6 Regenerate sdcard pack only on opentx.sdcard.version change 2016-09-02 17:41:10 +02:00
3djc 580e4e71eb Sound generation change now ready to run 2016-09-02 10:13:54 +02:00
3djc 64b7369a51 FIX 2016-09-02 09:55:00 +02:00
3djc c089be96f5 Fix path on server 2016-09-02 09:52:25 +02:00
3djc 6ea6c2c8f1 Change sound generation for nightly to linux based 2016-09-02 09:46:38 +02:00
3djc 76def1195f Temporary disable sdcard regen on nightly 2016-09-01 23:58:33 +02:00
Andre Bernet 304445cd9d Reenable GPS 2016-09-01 23:57:11 +02:00
Andre Bernet b04452e6f9 [Horus] Fix backlight on beta again 2016-09-01 23:44:09 +02:00
Bertrand Songis 080891db7b [Horus] Better fix for Backlight on BETA boards 2016-09-01 23:26:56 +02:00
Bertrand Songis 98944e9cee [Horus] BL on BETA boards fixed 2016-09-01 23:06:20 +02:00
Bertrand Songis a9fcf514a1 Cosmetics 2016-09-01 22:48:28 +02:00
Bertrand Songis 6872f85c52 [Horus] Warning fixed 2016-09-01 22:46:10 +02:00
mhotar d30c7cc97d One CZ char was duplicated in translate.py 2016-09-01 21:02:08 +02:00
Bertrand Songis 16f2681050 [Horus] BL better like this on BETA boards? 2016-09-01 19:52:03 +02:00
Bertrand Songis c882095a81 Compilation fix 2016-09-01 19:43:29 +02:00
Bertrand Songis d5235d586d Cosmetics 2016-09-01 19:42:55 +02:00
Bertrand Songis 7a6e870f55 [HORUS] Backlight flickering on PROD radios 2016-09-01 19:42:37 +02:00
Bertrand Songis a3f42fb89f [ARM boards] S.PORT GPS was completely broken 2016-09-01 19:01:49 +02:00
Bertrand Songis ed70813e5f [Horus] DBLKEYS implemented (same keys than the 9X) 2016-09-01 19:00:47 +02:00
Bertrand Songis 70846d4add [Horus] GPS display fix 2016-09-01 19:00:12 +02:00
Bertrand Songis bf43aa839e [Horus] CZ font 2016-09-01 18:54:21 +02:00
Arne Schwabe e1a60b801a Add new protocols supported by the DIY Multi module 2016-09-01 13:09:13 +02:00
Andre Bernet caf0fca1c2 Fix #3743 2016-09-01 11:15:28 +02:00
Andre Bernet 723e4bf9c7 Temporarily disable buggy GPS lat/lon and time/date sensors 2016-09-01 08:51:58 +02:00
Andre Bernet 77d85b73bc Available audio files need to be listed again after a mass storage session 2016-09-01 00:18:08 +02:00
Bertrand Songis 4221bfdf74 [Horus] Attempt to fix the problem with some files after a massstorage session 2016-08-31 23:54:43 +02:00
Andre Bernet 76f0b306aa Fix timer display 2016-08-31 23:54:30 +02:00
Bertrand Songis fae55a21c6 [Horus] BOLD on the whole GVAR column (not only refs to other FMs) 2016-08-31 23:30:36 +02:00
Andre Bernet 55b3ea9b42 (untested) Merge remote-tracking branch 'origin/schwabe/fraternl_translation_3788' into next
# Conflicts:
#	radio/src/translations/nl.h.txt
2016-08-31 23:22:19 +02:00
Andre Bernet aaf7f67ebb Add getRAS to Lua interface (#3742)
* Add getRAS lua function

* Add warning

* Return nil is case of bad antenna

* Check for valid SWR

* Typo

* Cosmetic

* Clarify that it is 0x33
2016-08-31 23:12:18 +02:00
Bertrand Songis 830593d62e [Horus] SD hot mount if removed when the radio is ON 2016-08-31 23:06:39 +02:00
Andre Bernet 90e8748e12 Backlight in fatal error screen 2016-08-31 22:59:50 +02:00
Bertrand Songis 77065c7cfb Merge pull request #3740 from craftandtheory/next
Haptic feedback in lua scripts
2016-08-31 22:21:07 +02:00
Bertrand Songis f37c695590 Merge pull request #3741 from opentx/3djc/companion-disable-Horus
3djc/companion disable horus
2016-08-31 22:18:18 +02:00
Andre Bernet f6b43ae40f Don't leave a big dangling array... 2016-08-31 22:11:00 +02:00
floaledm 29642e379f Haptic feedback in lua scripts 2016-08-31 15:01:31 -05:00
Andre Bernet 37a0258b19 No more 2MB array on the stack 2016-08-31 21:57:53 +02:00
Andre Bernet 38886e31a4 Multipos improvements 2016-08-31 21:48:24 +02:00
Bertrand Songis 9639be152d [Horus] CZ fonts 2016-08-31 21:36:09 +02:00
mhotar 7e296db599 full cz charset for horus 2016-08-31 21:33:37 +02:00
Bertrand Songis 9c966515f2 [Horus] Fonts build error 2016-08-31 21:33:05 +02:00
Bertrand Songis 4e576efdd7 [Horus] Pots / Sliders default config was wrong. Is it better? 2016-08-31 19:48:17 +02:00
Andre Bernet c994260c85 Arguably cleaner flash size retrieval 2016-08-31 14:28:14 +02:00
3djc 03c969fa3c MAX_FSIZE moved to Horus max
dfu args adjusted for Horus
2016-08-31 12:28:02 +02:00
3djc 161f3be468 Fix FSIZE for Horus 2016-08-31 12:07:51 +02:00
3djc 842eb3e93a Prevent flash read 2016-08-31 11:09:43 +02:00
Andre Bernet 6bdb40ec81 Recent files fix 2016-08-31 10:50:44 +02:00
3djc fc4b43dfb1 Disable drag drop 2016-08-31 10:38:45 +02:00
3djc 2ebd89159c Recent files fix 2016-08-31 10:23:24 +02:00
3djc 585302d8a9 Disable recent file 2016-08-31 10:00:56 +02:00
3djc a8394b6400 Cosmetic 2016-08-31 09:26:37 +02:00
3djc 8de9f8e826 Disable Horus 2016-08-31 09:26:37 +02:00
Bertrand Songis f97eda2b4f Horus internal GPS: settable baudrate, misc fixes, new cmake options,… (#3736)
* Horus internal GPS: settable baudrate, misc fixes, new cmake options, cosmetics, cli

* Horus internal GPS: cmake changes, more CLI options, ability to send commands to the module

* Compilation fixes
2016-08-31 06:48:28 +02:00
Bertrand Songis e79258d8a2 [Horus] GVARS love 2016-08-31 01:06:25 +02:00
Bertrand Songis ca5c20abe3 getCPUUniqueId moved to STM32 common code 2016-08-31 01:06:00 +02:00
Bertrand Songis 82b9ecc155 [Horus] Refactoring for the new fatal errors 2016-08-31 01:04:11 +02:00
Damjan Adamic 590b0eaab7 Compilation fixes 2016-08-30 21:55:09 +02:00
Damjan Adamic ff37274e64 Horus internal GPS: cmake changes, more CLI options, ability to send commands to the module 2016-08-30 21:23:20 +02:00
Bertrand Songis 855814655e Cosmetics 2016-08-30 18:33:15 +02:00
Arne Schwabe 75b74da2bd Add translations from fraternl 2016-08-30 13:15:06 +02:00
Andre Bernet 7656450597 Fix #3737 2016-08-30 11:50:44 +02:00
Damjan Adamic 1ef91597ca Horus internal GPS: settable baudrate, misc fixes, new cmake options, cosmetics, cli 2016-08-29 23:22:46 +02:00
3djc 931c3f9d6a This fixes #3727 (#3729)
Fixes #3727

* Improve

* Cosmetics

* Cosmetics
2016-08-29 23:11:33 +02:00
Andre Bernet c793b492d2 Translation fixes 2016-08-29 22:27:45 +02:00
Damjan Adamic f0c2f10e27 Serial port SERIAL2 enabled [Horus] 2016-08-29 20:09:59 +02:00
Damjan Adamic 5a9eeaacc1 Added missing interrupt name [Horus] 2016-08-29 20:04:55 +02:00
Damjan Adamic 5cdb1e52d1 Cosmetics 2016-08-29 19:59:12 +02:00
3djc 7d6e96fe0c Add mintrim (#3732) 2016-08-29 15:48:42 +02:00
Andre Bernet 6038c0947f Reenable NL translation 2016-08-29 14:43:16 +02:00
Bertrand Songis 812ce55538 [Horus] SEGFAULT in calibration menu (new tests needed thanks!) 2016-08-29 14:05:25 +02:00
Bertrand Songis 5b9bd52737 [Horus] Warnings removed 2016-08-29 13:51:09 +02:00
Andre Bernet e6ac77a789 [Horus] Fix simu segfault, cosmetics 2016-08-28 18:15:26 +02:00
Damjan Adamic 89e0fd1e1d Re #3724: added smoothing filter for rotary encoder speed/acceleration calculation (#3726) 2016-08-28 18:00:54 +02:00
Andre Bernet 446ed3db59 Translation fixes 2016-08-28 17:55:25 +02:00
Damjan Adamic b71ba5b095 Cosmetics 2016-08-28 16:44:34 +02:00
Damjan Adamic 7522e54c83 More decimal places for small climb rates. 2016-08-28 11:38:38 +02:00
Andre Bernet 30eb2baed9 [Horus] Bitmaps now scaled to fit both dimensions and centered in desired zone 2016-08-28 11:28:29 +02:00
Damjan Adamic 504592ed18 Proper type for STICKS 2016-08-28 11:09:47 +02:00
Damjan Adamic 5446b4707d Wrong PPM_UNIT option value 2016-08-28 11:09:47 +02:00
Damjan Adamic 0c2fb5f7f1 Cosmetics 2016-08-28 11:09:47 +02:00
Bertrand Songis 2a9e299818 [Horus] SD version check simplified 2016-08-28 11:02:09 +02:00
Bertrand Songis 6071b1aa0d Compilation fix 2016-08-28 10:06:37 +02:00
Bertrand Songis 4377815c7b watchdogSetTimeout renamed to watchdogSuspend 2016-08-28 09:26:18 +02:00
Andre Bernet db79e2c53e [Horus] Translations, UI cosmetics 2016-08-28 09:01:53 +02:00
Bertrand Songis 506b24829c [Horus] Disable the WD timer on USB massstorage read/write 2016-08-28 08:47:51 +02:00
Bertrand Songis b105214e32 [Horus] Model name greater than Model99.bin allowed 2016-08-27 21:36:31 +02:00
Andre Bernet 3e960be9ce [Horus] Display model file name on model select screen 2016-08-27 20:46:42 +02:00
Bertrand Songis f5d589d23c [Taranis] EEPROM Conversions issues 2016-08-27 20:07:27 +02:00
Jim Taylor 34441618f8 Skip first record when calculating replay speed and set minimum repla… (#3715)
* Skip first record when calculating replay speed and set minimum replay speed to 100 ms.
Fixes issue 3708

* Cosmetics
2016-08-27 18:36:15 +02:00
Bertrand Songis 1d735f2bd3 [X9E/X7D] Rotary encoder navigation speed implemented (#3724) 2016-08-27 18:19:44 +02:00
Bertrand Songis 3cb64d984a [Taranis] EEPROM async write was disabled 2016-08-27 17:05:56 +02:00
Andre Bernet 508e3e899c Fix SD card version check 2016-08-27 15:11:54 +02:00
Andre Bernet c5346f6846 [Taranis] Fix bootloader freeze on USB disconnect 2016-08-27 13:31:15 +02:00
Bertrand Songis 9e334bfc84 [HORUS] Problem with Logs checkbox in Sensor menu 2016-08-27 11:59:23 +02:00
Bertrand Songis 879ca36fdb Typo 2016-08-27 09:50:11 +02:00
Bertrand Songis 7d1732b314 [HORUS] Curves on outputs were not taken into account 2016-08-27 09:49:37 +02:00
Bertrand Songis 76300ae92d [X9E] Calibration screen display problem 2016-08-27 09:48:04 +02:00
Bertrand Songis b8edea5c05 [X7D] LCD Reset is always needed 2016-08-26 11:36:06 +02:00
3djc 204b1b9627 This fixes #3718 (#3720) 2016-08-25 18:46:50 +02:00
3djc 9d9fdf81b4 Change audio generation files accordingly (#3717)
* Change audio generation files accordingly
New way of working :

units files are ALWAYS named in english based on the names in audio_arm.cpp names.
multiple form (singular, plural(s) are ammended with 0 to 4 suffix, according to languages rules. example : meter1.wav for first form of plural of meter unit,. This filename needs to be the same for all languages (in their respective directories of course)

* Care for gruin9x

* Better form

* Other languages

* Cosmetics
2016-08-24 23:43:56 +02:00
Bertrand Songis b69c2aa41c Cosmetics again ... 2016-08-24 20:39:22 +02:00
Bertrand Songis a95f9b7dde getSystemAudioPath renamed to strAppendSystemAudioPath 2016-08-23 21:07:40 +02:00
Bertrand Songis dd1ca93b70 getStringWithIndex renamed to strAppendStringWithIndex. It returns now the end of the string so that anything can be appended. 2016-08-23 20:51:40 +02:00
Bertrand Songis 643a731979 Cosmetics 2016-08-23 20:07:39 +02:00
Bertrand Songis f34de72e25 Cosmetics 2016-08-23 07:18:26 +02:00
Bertrand Songis 0ff601a3fa EEPROM simplification. Needs tests. (#3713) 2016-08-23 07:14:44 +02:00
Bertrand Songis c16ad94e3a SD card warning modified (fits now in 9X LCD)
Missing #ifdef for TELEMETRY flavours
2016-08-22 19:03:42 +02:00
Bertrand Songis 81c16212e0 Refactoring to prepare things for Horus flash support 2016-08-21 21:14:10 +02:00
Damjan Adamic 7dc75cf73f Debian package generation fixes for simulators (lib files were in the wrong directory, bunch of empty directories were included in package) 2016-08-21 20:51:05 +02:00
Damjan Adamic 9b7d97b441 Cosmetics (missing parts) 2016-08-21 19:43:47 +02:00
Damjan Adamic 64966c7d7d Cosmetics 2016-08-21 19:18:49 +02:00
3djc a043c6f649 fclose and cosmetics 2016-08-21 18:57:12 +02:00
3djc a63657df40 Warn also when control file cannot be opened 2016-08-21 17:42:35 +02:00
3djc 1164f30fd1 3djc/sdcard version check (#3709)
* Checking code

* Strings

* Fix

* Improvement

* Cosmetics
2016-08-21 16:45:04 +02:00
Bertrand Songis b657ca1862 Cosmetics 2016-08-21 12:41:12 +02:00
3djc cd2b6b3864 Horus pcdbrev10 support (#3707)
* Add PCBREV=10 to building options

* Cosmetics
2016-08-21 09:50:48 +02:00
Bertrand Songis d961879e0f [X12S] New test added for HORUS boards revision 1.0 2016-08-20 16:40:29 +02:00
Bertrand Songis 10aefb10db [X12S] GPS now OK 2016-08-20 16:36:32 +02:00
Bertrand Songis 91dc936ef3 [X12S] Crossfire module now OK 2016-08-19 19:26:34 +02:00
Bertrand Songis ed0cc9f1d4 [X12S] Modules on REV13 now OK 2016-08-19 17:13:09 +02:00
Bertrand Songis 0994735035 [X12S] Backlight code splitted from LCD code
[X12S] PCBREV introduction (PCBREV=10 or PCBREV=13)
2016-08-19 12:25:15 +02:00
Arne Schwabe 607e737b32 [X7D] Compilation fix for multi, check for displaysize instead of board. 2016-08-19 11:24:04 +02:00
Bertrand Songis 44e477965e Cosmetics 2016-08-19 11:20:12 +02:00
Bertrand Songis fcce94a868 [X12S] Radio calibration regression fix 2016-08-19 09:51:50 +02:00
Bertrand Songis f940fcdcd0 [X7D] Curve edit screen now OK 2016-08-18 18:49:47 +02:00
Bertrand Songis 3e4f3b2a8e [X12S] GPS low level driver added 2016-08-18 17:23:46 +02:00
Bertrand Songis 5d7f4ebc0b [X7D] Switch warning fix 2016-08-18 15:47:21 +02:00
Bertrand Songis 3160a7d878 Fixes #3704 2016-08-18 15:22:03 +02:00
Bertrand Songis 62071a959c Fixes #3704 2016-08-18 15:19:25 +02:00
Bertrand Songis 59083f4471 Fixes #3704 2016-08-18 13:38:46 +02:00
Bertrand Songis 71a8a69f32 Another fix for #3691 without the extra #ifdef in the main code 2016-08-18 11:54:33 +02:00
Bertrand Songis d3ae3c035d Bsongis/gui refactoring for x7 d (#3701)
* [X7D] New board added
* Cosmetics
2016-08-18 11:49:16 +02:00
3djc 282b856309 3djc/improve widgets (#3696)
* Add color option to Value widget

* Fix color handling
Add shadow effect
2016-08-14 20:36:44 +02:00
3djc 0fa7f6e132 Move default english to american, as english is defective (scottish instead) 2016-08-07 13:39:48 +02:00
3djc d55613aa26 urlencode model string to allow models like x9d+ (#3693) 2016-08-06 21:09:51 +02:00
3djc d62a985dcd Fix double type 2016-08-06 10:00:01 +02:00
Arne Schwabe 6559456534 Fix channel count on dsm2 module, purely cosmetic (closes issue #3673) (#3689)
Taranis menu always use 8 channels as default opposed to 9x and Horus, which use the maximum number as default channel count (which is 6 on dsm2). This commit does not change that logic.
2016-08-04 16:45:23 +02:00
Arne Schwabe d24f60f68b Horus Multi implementation implemented/tested by kilrah, add it to the options for the Horus 2016-08-03 16:29:01 +02:00
3djc f2d2677b2d Add CLI and Mass Storage to horus (#3682) 2016-08-03 16:24:30 +02:00
Arne Schwabe a908d73f1f Fix gcc 5.4 compiler warnings (#3681)
The order preference in flash_driver would evaluate ! before & but I think checking the bit first is what was intended
2016-08-03 16:24:01 +02:00
Arne Schwabe 9ea048f2ad Add the new protocols of v1.1.1 of multi (#3680) 2016-08-03 16:23:28 +02:00
Bertrand Songis 16199194b5 Cosmetics 2016-08-03 05:16:25 +02:00
Arne Schwabe 789a0ee548 Report unknown Spectrum sensors as raw sensors (#3679) 2016-08-03 05:11:43 +02:00
Bertrand Songis 7fbd963b3f Another big refactoring 2016-08-02 22:15:29 +02:00
3djc 52435703a0 3djc/telem rename (#3678)
* Rename EXT option to TELEMETRY

* Change test accordingly

* Rename FRSKY to TELEMETRY_FRSKY

* Rename ARDUPILOT to TELEMETRY_ARDUPILOT

* More renames (JETI, MAVLINK, NMEA)

* Fixes to make commit-test happy

* Further tests added to commit-test

* Cleanup

* Rename EXTSTD to TELEMETRY_NONE
2016-08-02 21:53:25 +02:00
Arne Schwabe 0b67d412a0 Schwabe/multimodule 9x (#3676)
* Fix Multimodule showing up as Crossfire when only multimode and not crossfire is enabled.

* Don't hardcode telemetry to be Frysky on non STM32 arm targets

* Port multi module code to 9X platforms

* Allow Spektrum telemetry protocol to be selected as protocol for the telemetry selection

* Fix infinite loop in spektrum code

* Fix cosmetics

Changes also done for Horus and Taranis UI where appropriate
2016-08-02 18:21:18 +02:00
Bertrand Songis d0527be2c4 Compilation fix 2016-08-02 08:04:03 +02:00
Bertrand Songis 0524f24ac6 hello.wav was not played anymore 2016-08-02 07:37:07 +02:00
Bertrand Songis ba681666a0 [9X with MAVLINK telemetry] Compilation fix 2016-08-02 00:04:52 +02:00
Martin Hotar 9a00f03843 Category images 2016-08-01 22:00:07 +02:00
Bertrand Songis 6d8b938706 Cosmetics 2016-08-01 21:48:49 +02:00
Bertrand Songis 22433a3a13 Compilation fix 2016-08-01 21:37:41 +02:00
Bertrand Songis ddfaa6f393 Compilation fix 2016-08-01 21:29:45 +02:00
Bertrand Songis 4d4b75d283 Compilation fix 2016-08-01 21:24:36 +02:00
Bertrand Songis 2ed742ebb7 Compilation fix 2016-08-01 21:18:37 +02:00
3djc 459ab91f09 Fix compilation warning on Horus. (#3677)
* Fix compilation warning on Horus. The // where added Jan25 as part of https://github.com/opentx/opentx/commit/5c71d74aabcafc0c8874de5970ae5c654ba5d9c1#diff-e7a8e42860fdbdf14bb250f27536fde6

* Better fix ?
2016-08-01 21:17:29 +02:00
Bertrand Songis 337ab74b8b Compilation fix 2016-08-01 20:44:30 +02:00
Bertrand Songis 9f37e7a0fb Macro renamed for #3675 2016-08-01 20:37:04 +02:00
Bertrand Songis ea095b2447 Forgotten files 2016-08-01 20:32:41 +02:00
Bertrand Songis 400faee588 Refactoring 2016-08-01 20:25:20 +02:00
3djc adeb53c726 Fix typo, thx schwabe 2016-08-01 19:00:51 +02:00
Bertrand Songis c5062d8c6a Duplicated bitmaps removed 2016-08-01 18:58:23 +02:00
Bertrand Songis 4df85d1047 Cosmetics 2016-08-01 18:52:29 +02:00
Bertrand Songis 6d2c5a4db6 Radio init / masstorage start / massstorage end / shutdown sequences … (#3674)
* Radio init / masstorage start / massstorage end / shutdown sequences reordering:

- More traces
- Fixes #3642
- Reuses idea of #3662

Still not finished and completely untested

* More traces

* Compilation fix

* Reuses the idea of #3652

* Alarms were checked 2 times on massstorage end
2016-08-01 18:39:34 +02:00
Bertrand Songis 6c34752907 Warnings fixed and remarks from #3666 taken into account 2016-08-01 07:16:33 +02:00
Bertrand Songis f74381bafa Merge branch 'schwabe/ar9x_test_and_fix' into next 2016-08-01 07:03:43 +02:00
Bertrand Songis 67eb04e44c Merge branch 'next' into schwabe/ar9x_test_and_fix 2016-08-01 07:03:17 +02:00
Bertrand Songis 351780bf17 [Horus] Correct alignment for massstorage buffer (increases speed) 2016-07-31 21:34:10 +02:00
3djc c2ed47d5d3 Wrong branch ... 2016-07-31 17:22:55 +02:00
3djc d00472b810 Initial nightly21 push 2016-07-31 17:10:37 +02:00
3djc b44dce4977 Initial 2.1 sdcards rework 2016-07-31 16:55:45 +02:00
3djc 5f06e06c55 Move build number increments to git 2016-07-31 13:44:48 +02:00
3djc ebe36e0154 Complete move nightly22 activities to github 2016-07-31 12:58:12 +02:00
Andre Bernet e72017977c No reason not to allow access to EEPROM when USB=MASSSTORAGE 2016-07-31 12:41:49 +02:00
Bertrand Songis 7bcac84253 rtc_driver moved to common/arm/stm32 2016-07-31 12:10:27 +02:00
Bertrand Songis a33b1d2659 [Horus] Masstorage reboots now gone? Still needed to mount again the SD after USB is unplugged 2016-07-31 11:21:18 +02:00
3djc 3728624486 Initial handling of nightly22 sdcard 2016-07-31 10:27:58 +02:00
Bertrand Songis e76c574439 Cosmetics 2016-07-31 09:46:44 +02:00
Bertrand Songis 319df44188 [Horus] Massstorage still used the cache 2016-07-31 09:45:50 +02:00
Bertrand Songis ba240abe64 Compilation fix 2016-07-31 09:05:25 +02:00
Bertrand Songis 4b2315f56b Compilation fix. Massstorage won't use disk cache anymore 2016-07-31 08:10:46 +02:00
Bertrand Songis 67ebadc9e0 Compilation fix 2016-07-31 07:24:23 +02:00
Bertrand Songis d4a54b5487 [Horus] Massstorage bugfix (read cache beyond end of disk) 2016-07-31 00:26:13 +02:00
Bertrand Songis fcdcccf8f5 [Horus] Massstorage bugfix (read cache beyond end of disk) 2016-07-30 23:30:52 +02:00
Andre Bernet 9d492b4faf Missing rename was causing crash 2016-07-30 21:22:22 +02:00
3djc 5fad5190dc Bring firmware names in line with latests changes (#3672) 2016-07-30 12:28:50 +02:00
3djc 4818efade6 Add some more build options to check more parts of the code (#3671) 2016-07-30 10:27:42 +02:00
Bertrand Songis e900ad6c49 Warnings removed 2016-07-29 21:26:14 +02:00
Bertrand Songis 85f3bd4ed0 [X9E] Massstorage OK? 2016-07-29 20:53:01 +02:00
Bertrand Songis e5bbf6766b USB Massstorage code refactoring 2016-07-29 16:43:39 +02:00
Bertrand Songis 51223a5864 No more REV9E and REVPLUS 2016-07-29 14:44:59 +02:00
3djc 0f740358f2 Streamline naming 2016-07-29 14:44:48 +02:00
3djc 5ac2288782 3djc/move (#3670)
* build-companion is now in /tools
update build-firmware for new targets

* remove PCBREV
2016-07-29 14:40:04 +02:00
3djc aa915e088b Fix compile 2016-07-29 13:45:30 +02:00
3djc 6dedf2ce65 Make +x 2016-07-29 13:29:24 +02:00
3djc 840a3b2a8a Adapt to new targets 2016-07-29 13:12:24 +02:00
Bertrand Songis 83cdd67e6a Bsongis/move everything (#3669)
* Directories moved

* Directories moved

* Directories moved

* Directories moved

* Directories moved

* rename horus directories in gui to 480x272

* Directories moved

* Rename taranis to 212x64

* Directories moved - TARANIS target removed, it's now X9E / X9D+ / X9D

* Directories moved - TARANIS target removed, it's now X9E / X9D+ / X9D

* Directories moved - TARANIS target removed, it's now X9E / X9D+ / X9D

* Directories moved - TARANIS target removed, it's now X9E / X9D+ / X9D

* Directories moved - TARANIS target removed, it's now X9E / X9D+ / X9D

* Directories moved - TARANIS target removed, it's now X9E / X9D+ / X9D

* Directories moved - TARANIS target removed, it's now X9E / X9D+ / X9D

* Fix x9e compile

* Directories moved - TARANIS target removed, it's now X9E / X9D+ / X9D

* Directories moved - TARANIS target removed, it's now X9E / X9D+ / X9D

* Directories moved - TARANIS target removed, it's now X9E / X9D+ / X9D

* Directories moved - TARANIS target removed, it's now X9E / X9D+ / X9D

* Directories moved - TARANIS target removed, it's now X9E / X9D+ / X9D

* Minor improvement of path handling

* Another bunch of files renamed :)

* Another bunch of files renamed :)

* Another bunch of files renamed :)

* Another bunch of files renamed :)

* Another bunch of files renamed :)

* Rename 9x to 128x64

* Compilation fixes

* Compilation fixes

* Compilation fixes

* Compilation fixes

* Compilation fixes

* Compilation fixes
2016-07-29 12:47:20 +02:00
Bertrand Songis e3e0d970a5 Directories moved 2016-07-28 22:26:40 +02:00
Bertrand Songis f88e904009 [Horus] Massstorage under linux, still a problem remaining 2016-07-28 22:20:38 +02:00
Bertrand Songis 7e3cfc9b66 [Horus] No need for a reboot after Massstorage end, no? Unless we have written over the EEPROM, but on Horus it's not needed 2016-07-28 07:42:05 +02:00
Bertrand Songis c307e1987c [Horus] Massstorage again OK 2016-07-27 22:36:05 +02:00
Bertrand Songis ac86ebc229 Cosmetics 2016-07-27 22:35:30 +02:00
Bertrand Songis a3cfef3123 Previous commit reverted 2016-07-27 20:05:14 +02:00
Bertrand Songis b0b6ac2f69 Cosmetics 2016-07-27 19:13:56 +02:00
Bertrand Songis 8169ef92c0 Fixes #3608 2016-07-27 19:04:05 +02:00
Arne Schwabe 893ae215af Fix reading from initialized memory, fix not using fake program space for i2c 2016-07-26 00:14:16 +02:00
Bertrand Songis 3b90b0d6c0 [Crossfire] Lua script continued 2016-07-25 21:56:23 +02:00
Arne Schwabe 00ba66fe20 Readd the spektrum.cpp to arm CMake file that commit e25db7e removed 2016-07-25 21:12:44 +02:00
Arne Schwabe fdcc60b1b9 Fix AR9X build and add it to regular commit tests.
Note that simu still crashes on startup in the readRtc function
2016-07-25 16:49:04 +02:00
Nathan bea0411071 remove i6 code for now (#3663) 2016-07-25 06:53:19 +02:00
Bertrand Songis c97ba2bb83 Warning removed 2016-07-24 13:36:32 +02:00
Bertrand Songis 7e6b9ebf4f Igore list updated, build_all.sh at the root of the project removed
If needed we could move the radio/utils directory to /utils
2016-07-24 11:34:45 +02:00
Bertrand Songis ab6c6babae Cosmetics 2016-07-24 11:31:47 +02:00
Nathan e25db7e9e0 split up the cmakelist by target (#3661)
* split up the cmakelist by target

* new target for the flysky-i6

* organization per @bsongis suggestion
2016-07-24 06:55:58 +02:00
Bertrand Songis 0ad015f3e7 Cosmetics 2016-07-23 19:28:30 +02:00
Andre Bernet dd44da14bc Fix SE translations 2016-07-22 20:21:30 +02:00
Bertrand Songis 43d618a1de Cosmetics 2016-07-22 18:16:50 +02:00
Arne Schwabe 352de89838 Spektrum telemetry implementation (#3659)
* Implementation of Spektrum Telemetry for the DYI Multimodule.

I can only test a subset of sensors and these look okay

* Implement conversion from Fahrenheit to Celsius

* Minor fixes for Spektrum telemetry

* Add some more sensors, show sensor ID instead of instance in the overview
2016-07-22 17:38:11 +02:00
Arne Schwabe a28cbf88f3 Add cmake configuration for Libfox. (#3660)
* Add cmake configuration for Libfox.

CMake on OS X does not find libfox in the homebrew location otherwise

* Fix findpackage(Fox) for case sensitive systems
2016-07-22 17:35:49 +02:00
Andre Bernet 789326d2cd Cosmetics 2016-07-19 11:12:08 +02:00
Andre Bernet a11db7d73f Schedule mixer properly for new multimodule frame rate 2016-07-19 11:11:43 +02:00
Andre Bernet a6ceb56dcd Speed up multimodule output from 22ms to 9ms 2016-07-18 20:18:19 +02:00
Andre Bernet 0a1e913ecd French translations 2016-07-18 20:17:55 +02:00
Andre Bernet e33ae0e1ac Cosmetics, French translations 2016-07-16 14:51:32 +02:00
Andre Bernet 7babf26809 Multimodule ported to Horus (#3657) 2016-07-16 14:21:45 +02:00
Arne Schwabe 04c85942f1 Fix issues with translations of multimodule and make German translation more German 2016-07-16 13:59:29 +02:00
Arne Schwabe b432056698 Fix changing back from custom multi protocol selection to normal protocols 2016-07-16 13:35:29 +02:00
Arne Schwabe e2efe2ac70 [TARANIS] Reset option value to 0 on change of multi protocol, fix string overwriting for option value 2016-07-15 15:33:55 +02:00
Arne Schwabe 66e352d3c0 [Taranis] Multimodule: Fix off by one error that caused to need two presses instead of one when moving across the multimode option lines 2016-07-15 12:51:09 +02:00
Arne Schwabe f06c1e0be7 [Taranis] Fix overlapping strings in Multi module 2016-07-15 11:30:41 +02:00
Bertrand Songis e58bdff8a9 [S6R] ID changed 2016-07-13 18:44:31 +02:00
Andre Bernet a0476f0a7c Translation fix 2016-07-13 07:44:07 +02:00
Bertrand Songis b966db4fa5 [S6R] More fixes 2016-07-11 23:29:10 +02:00
Andre Bernet 78da936536 Compilation fix 2016-07-11 15:10:29 +02:00
Andre Bernet 35afe4c1ea Cosmetics 2016-07-11 13:15:50 +02:00
Bertrand Songis ea18909b46 [Crossfire] More field types supported 2016-07-10 23:37:33 +02:00
Bertrand Songis fed4450a8d [Horus] DE translations by Hrenz, thanks! 2016-07-10 10:58:28 +02:00
Andre Bernet 2dd30c228d No SQT5 font on Horus 2016-07-09 16:37:20 +02:00
Andre Bernet 6e6ff7d313 Compilation fix for nooverridech option 2016-07-09 16:15:27 +02:00
Bertrand Songis 3faa81d799 [Taranis] It's now possible to use killEvents() on PAGE_LONG in Lua standalone scripts 2016-07-09 12:39:54 +02:00
Bertrand Songis 0da921df0d [S6R] Fixes 2016-07-09 10:42:36 +02:00
3djc 2f8effb6d1 Add function name to debug output (#3647)
* Add function name to debug output

* Better english, hopefully :)

* Possible fix for not trying to run background widgets function when it does not exist

* Typos
2016-07-06 18:41:45 +02:00
3djc 53d8a615a0 update function is required if you don't want lua errors when not displayed. it can be empty, but since we have one, let's keep it counting ! (#3646) 2016-07-05 21:55:47 +02:00
Andre Bernet 49839b712b Release note windows had close button disabled (fix #3650) 2016-07-05 13:32:27 +02:00
Bertrand Songis e6c01cd140 [Taranis] The menu arrays were duplicated 2016-07-04 21:34:21 +02:00
Bertrand Songis 1f15636ca4 [Horus] configure_pins completely removed 2016-07-04 21:16:23 +02:00
Bertrand Songis c9b3fb2994 [Horus] Unused variables 2016-07-04 21:13:21 +02:00
3djc e5e02927af Fix colors on the new slowdelay bitmap (#3644)
Optimize code a little
2016-07-04 20:26:11 +02:00
3djc 4148643492 Cosmetics 2016-07-04 19:58:23 +02:00
3djc 9237d6af63 3djc/horus fine tune mixers setup (#3643)
* Optimize display for mixer setup

* Make mixer setup screen full icons

* - Display flighmode in SMLSIZE
- Add icon for it
- Space out things given then gain space

* Introduce SLOW_BLINK (half rate BLINK)
WARNING : code for both DS and single icon 'DS' is here, need cleaning before PR after choice is made

* Introduce snail and hourglass icons
Fine tuning

* Move to single icon column for DS (3 possibles icons)
Space things a little

* delayslow icon

* delayslow icon
2016-07-04 19:54:50 +02:00
Damjan Adamic 646170fe19 Taranis LCD driver: removed some unnecessary lines and cosmetics 2016-07-03 19:40:56 +02:00
Damjan Adamic c8638bae9d Cosmetics 2016-07-03 17:58:35 +02:00
Andre Bernet 88e9e6c6a4 Compilation fix, different definition needed for recommended pthreads version 2016-07-02 14:30:31 +02:00
Bertrand Songis e555cbbdba [Horus] REPEAT_LAST_CURSOR_MOVE did a key beep 2016-07-02 12:03:22 +02:00
Bertrand Songis 30f31450ce Cosmetics 2016-07-02 09:56:16 +02:00
Damjan Adamic 42aa06a166 Re #3635: added missing compound statements (ported from master) 2016-07-01 12:55:28 +02:00
Andre Bernet b48e14eeb9 Compilation fixes, snprintf now supported on VS2015 2016-06-30 23:39:04 +02:00
Bertrand Songis c777af2b72 Compilation error fixed 2016-06-30 23:06:03 +02:00
Bertrand Songis 5f03924b5f Compilation error fixed 2016-06-30 22:44:16 +02:00
3djc fef4bff9fa 3djc/horus cosmetics (#3640)
* Move miscellaneous bitmaps load to a specific function

* Adujst channel monitors colors for Darkblue
2016-06-30 20:36:11 +02:00
Bertrand Songis 9b7a4352d6 [Horus] Cosmetics in MODEL SELECTION screen 2016-06-30 19:32:40 +02:00
3djc e33c56d1eb 3djc/horus improve mixer setup (#3636)
* Rework to display bar on mixers, hence needs a more flexible drawSingleXXBar approach

* First working version
WARNING : displayMixConvertMask() DOES have a bug, do NOT PR without fix

* Fixed displayMixConvertMask() bug
Cosmetics on placement on status bar

* Cosmetics

* Improved graphics by mhotar !

* Fix for multiple lines mixers
Cosmetics

* Fine tune column values to handle more complex mixers lines

* Replace +=, *=, := by icons

* No needs to use mask bitmap

* Remove unwanted png file

* Fix handling and conversion of Mask to Bitmap

* use loadAndConvertMask here too

* Typo

* Screen layout fine tune

* - Move loadMaskOnBackground to framebuffer.cpp
- replace loadMaskAndConvert by loadMaskOnBackground

* Cosmetics

* Move new icons to theme loading

* Fine tune Mixer setup screen on darkblue
2016-06-30 18:53:07 +02:00
Bertrand Songis 2e78dad1a7 [Horus] Custom switch names badly displayed 2016-06-29 19:56:18 +02:00
Bertrand Songis 39c7e56b16 [Horus] Navigation line by line in COLOR widget settings 2016-06-28 23:26:28 +02:00
Bertrand Songis 6d57f55662 PPMCA option is now ON by default 2016-06-28 22:16:57 +02:00
Bertrand Songis 93f21bc18f [Horus] Move models from one category to another 2016-06-28 22:06:21 +02:00
Bertrand Songis ce63768df3 [Horus] Unused string removed 2016-06-28 21:28:27 +02:00
Bertrand Songis 2b845314f5 [Horus] Model move within a category 2016-06-28 20:01:06 +02:00
Damjan Adamic 25aab85c9b Fixes #194: added logging of TX battery voltage 2016-06-28 09:07:34 +02:00
Damjan Adamic 0f8b36fb3d Fixed C compiler warnings about "std=gnu++11" flag 2016-06-28 08:49:43 +02:00
Damjan Adamic 52bb358662 Fixes #2022: Logical switches logged in HEX format with LSW header label 2016-06-28 08:48:17 +02:00
Andre Bernet 7c57512f94 LSs weren't selectable as input source (Fix #3632) 2016-06-27 22:47:53 +02:00
Martin Hotar ad998f5787 Horus multiplex icons 2016-06-27 20:27:20 +02:00
Bertrand Songis 757bb55d81 [Crossfire] Parser improved with date / time 2016-06-27 19:14:44 +02:00
Bertrand Songis 8808c3aae6 [Horus] Trackpoint background 2016-06-27 19:14:15 +02:00
Martin Hotar 46ba761b8d Horus trackpoint background png 2016-06-26 21:48:49 +02:00
3djc 415dc10141 Simplify code (#3630) 2016-06-26 13:32:49 +02:00
3djc 4dcb4a7b10 Simplify code 2016-06-26 10:50:01 +02:00
3djc 0b2f188381 Replace graphics for limits, make them [] instread of ][ (#3629) 2016-06-26 09:36:56 +02:00
Bertrand Songis b0f9d69f7c [Horus] New model selection menu started 2016-06-25 19:39:29 +02:00
Bertrand Songis 4cc49d0d30 [Horus] Mouse analogs now OK 2016-06-25 18:16:05 +02:00
3djc 88511c1ba9 [Horus] Channels Monitor : cosmetics 2016-06-25 14:21:39 +02:00
3djc 1a77d1ffda 3djc/horus chan mon fix mixers limits (#3626)
* Review Channel monitor to handle mixers outside -100/100
Percentage values are now displayed on bar, for both mix and out

* Cosmetics (uncrustify)

* Channels monitor bars color and background now theme driven

* Add TEXT_STATUSBAR_COLOR (was ToDo)
Rename for consistency

* Replace text by graphic caption

* Cosmetics

* Remove unwanted vertical line on chanVal

* Tidy up code a little

* Tidy up

* Change green bar to grey
Introduce a space between outputs and mixers bar

* Partial cosmetics

* Fix bad copy/paste
2016-06-25 14:11:22 +02:00
Bertrand Songis 6861d6c8a4 [Horus] Mouse analogs hex values now OK 2016-06-25 08:36:51 +02:00
Bertrand Songis f69295b8f9 [Horus] Mouse analogs 2016-06-25 00:08:17 +02:00
Bertrand Songis 80291c73c4 [Horus] Nothing on Heartbeat PIN 2016-06-24 21:45:49 +02:00
Martin Hotar f697d36b1c Horus model library mask images and library icons (transparent png) 2016-06-24 11:26:25 +02:00
Andre Bernet 8119da792d VC++ compilation 2016-06-23 15:35:32 +02:00
Andre Bernet e282c02be2 VC++ compilation 2016-06-23 08:08:56 +02:00
Bertrand Songis ddc424de50 [Horus] Use of templates to avoid duplicated code in monitors screens 2016-06-22 23:09:02 +02:00
3djc 3ee9f56423 3djc/test combined mixer output mon (#3622)
* Merge outputs and mixers in a single 'bar'
View 8 per page

* Cosmetics

* Add proper icons for channels3 and 4

* Bars colors now fixed by overwhelmingly popular demand

* Fix outL outR display

* Add bottom line description to avoid confusion between outputs and mixers

* Cosmetics

* Typo
2016-06-22 22:51:11 +02:00
Bertrand Songis 38fdae6f1f Fixes #3609 - ``background()`` function in Lua function scripts 2016-06-22 18:32:51 +02:00
Bertrand Songis 0bcd0a0c09 [Crossfire] Fields update now OK (for text selection) 2016-06-22 07:29:21 +02:00
Bertrand Songis 155656c88a [Crossfire] Shorter traces 2016-06-21 22:50:01 +02:00
Bertrand Songis e64464ff9b [VC++] Compilation fixes 2016-06-21 20:25:17 +02:00
3djc ea562a2502 3djc/ls mon bugfix (#3618)
* First step into fixing the bug. One issue remains, when left encoding, it requires two exist

* Bsongis did magic again !

* Housekeeping
2016-06-20 21:12:46 +02:00
Bertrand Songis 732fea6c23 [Horus] Avoid loading bitmaps at full speed if they don't exist 2016-06-20 07:01:51 +02:00
3djc a26c5461ab Rearange long enter menu (#3614)
* Rearange long enter menu

* Remove duplicate
2016-06-19 14:26:53 +02:00
Andre Bernet 0c49f35687 New chat link 2016-06-19 13:10:40 +02:00
3djc 4ad8c79bc1 3djc/add logicial switches monitor (#3611)
* Prep work for Logic Switches

* Feature complete

* Fixe for sometime needing two RTN to get out of logical switchs monitor
All monitors title bar in upper case for consistency with the rest of OpenTX

* Cosmetics

* Add translations support to the MONITORS screens

* Add the right icon to the logical switch monitor

* Cosmetics

* uncrustify

* Cosmetics
2016-06-19 12:46:51 +02:00
Bertrand Songis d01b427127 [Horus] Improved fix for the BOLD | TINSIZE bug (it takes care of all impossible combinations now) 2016-06-19 08:50:16 +02:00
Damjan Adamic f1bdb931b8 Fixes #3549: disable trim processing in while shutdown is in progress, do no turn of the back-light before the shutdown (#3612) (ported from master) 2016-06-18 22:26:25 +02:00
Bertrand Songis 53b51cac94 Bsongis/crossfire refactoring (#3613)
* Crossfire refactoring

* Crossfire script now displaying fields

* Crossfire script now displaying text selection values
2016-06-18 22:16:50 +02:00
3djc ab58151f2a Fix for TINSIZE | BOLD. If called, BOLD is discarded (#3610) 2016-06-18 22:15:28 +02:00
Bertrand Songis dad37f36ba Cosmetics 2016-06-18 17:13:41 +02:00
Bertrand Songis e80d3ff642 Taranis hangs when compiled in DEBUG mode without CLI 2016-06-18 15:22:50 +02:00
Bertrand Songis 464996d3c3 Small refactoring in View channels 2016-06-18 00:36:41 +02:00
3djc 5ed74f1329 3djc/Mixer monitor (#3606)
* Add menu mechanics for 2 Mixers screens and 2 logical switches screens

* Add two mixer pages. To prevent errors, the Mixer bar are green (as opposed to red for outputs).

Icons for those pages are not yet the right ones

* Ready for mixers monitor PR
2016-06-17 23:54:35 +02:00
Bertrand Songis 4445f7cdec Bsongis/issue 3600 emergency shutdown (#3602)
* [ARM] Fixes #3600 - Emergency shutdown

* Compilation fix

* Function renamed

* Compilation fix

* Compilation fix

* Compilation fix

* Suggestion from projectkk2glider
2016-06-17 07:32:33 +02:00
Bertrand Songis 238943f4a2 Cosmetics 2016-06-16 16:06:12 +02:00
Bertrand Songis 900266be4a [Crossfire] Cosmetics 2016-06-16 15:18:32 +02:00
Bertrand Songis e50aa21dd2 [Crossfire] Devices parameters script started 2016-06-16 11:53:45 +02:00
3djc 98b1029bec 3djc/chan mon improve (#3604)
* Prepare for more flexibility (and a much better look)

* [Horus] Preparation for a new Channels menu

* monitor bar icons added

* Add ICONS structure and populate for MONITOR pages

* Restore old widget (had used it for temp work), will likely update to the newer look later

Functionnal output monitor 1,2, still need extended and overrides

* extended limits

* Overrides are now managed

* Back to Red ;)
Add outL outR to hightlight out of limits values

* Rewrite of posOnBar, as it was getting overly complex
subtrin now fulland more logicaly managed

* Fix overrides

* Center bar drawn last to be always visible

* Limits need to go through extend limits display calculation as well

* remove debug printf

* Add inverted output icon

* Tidy up and cosmetics
2016-06-16 10:14:53 +02:00
Bertrand Songis 9b5b9be50c [Crossfire] Telemetry packets are bigger 2016-06-15 22:19:10 +02:00
Bertrand Songis d51e86b669 [Horus] #3599 - Another emergency message when there is no SD 2016-06-15 19:59:18 +02:00
Bertrand Songis de52ee513c Cosmetics 2016-06-15 19:58:19 +02:00
Bertrand Songis 370f954e10 [Horus] #3599 - Crash in case of 0 model categories in models.txt (which happens at least when SD is not present) 2016-06-15 19:57:35 +02:00
Bertrand Songis d287027502 menu_model_custom_functions renamed to model_special_functions 2016-06-15 19:37:32 +02:00
Bertrand Songis f5a4d51c8f [Horus] Bug in Special functions contextual menu (when the Volume function was used) 2016-06-15 19:23:23 +02:00
Bertrand Songis c172d9727c [Crossfire] Telemetry logs parser 2016-06-14 21:50:50 +02:00
Bertrand Songis c0d53f4506 [Horus] background.bmp renamed to background.png 2016-06-14 21:29:58 +02:00
Andre Bernet 88b655764d [Horus] Encoder speed tweaks 2016-06-14 19:26:41 +02:00
Bertrand Songis 4519dadee4 [Horus] Rotary encoder now has 3 speeds. To be ported to X9E if it's good 2016-06-13 20:56:09 +02:00
Damjan Adamic d5e4f1132b Fixes #3595: show value of persistent sensor after power on, before the telemetry is received 2016-06-13 20:29:00 +02:00
Arne Schwabe 95641d649d [HORUS] Fix compiling Horus with Dangerous module functions 2016-06-12 21:11:10 +02:00
3djc 5a3fc73946 Add scale to lcd.drawBitmap. Scale is like in % (50 divides by two, 200 doubles) (#3592)
Default scale to 0 to allow DMA in target function (thx Bertrand)
2016-06-12 16:01:05 +02:00
Bertrand Songis f415f38ba6 Compilation fix 2016-06-12 15:27:55 +02:00
Bertrand Songis 21075d5a4c Compilation fix 2016-06-12 13:41:50 +02:00
Andre Bernet 4226b7c89b Fix overlap in numbered sound file names 2016-06-12 12:02:51 +02:00
3djc ac953cdcc8 3djc/document lua bitmaps (#3588)
* Create lua doc for previously added Horus bitmaps functions

* Cosmetic
2016-06-12 10:52:02 +02:00
Neil Horne dd12d09c92 Issue 3473 port to next (#3587) 2016-06-12 10:49:59 +02:00
Bertrand Songis 13558214a8 Compilation fix 2016-06-11 23:41:18 +02:00
Martin Hotar db741860c1 companion splash22 (#3586) 2016-06-11 23:41:21 +02:00
Bertrand Songis e219446703 Compilation fix 2016-06-11 23:15:55 +02:00
Bertrand Songis 862fa5525e [Crossfire] Upstream link development started 2016-06-11 20:05:51 +02:00
Andre Bernet 8523a2fdaf Translations cleanup 2016-06-11 19:03:29 +02:00
Bertrand Songis 1f87920fe4 Compilation fix 2016-06-11 18:40:45 +02:00
Bertrand Songis 6fac983c8a EEPROMS directory renamed to EEPROM 2016-06-11 18:24:23 +02:00
Bertrand Songis c5096ff531 Main view index now stored in model settings instead of radio settings 2016-06-11 18:09:18 +02:00
Andre Bernet 22efe664d5 [Horus] Prevent Value widget from being invisible when telemetry isn't available and it's displaying a telemetry value 2016-06-11 17:22:20 +02:00
Bertrand Songis 6db0c0791a [Horus] Current model overwritten in MODEL SELECT when selecting a new model 2016-06-11 13:53:53 +02:00
Bertrand Songis 1db3e1f816 [Horus] Current model overwritten in MODEL SELECT when selecting a new model 2016-06-11 13:30:53 +02:00
Bertrand Songis 99cce1b33f BMP and FIRMWARES renamed to IMAGES and FIRMWARE 2016-06-11 10:23:05 +02:00
Bertrand Songis bdae43c091 menu_general_XXXX should be renamed radio_XXXX
Second file done :)
2016-06-11 10:17:18 +02:00
Bertrand Songis ec2b5d66cb menu_general_XXXX should be renamed radio_XXXX
First file done :)
2016-06-11 10:15:34 +02:00
Bertrand Songis 6fd538f30e [Horus] Months translations 2016-06-11 09:03:51 +02:00
Bertrand Songis d77662b53e [AVR] DSM2 re-added 2016-06-11 08:58:09 +02:00
Bertrand Songis 71e71f8314 New translations 2016-06-11 08:57:31 +02:00
Bertrand Songis 17ab2c83aa [Horus/Taranis] Pulses cosmetics 2016-06-10 23:37:26 +02:00
Bertrand Songis 575eb3d0d1 [Horus] MODEL SELECT bug fixes 2016-06-10 23:35:54 +02:00
Bertrand Songis c22818442e [Horus] Problem when resizing transparent bitmaps 2016-06-10 23:35:16 +02:00
reichi 0c926e5d19 Allow software based volume control (#3556)
* Allow software based volume control
- enable it for AR9X
- rename "HARDWARE_VOLUME" defines to "MASTER_VOLUME"
- adjust build-firmware.py and fwoptions.py

* Software based volume control: Do it right

* whitespace cleanup

* software volume: cleanup/revert some leftovers of undone changes
2016-06-09 22:50:06 +02:00
Neil Horne beb21ab7db Fixes #3547: Flight modes linked trims display value (#3568) (ported from master) 2016-06-09 19:37:22 +02:00
Bertrand Songis a7e1867878 [Horus] Category rename was not saved on SD 2016-06-09 18:20:15 +02:00
Bertrand Songis 0f33b1b0a9 [Horus] Comment from @projectkk2glider taken into account 2016-06-09 18:08:55 +02:00
reichi 8606e75f45 Add Support for the DS3231 RTC and enable it for AR9X, refs #3531 (#3555)
* Add Support for the DS3231 RTC and enable it for AR9X, refs #3531

* fix compile for PCB=sky9x

* rtc ds3231: Add missing OpenTX headers
2016-06-09 17:58:42 +02:00
Bertrand Songis 0c66f520a2 [Horus] Small bug with Trainee 2016-06-08 22:32:11 +02:00
Bertrand Songis f488ebc1f5 [Horus] I forgot this part for PPM pulses ... 2016-06-08 22:19:54 +02:00
Arne Schwabe 5bcde76ca0 Add the ARR change to multi in the same way as for DSM2 in commit 404c5a8 2016-06-08 22:23:45 +02:00
Arne Schwabe 540faa51bf Use __ALIGNED instead of __DMA which is identical to __DMA without the section on Hours 2016-06-08 22:04:40 +02:00
Bertrand Songis 010d9d9629 Warning removed 2016-06-08 20:37:16 +02:00
Bertrand Songis 404c5a8553 [Taranis] Trainer / Trainee again OK. Not tested on Horus 2016-06-08 20:26:30 +02:00
Bertrand Songis 1a7a07dffd [Horus] MODEL SELECT current model refresh bug 2016-06-08 19:45:03 +02:00
Bertrand Songis 4588c0119d [Horus] Cosmetics 2016-06-08 19:44:02 +02:00
Bertrand Songis 43387d1794 Simu SEGFAULT 2016-06-08 19:43:36 +02:00
Bertrand Songis d2180d9429 [Horus] Cosmetics 2016-06-08 19:42:37 +02:00
Bertrand Songis 238ef2be38 [Horus] In MODEL SETUP screen BEEP center settings are visible even when INVERS 2016-06-08 19:41:44 +02:00
3djc 177f672619 Fix #3539 on Next (#3573) 2016-06-07 23:33:27 +02:00
Arne Schwabe 0c525826b4 Fix alignment bug of pulses data array (#3575)
The second element of the modulePulsesData was never forced to be correctly aligned. Without the new
pulses and without the Multimodule code the second element was never misaligned since the PXX pulses
union member was always the largest member and was 4 byte aligned by coincidence, also making the
second modulePulseData array member 4 byte aligned.

With the Multimodule option enabled the dsm pulses struct becomes the largest union member with 607 bytes
and the second modulePulsesData is not aligned to anything anymore which completely screws up the pulses
generation.

Forcing the alignment of the ModulePulsesData fixes this issue.
2016-06-07 23:32:51 +02:00
Bertrand Songis e3d22300ed [Horus] Model Select bugfixes 2016-06-07 20:35:17 +02:00
Bertrand Songis 06bef98a05 [Horus] Model bitmaps can now be either BMP or JPG or BMP 2016-06-07 20:35:17 +02:00
Bertrand Songis 5822cfded1 [Horus] Options in widgets can now have a min and a max defined 2016-06-07 20:35:17 +02:00
Bertrand Songis 3940716b5d [Horus] Cosmetics 2016-06-07 20:35:17 +02:00
Bertrand Songis 8493a393fd Problem with directories in simulator when listing files 2016-06-07 20:35:17 +02:00
Bertrand Songis 5ee95c472a Telemetry units shifted on all AVR boards 2016-06-07 20:35:17 +02:00
Arne Schwabe b6d4442ba1 Fix interrupt handler not handling multiprotocol (Pulses fix) (#3570)
* Fix interrupt handler not handling multiprotocol

* Use proper Macros in driver, remove wrong comment about ppm
2016-06-07 07:31:35 +02:00
Arne Schwabe 36423db252 tell dfu-util to boot the device to boot after flashing (#3571)
Only tested on my X9D+. It allows me to boot the device into the OpenTX firmware by using 'make flash' (on switch must be on), combined with -DUSB=SERIAL and -DCLI=YES and the reboot command I can test a new firmware on the device without removing/plugging the usb cable
2016-06-06 22:22:27 +02:00
Bertrand Songis 0ea133e490 Compilation fix (with gcc 4.9) 2016-06-06 22:07:45 +02:00
Bertrand Songis 4be6cfccab [Taranis] Crossfire "Flight mode" telemetry sensor now OK 2016-06-06 21:59:49 +02:00
Bertrand Songis 14f4eec6f7 [Taranis] Icon in top bar when DEBUG options enabled 2016-06-06 21:58:16 +02:00
Bertrand Songis 01e7c249f6 [Taranis] Cosmetics in SENSOR screen 2016-06-06 21:57:25 +02:00
Bertrand Songis 0eba4596d0 [Horus] Black icon in left top corner when DEBUG options enabled 2016-06-06 21:47:39 +02:00
Arne Schwabe 81733b10cc [Companion] Implement print functions for the hell setup screen (fixes 3430) (#3554)
Fixes #3430: added print functions for the hell setup screen
2016-06-06 21:01:49 +02:00
Bertrand Songis 2cccb99e28 [Telemetry] Shift in telemetry units 2016-06-06 20:43:14 +02:00
Bertrand Songis c20b0b8de4 [Horus] MODEL SELECT screen continued 2016-06-06 20:16:11 +02:00
Bertrand Songis 0cf3a278e8 [Horus] MODEL SELECT screen continued 2016-06-06 19:36:18 +02:00
Bertrand Songis f6b9a0fcdb [Horus] Black icon in the left top corner in case we are in DEBUG mode (WATCHDOG_DISABLE / TELEMETRY_LOGGING) 2016-06-06 19:30:13 +02:00
Bertrand Songis 1be84e3b6d [Horus] Cosmetics in CALIBRATION screen 2016-06-06 19:10:29 +02:00
Bertrand Songis 74fd8fc435 [Horus] Arrow keys disabled in Model Select 2016-06-06 19:09:33 +02:00
Bertrand Songis 3d117efae1 [Horus] Crash when renaming model category 2016-06-06 19:08:46 +02:00
Bertrand Songis 0cf81a7245 [Taranis] ADC DMA moved for X9E 2016-06-06 19:01:09 +02:00
Bertrand Songis 5ff6341a34 [X9E] More constants to hal.h 2016-06-06 18:56:16 +02:00
Bertrand Songis 69f2acca35 [X9E] Compilation fix 2016-06-06 18:48:15 +02:00
Bertrand Songis 6f2ece9cd0 [X9E] I move constants to hal.h first 2016-06-06 18:45:14 +02:00
Bertrand Songis 7ef9992349 Bsongis/horus xjt external module (#3566)
* [Horus] PXX and DSM2 in external module
* [Taranis] Pulses driver refactoring (uses DMA also for PPM in external module and saves 800bytes RAM)
* Cosmetics (Pulses driver splitted)
2016-06-05 22:34:16 +02:00
Bertrand Songis 5767be27b6 [Crossfire] New frame ATTITUDE added 2016-06-04 12:36:37 +02:00
Bertrand Songis 068fa45a06 [Horus] The backlight becomes ON when the PWR button is pressed 2016-06-04 09:30:37 +02:00
Bertrand Songis 348526b5ba [Horus] Just one DMA trace added to the CLI to start with something... 2016-06-04 09:29:40 +02:00
Bertrand Songis a9f518c3a0 [Taranis] Asterisk icon when WDT is disabled or TELEMETRY_LOGGING enabled 2016-06-04 09:28:27 +02:00
Bertrand Songis 8f0a47b724 [Horus] Cosmetics 2016-06-04 09:27:34 +02:00
3djc f6f43ee438 3djc/tiny batt check (#3565)
* Add tiny size for top bar

* Fix volatage with %2.2f format

* There are case where one is better than two :D
2016-06-03 17:08:22 +02:00
3djc 98ee2f8f52 Small fix to allow better display of widget label when selecting widget (#3562) 2016-06-03 09:36:32 +02:00
3djc 90cb89e86a 3djc/improve widget setup (#3557)
* Draw widget name on title bar, posistioning rules will need to be improved !

* Move the name inside the widget and invert it to create like a label

* - Move implemeentation to a 'label' form upper right. Works with all current widgets but Battcheck (that I'll modify acccordingly), moving on, widgets dev know what to expect.
- Possible improvement : fade out label display after 2 secs

* Cosmetics
2016-06-03 08:46:14 +02:00
3djc cfcdf3c3f8 3djc/columns hints (#3561)
* Fix columns trim5 and trim6 for Horus

* - Try a more translator friendly way to deal with the Horus increased columns size

* Fix commit

* Proof of concept

* More languages

* -Introduce HINT()
-Remove HR instead of TR
2016-06-02 23:01:44 +02:00
Bertrand Songis f1d1bc9d95 [Horus] Cosmetics 2016-05-31 20:23:09 +02:00
Bertrand Songis 52e59fc85b SWR now only available in debug screens (not a telemetry sensor) 2016-05-31 20:23:09 +02:00
Bertrand Songis 61420db3ff Cosmetics 2016-05-31 20:23:09 +02:00
Arne Schwabe 3a63c9edea Fixes #3510: Fix heli inversion not correctly shown/saved from Companion on Radios without virtual inputs (#3517) 2016-05-31 19:04:49 +02:00
Bertrand Songis 086632003b [Horus] Column names are back + A small description in the status bar ... 2016-05-30 17:11:10 +02:00
Bertrand Songis 60334a3cf2 [Horus] Cosmetics 2016-05-30 17:04:43 +02:00
3djc f7ba671034 - Improve messages for clarity that FLVSS sensor is neeeded (#3551) 2016-05-30 09:32:51 +02:00
Andre Bernet bbd79f57ee Translation fixes, remove warnings 2016-05-27 11:35:20 +02:00
Andre Bernet ff9278cb0b [Horus] Long press ENTER on mix move/creation would switch weight to GV mode (fix #3539) 2016-05-27 11:14:38 +02:00
Andre Bernet 38cba03556 Compilation fix 2016-05-27 11:04:01 +02:00
Damjan Adamic 79b2015b6e Re #3536: cosmetics 2016-05-26 20:41:48 +02:00
Stephen Street 7dac0ba81b Allow companion to install in non-default location on linux (#3533) 2016-05-26 18:21:13 +02:00
3djc 4fcf8ab7ff Native channel monitor widget (#3530)
* Commit following git issues

* Remove unseless floor()

* Fix cmake resources compile problem

* Better fix for cmake resources compile problem

* - overdraw rectangle on gauge (looks better)
- use divRoundClosest

* Cosmetics
2016-05-26 18:20:48 +02:00
Bertrand Songis d471dc6216 Cosmetics 2016-05-26 18:19:24 +02:00
Bertrand Songis 1246c7d916 Merge branch 'Ingwie-next' into next 2016-05-26 18:18:08 +02:00
Ingwie d1d3f7fa0a MEGA2560 the first PPM pulse in the frame longer. #2938 is missing in next 2016-05-26 12:34:28 +02:00
Ingwie 116802c946 [MEGA2560] KS108+ Voice+Splash "far" (#3534)
+little option (not defined) to reduce encoder resolution
2016-05-26 06:33:09 +02:00
Damjan Adamic 74adc1c7e6 Fix cmake resources compile problem 2016-05-25 23:17:36 +02:00
Damjan Adamic 829b86da99 Cosmetics 2016-05-25 22:14:10 +02:00
BenZoFly 0eda971365 Fixes #3518: GVar combobox not being refreshed when GV checkbox (re-)selected (ported from master) 2016-05-25 22:14:10 +02:00
Bertrand Songis 5f65217124 [MEGA2560] Add KS108 lcd + voice + "far" splash for firmware > 64Kb (#3515) 2016-05-25 21:21:51 +02:00
Bertrand Songis 907b6337fc [Horus] Impossible to remove widgets in layouts 2016-05-25 14:00:48 +02:00
Bertrand Songis c9e9087ec9 Cosmetics 2016-05-25 13:48:10 +02:00
Bertrand Songis 231499e191 [Horus] Bitmap class and lcd.drawBitmap() added 2016-05-25 11:48:38 +02:00
Bertrand Songis b7ad1ea226 [Horus] Impossible to remove widgets in layouts 2016-05-23 21:20:55 +02:00
Bertrand Songis 144710f1f7 S6R bitmaps improved 2016-05-23 19:34:03 +02:00
Damjan Adamic 03b4797073 Compilation fix (DEBUG_INTERRUPTS) 2016-05-23 19:08:16 +02:00
Damjan Adamic 06fce5108e Closes #3505: add fuel quantity sensor in telemetry simulator (#3506) (ported from master)
* Closes #3507: raise max RPM in telemetry simulator to 2147483647 (0x7FFFFFFF)
2016-05-23 18:49:46 +02:00
Arne Schwabe 957bc11135 Also always use the usb id in make flash like Companion does
On my mac the internal usb keyboard also registers as DFU device, making make flash quit with an error that multiple DFU devices are detected
2016-05-23 18:05:57 +02:00
3djc 4765984900 Use only CUSTOM_COLOR, (#3523)
* Use only CUSTOM_COLOR, seem to have no interaction with the rest of the system, albeit issue reports where neither very precise or reproductible

* Fix Xlarge

* Fix medium and large
2016-05-22 20:42:06 +02:00
3djc 8bcbd0f7f6 Give BattCheck a 'selective' memory, that is forget about lowest cell when you change lipo without changing model or turning radio off (#3521) 2016-05-22 11:54:45 +02:00
Bertrand Songis d73e4a6fbf Compilation fix 2016-05-22 11:48:21 +02:00
Bertrand Songis e97fe93a2e [Horus] SBUS trainer mode removed 2016-05-22 11:14:57 +02:00
Bertrand Songis 55c69a4448 [Horus] Trainer driver fix (I tested both master and slave modes) 2016-05-21 20:08:20 +02:00
3djc c614b1ac67 Proper implementation of update to monitor cells when not displayed on screen (#3520) 2016-05-21 19:19:07 +02:00
Bertrand Songis 9b72be1f97 [Horus] Trainer driver fix 2016-05-21 15:19:42 +02:00
Bertrand Songis 36df7900af [Horus] Trainer driver fix 2016-05-21 15:06:03 +02:00
3djc d1e7b66f1a 3djc/batt check widget (#3519)
* Completely rewrite drawing sections to allow MUCHO easier size or position change.

* First take at large widget, missing fine tuning of displayed item, and background data collection

* Comparing lower cell with their live counterparts is so much better

* Make use of newly introduced update() function

* Tidy up
2016-05-21 14:15:39 +02:00
Bertrand Songis cfbec2cad9 Option DBLKEYS (default=enabled) added on all boards, except 9XR and 9XR-PRO 2016-05-21 11:27:17 +02:00
Bertrand Songis 7a2c0b3b88 [Horus] Widget::update added to the Lua interface (called when options are modified) 2016-05-21 11:08:01 +02:00
Damjan Adamic 0fad67a8ea Switch warning fix for Horus (#3516) 2016-05-20 23:05:32 +02:00
Bertrand Songis f3d6dfea94 Revert a quick & dirty change -std=gnu++11 2016-05-19 22:33:45 +02:00
3djc e032215186 Add widget not configured management (#3511)
Widget size 1/2 now available also
2016-05-19 18:08:26 +02:00
Bertrand Songis 32576b6f72 LUA option added to automatic builds 2016-05-19 07:00:27 +02:00
Bertrand Songis 7a98a85bc5 Cosmetics 2016-05-19 06:43:52 +02:00
Damjan Adamic 29a139559d Re #2999: More strict SBUS frame check (only allow 25 byte frames, ch… (#3501)
* Re #2999: More strict SBUS frame check (only allow 25 byte frames, check end byte)

* SBUS fixes
2016-05-19 06:30:19 +02:00
Bertrand Songis 7eba760797 Compilation fix 2016-05-18 22:21:44 +02:00
Bertrand Songis 6f8bfa8da5 Compilation fix 2016-05-18 22:04:41 +02:00
Bertrand Songis 9056e76460 [Taranis] RIGHT attribute added + TELEMETRY page splitted 2016-05-18 21:52:16 +02:00
Bertrand Songis 5d42c437a8 S6R Lua script fixes 2016-05-18 21:50:17 +02:00
Bertrand Songis 633af68fa9 [Horus] background function added to widgets 2016-05-18 18:49:06 +02:00
Bertrand Songis 1da69e4066 Dockerfile updated (zip needed for sd packs) 2016-05-17 23:52:47 +02:00
Bertrand Songis c13b5d064c [Taranis] S6R script splitted into 3 pages, bitmaps added, calibration added (still no answer from X6R) 2016-05-17 23:43:13 +02:00
Bertrand Songis f27a87dea4 toInt16 function added 2016-05-17 23:41:05 +02:00
3djc 4268ce9eca 3djc/batt check widget (#3498)
* Add 1/4th screen widget (in addition to existing 1/8th)

* Batt+ filled white

* Cosmetics

* Review copyright and zone handling
2016-05-17 06:56:35 +02:00
Damjan Adamic 8eda8244c6 Re #2826: Lua API: doc update for Cels- and Cels+ 2016-05-16 22:01:06 +02:00
Damjan Adamic 67c0326cca Re #2826: Lua API: return proper values for Cels- and Cels+ 2016-05-16 21:36:19 +02:00
Arne Schwabe 164844319a Remove "*.exe" from german translation for Unix/Mac (closes #3500) 2016-05-16 18:23:10 +02:00
Bertrand Songis aed4bf3709 Wizard images commited by mistake 2016-05-16 10:30:49 +02:00
Damjan Adamic a0feed7f4d Fixes #3492: better implementation of delay_01us() using Cortex system cycle counter (#3497) 2016-05-15 14:30:32 +02:00
Bertrand Songis 3f74d54fd9 RIGHT exported to Lua 2016-05-15 13:05:51 +02:00
Bertrand Songis f2d778e74e Curves fix for #3317 ported to 'next' 2016-05-15 08:30:32 +02:00
Damjan Adamic 1d4e6101ba Projectkk2glider/issue 3317 curves (#3451)
* Fixes #3317: curve Preset and Clear fixes

* Re #3317: cosmetics
2016-05-15 07:57:05 +02:00
Damjan Adamic 59653f9ca6 Fixes #3492: delay_01us() and delay_ms() functions were generating wrong delays (6 times shorter on Taranis, 8 times on X9E and Horus). Important delays adjusted, function names and code unified. (#3496) 2016-05-14 21:56:20 +02:00
Neil Horne 98798c1e42 Fixes #3459 Rotary encoders linked flight mode can freeze Companion (#3470) 2016-05-14 20:18:17 +02:00
3djc 721a166be3 Widget inital load. Currently working ONLY for SMALEST size (#3495)
* Widget inital load. Currently working ONLY for SMALEST size

* Allows selection of Cels sensor in the widgets settings, cosmetic (indentation)

* Change indent to 2
2016-05-14 20:15:07 +02:00
3djc dcd42145d0 3djc/add lcd.rgb (#3494)
Add docs for lcd.setColor and lcd.RGB
2016-05-14 16:58:29 +02:00
Bertrand Songis cc6ccdc3ab Travis good? 2016-05-14 12:15:49 +02:00
Bertrand Songis 29d1c4f6f6 [Taranis] DMA2_Stream1 used for SBUS Rx in the module bay 2016-05-14 12:12:01 +02:00
Bertrand Songis 0467ef862f Again OK with python2 2016-05-14 12:09:26 +02:00
Bertrand Songis 30f2f3a1e4 Again OK with python2 2016-05-14 12:08:11 +02:00
Bertrand Songis 77ca37cf96 Update README.md 2016-05-14 11:40:27 +02:00
Bertrand Songis f63a9c4cb7 Travis install time reduced (#3493) 2016-05-14 11:33:02 +02:00
3djc 7b3dcec30e Fix lcd.drawGauge outer rectangle which was always black 2016-05-14 02:12:04 -07:00
Damjan Adamic 7161d90297 gtests fix 2016-05-14 10:22:17 +02:00
Bertrand Songis 082e2bbefd [Horus] Timer countdown ported to Horus 2016-05-14 00:16:17 +02:00
Bertrand Songis 5b7526c5e8 Fixes #2999 in 'next' (OpenTX 2.2) 2016-05-13 16:51:04 +02:00
3djc 01a69e3dbf Do not export COLOR_INDEX to LUA anymore, as they are not needed anymore due to change in setColor (#3490) 2016-05-13 16:18:40 +02:00
Bertrand Songis aaa10034ad S6R script update 2016-05-13 14:41:48 +02:00
Bertrand Songis 7908eaa406 [All] Code refactoring
- keys beep and haptic refactoring (not anymore audio events)
- trims move/mid/min/max refactoring (trim end splitted to trim min / trim max)
- S6R new alarms
- S6R servos/rx status displayed as a text (not an integer which has no sense)
- Timer countdown configuration
- The splash was not displayed (but the timeout was there) after the first calibration
2016-05-13 14:41:48 +02:00
3djc 24abad55ca Fix CUSTOM_COLOR,… (#3489)
* Fix CUSTOM_COLOR, also change to way setColor work to a more natural : lcd.setColor(CUSTOM_COLOR, RED)

* Remove _INDEX from TBS main to match the recent change to setColor
2016-05-13 14:26:18 +02:00
Bertrand Songis 77888ae200 TTS scripts were completely broken 2016-05-13 13:08:56 +02:00
3djc e55a84d8b7 Enables lcd.drawGauge on Horus (#3487)
* Enables lcd.drawGauge on Horus

* cosmetic, unsigned, and add flags
2016-05-13 12:34:59 +02:00
Bertrand Songis f46ff84845 S6R Lua script fixes 2016-05-13 10:57:15 +02:00
Bertrand Songis a8480f9af2 Cosmetics 2016-05-13 09:34:56 +02:00
Damjan Adamic 06d9ec846d Re #3485: variable type fix 2016-05-12 22:25:35 +02:00
3djc 0ec122f519 Fix lcd.drawRectangle on Horus (#3485)
* Fix lcd.drawRectangle on Horus

* Fix lcd.drawRectangle on Horus, this time not breaking other platforms

* Fix lcd.drawRectangle on Horus, this time *realy ?* not breaking other platforms

* Fix lcd.drawRectangle on Horus, default thickness to 1

* Fix lcd.drawRectangle on Horus, move to unsigned, following projectkk2glider comment

* Fix lcd.drawRectangle on Horus, spelling

* Fix lcd.drawRectangle on Horus, indent (hope I did understand your comment correctly
2016-05-12 22:08:30 +02:00
Damjan Adamic 49b3e5428f Fixes #3476: better representation of negative mixer weight in offset bar widget (ported from master) 2016-05-12 21:05:36 +02:00
Damjan Adamic 2df621993e Enable DSM protocols on all targets that define DSM2 macro, not just on Taranis. (#3471) (ported from master) 2016-05-09 20:42:27 +02:00
Damjan Adamic 49cad7f757 Re #3462: Lua doc update 2016-05-09 19:29:52 +02:00
elecpower 5f648b2050 Fixes #3214: Flight mode clear (ported from master, Re #3460) 2016-05-08 20:39:37 +02:00
Bertrand Songis fa9b94bb71 Cosmetics 2016-05-07 15:36:36 +02:00
Bertrand Songis dabfb705be [Horus] Cosmetics 2016-05-07 11:21:37 +02:00
Bertrand Songis ec6a9541f1 [Horus] Another fix for french special chars + input icons 2016-05-07 11:21:02 +02:00
Andre Bernet 1c7bd63a94 [Horus] Input icons were broken 2016-05-07 10:30:41 +02:00
Andre Bernet 3b445321fc [Horus] Layout cosmetics 2016-05-06 23:28:45 +02:00
Damjan Adamic 6349ff9496 Fixes #3462: PlayTone check for min/max frequency added. Fixes Lua playTone() crash when called with abnormal parameter values. (#3468) (ported from master) 2016-05-06 22:44:43 +02:00
Damjan Adamic 8cd677d697 Projectkk2glider/issue 3463 negative filtered sensor values (#3469) (ported from master)
* Fixes #3463: negative sensor values were invalid if filter was active for the sensor

* Re #3463: enable simultaneous use of `offset` and `filter` (was: when `offset` was enabled, the `filter` was always inactive even if enabled)
2016-05-06 22:37:05 +02:00
Bertrand Songis e2247623a2 [Horus] Shutdown animation in EMERGENCY mode - not tested 2016-05-06 10:23:32 +02:00
Bertrand Songis cd9c17e1f4 Cosmetics 2016-05-06 10:21:32 +02:00
Bertrand Songis 8dee23d9d3 Build scripts update 2016-05-05 22:33:53 +02:00
Bertrand Songis a5a4309cee Build scripts update 2016-05-05 20:24:43 +02:00
Bertrand Songis 1d7f33e23f Build scripts update 2016-05-05 13:56:40 +02:00
Bertrand Songis 5409d00a2a Another problem with C++11 on the Docke container 2016-05-05 12:32:27 +02:00
Bertrand Songis addb51b25a French translations too long for the calibration screen 2016-05-05 11:29:12 +02:00
Bertrand Songis 870b6e2c68 Build scripts update 2016-05-05 11:27:51 +02:00
Bertrand Songis 65c4b26181 Build scripts update 2016-05-04 18:59:07 +02:00
Andre Bernet f9198e3b7e Missing translation 2016-05-04 10:05:35 +02:00
Bertrand Songis cc8ea42cdb Build scripts update 2016-05-03 07:36:25 +02:00
Damjan Adamic baacc0fe29 Stick mode now in one global variable, it should work in Horus emerge… (#3455)
* Stick mode now in one global variable, it should work in Horus emergency mode

* Improvements (suggested by Bertrand)
2016-05-02 23:39:15 +02:00
Bertrand Songis d2f654e32d Build scripts update 2016-05-02 23:36:57 +02:00
Bertrand Songis 30056224a6 Build scripts update 2016-05-02 23:30:44 +02:00
Bertrand Songis bded417e8d Build scripts update 2016-05-02 23:28:54 +02:00
Bertrand Songis 0e26f03a1c Compilation scripts update 2016-05-02 23:25:24 +02:00
Bertrand Songis afce17443f Fixes #3456 2016-05-02 22:46:06 +02:00
Bertrand Songis 0e5df7235d [Taranis] Some more conversion issues 2016-05-02 19:52:07 +02:00
Damjan Adamic 3fb853c8b8 Re #3454: sensor persistent fixes (ported from master)
* Only clear sensor.persistentValue when the sensor.persistent is disabled and not on every shutdown.
* Only show persistent option for calculated type sensors (only these actually get saved in EEPROM)
2016-05-02 19:38:57 +02:00
Damjan Adamic 97cc58e323 Projectkk2glider/issue 3432 jitter filter option (#3452)
* Fixes #3432: radio option added to turn on/off ADC jitter filter (ported from master)

* Gtests fix

* Re #3432: compilation fix

* Re #3432: existing field split to accommodate the new option without the RadioData size change
2016-05-02 19:26:08 +02:00
Arne Schwabe 9924695b1d Fix (my own) typo in german translation 2016-05-02 11:16:41 +02:00
Bertrand Songis 895a62c84e Unit "milliwatts" missing in french TTS 2016-05-01 22:48:54 +02:00
Bertrand Songis 3c377a55e7 Getting bored of this tada.wav :)
Somebody asked me to change it to hello.wav as we already have bye.wav
2016-05-01 22:37:00 +02:00
Andre Bernet ce4b6ed2b8 VC++ compilation 2016-05-01 09:37:50 +02:00
Bertrand Songis 633d52297d [Taranis] Consumption calculated sensor bugfix 2016-04-30 21:00:00 +02:00
Bertrand Songis e859baea3d [Lua] Snake game for Taranis 2016-04-30 20:59:06 +02:00
Bertrand Songis 3d815e5d1b [S6R] Delay is 500ms - Timeout set to 800ms 2016-04-30 19:41:37 +02:00
Bertrand Songis d8736bfe94 [FrSky] Support of old FAS prototypes (different resistors) 2016-04-30 19:33:00 +02:00
Bertrand Songis 1f7485ed91 [Sky9X] Shift in External Module settings 2016-04-29 20:46:42 +02:00
Damjan Adamic c6f13de505 Log viewer improvements (#3442)
* Added:
 * max altitude
 * two cursors for time/altitude measurement

* Fix if multiple altitude related telemetry items are selected (only put cursors on the first one)
2016-04-29 18:59:39 +02:00
Bertrand Songis bd87028fd5 FrSky S.PORT upstream (#3426)
FrSky S.PORT upstream
2016-04-29 18:44:25 +02:00
Bertrand Songis 56f59196ea [9XR-PRO] Compilation fixes and cosmetics 2016-04-28 20:36:42 +02:00
Bertrand Songis fe57faef74 [Taranis] EEPROM Conversions fixes 2016-04-28 18:59:36 +02:00
Bertrand Songis 9106ee581d [Sky9x] Fixes in Sky9x pulses driver. Would if fix #3203 ? 2016-04-28 18:58:45 +02:00
Bertrand Songis c147b2edbc [Sky9x] Cosmetics 2016-04-28 18:39:27 +02:00
Damjan Adamic 92c76b5884 Fixes #3372: Telemetry mode "FrSky D (cable)" choice was missing for Taranis (ported from master) 2016-04-28 12:52:50 +02:00
Bertrand Songis e04dfb7b7e [Crossfire] There was a NO DATA remaining in the telemetry screens 2016-04-26 23:53:30 +02:00
Bertrand Songis fd72c22cf5 Compilation fix for Sky9x 2016-04-26 20:10:11 +02:00
Bertrand Songis 26e156f9ad [Crossfire] Telemetry new fields (GPS / Battery)
I did a refactoring for the latitude and longitude decoding which should be tested carefully for FrSky S.PORT and D telemetry
There was a double conversion in S.PORT protocol, there are less maths now, and perhaps precision will be better
2016-04-26 19:36:48 +02:00
Bertrand Songis 34444aedb2 Dead code removed 2016-04-26 12:48:38 +02:00
Bertrand Songis 3693f34a41 [Crossfire] Min / max limits were missing for each channel transmitted 2016-04-26 12:17:02 +02:00
Andre Bernet 7d21c9eb87 [Horus] DE char shift (fix #3440) 2016-04-24 16:52:54 +04:00
Damjan Adamic 981d133607 Log viewer session finder fix (caused by different Qt4/5 behavior of QDateTime) 2016-04-23 20:40:18 +02:00
Damjan Adamic 8a545ee60b simu CPU optimizations 2016-04-23 20:07:43 +02:00
Damjan Adamic 42f82cbbed Proper simulator shutdown 2016-04-23 20:06:53 +02:00
Bertrand Songis 13ded98f29 Merge pull request #3428 from opentx/schwabe/companion_multimodule
Implementation of the Multi TX module logic in Companion and few minor fixes/updates for the code
2016-04-21 21:55:49 +02:00
Andre Bernet 6e5786ca71 [Horus] Disk cache OK now 2016-04-18 22:13:29 +04:00
Arne Schwabe 4c213d7639 Add some missing translation in the german language file 2016-04-18 17:01:14 +02:00
Arne Schwabe 788b62d80c Fix some compiler warnings of clang in companion 2016-04-18 00:53:12 +02:00
Arne Schwabe 7b30201867 Implement Multimodule TX options for Companion 2016-04-18 00:09:51 +02:00
Arne Schwabe 67364789a8 Implement real (struct size compatible) layout on Taranis 2016-04-18 00:09:51 +02:00
Arne Schwabe 80b406b8d9 Implement new protocols of Multimodule (SFHSS and D16 8ch) 2016-04-18 00:09:51 +02:00
Arne Schwabe f99e792dea Replace SYMAX2 with more user friendly Syma X2 2016-04-18 00:09:50 +02:00
Arne Schwabe 0ead216c24 Ensure that the multi protocol number does not change if Crossfire is disabled. 2016-04-18 00:09:50 +02:00
Arne Schwabe e053f75b76 Move ppm options in companion to substruct like in datastructs.h 2016-04-18 00:09:50 +02:00
Damjan Adamic d2923a32d3 Fixed bug in Disk Cache: reads bigger than cache block size were not handled properly 2016-04-17 18:37:57 +02:00
Arne Schwabe e62759e5f2 Fix C++ standard also on AVR target (#3401 needs c++11) 2016-04-17 13:36:15 +02:00
Damjan Adamic 41a5af5a6e Horus disk_ioctl() fixed: CTRL_SYNC was missing, default return is now RES_OK; 2016-04-17 12:55:01 +02:00
Andre Bernet 403471d869 [Horus] Disable disk cache by default until fixed 2016-04-17 11:16:03 +04:00
Bertrand Songis c2e90d35fd 2.1 to 2.2 RadioData conversions added 2016-04-16 19:16:38 +02:00
Andre Bernet 195a09c008 Compilation fix 2016-04-16 20:59:33 +04:00
Bertrand Songis 9c0e0a136a Simplification for div_and_round function 2016-04-16 18:26:14 +02:00
Bertrand Songis 740a2a71f5 [Horus] Fix in comment 2016-04-16 18:24:31 +02:00
Bertrand Songis 9c116f94ce Cosmetics 2016-04-16 18:23:53 +02:00
Andre Bernet 296d207cfa [Horus] Switch selection fixes 2016-04-16 16:40:05 +04:00
Damjan Adamic e33e83f2b5 Fixes #3351: same file was used as source and destination in file contents comparison 2016-04-15 15:31:44 +02:00
Bertrand Songis 1f19256722 Merge pull request #3407 from opentx/bsongis/adc_averaging_done_in_driver_layer
[ARM board] ADC are done 4 times inside the driver now. To be tested …
2016-04-10 22:57:13 +02:00
Damjan Adamic 6b73df6935 Doc fix for ANALOG_SCALE 2016-04-10 22:27:49 +02:00
Damjan Adamic 8ed325c33f Better precision for Analogs screen 2016-04-10 22:20:06 +02:00
Damjan Adamic 9e0e71ad92 ADC crosstalk fixed, new crosstalk and time measurements (for Horus) 2016-04-10 22:06:53 +02:00
Damjan Adamic 14841590b9 Fixes #3178: USB driver changed interrupt grouping which affected interrupt priorities (fix suggested by Michael Blandford) 2016-04-10 18:39:26 +02:00
Arne Schwabe a93e1538b9 Include c++ flags only on older make versions (< 3.1.0) 2016-04-10 18:09:02 +02:00
Bertrand Songis bbc2e11cca [Horus] Pots included in inputsMoved(...) function 2016-04-10 14:26:15 +02:00
Bertrand Songis 7247a511cf Simu compilation fix 2016-04-10 13:42:55 +02:00
Bertrand Songis dd2ff29601 [AVR] Flash usage on 9X now almost equals to 2.1 release 2016-04-10 12:50:43 +02:00
Bertrand Songis 9e0a26c51c [AVR] ModelData size check removed as it's more complex (depending on GVARS and EXT options) 2016-04-10 12:45:49 +02:00
Bertrand Songis 66bd674ccf [AVR] Target "firmware-size" added 2016-04-10 12:44:53 +02:00
Bertrand Songis b7939dc742 Executable permissions for checksize.py 2016-04-10 11:52:49 +02:00
Bertrand Songis 30e2d52f76 [Horus] EEPROM structs size changed between the 2 pull requests 2016-04-10 11:41:32 +02:00
Bertrand Songis 2acf6aed3b Merge pull request #3401 from opentx/schwabe/check_struct_sizes
check struct sizes
2016-04-10 10:48:07 +02:00
Bertrand Songis 5d171b3761 [Taranis] Crossfire period now 4ms. S.PORT TX didn't wait end of serial transfer before going to RX mode 2016-04-10 10:34:04 +02:00
Bertrand Songis 834092879c Merge pull request #3405 from opentx/kilrah/extratrims
[Horus] Extra trims support
2016-04-09 22:59:43 +02:00
Bertrand Songis e9bb5a5115 [Horus] These options are only examples! 2016-04-09 21:45:34 +02:00
Bertrand Songis 143afa855f [Horus] GVARS in OUTPUTS menu should be OK 2016-04-09 21:15:33 +02:00
Bertrand Songis e43d88e6b8 [Horus] Range and Bind buttons were badly displayed since latest font change 2016-04-09 19:54:49 +02:00
Bertrand Songis 070c64631a [Horus] Font again. How is it now? 2016-04-09 19:39:03 +02:00
Bertrand Songis efb290324a [Horus] Font cosmetics 2016-04-09 18:59:07 +02:00
Bertrand Songis 2f1f4243f0 [Horus] Is the font better? 2016-04-09 18:23:29 +02:00
Bertrand Songis 5ed27f157d Merge pull request #3409 from opentx/projectkk2glider/issue_3374_disk_cache_horus
Fixes #3374: added SD card disk cache for Horus
2016-04-09 18:11:19 +02:00
Damjan Adamic 868133371c Fixes #3374: added SD card disk cache for Horus
* SIMU_DISKIO option available again
 * new option DISK_CACHE defaults to ON for Horus
 * printf("%f") fixed in CLI
2016-04-09 17:09:46 +02:00
Bertrand Songis ee9bb73ef9 [Horus] The SETPOS char (0x1F) is again implemented on Horus (it's needed in the VERSION menu) 2016-04-09 11:23:44 +02:00
Bertrand Songis c5a44250fc Fixes #3353 2016-04-09 11:12:50 +02:00
Bertrand Songis a84357ad0b Qt warnings removed 2016-04-09 11:12:03 +02:00
Bertrand Songis 1e3da34ec8 [ARM board] ADC are done 4 times inside the driver now. To be tested on H 2016-04-09 10:09:54 +02:00
Bertrand Songis 5e354749b2 [Horus] Was it removed intentionnally? 2016-04-09 10:08:01 +02:00
Damjan Adamic 57028614fb Gtests cmake fix (which I broke in previous commit) 2016-04-08 21:42:12 +02:00
Damjan Adamic 651b0ad579 Disable gtests target if Qt5 not installed 2016-04-08 14:53:07 +02:00
Andre Bernet 0c187412ea Bad define 2016-04-08 14:38:45 +04:00
Bertrand Songis 1a05cfca16 [Horus] Cosmetics 2016-04-08 09:19:46 +02:00
Bertrand Songis 4bb5631b65 [Horus] Display trims option should be OK now 2016-04-08 09:18:00 +02:00
Bertrand Songis 1fc0525636 [Horus] Cosmetics 2016-04-08 09:07:56 +02:00
Bertrand Songis 79fcaec78f [Horus] DE special chars added 2016-04-08 09:05:07 +02:00
Bertrand Songis dc4587b5b6 [Horus] Topleft mask also added in cache 2016-04-08 09:03:39 +02:00
Bertrand Songis 5d869d78e3 Darkblue icons added 2016-04-08 09:02:18 +02:00
Andre Bernet 64a3c21c4e Merge branch 'next' into kilrah/extratrims 2016-04-08 10:46:34 +04:00
Andre Bernet c8cd34405d Merge pull request #3403 from opentx/kilrah/backlight
[Horus] Backlight control added back in, driver fix (thanks Adela), OFF level configurable
2016-04-08 10:25:27 +04:00
Andre Bernet 8807aa8689 Navigation fixes 2016-04-08 09:54:36 +04:00
Andre Bernet f534702d59 Backlight restored in emergency mode, prevent complete turn off to avoid confusion 2016-04-08 09:22:04 +04:00
Damjan Adamic 81c687dcd4 Merge pull request #3404 from opentx/bsongis/horus_icons_cache
Bsongis/horus icons cache
2016-04-07 22:07:36 +02:00
Damjan Adamic 7d57b4df05 Compilation fix 2016-04-07 21:27:00 +02:00
Andre Bernet 18f56075a5 Avoid EEPROM change by recovering some unused bits 2016-04-07 15:28:28 +04:00
Bertrand Songis eaed9dd1a9 [Horus] Menus icons now in cache
I hope it will reduce calculation time a little bit!
2016-04-07 08:26:04 +02:00
Bertrand Songis b1e5e06d5b [Horus] Last line was missing in popup menus 2016-04-06 16:22:41 +02:00
Andre Bernet 30018b2432 Backlight control added back in, driver fix (thanks Adela), OFF level configurable 2016-04-06 16:06:36 +04:00
Damjan Adamic eab639362a Compilation fix 2016-04-05 19:12:07 +02:00
Damjan Adamic 29325ad54f [ARM] Mixers calculated just-in-time 2016-04-05 18:38:37 +02:00
Bertrand Songis ce0b17744c French special chars added 2016-04-05 09:53:14 +02:00
Bertrand Songis 05ad98f9d8 Another potential menus freeze bug there 2016-04-05 09:52:03 +02:00
Bertrand Songis 38c7d9c2a0 Another fix for the SF menu freeze bug 2016-04-05 09:48:58 +02:00
Andre Bernet 7abcb28d11 Minor navigation fix 2016-04-04 21:40:14 +04:00
Andre Bernet cbe92aa058 Fix menu crash (please check) 2016-04-04 21:40:04 +04:00
Andre Bernet 0e7662b36d Compilation fix 2016-04-04 20:34:17 +04:00
Andre Bernet f0a0dc56c3 [Horus] One more SF fix (#3393) 2016-04-04 20:08:13 +04:00
Andre Bernet bdb938cd53 SF fixes (#3393) 2016-04-04 19:57:03 +04:00
Arne Schwabe bb21c20b21 Check sizes of eeprom struct sizes at compile time
Changing the size of a struct by accident lead to random the wrong data from the eeprom and can screw the eeprom up pretty bad. Better bail out if the eeprom size changes and let the developer make that an intentional choice. The template magic is there to print out the actual and expected size:

/Users/arne/oss/opentx/radio/src/datastructs.h:1045:3: error: static_assert failed "struct size changed"
  static_assert(expectedSize == realSize, "struct size changed");
  ^             ~~~~~~~~~~~~~~~~~~~~~~~~
/Users/arne/oss/opentx/radio/src/datastructs.h:1181:3: note: in instantiation of function template specialization 'check_size<TrainerData, 168, 16>' requested here
  CHKSIZE(TrainerData, 168);
2016-04-04 10:20:58 +02:00
Damjan Adamic 5993d28ab7 Compilation fix 2016-04-04 07:00:32 +02:00
Damjan Adamic 8c36199d69 Compilation fix (crossfire) 2016-04-03 23:27:02 +02:00
Damjan Adamic 3ef7326756 Horus audio stall fix. The buffer->state value was set too late. 2016-04-03 23:07:55 +02:00
Damjan Adamic 018fec4863 CLI print audio added. New command p added (same as print) 2016-04-03 23:06:08 +02:00
Damjan Adamic 839296ac1b PlaySound fix 2016-04-03 19:33:32 +02:00
Damjan Adamic 2990e9b9a3 Debug timers added (use -DDEBUG_TIMERS=YES to enable and CLI command "print dt" to see them) 2016-04-03 19:27:47 +02:00
Damjan Adamic a8aa6148e5 Tasks switching log added (use -DDEBUG_TASKS=YES to enable and CLI command "print tsl" to see it, only works on Horus) 2016-04-03 17:56:32 +02:00
Damjan Adamic 9673df83a7 Interrupt counters added (use -DDEBUG_INTERRUPTS=YES to enable and CLI command "print int" to see them) 2016-04-03 17:51:20 +02:00
Bertrand Songis a0b4053e82 [Crossfire] Now the pulses frame is encoded the same way than other Crossfire frames 2016-04-02 21:05:22 +02:00
Bertrand Songis b0bda14f23 [Horus] My last commit did break BOLD 2016-04-02 20:45:22 +02:00
Bertrand Songis 664a966bbc Cosmetics 2016-04-02 19:32:28 +02:00
Bertrand Songis 3cd6638e01 [Horus] Fontcache added. Should improve a lot the menus speed. 2016-04-02 19:31:54 +02:00
Andre Bernet d207a600e8 Attempt at getting the simu interface usable with the extra trims 2016-04-02 17:03:24 +04:00
Andre Bernet 1f6a711d24 [Horus] Extra trims added (#3393) 2016-04-02 16:45:43 +04:00
Andre Bernet 27d37f7b78 [Horus] New main view wasn't saved if no manual layout selection was done 2016-04-02 13:11:28 +04:00
Andre Bernet ab2960b6aa Merge branch 'kilrah/navigation' into next 2016-04-02 12:50:16 +04:00
Andre Bernet 43418e6705 More navigation improvements 2016-04-02 12:19:32 +04:00
Andre Bernet 21312cb1be [Horus] Calibration menu fixes 2016-04-02 11:27:19 +04:00
Andre Bernet a03f85b083 [Horus] Switch menu pages on key press 2016-04-02 11:06:10 +04:00
Andre Bernet d41218eb29 [Horus] Improve "setup screens" responsivity feel (actions on key press instead of release) 2016-04-02 10:46:46 +04:00
Andre Bernet 788bdfbb09 [Horus] Navigation fixes 2016-04-02 10:38:34 +04:00
Andre Bernet 9615c98103 Fix merge 2016-04-02 09:57:46 +04:00
Bertrand Songis cbec010f44 Multimodule merge 2016-04-01 23:08:52 +02:00
Bertrand Songis 5cb1ed87d8 Merge branch 'multi_module_next' of https://github.com/schwabe/opentx into schwabe-multi_module_next 2016-04-01 23:02:05 +02:00
Andre Bernet 1f303ec995 Merge pull request #3368 from opentx/kilrah/antennaselection
[Horus] Internal module antenna selection support
2016-04-01 19:38:05 +04:00
Andre Bernet 36316ecf4c Merge branch 'next' into kilrah/antennaselection
# Conflicts:
#	radio/src/translations/de.h.txt
#	radio/src/translations/it.h.txt
#	radio/src/translations/pt.h.txt
#	radio/src/translations/se.h.txt
2016-04-01 19:37:10 +04:00
Andre Bernet 555f6510b2 WDT at 500ms. Needs thorough checking 2016-04-01 18:58:29 +04:00
Andre Bernet 3c39893bca [Horus] 8-bit source index, really? (#3393) 2016-04-01 18:22:32 +04:00
Andre Bernet 5f86e87ae2 [Horus] Only 4 topbar zones now we have the fixed icons 2016-04-01 17:36:15 +04:00
Andre Bernet c5e95c9730 [Horus] Linear icons and name fix for L1/L2 (#3393) 2016-04-01 12:10:06 +04:00
Andre Bernet 75977b6b6d [Horus] Enable SWR warning 2016-04-01 11:48:53 +04:00
Andre Bernet 09780a07ff Merge pull request #3395 from opentx/kilrah/taranis_gpio
GPIO speed reduction for Taranis
2016-04-01 11:15:58 +04:00
Andre Bernet 54cb3de46e Merge branch 'next' into kilrah/taranis_gpio 2016-04-01 11:13:30 +04:00
Damjan Adamic 009eaa3893 Cmake compiler optimization flags fixed, now release build uses -Os instead of -O3 which is cmake's default. 2016-03-31 18:06:57 +02:00
Andre Bernet 02dfff319f [Horus] Cosmetics 2016-03-31 16:51:20 +04:00
Andre Bernet 3d4f3611b0 Merge branch 'next' into kilrah/antennaselection
# Conflicts:
#	radio/src/translations/de.h.txt
#	radio/src/translations/es.h.txt
#	radio/src/translations/it.h.txt
#	radio/src/translations/pt.h.txt
#	radio/src/translations/se.h.txt
2016-03-31 15:11:12 +04:00
Bertrand Songis 1f54c61e41 Dockerfile fixes ported to 'next' 2016-03-30 23:14:17 +02:00
Bertrand Songis 3c1221452a Taranis bootloader Makefile removed (CMake now) 2016-03-30 22:47:25 +02:00
Bertrand Songis e4d820b11e Dockerfile cosmetics 2016-03-30 18:51:42 +02:00
Andre Bernet 7076889e1a Channel range fix 2016-03-30 20:27:59 +04:00
Andre Bernet 438f81aef9 Reorganize / clarify board types by relevance 2016-03-30 20:14:37 +04:00
Bertrand Songis 4382445123 Cosmetics 2016-03-30 07:56:02 +02:00
Bertrand Songis 5f10deb182 Merge pull request #3391 from schwabe/fix_audio_osx
Make sound work in OS X
2016-03-29 22:49:14 +02:00
Bertrand Songis 9fb5416ac9 Makefile removed as it doesn't work anymore. CMake is used instead. 2016-03-29 22:40:29 +02:00
Bertrand Songis 791a2e5f75 PPM_UNIT = PERCENT_PREC1 by default (as in 2.1) 2016-03-29 22:30:38 +02:00
Bertrand Songis 9cd9616ece OVERRIDE_CHANNEL_FUNCTION = YES by default (as in 2.1) 2016-03-29 22:27:27 +02:00
Bertrand Songis 3f4cae8cb1 PPM_UNIT = PERCENT_PREC1 by default (as in 2.1) 2016-03-29 22:25:56 +02:00
Arne Schwabe a2e5efa6c7 Make simulator sound functional again in OS X (and probably Linux)
The radio/src/simu/CMakeLists.txt was missing the SDL defines/includes required for SDL audio
2016-03-29 22:13:18 +02:00
Arne Schwabe 2ad644d793 Add horus support for multi pulses (untested, following DSM2) 2016-03-29 21:41:15 +02:00
Arne Schwabe c09c3e0a2b Do not backup the multi module struct 2016-03-29 21:41:15 +02:00
Arne Schwabe 5d19adb1eb Copy strings for multimode support from en.h.txt to other languages 2016-03-29 21:41:15 +02:00
Arne Schwabe 96c64f2895 Add german translations for multi module
(Also fix C++11 suffix error when compiling on OS X/clang)
2016-03-29 21:41:15 +02:00
Arne Schwabe 0dc2f60e09 Add german translations for multi module
(Also fix C++11 suffix error when compiling on OS X/clang)
2016-03-29 21:41:15 +02:00
Arne Schwabe 99c7e3f0ad Add FY326 protocol 2016-03-29 21:41:15 +02:00
Arne Schwabe f86dc6b156 Implement DSM2/DSMX frame format options 2016-03-29 21:41:15 +02:00
Arne Schwabe 9de6e09c09 Implement autobind and low power setting and specifying a custom protocol for the multi module
Specifying a custom prtocol is useful if OpenTX firmware is older than the multi module firmware
and the protocol in question is not yet in the protocol list of the OpenTX firmware.
2016-03-29 21:41:15 +02:00
Arne Schwabe 119e413a6d Multi module support for Taranis
Reuse some of the DSM2 routines to avoid code duplication.

This first version only implements the protocol on the Taranis. (and not

Telemetry code is currently untested and will not work (Polarity mismatch). The main protocols to use telemetry are FrSky protocols and not a high priority on the Taranis.

Patch v3: Fix myeeprom.h, include option value in menu.
Patch v4: Fix identing, name substructs of modeldata
2016-03-29 21:41:14 +02:00
Arne Schwabe c788ad6add Move ppm related options into own struct
This allows to have the ppm related options in a union with a other module protocol specific options for the multi module.
2016-03-29 21:41:14 +02:00
Bertrand Songis 2e6570e209 New script to check AVR firmware size, as it seems it increased over time in the 'next' branch ... 2016-03-29 21:35:46 +02:00
Bertrand Songis 9762656ad0 Merge pull request #3388 from schwabe/datacopy_backup_union
Also backup members inside unions,
2016-03-29 21:31:25 +02:00
Bertrand Songis f2eadf0ff0 [Horus] Introduction of a button to remove an existing view 2016-03-29 20:09:24 +02:00
Arne Schwabe 90f67cd5ef Fix crash of simulator if directory does not exist. 2016-03-29 19:04:24 +02:00
Bertrand Songis 41b1e1c9bc Merge pull request #3390 from schwabe/companion_osx_build
Fix companion build on OS X
2016-03-29 19:03:06 +02:00
Arne Schwabe fb5feb8a91 Fix companion build on OS X 2016-03-29 18:11:50 +02:00
Arne Schwabe 86076bbf32 Also backup members inside unions,
the code is a bit more complicated since unions can have structs or simple types. Also change Telemetry sensor to be a struct, since a class with all public is identical to a struct in C++
2016-03-29 16:05:32 +02:00
Damjan Adamic c24219cbcd Merge pull request #3389 from schwabe/fix_travis
Fix travis (clang 3.8 -> 3.9)
2016-03-29 16:04:10 +02:00
Arne Schwabe 38dbfd130a Fix travis (clang 3.8 -> 3.9) 2016-03-29 15:17:01 +02:00
Bertrand Songis a6a07e9714 [Horus] Speedup when switching from the main view to any other menu 2016-03-28 23:18:32 +02:00
Bertrand Songis ed30b5a8ed [Horus] USB icon only displayed when USB plugged 2016-03-28 23:17:55 +02:00
Bertrand Songis 83a7859f6f Cosmetics 2016-03-28 23:17:20 +02:00
Bertrand Songis 6a2e26272e [Horus] Unused code removed 2016-03-28 23:16:22 +02:00
Bertrand Songis be1526a86d Cosmetics 2016-03-28 20:57:01 +02:00
Bertrand Songis 554f230696 Prevent from using the internal module when there is a Crossfire module plugged into the bay 2016-03-28 20:56:48 +02:00
Bertrand Songis f2fb6b20de Crossfire CRC added 2016-03-28 20:31:42 +02:00
Bertrand Songis a3c175f537 Crossfire telemetry protocol start 2016-03-28 19:07:28 +02:00
Bertrand Songis 5a5f192451 Remaining trace 2016-03-28 18:36:29 +02:00
Bertrand Songis af87c57d1d Translations files cosmetics (no CRLF / standard header / translation author, start at line 45) 2016-03-28 17:23:35 +02:00
Bertrand Songis 7c1db4c4dc Less files in .gitignore (they are now visible in case of in source compilation) 2016-03-28 11:26:57 +02:00
Bertrand Songis d73b34e1a9 [Crossfire] Back to 400kHz, at least for Taranis (no DMA on RX) 2016-03-28 11:25:47 +02:00
Bertrand Songis 746dc450fa Telemetry files split 2016-03-28 11:24:55 +02:00
Damjan Adamic 485d30f65b SysTick was configured wrong for Horus 2016-03-27 22:40:55 +02:00
Bertrand Songis 7e4b5d97e3 Compilation fix 2016-03-27 17:48:24 +02:00
Bertrand Songis 2c00a3437f Checkscreenshot simplification 2016-03-27 12:56:48 +02:00
Bertrand Songis fef78a1b97 Compilation fix 2016-03-27 10:49:04 +02:00
Bertrand Songis 2c256e9e73 Avoids generating all bitmaps one time per CPU during compilation 2016-03-27 10:46:19 +02:00
Bertrand Songis 1fba706bdb Compilation fixes 2016-03-27 10:33:32 +02:00
Bertrand Songis 7ec0dd8a40 Qt4 was still required for gtests 2016-03-27 10:18:31 +02:00
Bertrand Songis 8d5e5b2d01 Warnings fixed on VC++ 2015 2016-03-27 09:54:41 +02:00
Bertrand Songis 8c636e31d9 Dockerfile updated 2016-03-26 23:06:54 +01:00
Bertrand Songis c2412ca05e Python scripts with the executable flag 2016-03-26 23:04:39 +01:00
Bertrand Songis 6ceb575d1e DFU-UTIL "-d 0483:df11" again there 2016-03-26 16:34:12 +01:00
Bertrand Songis a70cbe6a0d Companion now able to use .dfu files for flashing radio firmware 2016-03-26 16:32:57 +01:00
Bertrand Songis e1b7848a91 Cosmetics 2016-03-26 16:13:00 +01:00
Bertrand Songis dfd4a04220 Revert "Also backup members inside unions,"
This reverts commit dd76e9d8bf.
2016-03-26 15:48:42 +01:00
Bertrand Songis 1c9a5ed753 Travis again 2016-03-26 14:13:50 +01:00
Bertrand Songis 42f1515b2f Travis again 2016-03-26 14:04:47 +01:00
Bertrand Songis 06cdc6ba7b Travis again 2016-03-26 13:24:18 +01:00
Bertrand Songis e774fe091c Travis again 2016-03-26 13:13:42 +01:00
Bertrand Songis 0273038289 Python build script fix 2016-03-26 12:48:47 +01:00
Bertrand Songis d609158b27 Travis again 2016-03-26 12:29:40 +01:00
Bertrand Songis 4bf837b21f Travis again 2016-03-26 11:36:29 +01:00
Bertrand Songis ca47684e36 Travis fix 2016-03-26 11:26:17 +01:00
Bertrand Songis 210ee69101 Travis fix 2016-03-26 10:49:27 +01:00
Bertrand Songis 6b4da258e7 Merge pull request #3385 from schwabe/next
Also backup members inside unions,
2016-03-26 09:22:07 +01:00
Bertrand Songis 47f083e1c8 Now we will try to build simulators the same way 2016-03-25 22:50:45 +01:00
Bertrand Songis 69fc1b9354 We won't start the bad simulator 2016-03-25 22:48:00 +01:00
Bertrand Songis c2786d36c9 More compilation server errors 2016-03-25 19:12:35 +01:00
Andre Bernet a2928c5d79 [Horus] Clock is 168MHz, not 180... 2016-03-25 20:54:07 +04:00
Andre Bernet 2bb63e6644 Header data is useful 2016-03-25 20:54:07 +04:00
Bertrand Songis 7501608aca Build output now saved in a .out file ... so that we can grep for warnings! 2016-03-25 16:53:09 +01:00
Bertrand Songis 862199f822 Dockerfile commited 2016-03-25 16:23:12 +01:00
Bertrand Songis ccfcfa85d0 Dockerfile commited 2016-03-25 15:56:21 +01:00
Bertrand Songis 884e1feee4 Dockerfile commited 2016-03-25 15:47:48 +01:00
Bertrand Songis a681c341a2 Dockerfile commited 2016-03-25 15:43:16 +01:00
Bertrand Songis 34f9bc0b63 Dockerfile commited 2016-03-25 15:39:55 +01:00
Bertrand Songis f073c9fe85 Dockerfile commited 2016-03-25 15:30:03 +01:00
Arne Schwabe dd76e9d8bf Also backup members inside unions,
the code is a bit more complicated since unions can have structs or simple types.
2016-03-25 14:04:30 +01:00
Bertrand Songis ecff71b044 Cosmetics 2016-03-25 12:54:35 +01:00
Andre Bernet 79dffdf5f4 GPIO speed adjustments - to be tested! 2016-03-25 14:39:07 +04:00
Andre Bernet bc70acb55d [Horus] Reduce GPIO speed where possible for noise reduction - no more audio noise now :) 2016-03-25 14:13:22 +04:00
Andre Bernet 4b6bcc6a0e 9x timer start edit fix 2016-03-25 11:48:39 +04:00
Bertrand Songis 1809addbb3 Later ... 2016-03-24 23:04:39 +01:00
Bertrand Songis 641fdc5160 VC++ compilation fix 2016-03-24 22:25:46 +01:00
Bertrand Songis c1cd54ee6a [Horus] Missing font 2016-03-24 22:11:08 +01:00
Bertrand Songis 497f699331 gtests enabled for Horus 2016-03-24 21:52:49 +01:00
Bertrand Songis b4bf833667 Compilation fix on older CMake versions 2016-03-24 21:45:48 +01:00
Bertrand Songis f979fd7289 Cosmetics 2016-03-24 21:43:22 +01:00
Bertrand Songis d5931d2129 TTS language is "en" by default 2016-03-24 21:43:00 +01:00
Bertrand Songis d6dfdea6e2 [9x] Simu compilation fix when VOICE option enabled 2016-03-24 21:42:32 +01:00
Bertrand Songis 31fa16bf87 [Horus] Bold font added 2016-03-24 21:41:43 +01:00
Bertrand Songis e3d70817ea Build script converted to python and added to git 2016-03-23 23:46:49 +01:00
Bertrand Songis 20ab3a324b CMake warning fix 2016-03-23 23:20:59 +01:00
Bertrand Songis fd57db6068 [Horus] Curve bug when drawing negative X or negative Y 2016-03-23 23:20:40 +01:00
Bertrand Songis 3d0bf81bfd [AVR boards] TTS option was missing in CMakeLists.txt 2016-03-23 22:47:45 +01:00
Bertrand Songis c58217a82c TODO added for Kilrah, I am not sure this line is useful 2016-03-23 22:46:51 +01:00
Damjan Adamic d831d1428c Re #3371: Horus batery voltage adjusted based on measurements with a precise volt-meter 2016-03-23 19:49:35 +01:00
Andre Bernet 3480107a9b Typo 2016-03-23 22:42:15 +04:00
Andre Bernet c5a5fa2430 Horus got forgotten 2016-03-23 22:20:01 +04:00
Andre Bernet ea41a59da7 Translation fixes 2016-03-23 22:16:37 +04:00
Bertrand Songis cb42f4814b Merge pull request #3384 from opentx/kilrah/timers_22
Kilrah/timers22
2016-03-23 18:30:19 +01:00
Andre Bernet e5e3bb4997 Missing translations 2016-03-23 21:13:57 +04:00
Andre Bernet cd43482911 Elapsed timer visualization (fix #3383) 2016-03-23 19:37:25 +04:00
Andre Bernet 82ccb70ebd Wasted flash 2016-03-23 16:57:38 +04:00
Andre Bernet 8931b76143 Horus part 2016-03-23 16:51:03 +04:00
Andre Bernet c6b2e12802 Removed a few legacy timer limitations, fix non-working limit (fix #3301) 2016-03-23 07:29:12 +04:00
Bertrand Songis c282aa6065 Merge pull request #3382 from schwabe/fix_build_opentx
Fix building OpenTX under OS X
2016-03-22 22:44:14 +01:00
Bertrand Songis bff45a4b2a [Horus] Tx battery and audio volume added in the topbar 2016-03-22 22:43:00 +01:00
Arne Schwabe ad5b17900b Fix building OpenTX under OS X
The clang.index python library does not look in the default path where the library is installed
2016-03-22 22:37:23 +01:00
Bertrand Songis 43c70780b1 Compilation fix 2016-03-22 20:25:22 +01:00
Bertrand Songis a05fa1738f [Horus] Return to 6 chars wav names to track the shutdown bug without having to reconfigure the model 2016-03-22 19:38:23 +01:00
Bertrand Songis 5691395dcf [Horus] Google tests added 2016-03-22 19:36:53 +01:00
Andre Bernet 74992a69dc Default AVR fuse settings changed to disable JTAG interface (#3379 part 2) 2016-03-22 16:16:17 +04:00
Andre Bernet d064ba0136 Simu compilation 2016-03-22 15:49:45 +04:00
Andre Bernet 1efad1ac38 Merge branch 'next' into kilrah/antennaselection
Conflicts:
	radio/src/myeeprom.h
2016-03-22 15:31:44 +04:00
Andre Bernet 909b3bb595 Antenna change warning added 2016-03-22 15:28:20 +04:00
Andre Bernet 3eb0c3a953 [9X/2650] Fix occasional interaction between JTAG port and POT3 (fix from Mike following openrcforums discussion) 2016-03-22 12:18:29 +04:00
Andre Bernet 9e61f3e5e0 [Horus] Timer display enhancements 2016-03-22 12:18:29 +04:00
Bertrand Songis dbcda02770 Error and Warning fixed 2016-03-21 22:21:13 +01:00
Bertrand Songis c8a84a404b Compilation failure 2016-03-21 21:51:51 +01:00
Bertrand Songis c19b35ea0e [Horus] Compilation fix with JITTER_MEASURE 2016-03-21 20:53:52 +01:00
Bertrand Songis bca7773279 [Horus] Failsafe screen done 2016-03-21 18:40:11 +01:00
Bertrand Songis b29f9584d1 [Horus] Cosmetics in Special Functions screen 2016-03-21 18:39:35 +01:00
Bertrand Songis e6acfc7e88 [Horus] Logical switches UI fixes 2016-03-21 18:38:52 +01:00
Bertrand Songis 38e44991e9 Cosmetics 2016-03-21 18:38:05 +01:00
Bertrand Songis 27dc84028c [Taranis] It's now impossible to have Trainer input in the external module and a regular module enabled 2016-03-21 18:37:17 +01:00
Bertrand Songis bd3c52d6ac Warning removed 2016-03-21 18:33:26 +01:00
Bertrand Songis 8ecd053af5 Cosmetics 2016-03-21 18:32:35 +01:00
Damjan Adamic be29e80988 WATCHDOG_DISABLED default set to OFF 2016-03-20 22:15:06 +01:00
Damjan Adamic 28dd71905f Fixes #3375: better linearity for Horus volume control 2016-03-20 21:44:33 +01:00
Bertrand Songis 76e39222db [Horus] The Modelbmp widget was always refreshed since my last commit 2016-03-20 19:56:06 +01:00
Andre Bernet 5e6288b7d1 [Horus] LS editing bug 2016-03-20 22:53:19 +04:00
Bertrand Songis 65664c0bc9 Merge pull request #3373 from opentx/projectkk2glider/issue_3371_horus_tx_battery
Projectkk2glider/issue 3371 horus tx battery
2016-03-20 18:06:58 +01:00
Damjan Adamic 3a064b15ed Simu fixes for 9X 2016-03-20 17:24:30 +01:00
Damjan Adamic af2cd30146 Re #3371: Battery warning range fix for Horus 2016-03-20 17:13:23 +01:00
Damjan Adamic a25b20a1e7 Re #3371: Sky9X fixed 2016-03-20 17:01:17 +01:00
Damjan Adamic 43e7680c9b Re #3371: ARM stuff removed from AVR version of checkBattery() 2016-03-20 17:00:58 +01:00
Damjan Adamic e317687973 Fixes #3371: Battery calibration menu item added for Horus 2016-03-20 16:05:27 +01:00
Damjan Adamic a3af63edad Re #3371: tx battery measuring code moved to board_xxx.cpp, battery check code rewritten for ARM platforms, Horus battery calibrated. 2016-03-20 16:05:27 +01:00
Damjan Adamic 49e70dbf12 simulator fixes 2016-03-20 15:20:59 +01:00
Bertrand Songis 74229b808f Duplicated code removed 2016-03-19 19:30:37 +01:00
Bertrand Songis 5925e8eae4 [Horus] Analogs view for debug in the Statistics menu 2016-03-19 19:06:15 +01:00
Bertrand Songis 63d306070a [Taranis] Cosmetics 2016-03-19 19:05:34 +01:00
Bertrand Songis bffa99d98f Simulator segfault 2016-03-19 18:49:04 +01:00
Bertrand Songis defef14018 Compilation fix 2016-03-19 18:20:48 +01:00
Bertrand Songis 0a7d0119fe Merge pull request #3330 from opentx/projectkk2glider/issue_3255_uid_display
Projectkk2glider/issue 3255 uid display
2016-03-19 16:32:26 +01:00
Bertrand Songis 3fdfcf45f9 [Horus] ModelBmp widget refreshed when the model name changes 2016-03-19 14:35:45 +01:00
Bertrand Songis f43a790d5c [Taranis] HEARBEAT now uses the DMA for SBUS reception 2016-03-19 13:41:21 +01:00
Bertrand Songis 244239ff6a Compilation fix 2016-03-19 12:40:11 +01:00
Bertrand Songis 4443ab22ee [Taranis] Overrun errors on S.PORT are now counted and it's possible to display the errors count in the CLI 2016-03-19 12:06:43 +01:00
Bertrand Songis f622d7cf6d [Taranis] We cannot receive S.PORT through DMA, the associated stream is already used by the DAC 2016-03-19 12:01:36 +01:00
Bertrand Songis b8068438fb [Horus] Sliders will stop always moving when around 0, just because of a bad rounding when negative 2016-03-19 00:09:06 +01:00
Bertrand Songis e8b783a491 [Crossfire] Now 921600bauds as we have bigger plans :) 2016-03-18 22:19:29 +01:00
Bertrand Songis 5cb6884ab3 [Horus / Taranis] S.PORT telemetry now uses the DMA. I think the buffer could be reduced, 512bytes seems really big 2016-03-18 21:49:06 +01:00
Andre Bernet e810367284 Duplicate code removed 2016-03-19 00:24:57 +04:00
Andre Bernet 648f03a079 Cosmetics 2016-03-19 00:21:16 +04:00
Andre Bernet 0661b8219c [Horus] Internal module antenna selection support 2016-03-18 21:12:18 +04:00
Bertrand Songis e4b596d733 Cosmetics 2016-03-18 17:11:06 +01:00
Andre Bernet f90a69335b [Horus] Theme init was missing in general settings defaults 2016-03-18 17:49:02 +04:00
Andre Bernet dd066c3ec1 Fix simu screenshot size for Horus 2016-03-18 15:30:49 +04:00
Andre Bernet 83c88d93ee Battery timer was reset on wrong page 2016-03-18 15:08:39 +04:00
Andre Bernet 92911daf73 Duplicate "Free Mem" line removed 2016-03-18 14:52:55 +04:00
Andre Bernet ca7eae6ef0 SDL path got mangled when mingw32 is defined 2016-03-18 12:44:38 +04:00
Bertrand Songis 662137aa6d [Companion] dfu-util launched with right args for Horus 2016-03-17 21:04:09 +01:00
Bertrand Songis a2db3f2150 [Companion] dfu-util launched with right args for Horus 2016-03-17 20:45:11 +01:00
Bertrand Songis de08e50f15 [Companion] Latest release correctly stored 2016-03-17 20:08:30 +01:00
Bertrand Songis 32a3d4588e [Horus] Nightly builds parameters hidden when NIGHTLY_BUILDS=NO 2016-03-17 19:00:56 +01:00
Bertrand Songis ca4a5356f2 Merge pull request #3363 from craftandtheory/next
SMLSIZE fixes + Gtests on SmlsizeDecimalPoint
2016-03-16 23:07:14 +01:00
Bertrand Songis 8cf4b5e4e8 [Horus] Telemetry fields missing in the sources list 2016-03-16 22:18:37 +01:00
Bertrand Songis e4729727ae [Horus] MAX and Trims were missing in the sources list 2016-03-16 22:12:36 +01:00
Bertrand Songis 14673dd7bb [Horus] Navigation enhancements 2016-03-16 21:55:03 +01:00
floaledm c2dffd2b24 Gtests on SmlsizeDecimalPoint 2016-03-16 20:22:31 +00:00
Bertrand Songis 5a7c9311de [Horus] Better handling of theme options 2016-03-16 20:47:56 +01:00
Bertrand Songis eb477f2953 [Horus] Small changes in the keymap 2016-03-16 20:46:42 +01:00
Damjan Adamic 5337092e93 datacopy.cpp generated file now part of the sources and can be generated manually with target datacopy 2016-03-16 20:15:54 +01:00
Bertrand Songis e0ead516f6 Wrong command 2016-03-16 07:32:19 +01:00
Bertrand Songis 083060968f Wrong command line 2016-03-16 07:28:06 +01:00
Bertrand Songis c038a7e4d5 [Companion] I forgot the -DALLOW_NIGHTLY_BUILDS 2016-03-16 07:20:00 +01:00
Bertrand Songis 7e45537402 [Horus] Keymap is now consistent with labels on keys 2016-03-15 23:21:32 +01:00
Bertrand Songis 9a66da21d5 [Horus] Default theme color can now be changed 2016-03-15 23:15:26 +01:00
Bertrand Songis 63fcf537e6 [Horus] Internal module OK 2016-03-15 22:52:21 +01:00
Bertrand Songis b1ebcb9ace [VC++] Quick & dirty fix to avoid the gettimeofday function when _MSC_VER is defined 2016-03-15 07:12:37 +01:00
Bertrand Songis 0807edfc20 TTS prompts (en / fr) updated 2016-03-14 22:52:12 +01:00
Bertrand Songis 5c107aeece [Horus] Compilation with the StatsTraces screen was KO 2016-03-14 22:38:25 +01:00
Bertrand Songis 050c1b5a7f [Horus] Wrong timer displayed 2016-03-14 22:37:28 +01:00
Bertrand Songis e9bcb05a93 CRLF removed 2016-03-14 22:30:46 +01:00
Bertrand Songis 691f4aa0ae Horus is flashed with dfu-util in Companion 2016-03-14 22:23:22 +01:00
Bertrand Songis 0045d8bcc8 Dead code removed 2016-03-14 21:57:15 +01:00
Bertrand Songis 7adccc23dc [Horus] Stats menu refactoring 2016-03-14 21:57:15 +01:00
Andre Bernet 13657587b1 Installer cleanup 2016-03-14 22:34:47 +04:00
Bertrand Songis ccb4db4c70 [Horus] Draft for stats menu 2016-03-14 18:56:55 +01:00
Bertrand Songis b6e8b73589 Sky9x simulator should now be OK 2016-03-14 18:55:56 +01:00
Bertrand Songis 88ca7fcc68 Link error in Sky9x / 9XRPRO simulators 2016-03-14 07:04:50 +01:00
Bertrand Songis 3f3af01cca Wrong simulator started in Companion for Taranis Plus / X9E 2016-03-13 23:34:20 +01:00
Bertrand Songis 7ec2c2c5a9 Merge pull request #3358 from opentx/projectkk2glider/issue_3344_lua_language
Fixes #3344: radio and voice language returned in Lua getGeneralSetti…
2016-03-13 19:29:40 +01:00
Damjan Adamic 92c208c003 Fixes #3350: sync dialog new line was not translated 2016-03-13 19:23:00 +01:00
Damjan Adamic a1e0b550fd Re #3344: doc update 2016-03-13 18:34:29 +01:00
Damjan Adamic d5db9b7410 Fixes #3344: radio and voice language returned in Lua getGeneralSettings() 2016-03-13 18:26:08 +01:00
Bertrand Songis 129b46ed2b Some more DLLs, now it works! 2016-03-12 22:51:52 +01:00
Bertrand Songis 7f3dbd0b57 Missing DLLs 2016-03-12 22:04:31 +01:00
Bertrand Songis 6443c49285 Try to have everything compiling in the same time! 2016-03-12 20:52:03 +01:00
Bertrand Songis 9fa354779c Suffix added to the Windows compile script 2016-03-12 20:46:17 +01:00
Damjan Adamic 3134b601d4 Re #3340: emergency mode is working, model settings survive WDT reset 2016-03-12 19:38:53 +01:00
Damjan Adamic b5c59368ca Compilation fix 2016-03-12 19:29:08 +01:00
Damjan Adamic a575709088 Horus power loop fixed if power button is held pressed. 2016-03-12 19:23:15 +01:00
Bertrand Songis a0132fc4e7 More simulators in Companion 2016-03-12 19:20:31 +01:00
Bertrand Songis ddac3ea5e0 More simulators in Companion 2016-03-12 19:18:32 +01:00
Bertrand Songis f4174e6756 Windows compilation script added to git 2016-03-12 18:58:32 +01:00
Bertrand Songis 958c51b374 VC++ simu DLL compilation fixes 2016-03-12 18:31:27 +01:00
Bertrand Songis 8d1121dcc1 Make Companion optional (in case we don't have Qt5 installed) 2016-03-12 12:17:12 +01:00
Bertrand Songis 47f949c491 Make Companion optional (in case we don't have Qt5 installed) 2016-03-12 11:56:15 +01:00
Bertrand Songis 5790716a0b [Horus] Memory overflow check added in compress / uncompress methods to BACKUP RAM 2016-03-12 10:21:43 +01:00
Damjan Adamic c141554fc1 CLI fixes 2016-03-12 07:03:50 +01:00
Bertrand Songis 560a297680 [Horus] Freeze when selecting an empty models category 2016-03-11 22:55:31 +01:00
Bertrand Songis b86f45e15b Thread delays also used in simu 2016-03-11 22:45:01 +01:00
Bertrand Songis 80bc6f2d1a Date / Time on simu now right (and less warnings given by Valgrind) 2016-03-11 22:24:26 +01:00
Bertrand Songis 2b39d703a1 Compilation fix 2016-03-11 21:54:29 +01:00
Damjan Adamic 03988a3a62 Emergency mode now working 2016-03-11 21:24:09 +01:00
Bertrand Songis 5b7853029c Warning fixed 2016-03-11 20:24:47 +01:00
Bertrand Songis 4daf15869b Simulators refactoring 2016-03-11 20:24:27 +01:00
mhotar ba736a6a64 horus stats icons 2016-03-11 18:40:31 +01:00
Bertrand Songis 086204aed5 Fixes #3344 2016-03-11 18:29:00 +01:00
Bertrand Songis 44d4e93ad1 [Taranis] EEPROM savings 2016-03-11 18:22:16 +01:00
Bertrand Songis 2e57549982 Simu threads now correctly stopped 2016-03-11 18:16:53 +01:00
Bertrand Songis 946c17770a Fixes #3347 2016-03-11 18:09:31 +01:00
Bertrand Songis eb9e6d3c80 Fixes #3342 2016-03-11 18:07:40 +01:00
Bertrand Songis e1a865650f Cosmetics 2016-03-11 18:04:08 +01:00
Bertrand Songis 3d3e077fae Merge pull request #3349 from craftandtheory/next
[Taranis] fixed placement of decimal point in SMLSIZE font
2016-03-11 07:08:02 +01:00
floaledm 13f33e38f8 [Taranis] fixed placement of decimal point in SMLSIZE font 2016-03-10 17:24:03 -06:00
Bertrand Songis e0d5989bef Now a GCC compilation fix ... 2016-03-10 22:47:34 +01:00
Bertrand Songis 41a6e7c4ab Visual C++ compilation fixes 2016-03-10 22:39:51 +01:00
Bertrand Songis 64cd872055 [SPORT] Sensor switches + Telemetry switch 2016-03-10 21:16:45 +01:00
Bertrand Songis 0341b9ffce [SPORT] Alarm added when a servo is in overload or a sensor is disconnected 2016-03-10 20:22:26 +01:00
Bertrand Songis 75e613331b Audio sound removed (for EEPROM format) 2016-03-10 18:51:02 +01:00
Bertrand Songis c521fce20b Default options for widgets / layouts / themes now OK on VC++ 2016-03-10 18:42:04 +01:00
Bertrand Songis 62df9831d8 Warnings removed 2016-03-10 18:40:15 +01:00
Bertrand Songis 051ec88bee [Taranis] Curve names can now only be 3 chars long 2016-03-10 18:39:38 +01:00
Bertrand Songis f1f6bbfc24 [Taranis] EEPROM import/export fixes 2016-03-10 18:38:53 +01:00
Bertrand Songis 02fdede06b Merge pull request #3346 from opentx/bsongis/switch_to_qt5
Move to Qt5 and Qt5Multimedia
2016-03-10 07:26:41 +01:00
Bertrand Songis aec2170e7e Move to Qt5 and Qt5Multimedia 2016-03-10 07:12:44 +01:00
Bertrand Songis d7a9710a9c Compilation fix 2016-03-09 21:17:35 +01:00
Bertrand Songis d4be000ccc Commit tests may now me executed from everywhere (not always inside sources) 2016-03-09 21:01:26 +01:00
Bertrand Songis be531b77f0 Commit tests may now me executed from everywhere (not always inside sources) 2016-03-09 20:34:34 +01:00
Bertrand Songis 9263dde231 Compilation fix 2016-03-09 20:32:46 +01:00
Bertrand Songis 473e69b3c3 [Horus] Emergency mode + some simu refactoring to avoid duplicated code 2016-03-09 19:22:27 +01:00
Bertrand Songis 10d0c56b08 [Horus] TODO added 2016-03-09 19:14:51 +01:00
Bertrand Songis c68e91c004 [Horus] Missing initialization when loading BACKUP RAM 2016-03-09 19:03:26 +01:00
Bertrand Songis e11eb2480e [Horus] Timer added in models list 2016-03-09 19:02:28 +01:00
Bertrand Songis 6b318e1383 [Horus] Cosmetics in popups 2016-03-09 19:00:30 +01:00
Bertrand Songis 382e4d2d4b [Horus] Freeze in Model Custom Scripts menu 2016-03-09 18:58:11 +01:00
Bertrand Songis 3b2524dcbb [Horus] Cosmetics 2016-03-09 18:57:18 +01:00
Bertrand Songis f75fedcb0d [Horus] Model selection screen refactoring 2016-03-09 07:06:51 +01:00
Bertrand Songis 797b4d9f1e Merge pull request #3341 from opentx/projectkk2glider/horus_reboot_and_external_module
Projectkk2glider/horus reboot and external module
2016-03-07 21:21:34 +01:00
Damjan Adamic 77d892a5de Horus:
* Fixed peripheral frequency.
 * Enabled external module driver: None and PPM protocols working. PPM timing and polarity verified.
2016-03-07 20:42:49 +01:00
Damjan Adamic 0b163ba067 CLI fixes 2016-03-07 20:41:37 +01:00
Damjan Adamic 4ebca98cdf Re #3340: Watchdog still disabled on Horus, but use -DWATCHDOG_DISABLED=OFF to enable it. Radio currently resets if WDT is enabled, because external module functions are not yet implemented. After the radio is stable default for WATCHDOG_DISABLED will be set to OFF 2016-03-07 20:09:25 +01:00
Damjan Adamic 1147db45a4 Re #3340: Cleanup
Re #3340: Software reboot tested and working on Horus
2016-03-07 20:05:12 +01:00
Damjan Adamic 4a6a20a2aa Re #3340: startup_stm32f40_41xxx.s file moved into targets directory in order to be able to customize it for each radio. 2016-03-07 20:04:09 +01:00
Bertrand Songis 7e0c78e2b7 Lua lcd.drawLine was not OK when (x1=x2 and y1>y2) or (y1=y2 and x1>x2) 2016-03-07 18:54:00 +01:00
Bertrand Songis 7cfb1b24a1 Lua lcd.drawLine was not OK when (x1=x2 and y1>y2) or (y1=y2 and x1>x2) 2016-03-06 13:35:08 +01:00
Bertrand Songis 0615fa780c PCB=TARANIS instead of PCB=HORUS for the default value 2016-03-06 13:24:03 +01:00
Bertrand Songis e43afd8001 [Horus] Compilation fix 2016-03-05 17:12:36 +01:00
Bertrand Songis 04966868eb [Horus] Ram backup write should be working now. Still needs to be tested with a restore on WDT 2016-03-05 16:34:23 +01:00
Bertrand Songis 52ebba3802 [Horus] Ram backup continued (RLC methods added) 2016-03-05 15:54:58 +01:00
Bertrand Songis 3b8c5bbeb1 Code formatting 2016-03-05 15:44:42 +01:00
Bertrand Songis 8e2c280e4a Script for code generation for model/radio structure copy is now OK 2016-03-05 12:42:19 +01:00
Bertrand Songis e0544e2d1e Test code enabled only in SIMU mode 2016-03-05 11:44:07 +01:00
Bertrand Songis f76a368497 Warning removed 2016-03-05 10:02:03 +01:00
Bertrand Songis 0c5f5695cc MSVC errors 2016-03-05 09:58:38 +01:00
Bertrand Songis 863272bc52 MSVC errors 2016-03-05 08:59:28 +01:00
Bertrand Songis 15912854e8 Warnings removed 2016-03-05 08:53:16 +01:00
Bertrand Songis ad33bff31c Warning removed 2016-03-05 08:42:55 +01:00
Bertrand Songis b8195e1372 New packages needed on Travis 2016-03-05 08:36:34 +01:00
Bertrand Songis 97a8dc33be New packages needed on Travis 2016-03-05 08:31:50 +01:00
Bertrand Songis ff4f914d34 New packages needed on Travis 2016-03-05 08:09:21 +01:00
Bertrand Songis 4104efbb17 Compilation fix 2016-03-05 08:07:04 +01:00
Bertrand Songis a7d0816ac7 Merge pull request #3326 from opentx/bsongis/passthrough_sport_to_lua
Bsongis/passthrough sport to lua
2016-03-05 00:27:13 +01:00
Bertrand Songis 7cf66c56c2 [Taranis] Infinite loop when drawing horizontal lines with a negative width 2016-03-05 00:22:18 +01:00
Bertrand Songis 55f71f053b myeeprom.h splitted into dataconstants.h and datastructs.h 2016-03-04 23:54:35 +01:00
Andre Bernet 7a45b3f71b Sync Companion voice language list with radio (fix #3338) 2016-03-03 10:53:54 +04:00
Andre Bernet 4ef981e914 Hungarian TTS fixes by hori64 2016-03-03 10:38:25 +04:00
Bertrand Songis 338c34427e [Taranis] Wizard moved to the sdcard/taranis directory 2016-03-03 07:22:24 +01:00
Bertrand Songis f41ac20051 Compilation fix 2016-03-02 23:37:01 +01:00
Bertrand Songis dee5a510f5 Compilation fix 2016-03-02 19:57:50 +01:00
Bertrand Songis 917b114b49 CMake LUA variable is now a string (YES/NO/NO_MODEL_SCRIPTS) 2016-03-02 19:44:49 +01:00
Bertrand Songis 2a5ab33d67 Compilation fix 2016-03-02 18:58:31 +01:00
Bertrand Songis 59b457650a [Horus] Cosmetics 2016-03-02 18:38:11 +01:00
Bertrand Songis 72a15318be [Horus] Transparency in the busy picto 2016-03-02 18:19:35 +01:00
Bertrand Songis 3e1d87d5b3 [Horus] Use of SD buffers in RAM instead of CCM for loading bitmaps (they may only be loaded from the main thread now) 2016-03-02 07:33:31 +01:00
Bertrand Songis b5f6618238 [Horus] UI continued 2016-03-01 23:47:11 +01:00
Bertrand Songis 23e597fffe [Horus] Memory leak 2016-03-01 19:59:32 +01:00
Bertrand Songis 2f9ae3750d [Horus] Cosmetics 2016-03-01 19:57:08 +01:00
Bertrand Songis dcc9dcbe99 [Horus] Screens Setup bugfixes 2016-03-01 19:54:55 +01:00
Bertrand Songis bfd2e2c538 [Horus] Warning removed 2016-03-01 19:53:23 +01:00
Bertrand Songis 638648a0a4 Cosmetics 2016-03-01 19:46:28 +01:00
Bertrand Songis d6c7b63f90 [9X] Warning fixed 2016-03-01 19:44:10 +01:00
Bertrand Songis 9f29003553 [Horus] Cosmetics 2016-03-01 19:15:12 +01:00
Bertrand Songis 4b4522f2ee [Horus] Bitmaps in SD Manager now truncated when too large 2016-03-01 19:12:45 +01:00
Bertrand Songis 54343be57e [Horus] Cosmetics 2016-03-01 19:07:11 +01:00
Bertrand Songis d449075a54 [9X] Warning fixed 2016-03-01 19:03:20 +01:00
Bertrand Songis 9a615adff7 [Horus] Revert to BMP bitmaps instead of PNG. It uses far less CPU 2016-03-01 19:01:31 +01:00
Damjan Adamic 8427e6ed04 Variables that are filled from SD card moved to RAM 2016-02-29 23:24:09 +01:00
Damjan Adamic c5e8dcff38 DMA used when reading/writing from SD card to SDRAM 2016-02-29 23:07:24 +01:00
Bertrand Songis d7909e7dbc [Horus] Menu model select continued 2016-02-29 22:18:16 +01:00
Bertrand Songis 1fd1e141f2 [Horus] More bitmaps on SD. PNG format used instead of BMP. And yes it's a bad idea given the resources we have. 2016-02-29 22:17:47 +01:00
Damjan Adamic f65e42833e SD read speed tests added to CLI 2016-02-29 22:14:45 +01:00
Damjan Adamic 98a7900e70 Re #3255: UID displayed on VERSION screen (Taranis) 2016-02-29 20:44:30 +01:00
Damjan Adamic 726e32731b Re #3255: strAppendUnsigned() was not working for numbers >= 0x80000000 2016-02-29 20:43:37 +01:00
Bertrand Songis cc4e28857d [Horus] Memory leak at each model load 2016-02-29 19:24:32 +01:00
Bertrand Songis 52a52fdb8a Memory leak in the simu (thanks Valgrind) 2016-02-29 19:20:56 +01:00
Damjan Adamic 19f392131c Fixes #3329: playDuration() second parameter is now really optional 2016-02-29 19:11:45 +01:00
Damjan Adamic fb3dd1303c Fixes #3328: docs updated 2016-02-29 19:11:28 +01:00
Bertrand Songis c6a04394c5 Invalid read fixed (thanks Valgrind) 2016-02-29 19:03:47 +01:00
Bertrand Songis 301cd0538b Changes in stb lib to avoid returning alpha bitmaps when no pixel has alpha 2016-02-29 18:41:35 +01:00
Bertrand Songis d28c71db86 Double test removed 2016-02-28 21:57:10 +01:00
Bertrand Songis 56fb01a958 Lua telemetryPush function now added 2016-02-28 21:21:48 +01:00
Damjan Adamic 5e96d02120 Transparent bitmaps supported/displayed in SD browser. BitmapBuffer: fixed wrong free() when using external data buffer. 2016-02-28 21:08:45 +01:00
Bertrand Songis 9a23c3fcc6 Merge pull request #3327 from opentx/projectkk2glider/new_jitter_filter_for_next2
Projectkk2glider/new jitter filter for next2
2016-02-28 19:58:45 +01:00
Bertrand Songis fe901dabdf luaRegister function removed 2016-02-28 19:55:20 +01:00
Bertrand Songis 806d547ced DMA used for ARGB4444 bitmaps 2016-02-28 19:37:50 +01:00
Bertrand Songis a495885472 Shift in bitmaps (and mem overflow I suppose) 2016-02-28 19:36:49 +01:00
Bertrand Songis 946fda5705 Less traces! 2016-02-28 18:38:41 +01:00
Damjan Adamic cefc78dbe8 Re #3167: Code cleanup, old bitmap loading code removed, now stb_image used exclusively. Malloc traces disabled. 2016-02-28 18:16:16 +01:00
Damjan Adamic 6acfabeaf0 Improvement of Horus ADC driver, the cross-talk between A4 and A5 was excessive. The ADC chip used supports only low impedance sources, so the time between MUX change and ADC sampling had to be bigger. 2016-02-28 17:58:19 +01:00
Damjan Adamic 9a40830f8a Re #3233: Better ADC jitter filter: using inverted formula and scaled input value for jitter filter, gives better result for small changes 2016-02-28 17:58:13 +01:00
Damjan Adamic 3004a61695 Show analog jitter measuring results and multipos calibration in CLI 2016-02-28 17:56:05 +01:00
Bertrand Songis 3660101e37 Cosmetics 2016-02-28 13:32:42 +01:00
Bertrand Songis acb7f1e17f Compilation fix 2016-02-28 12:17:20 +01:00
Bertrand Songis 75e1bead3f S.PORT to Lua telemetry passthrough
The Fifo is created with ```telemetryRegister``` and elements (ID + Value) are taken from the Fifo with ```telemetryPop```
Not tested at all. Just for review / discussion
2016-02-28 11:56:54 +01:00
Bertrand Songis 81a7a554c3 Languages support was broken 2016-02-27 23:53:26 +01:00
Bertrand Songis c5c92c012b Merge pull request #3324 from opentx/projectkk2glider/issue_3167_stb_image_fixes_for_horus
Projectkk2glider/issue 3167 stb image fixes for horus
2016-02-27 22:53:47 +01:00
Bertrand Songis 5f951abc15 Revert of my latest commit 2016-02-27 19:11:58 +01:00
Damjan Adamic 017f64a7a4 meminfo cli command added (memory allocator statistics from mallinfo()) 2016-02-27 18:07:23 +01:00
Damjan Adamic dfde65f397 Re #3167: Using stb library to load images 2016-02-27 17:33:27 +01:00
Damjan Adamic bdb50052ba Re #3167: Stb library modifed to reduce its stack usage. 2016-02-27 17:33:27 +01:00
Damjan Adamic 5cc8f41bce Re #3167: Update to new stb_image.h library v 2.10 (commit 30015ef464) 2016-02-27 17:33:11 +01:00
Bertrand Songis 08cb4550f6 Cosmetics 2016-02-27 15:38:23 +01:00
Bertrand Songis 4c342a1883 [Horus] Compilation fix 2016-02-26 15:50:06 +01:00
Bertrand Songis de96f607e2 [Horus] Last LCD change was commited by mistake 2016-02-26 14:45:56 +01:00
Bertrand Songis 927c511556 Compilation fix 2016-02-26 14:41:59 +01:00
Bertrand Songis 95fe7ad197 Cosmetics 2016-02-26 14:37:44 +01:00
Bertrand Songis 1b93340319 [Taranis] Sticks bitmap was not right 2016-02-26 14:30:09 +01:00
Bertrand Songis ca0e58e923 [X9E] Option added to allow the usage of HORUS sticks 2016-02-26 13:56:46 +01:00
Bertrand Songis 43b8ee361b [X9E] Option added to allow the usage of HORUS sticks 2016-02-26 13:55:09 +01:00
Bertrand Songis ee533c7950 Temporary compilation fix for VC++ 2016-02-26 13:33:50 +01:00
Bertrand Songis 2b9242fac2 [Horus] GUI continued 2016-02-25 23:14:58 +01:00
Damjan Adamic 83887f1532 Cmake PCB and USB options converted to STRING type 2016-02-25 14:58:38 +01:00
Bertrand Songis 1734ca6919 /radio/sdcard directory added to the repo 2016-02-24 22:31:19 +01:00
Bertrand Songis f299a5bfdf [Horus] White is now the default color for the Default theme. Is it good? 2016-02-21 21:05:34 +01:00
Bertrand Songis 95201db642 [Horus] Cosmetics for the LED 2016-02-21 20:00:00 +01:00
Bertrand Songis 103fea7b98 Compilation fixes 2016-02-21 19:35:30 +01:00
Bertrand Songis 358badfed9 [Horus] Bitmaps dynamic load 2016-02-21 18:25:52 +01:00
Bertrand Songis 63713578fe [Horus] LED off when drawing the SLEEP bitmap on shutdown 2016-02-21 15:16:52 +01:00
Andre Bernet 22a8a5cc80 [Horus] Fix LED off 2016-02-21 17:39:07 +04:00
Bertrand Songis 5827b0fd6c Compilation fix on X9E 2016-02-21 11:17:48 +01:00
Bertrand Songis cfe1a3777f Fixes #3307 2016-02-21 10:25:42 +01:00
Bertrand Songis d5396f8377 [Horus] Compilation fix 2016-02-21 10:13:37 +01:00
Bertrand Songis dcf7cd2c65 [RedundancyBus] Fields renamed (not PowerBox anymore) 2016-02-21 10:00:01 +01:00
Bertrand Songis 71e54b3072 [Horus] Heap now moved to the SDRAM. Around 7.5MB available, without any speed issue :) 2016-02-21 09:21:17 +01:00
Bertrand Songis fdca5a11b0 [Horus] Compilation fix 2016-02-21 09:07:43 +01:00
Bertrand Songis 8223cd907d [Horus] Another 40K saved for Lua 2016-02-21 08:58:29 +01:00
Bertrand Songis c2f8ef83c7 [Horus] Unused code 2016-02-21 08:55:02 +01:00
Bertrand Songis 7fceed4f5f [Horus] Another 64K saved for Lua 2016-02-20 19:42:55 +01:00
Bertrand Songis 2519df3b59 [Horus] Cosmetics 2016-02-20 19:40:02 +01:00
Bertrand Songis 6e30373f86 [Horus] Changes were applied to Taranis by mistake 2016-02-20 19:28:47 +01:00
Bertrand Songis b29d8c50ba [Horus] Cosmetics 2016-02-20 19:24:51 +01:00
Bertrand Songis fe3efb9483 [Horus] Cosmetics 2016-02-20 19:15:22 +01:00
Bertrand Songis f926b85611 [Horus] 64K more for Lua 2016-02-20 17:36:18 +01:00
Bertrand Songis 401f0f2a4f Cosmetics 2016-02-20 17:34:47 +01:00
Bertrand Songis 701d02ba8e [Horus] New bitmaps for popups 2016-02-20 17:12:30 +01:00
Bertrand Songis 67a599e0b9 [CLI] reboot command added 2016-02-20 16:55:05 +01:00
Bertrand Songis 0f4f49b64e [CLI] reboot command added 2016-02-20 15:05:19 +01:00
Bertrand Songis 84bf31f908 Compilation error 2016-02-19 07:13:53 +01:00
Bertrand Songis 1d9056fe8d Update .travis.yml 2016-02-18 23:46:17 +01:00
Bertrand Songis 5c175bfd7f Update .travis.yml 2016-02-18 23:31:37 +01:00
Bertrand Songis b74a3987c0 Update .travis.yml 2016-02-18 23:07:42 +01:00
Bertrand Songis d1be1b4ea0 [Horus] Widgets can be written in Lua 2016-02-18 22:10:27 +01:00
Bertrand Songis 01ef176173 [Horus] Cosmetics 2016-02-17 20:31:42 +01:00
Bertrand Songis 3e0a314307 [Horus] Preparation for the SCRIPTS/WIDGETS and SCRIPTS/LAYOUTS Lua scripts 2016-02-17 20:30:30 +01:00
Bertrand Songis 6622324483 [Horus] Transparency missing in alert boxes on real radio 2016-02-17 20:29:42 +01:00
Bertrand Songis 286a865d30 [Horus] Cosmetics 2016-02-17 20:27:40 +01:00
mhotar 5d72bbdc90 horus masks 1-8 for mainviews 2016-02-17 20:21:57 +01:00
Bertrand Songis a44d0ddc14 Compilation fix 2016-02-17 07:01:51 +01:00
Bertrand Songis 97ef3fa916 [Horus] Widget selection new design by Martin 2016-02-16 22:59:47 +01:00
Bertrand Songis f9f7ddd639 [Horus] Alert Box new design by Martin 2016-02-16 22:07:33 +01:00
Bertrand Songis 33910c8721 [Horus] UI continued 2016-02-16 20:45:25 +01:00
Bertrand Songis e72a049683 [Horus] Cosmetics 2016-02-16 18:59:45 +01:00
Bertrand Songis f7fafc0948 [Horus] New Lua LCD functions 2016-02-16 18:57:51 +01:00
Bertrand Songis 1d867a0daa [Horus] Lua constants names can go up to 32 chars 2016-02-16 18:54:07 +01:00
Bertrand Songis 3c56ea0122 [Horus] HORUS compilation removed from the Makefile. CMake is now mandatory 2016-02-16 18:52:35 +01:00
Bertrand Songis 6db97c573b [Horus] Array initialization when loading a bitmap fails 2016-02-16 18:51:37 +01:00
Bertrand Songis 5853ac635f [Horus] More constants exported to the Lua interface 2016-02-16 18:49:41 +01:00
mhotar fad9710012 horus images to alpha 2016-02-16 17:19:35 +01:00
Damjan Adamic 9abeb15360 Fixes #3256: Spanish TTS correction for hundreds 2016-02-15 22:17:10 +01:00
Damjan Adamic 29b8b2685c Fixes #3285: only first 32 input lines (out of 64) were accessible in Lua 2016-02-15 21:50:57 +01:00
Bertrand Songis 79a5f65a2c [Horus] UI continued 2016-02-15 21:28:31 +01:00
Andre Bernet c07e965542 No more XercesC 2016-02-15 23:50:10 +04:00
Andre Bernet 9e4f9bb7ed No more XercesC 2016-02-15 23:28:24 +04:00
JivaroFAD 32f278ee3f MEGA2560 audio=no fix 2016-02-14 21:01:06 +01:00
Andre Bernet 860409de29 [Horus] UI fixes 2016-02-12 12:21:33 +04:00
Bertrand Songis 48081db9f6 [Horus] Compilation fixes 2016-02-11 23:34:07 +01:00
Bertrand Songis 02f06706c2 [Horus] Themes introduction 2016-02-11 22:58:43 +01:00
Bertrand Songis 1da4df143c [Horus] Travis OK? 2016-02-10 17:16:45 +01:00
Bertrand Songis 6ce34c511c [Horus] Last commit broke the UI :( 2016-02-10 17:00:55 +01:00
Bertrand Songis 27fe5c198f [Horus] Warnings fixed 2016-02-10 14:55:00 +01:00
Bertrand Songis cd821116c5 [Horus] UI Refactoring 2016-02-10 14:38:14 +01:00
Bertrand Songis 65fc20ddde [Horus] Martin's design for buttons 2016-02-09 23:08:47 +01:00
Bertrand Songis 2037c33ce1 [Horus] Martin's design to choose the layout 2016-02-09 23:08:47 +01:00
JivaroFAD 2e76be5b0b Mega2560 audio compilation allowed 2016-02-09 20:07:37 +01:00
JivaroFAD cdcf64e38c Mega2560 audio correction 2016-02-09 19:39:15 +01:00
Andre Bernet fd1181dc09 VC++ compilation 2016-02-09 02:07:22 +04:00
Andre Bernet c7bd968586 Fix annoying space and newline in date constant on windows requiring manual fix each time 2016-02-09 01:22:23 +04:00
Bertrand Songis 11cc82a7ac [Horus] UI bugfix 2016-02-08 21:41:13 +01:00
Bertrand Songis 1ba6a56641 Travis compilation fix 2016-02-08 21:20:59 +01:00
Bertrand Songis 366c286e73 [Horus] UI continued 2016-02-08 20:56:02 +01:00
Andre Bernet afddad9396 Taranis main view adjustments for 3-char switch names (fix #3278) 2016-02-07 15:45:47 +04:00
Andre Bernet 110c5da1e7 Joystick now supports 24 buttons (ch9-32) (fix #3268) 2016-02-06 09:34:12 +04:00
Bertrand Songis fda4cac1ed [Horus] 2016-02-01 20:45:56 +01:00
Andre Bernet 7d0f5a9d9b Store control types and names in profile (fix #3260) 2016-01-31 12:21:18 +01:00
Bertrand Songis e64866244d Compilation fix 2016-01-31 11:40:27 +01:00
Bertrand Songis 1c38ccaa12 New menu to configure the user custom screens 2016-01-31 11:35:25 +01:00
Bertrand Songis 40ae1879e8 VC++ compilation fix 2016-01-31 11:34:07 +01:00
Bertrand Songis 979a86f24e Companion crash when opening a new model fixed 2016-01-31 00:22:03 +01:00
Andre Bernet 992897a5a7 Import/export handling was broken for Average formula telemetry sensors (Fix #3262) 2016-01-30 23:06:48 +01:00
Andre Bernet 8733915634 Fix 2.2 nightly updates 2016-01-30 22:47:56 +01:00
Bertrand Songis 643e449f52 Calibration modified 2016-01-30 13:54:52 +01:00
Bertrand Songis c36acc5372 SPORT_FILE_LOG renamed to LOG_TELEMETRY. And logs are now stored in telemetry.log 2016-01-30 12:58:00 +01:00
Bertrand Songis 3913a36aeb Crossfire again @400000 bauds 2016-01-30 12:14:35 +01:00
Bertrand Songis 2a4bc2cf6a Fixes #2022 2016-01-30 11:23:34 +01:00
Bertrand Songis fe865dfdae Cosmetics 2016-01-30 11:14:43 +01:00
Bertrand Songis 45cdfac22b Cosmetics 2016-01-30 10:17:28 +01:00
Bertrand Songis c07a2d338a Try to update gcc-avr on Travis and fix compilation failure 2016-01-30 00:40:29 +01:00
Bertrand Songis 16a37db86f Try to update gcc-avr on Travis and fix compilation failure 2016-01-30 00:37:35 +01:00
Bertrand Songis 695e05c713 Try to update gcc-avr on Travis and fix compilation failure 2016-01-30 00:36:32 +01:00
Bertrand Songis 29eafb4fba Try to update gcc-avr on Travis and fix compilation failure 2016-01-30 00:29:05 +01:00
Bertrand Songis 7599d22c83 Try to update gcc-avr on Travis and fix compilation failure 2016-01-30 00:00:49 +01:00
Bertrand Songis 027f442079 Update README.md 2016-01-29 23:59:03 +01:00
Bertrand Songis 56fd1e8039 Try to update gcc-avr on Travis and fix compilation failure 2016-01-29 23:57:00 +01:00
Bertrand Songis 0e1ab00ed3 Try to update gcc-avr on Travis and fix compilation failure 2016-01-29 23:54:35 +01:00
Bertrand Songis 7ebebb312a Fixes #3255 2016-01-29 16:11:51 +01:00
Bertrand Songis 364bf6ac23 Commit tests should be OK now 2016-01-29 14:27:27 +01:00
Bertrand Songis b7e4a3c63b [Horus] A few TODOs fixed (some sprintf removed) 2016-01-28 23:12:26 +01:00
Bertrand Songis d6c17a7ead Compilation failure 2016-01-28 06:53:13 +01:00
Bertrand Songis 3854e05f26 [Horus] Missing bitmaps 2016-01-27 23:03:33 +01:00
Bertrand Songis 087e606021 [Horus] Horus downloads now enabled 2016-01-27 22:29:03 +01:00
Bertrand Songis 4c8789106d [Horus] Button widget added (still not finished) 2016-01-27 22:17:51 +01:00
Bertrand Songis 5ff4d8829a Compilation failure 2016-01-27 07:09:15 +01:00
Bertrand Songis a313d541dc Compilation failure 2016-01-27 07:01:36 +01:00
Bertrand Songis a8300715a9 [Horus] View main - Timer bitmap added 2016-01-26 21:51:04 +01:00
Bertrand Songis d118acdf20 [Horus] Batt range added in Radio Setup 2016-01-26 21:48:27 +01:00
Bertrand Songis 9f60e3c909 [Horus] Hardware menu added to the simulator 2016-01-26 06:45:59 +01:00
Bertrand Songis 9d7e38aeff Missing bitmaps added 2016-01-25 22:38:42 +01:00
Bertrand Songis 5c71d74aab [Horus] Hardware menu added. Calibration menu moved to the Hardware menu 2016-01-25 22:11:25 +01:00
Damjan Adamic e738293a52 Fixes #3248: offset was missing in inputs display 2016-01-25 20:22:06 +01:00
Bertrand Songis 870002ab79 [Horus] Calibration bitmaps 2016-01-25 18:58:44 +01:00
Bertrand Songis 07d62e39db [Horus] Rotary encoder initialization now good 2016-01-25 18:40:21 +01:00
Bertrand Songis 48365f36a5 [Horus] Slider a little bit modified 2016-01-25 07:29:36 +01:00
Bertrand Songis b43d336978 Missing bitmaps 2016-01-25 06:44:05 +01:00
Bertrand Songis e5ae58d4d7 Calibration bitmaps by Martin 2016-01-24 22:36:11 +01:00
Bertrand Songis b141203bc1 [Horus] Slider with Martin's design 2016-01-24 22:30:46 +01:00
Bertrand Songis 16eaa0347d Bitmaps moved 2016-01-24 22:29:25 +01:00
Bertrand Songis c0c7968fc4 [Horus] Pots and sliders now correct in the main view 2016-01-24 20:54:02 +01:00
mhotar e1463b99e6 Horus button and slider bitmaps 2016-01-24 12:27:59 +01:00
Bertrand Songis e8318cd8de Mike's bootloader moved to GitHub 2016-01-24 09:21:12 +01:00
Bertrand Songis 0eb71cb4f2 [Horus] Red LED on error. Blue LED otherwise 2016-01-22 23:05:00 +01:00
Bertrand Songis c5f3010295 [Taranis] Cosmetics 2016-01-22 22:37:29 +01:00
Bertrand Songis 641b6a321a [Horus] Internal module and Telemetry now OK. Trainer modes (as Taranis) added 2016-01-22 22:37:06 +01:00
Bertrand Songis a42b63ff34 [Horus] Missing telemetry code 2016-01-22 22:14:51 +01:00
Bertrand Songis d2ec99513c [Horus] Missing pulses code 2016-01-22 22:07:37 +01:00
Bertrand Songis 8eb3480acc [Horus] Remaining trace removed 2016-01-22 22:04:34 +01:00
Bertrand Songis c9ae964428 [Horus] Haptic now OK 2016-01-20 21:40:53 +01:00
Bertrand Songis c51a85f376 [Horus] Mixer volumes range again [-2:+2]. Could be improved later. 2016-01-20 20:05:28 +01:00
Bertrand Songis 6c54374ed8 [Horus] VS1053B Volume added. No ticks at all compared to Taranis! 2016-01-20 19:52:14 +01:00
Bertrand Songis da76106465 Cosmetics 2016-01-20 15:19:53 +01:00
Bertrand Songis 3b3555df48 Travis should be happy now 2016-01-20 15:18:08 +01:00
Bertrand Songis c8ae36997e Simu always compiled in debug mode (-g) 2016-01-20 15:16:40 +01:00
Bertrand Songis 30bf6f7530 [Horus] Segfault in popups displaying file lists 2016-01-20 15:15:51 +01:00
Bertrand Songis 1786d998f8 [Horus] MP3 driver now OK. Still the volume to add 2016-01-20 13:44:07 +01:00
Bertrand Songis 708ef3bc98 Firmware compilation under mingw32 is now OK (tested for Horus) 2016-01-19 20:16:07 +01:00
Damjan Adamic 4aa6bd12ca Fixes #3233: Added ADC jitter measurement (use MEASURE_JITTER=YES to enable), Added ADC jitter filter (use JITTER_FILTER=No to disable) (ported from master) 2016-01-19 17:13:11 +01:00
Bertrand Songis c46c1f887a [Horus] MP3 driver. The sound is completely distorded (why?), but the background noise is not there 2016-01-18 23:26:23 +01:00
Damjan Adamic a8172e3588 Fixes #2639: ADC crosstalk on X9E fixed, sample time was not set for the right channels, sample time also needed to be increased 2016-01-18 20:45:31 +01:00
Andre Bernet 91341fa759 Companion looking for custom scripts at the wrong place (fix #3237) 2016-01-18 14:41:44 +01:00
Bertrand Songis 0bad169008 GUI simplification. Needs to be reviewed, but it is better on Horus like this 2016-01-17 23:29:38 +01:00
Bertrand Songis aa7c320821 [Horus] Shutdown noise removed 2016-01-17 22:44:07 +01:00
Bertrand Songis 5c67e20fa5 [Horus] Makefile updated 2016-01-17 22:00:56 +01:00
Bertrand Songis aa62f0d6f1 [Horus] Not sure it's good. But the 10ms timer goes at the right speed and audio is good (but still very noisy!) 2016-01-17 21:42:11 +01:00
Bertrand Songis c86ace9976 [Horus] Audio now OK. PI9 needed to be set as INPUT 2016-01-17 21:41:14 +01:00
Bertrand Songis b11d45dbb5 [Horus] Shutdown animation fixed 2016-01-17 21:38:42 +01:00
Bertrand Songis 50b76183da XSD and Xerces not needed anymore (they were not used) 2016-01-16 15:37:15 +01:00
Bertrand Songis 1a7fb12f15 Compilation fix 2016-01-16 11:20:44 +01:00
Bertrand Songis cbfdf9b9f5 Compilation fix 2016-01-16 11:10:36 +01:00
Bertrand Songis 3f7b289ebe [Horus] Shutdown animation now OK 2016-01-16 11:00:42 +01:00
Damjan Adamic 295491f965 Header files stamp.h and location.h now generated in build directory 2016-01-15 20:26:08 +01:00
Damjan Adamic 16f465b147 Hours simu build now uses the same config as firmware build 2016-01-15 19:39:16 +01:00
Bertrand Songis c91511565e [Horus] MP3 driver extracted from FrSky drivers. I would like to have the sine test wave OK. Still nothing for now 2016-01-15 17:30:54 +01:00
Bertrand Songis b6759d5434 [Horus] Compilation fix 2016-01-15 12:42:37 +01:00
Bertrand Songis 1771a47637 [Horus] Debug variable added for the audio buffer count. This one is incremented correctly. 2016-01-15 12:23:55 +01:00
Bertrand Songis 677995205d [Horus] I2C audio pot is removed in latest board! 2016-01-15 11:16:24 +01:00
Bertrand Songis a6a71b8650 Google tests should be OK 2016-01-15 10:36:20 +01:00
Bertrand Songis ab4efe89cc Compilation error 2016-01-15 09:09:19 +01:00
Bertrand Songis efb37a4419 Remarks from Damjan in e8aaa67450 taken into account 2016-01-15 08:44:45 +01:00
Bertrand Songis d85ee61cb3 Compilation error 2016-01-15 08:02:44 +01:00
Bertrand Songis eecdef3c5a VC++ compilation 2016-01-14 23:15:51 +01:00
Bertrand Songis a1883db889 Curve names used instead of CV<X> when available 2016-01-14 23:13:26 +01:00
Bertrand Songis 0dd15ebbab [Taranis] EEPROM v217 => v218 conversion fixes - The MENU and EXIT keys are now OK 2016-01-14 22:57:19 +01:00
Bertrand Songis 3ad57cf3ff VC++ compilation 2016-01-14 19:46:27 +01:00
Damjan Adamic f27c092ba4 Missing stuff from commit e8aaa67450 2016-01-14 19:23:56 +01:00
Bertrand Songis e8aaa67450 [Horus] GUI continued - #3159
[GVars] Refactoring continued - #3185
2016-01-14 07:41:30 +01:00
Andre Bernet 43b84385d8 Cosmetics 2016-01-12 11:31:34 +04:00
Andre Bernet 7fe39791ff Cosmetics 2016-01-12 11:23:58 +04:00
Damjan Adamic a3fac6049f Fixes #3207: proper sensor instance generation in Telemetry Simulator (ported from master #3213) 2016-01-11 18:58:41 +01:00
Damjan Adamic e3eb236e7b Nightly build fix: gmake target only availabe if gtests source is found 2016-01-11 18:42:37 +01:00
Andre Bernet a57053e390 RTC tooltip corrected (fix #3225) 2016-01-11 20:36:04 +04:00
Damjan Adamic f2362bb748 Fixes #3222 : Throttle Source combobox was populated multiple times (ported from master) 2016-01-10 21:52:47 +01:00
Damjan Adamic 8780535ff9 Fixes #3223: some lua fields were not exported (CPUARM) 2016-01-10 21:13:42 +01:00
Damjan Adamic 12af6a8a19 Travis using cmake for build tests 2016-01-10 20:43:19 +01:00
Damjan Adamic 7faa7c79bf Re #2939: additional test for EDGE logical switch 2016-01-10 18:52:42 +01:00
Damjan Adamic 0ac9998e6b Fixes #2939: Logical switch internal state was being reset by the AND switch, that affected its function (it looked like AND was applied before the EDGE processing, not after like it is done for other logical switch types). (ported from master branch) 2016-01-10 18:52:42 +01:00
Damjan Adamic a76fc4c88c Re #2939: gtests added to cmake 2016-01-10 18:43:33 +01:00
Bertrand Songis 26469b8627 [Horus] Cosmetics 2016-01-10 13:27:02 +01:00
martin ba4dd66891 horus startup/shutdown images 2016-01-10 12:41:47 +01:00
Bertrand Songis be67637ec6 [Horus] Compilation fix 2016-01-09 11:44:23 +01:00
Bertrand Songis 595a191be4 [Horus] Compilation fix 2016-01-09 11:19:01 +01:00
Bertrand Songis 1ff32c64f5 [Horus] Bitmaps must be word aligned! 2016-01-09 01:05:09 +01:00
Bertrand Songis 87f8ea516b Compilation fix 2016-01-08 23:34:57 +01:00
Bertrand Songis 86df9fee4a Compilation fix 2016-01-08 23:17:30 +01:00
Bertrand Songis bd7769e717 [Horus] Throttle stick interrupts the splash 2016-01-08 23:07:29 +01:00
Bertrand Songis c42696102a Cosmetics 2016-01-08 22:27:55 +01:00
Bertrand Songis 82a4ad4103 [Horus] Fixes. ADC + Switches + Trims + RTC OK 2016-01-08 22:21:26 +01:00
Bertrand Songis 685dece185 [Horus] Missing dependency 2016-01-08 16:49:20 +01:00
Bertrand Songis a43271c7a6 [Horus] First fixes on the real radio 2016-01-07 23:56:18 +01:00
Bertrand Songis bbe4e7d4c3 Fixes #3206 2016-01-06 23:29:20 +01:00
Bertrand Songis 3d9553d5f3 #3206 - Statistics view reworked 2016-01-06 23:12:02 +01:00
Bertrand Songis 5e02140ac7 [CMake] BOLD missing in Taranis compilation 2016-01-06 22:32:13 +01:00
Bertrand Songis d54525fe7a Cosmetics 2016-01-06 21:55:42 +01:00
Bertrand Songis 8a819dbed5 OpenTX copyright date updated to 2016 2016-01-06 21:54:15 +01:00
Damjan Adamic b4cffbcce1 nightly-22 updated 2016-01-04 22:34:23 +01:00
Damjan Adamic 9a5bd48712 More changes 2016-01-04 22:25:52 +01:00
Damjan Adamic d8bc752291 Revision fetched after the repository update.
Removed unused files.
Unification of nightly and release scripts
Code cosmetics
2016-01-04 22:25:52 +01:00
mhotar f6740c4583 CZ translation-minor update 2016-01-04 20:35:26 +01:00
Bertrand Songis 5f0bfc50e9 Merge pull request #3197 from opentx/projectkk2glider/issue_3167_image_support
Projectkk2glider/issue 3167 image support
2016-01-03 19:50:39 +01:00
Damjan Adamic f61bb941dc Read image using FatFs and disable stb-image stdio support 2016-01-03 18:49:21 +01:00
Damjan Adamic 0600122102 Small fixes 2016-01-03 18:05:18 +01:00
Damjan Adamic a4e6c90d1d Jenkins scripts latest state from the server 2016-01-03 16:58:24 +01:00
Damjan Adamic c5e0eb84b8 Fixes #3130: remove /lib paths from RPM (ported from master) 2016-01-03 16:52:55 +01:00
Damjan Adamic b045b979cd Fixes #2974: Hardware/Calibration tab split int two tabs: Calibration (using table widget, all calibration values shown) and Hardware (ported from master) 2016-01-03 12:21:38 +01:00
Bertrand Songis 93fde17526 Compilation fix 2016-01-03 11:56:25 +01:00
Bertrand Songis dc6d9aca3a Compilation fix 2016-01-03 11:44:07 +01:00
Bertrand Songis 77772287fe Sky9x added to CMakeLists.txt 2016-01-03 11:06:15 +01:00
Damjan Adamic bfd385115f Compilaton fix 2016-01-02 21:01:28 +01:00
Damjan Adamic d7112b5dd7 BMP also works (1bit bitmaps are not supported by stb-image library) 2016-01-02 20:48:28 +01:00
Damjan Adamic acaa77daab JPEG also works 2016-01-02 20:48:28 +01:00
Damjan Adamic 03c9b2c4a2 PNG loading works 2016-01-02 20:48:28 +01:00
Damjan Adamic 826eb2569c stb-image v2.08 library added (https://github.com/nothings/stb) 2016-01-02 20:48:28 +01:00
Damjan Adamic 8809a64d57 Fixed: same BMP was loaded over and over 2016-01-02 20:26:34 +01:00
Damjan Adamic 1b177ba8b8 Fixed: OpenTX Bootloader bin2lbm conversion error (last partial chunk was missing) 2015-12-28 21:45:37 +01:00
Bertrand Songis 450bd77f67 Merge pull request #3176 from opentx/dsbeach/next-issue3141-fx-key-to-reload-scripts
Next branch fixes #3141 Fx key to reload scripts
2015-12-27 20:56:46 +01:00
David S. Beach 3e409a0371 Next branch fixes #3141 Fx key to reload scripts 2015-12-27 11:53:29 -05:00
Bertrand Songis b778c5e469 Windows package fix 2015-12-27 10:21:25 +01:00
Damjan Adamic 86c5c31293 Fixes #3040: Application Setting 'Enable automatic backup before writing firmware' was not saved (ported from master) 2015-12-26 20:59:01 +01:00
Damjan Adamic 400a6c2034 Fixes #3146: fixed Fahrenheit temperature conversion error (if PREC was not 0) (ported from master) 2015-12-26 19:40:58 +01:00
Bertrand Songis 9db8005f71 [Horus] UI continued 2015-12-26 17:58:50 +01:00
Bertrand Songis ba2d03b3ad [Taranis] Navigation bug (was introduced in 2.2 refactoring) 2015-12-26 17:58:50 +01:00
Bertrand Songis e3281ddade [Companion] All binaries written at the root of the build directory to simplify things 2015-12-26 17:58:49 +01:00
Bertrand Songis a4343d8e8c [Taranis] It was impossible to select the [Range Check] button on LR12 in EU mode 2015-12-26 17:58:49 +01:00
Damjan Adamic 2518ed9a74 Fixes #3121: Companion telemetry sensors Ratio and Offset value increment/decrement ignores precision (ported from master) 2015-12-26 16:08:10 +01:00
projectkk2glider 117e28db16 Fixes #3156: Outputs Subtrim, Min and Max values rounding problem fixed (ported from master) 2015-12-26 16:08:04 +01:00
Damjan Adamic d734e3465d Fixes #3117: Telemetry sensor Ratio parameter rounding problem fixed (ported from master) 2015-12-26 16:08:03 +01:00
Bertrand Songis e9f23b2109 [Companion] stamp target removed 2015-12-25 12:31:20 +01:00
Bertrand Songis 2d9aa72c23 VC++ compilation 2015-12-24 15:16:02 +01:00
Bertrand Songis 49d8242faf VC++ compilation 2015-12-24 15:10:50 +01:00
Bertrand Songis c5c1475bc9 VC++ compilation 2015-12-24 14:50:09 +01:00
Bertrand Songis e01d5a31c1 VC++ compilation 2015-12-24 14:26:24 +01:00
Bertrand Songis c70236cbad VC++ compilation 2015-12-24 13:39:24 +01:00
Bertrand Songis 908fce110b VC++ compilation 2015-12-24 12:33:28 +01:00
Bertrand Songis b2b09b4b04 Update Jenkins compilation script 2015-12-24 11:16:34 +01:00
Bertrand Songis 4c8b760022 Update Jenkins compilation script 2015-12-24 11:12:51 +01:00
Bertrand Songis e41ef3fa5d Cosmetics 2015-12-24 11:03:14 +01:00
Bertrand Songis d5cbf57e1b VC++ compilation 2015-12-24 11:01:20 +01:00
Andre Bernet cc40d1e611 Revert "Better placement for companion build output"
This reverts commit d82cf058f7.
2015-12-24 10:11:59 +04:00
Andre Bernet 316d42b5b6 Mixers monitor option was missing 2015-12-24 10:09:10 +04:00
Andre Bernet d82cf058f7 Better placement for companion build output 2015-12-24 09:52:59 +04:00
Bertrand Songis 2df68d1579 VC++ compilation 2015-12-23 23:45:56 +01:00
Bertrand Songis 1e15b711bb Companion binaries and libs built into the same directory 2015-12-23 22:28:54 +01:00
Bertrand Songis 97d59cfa56 Copyright script applied to all sources in the radio directory 2015-12-23 19:57:13 +01:00
Bertrand Songis 0f1ccc993e Include guard script applied to all headers in the radio directory 2015-12-23 19:47:10 +01:00
Bertrand Songis b818c0df6b [Horus] Segfault when a curve goes out of the screen 2015-12-23 19:40:04 +01:00
Bertrand Songis 42473d6868 Target make flash added 2015-12-23 19:22:29 +01:00
Bertrand Songis 31d4340ce7 Merge pull request #3169 from opentx/bsongis/Switch_to_CMake
Switch to CMake
2015-12-23 19:16:39 +01:00
Bertrand Songis 2d4d6ffe48 [Taranis] Strange bug in bootloader fixed by changing the files order in link. TODO added to understand why... 2015-12-23 19:08:46 +01:00
Bertrand Songis 1a308b0a53 Horus board tested OK 2015-12-23 18:59:16 +01:00
Bertrand Songis d02d0f26db Switch to CMake - Taranis bootloader added. Tests done. 2015-12-23 18:39:02 +01:00
Bertrand Songis 356faefb6d Ignore list updated 2015-12-23 09:11:56 +01:00
Bertrand Songis 0c78c60dc9 Switch to CMake continued 2015-12-23 00:42:05 +01:00
Bertrand Songis 88841f63ca Switch to CMake 2015-12-21 23:43:18 +01:00
Bertrand Songis c8358d7e37 VC++ compilation fix 2015-12-21 09:08:20 +01:00
Bertrand Songis c819814d94 Merge pull request #3165 from opentx/projectkk2glider/crossfire_port_to_next
Projectkk2glider/crossfire port to next
2015-12-20 23:44:10 +01:00
Bertrand Songis bccea3594c Merge pull request #3166 from opentx/projectkk2glider/powerbox_port_to_next
Projectkk2glider/powerbox port to next
2015-12-20 23:43:29 +01:00
Bertrand Songis 05c29d320c [Powerbox] 0xOB20 field added. Radio translations 2015-12-20 17:21:34 +01:00
Bertrand Songis 7789fd0b38 [Powerbox sensor] First tests done. It remains the 0x0B20 to add 2015-12-20 17:21:27 +01:00
Bertrand Songis b00ef6a9b3 [S.PORT] Powerbox fields added 2015-12-20 17:21:16 +01:00
Bertrand Songis 739f19d450 Again 16 channels for Crossfire.
I hope they won't change their mind again
2015-12-20 17:13:04 +01:00
Bertrand Songis cc8bd03d8a Crossfire support added to Companion 2015-12-20 17:12:51 +01:00
Bertrand Songis 816b22fd9d Crossfire protocol now accepts 12 channels instead of 16 2015-12-20 17:11:21 +01:00
Bertrand Songis 0504e848ed Crossfire has 16 channels (fixed) 2015-12-20 17:11:10 +01:00
Bertrand Songis 5250f5eb4c Crossfire has 16 channels (fixed) 2015-12-20 17:10:51 +01:00
Damjan Adamic 91e80d446a #2894 - Crossfire (inverted serial) sent on S.PORT pin in the module bay (ported from master f7044a20ec)
16 channels sent every 2.5ms now @ 200KBauds with CRC
2015-12-20 17:10:32 +01:00
Damjan Adamic e8983250ca [Taranis] LR12 is now EU compatible (ported from master ce3d5dbac) 2015-12-20 16:54:18 +01:00
Damjan Adamic 493130504b Re #3160: fixed Windows compilation, help/warnings shown in a message box (they were not visible on Windows) (ported from master) 2015-12-19 19:33:25 +01:00
Damjan Adamic 0db5072bed Fixes #3160: command line options support added to standalone simulator (radio type and eeprom file) (ported from master) 2015-12-18 22:44:17 +01:00
Bertrand Songis cf4fa51019 cli command "set rtc" added
syntax: set rtc <year> <month> <day> <hour> <minute> <second>"
2015-12-16 22:27:09 +01:00
Bertrand Songis 8942115f33 Fixes #3150 2015-12-16 07:11:51 +01:00
Bertrand Songis d7cbd78edf Merge pull request #3153 from mikeller/mikeller/invert_serial_rx_next
Graft of 'invert_serial_rx' onto next.
2015-12-16 07:04:30 +01:00
mikeller 90a62b00f0 Fixed compile error when building simulator. 2015-12-15 19:39:01 +13:00
Michael Keller d165a22a54 Fixup from merge. 2015-12-15 12:06:16 +13:00
Michael Keller 1f59f04070 Merge branch 'mikeller/invert_serial_rx_next' of https://github.com/mikeller/opentx into mikeller/invert_serial_rx_next 2015-12-15 12:04:03 +13:00
mikeller 01fa6471c7 Graft of serial port inversion option onto 'next'. 2015-12-15 12:03:21 +13:00
Bertrand Songis a60522df18 Merge pull request #3149 from opentx/dsbeach/next-issue3147-telem-sim-aspd-as-knots
Changes to send ASpd as knots
2015-12-14 22:27:09 +01:00
Damjan Adamic 9e237c9e46 Re #3127 and #2921: getFlightMode() can now return specified flight mode data 2015-12-14 20:40:27 +01:00
David S. Beach 9a114c903c Changes to send ASpd as knots 2015-12-14 11:53:04 -05:00
mikeller 551ef10d6f Graft of serial port inversion option onto 'next'. 2015-12-15 02:08:16 +13:00
Andre Bernet 92704687cf Ignore list updated 2015-12-14 10:31:04 +04:00
Andre Bernet 3cab898225 Case change fix 2015-12-14 10:22:28 +04:00
Bertrand Songis e103d6fc24 Merge pull request #3144 from flacjacket/python2-3_next
Python 2/3 compatibility and PEP8 on next
2015-12-14 07:16:57 +01:00
Sean Vig 4bd90d79d0 Use with open(...) as ...: context managers
Instead of manually opening and closes file objects, use the context
manager that will properly handle opening and closing files for us, even
in the event of some error
2015-12-13 18:57:36 -06:00
Sean Vig 82c3230981 PEP8 and break up radio/util/tts.py
Break up tts.py so that each language configuration of system and custom
sounds is done in a separate file, also fixing PEP8 problems with
tts.py, mostly whitespace related
2015-12-13 18:55:03 -06:00
Sean Vig 5f698d2b17 PEP8 radio/util/translate.py
Remove unused imports, fix whitespace, fix undefined variable
2015-12-13 18:55:03 -06:00
Sean Vig 4bfcfd0fc8 PEP8 radio/util/taranisicons.py
Remove unused imports, fix whitespace, fix indentation
2015-12-13 18:55:02 -06:00
Sean Vig bcc7982b3b PEP8 radio/util/sportparse.py
Remove unused import, fix whitespace, indentation, and comments
2015-12-13 18:55:02 -06:00
Sean Vig 0743785126 PEP8 radio/util/sinus.py
Fix whitespace
2015-12-13 18:55:02 -06:00
Sean Vig 196dbb1d39 PEP8 radio/util/parse.py
Fix whitespace and indentation
2015-12-13 18:55:02 -06:00
Sean Vig fa0ded50fe PEP8 radio/util/luaexport.py
Fix indentation
2015-12-13 18:55:02 -06:00
Sean Vig 2968b25cfa PEP8 radio/util/include-guard.py
Split imports, fix whitespace
2015-12-13 18:55:02 -06:00
Sean Vig 39ee317190 PEP8 radio/util/img2lbm.py
Fix whitespace
2015-12-13 18:54:55 -06:00
Sean Vig 710482e821 PEP8 radio/util/font2png.py
Fix whitespace and indentations, remove semicolons
2015-12-13 18:39:02 -06:00
Sean Vig 73f9dac120 PEP8 radio/util/fat12.py
Fix indentation and whitespace
2015-12-13 18:32:54 -06:00
Sean Vig 7dcd96d258 PEP8 radio/util/dsm2.py
Fix indentation and whitespace
2015-12-13 18:32:54 -06:00
Sean Vig 9d13484291 PEP8 radio/util/copyright.py
Remove unused imports, fix whitespace, fix comments
2015-12-13 18:32:54 -06:00
Sean Vig be154140b3 PEP8 radio/util/codecs.py
Fix white space
2015-12-13 18:32:53 -06:00
Sean Vig 054952edcb PEP8 radio/util/capitalize.py
Split imports, fix indentation
2015-12-13 18:32:53 -06:00
Sean Vig 3d6533c88b PEP8 radio/util/bin2lbm.py
Fix indentation
2015-12-13 18:32:53 -06:00
Sean Vig a0f6b0e913 PEP8 radio/util/addtr.py
Split imports, fix indentation
2015-12-13 18:32:53 -06:00
Sean Vig 50d8e21533 PEP8 radio/util/add-issue-links.py
Remove unused imports, fix indentation
2015-12-13 18:32:53 -06:00
Sean Vig b8800ed30e Update Makefile to allow Python 3
We no longer must enforce Python 2, so let Python 3 be run if that is
the system Python
2015-12-13 18:31:50 -06:00
Sean Vig 5efa5d47d3 Use Python 2/3 compatible scripts
Almost entirely fixing print statements, but also a couple importing
changes, wrapped in try/excepts, and one case where dict.keys() not
being a list would be a problem.

Also reverts e41139a397

The real fix for #1907
2015-12-13 18:28:44 -06:00
Damjan Adamic b3d52e3525 Fixes #3061: some wizard lines were not visible anymore (warn users in changelog to copy new wizard to their SD cards) 2015-12-13 20:50:25 +01:00
Damjan Adamic aa2ca4f729 Fixes #3043: unit for Air speed sensor set to knots 2015-12-13 20:39:28 +01:00
Damjan Adamic 034221a78e Inputs were not exported as Lua fields 2015-12-13 19:30:36 +01:00
Bertrand Songis f63dcfb778 Merge pull request #3142 from opentx/dsbeach/next-issue2919-telemetry-sensors-simulator
Ported simulator enhancements to next
2015-12-13 18:43:07 +01:00
David S. Beach 3ebc6bb86c Ported simulator enhancements to next 2015-12-13 11:22:33 -05:00
Bertrand Songis b8ac51564e Compilation fix 2015-12-11 15:12:50 +01:00
Bertrand Songis 5554540630 Lowercase again in all directories to simplify things 2015-12-11 10:00:03 +01:00
Bertrand Songis 1edc1fe316 Compilation fix 2015-12-11 09:29:01 +01:00
Bertrand Songis 00100c0c86 Cosmetics 2015-12-10 23:44:56 +01:00
Andre Bernet 8bdce4e213 Support language-specific chars in notes 2015-12-09 12:00:30 +04:00
Andre Bernet 4edbfcb834 AR9X firmware flashing fallback was wrong 2015-12-08 11:27:51 +04:00
Damjan Adamic 9eeb2dd6a2 More layout changes (1366 ms with table layout) 2015-12-07 18:03:46 +01:00
Damjan Adamic 49016498a3 Resize policy back (586 ms with grid layout, 1347 ms with table layout) 2015-12-07 18:03:41 +01:00
Damjan Adamic e37dcabd95 timing code (796 ms with grid layout, 1394 ms with table layout) 2015-12-07 18:03:36 +01:00
Damjan Adamic 191e37f29c TableWidget only used if -D TABLE_LAYOUT=yes compile option is defined 2015-12-07 18:03:30 +01:00
Damjan Adamic 1dcc660f31 Fixes #2921: Lua getFlightMode() function added 2015-12-07 18:01:37 +01:00
Bertrand Songis 618dd279fc Merge branch 'next' of https://github.com/opentx/opentx into next 2015-12-06 23:12:00 +01:00
Bertrand Songis 13927800e2 Compilation fix 2015-12-06 23:11:42 +01:00
Bertrand Songis 384bfea9f9 Update README.md 2015-12-06 22:58:00 +01:00
Bertrand Songis 1e2130de53 [Horus] Lua model scripts added 2015-12-06 22:54:43 +01:00
Damjan Adamic 9d29b483c5 Lua export fixes ported from master
Cmake Horus font dependencies fixed
Jenkins build scripts added and fixed
2015-12-06 11:26:07 +01:00
Damjan Adamic 75c1f9f3f7 Compilation fix 2015-11-30 20:04:28 +01:00
Damjan Adamic af6ea012bb Lua documentation update 2015-11-30 18:53:33 +01:00
Damjan Adamic 5492c18a01 Lua exports fixes (ported from master 5d7cc79d):
* X9E fields were missing
 * inputs were missing
 * renamed X9E center sliders, which name collided with logical switches
2015-11-30 18:45:13 +01:00
Bertrand Songis fd554cf013 Merge pull request #3115 from HakanBastedt/HakanBastedt/More_Swedish_translation_issues_3113
Swedish translation now up-to-date and in sync with EN #3113
2015-11-28 22:49:32 +01:00
Håkan Båstedt 9bc63c7421 Fixed messed-up line breaks 2015-11-28 22:08:55 +01:00
Håkan Båstedt 5169892d39 Swedish translation now up-to-date and in sync with EN 2015-11-28 14:43:47 +01:00
Bertrand Songis bca9866675 [Horus] A few SD card / Models storage fixes 2015-11-27 21:33:02 +01:00
Bertrand Songis 787d2ffa92 [Horus] Freeze when invalid (or no) model bitmap 2015-11-26 22:59:06 +01:00
Damjan Adamic d2155ef089 Fixes for Windows build 2015-11-26 21:40:28 +01:00
Bertrand Songis f80a788754 Merge pull request #3112 from opentx/projectkk2glider/issue_2469_lua_keys_for_next_part2
Re #2469: part2: keys accesible to Lua telemetry scripts (Taranis only)
2015-11-26 21:19:39 +01:00
Bertrand Songis 7c1634c00d Horus simu compilation fix 2015-11-26 20:40:13 +01:00
Damjan Adamic 1cbd0ec4b4 Compilation fix for git ID (another try) 2015-11-26 20:33:05 +01:00
Damjan Adamic dc2d2e1f2e Compilation fix for git ID 2015-11-26 20:21:33 +01:00
Damjan Adamic 98d5966946 stamp.h should be PHONY target 2015-11-26 20:10:30 +01:00
Damjan Adamic f184e9bed3 Re #2469: part2: keys accesible to Lua telemetry scripts (Taranis only) (ported #3087 from master commits 3186a5d99..94d8b8b0e8d) 2015-11-26 19:40:32 +01:00
Bertrand Songis cbe244fc6c Fixes Horus compilation 2015-11-26 19:35:07 +01:00
Bertrand Songis f8201844d7 Merge pull request #3111 from opentx/projectkk2glider/issue_2469_lua_keys_for_next_part1
Re #2469: part1: Menu system renaming of variables and refactoring
2015-11-26 18:35:41 +01:00
Damjan Adamic 51b8f9b054 Re #2469: part1: Menu system renaming of variables and refactoring (ported #3087 from master commits 3186a5d99..94d8b8b0e8d) 2015-11-26 18:29:20 +01:00
Andre Bernet ab99740e1b Swedish TTS fixes by HakanBastedt 2015-11-26 13:07:41 +04:00
Bertrand Songis f19815ee26 Cosmetics 2015-11-25 23:15:29 +01:00
Bertrand Songis 84bd62bdce Merge pull request #3105 from opentx/projectkk2glider/lua_additions_for_next
Lua addition ported from master to next
2015-11-25 22:56:36 +01:00
Damjan Adamic efc57d4cf2 Spaces removed 2015-11-25 22:44:22 +01:00
Bertrand Songis d101a6d181 Compilation fix 2015-11-25 21:58:51 +01:00
Bertrand Songis 71f08998dd [Horus] No more errors in Lua interface compilation 2015-11-25 21:50:12 +01:00
Bertrand Songis 791b1173e3 Another couple of functions renamed
And nothing else this time!
2015-11-25 21:24:20 +01:00
Damjan Adamic 7538fcfb51 Git commit ID added to stamp
Fixes #2921: getValue() now also returns pilot position
Fixes #3062: Close any Lua open files when radio powers off
Fixes #3095: Lua string library added (only 6k bytes of flash used)
Re #3095: luaGetVersion() also returns version as numbers
(Ported from master 7ef790d3..4d0bd14ad and squashed into one commit)
2015-11-25 18:00:44 +01:00
Bertrand Songis 7e6dc610ac Compilation fix 2015-11-25 07:40:15 +01:00
Bertrand Songis 765ff269f9 Compilation fix 2015-11-24 22:48:16 +01:00
Bertrand Songis 01187e60c2 Some more LCD functions renamed 2015-11-24 22:09:22 +01:00
Damjan Adamic f92b71c0b8 RRe #2861: Use new TableLayout for Logical switches, Outputs and Special functions (ported from master 731faa8 and squashed into one commit) 2015-11-23 18:56:38 +01:00
Damjan Adamic edab80e6af A FAT12 dump script that got left behing in some old master branch (was used in #1793) 2015-11-22 18:11:49 +01:00
Damjan Adamic 18e36657f8 Re #3026: add Clear to the flight mode (context menu on the Name label) (ported from master b0d3ae26) 2015-11-22 18:11:29 +01:00
Bertrand Songis 683f6e22e2 [Horus] MODELSEL screen continued 2015-11-21 11:35:35 +01:00
Damjan Adamic 0db2013d24 Lua documentation update (ported from master 682fa5d) 2015-11-20 21:25:40 +01:00
Bertrand Songis 6f0de32ba8 [Horus] Menu CurveOne improved 2015-11-20 20:19:38 +01:00
Bertrand Songis 170a2b2612 Should fix the latest compilation error on Visual Studio 2015-11-19 19:52:52 +01:00
Damjan Adamic f05058252f mainmenu.lbm removed from Taranis. Cmake dependencies fixed. 2015-11-19 18:31:44 +01:00
Damjan Adamic 32d0e3890a Additonal stamp.h fixes 2015-11-19 18:16:58 +01:00
David S. Beach ee95c973e9 Fixes #3024: Companion 2.1 (windows) - Lua 'execute' fails in non-root directory (ported from master, re #3025) 2015-11-19 17:57:33 +01:00
dsbeach a1bb31b521 Modifications to luaCompileAndSave() - as scripts are loaded it will check for existing file <file>.lua.src and compile it to <file>.lua if found. (ported from master, re #3079) 2015-11-19 17:50:07 +01:00
Damjan Adamic e1cf90d6d4 Stamp fix 2015-11-19 15:48:19 +01:00
Damjan Adamic cc836a049b Re #3053: clean translations/*.h (original author griebd) 2015-11-19 15:45:41 +01:00
Michele d66b55707d Update it.h.txt (ported from master, re #3036) 2015-11-19 15:38:07 +01:00
Damjan Adamic fd73adc68b Cmake fixes 2015-11-19 00:02:15 +01:00
Bertrand Songis b7c09d703c [Horus] UI continued 2015-11-18 22:07:48 +01:00
Bertrand Songis 22a24d67c9 Cosmetics 2015-11-17 22:52:57 +01:00
Bertrand Songis 821cdff3e6 [Horus] Telemetry menu review 2015-11-17 22:51:36 +01:00
Bertrand Songis e979768445 [Horus] Menu calibration review 2015-11-17 22:51:36 +01:00
Bertrand Songis f238e4d737 Merge pull request #3081 from indavis/next
Update flasheepromdialog.ui, Fixed backupBeforeWrite toolTip.
2015-11-17 19:53:18 +01:00
indavis e3825ed542 Update flasheepromdialog.ui
Updating the backupBeforeWrite toolTip. It was incorrectly set to the checkFirmwareCompatibility text.
2015-11-17 02:15:32 -06:00
Damjan Adamic 788035b0e3 Lua documentation update 2015-11-16 22:46:07 +01:00
Damjan Adamic d1e9bf8e98 Lua documentation update 2015-11-16 19:52:59 +01:00
Bertrand Songis 86b5e36925 Merge pull request #3076 from opentx/Horus
Horus
2015-11-16 18:14:46 +01:00
Bertrand Songis 072204756c Indentation problem 2015-11-16 18:13:21 +01:00
Bertrand Songis e76478f27a [Horus] Merge of Telemetry menu 2015-11-16 18:08:58 +01:00
Damjan Adamic db4ac954ba Better makefile recipe for lua_exports.inc target 2015-11-16 10:22:12 +01:00
Damjan Adamic 6f230c4fc7 Fixed lua_exports.inc target 2015-11-16 07:20:08 +01:00
Bertrand Songis de733579d5 Merge remote-tracking branch 'origin/next' into Horus
# Conflicts:
#	companion/src/CMakeLists.txt
#	companion/src/firmwares/opentx/opentxinterface.cpp
#	companion/src/firmwares/opentx/simulator/CMakeLists.txt
#	companion/src/firmwares/opentx/stamp-opentx.h.in
#	radio/src/Makefile
#	radio/src/cli.cpp
#	radio/src/gui/Taranis/helpers.cpp
#	radio/src/gui/Taranis/lcd.cpp
#	radio/src/gui/Taranis/menu_model_setup.cpp
#	radio/src/gui/Taranis/view_main.cpp
#	radio/src/lua_api.cpp
#	radio/src/main_avr.cpp
#	radio/src/myeeprom.h
#	radio/src/opentx.cpp
#	radio/src/pulses/pxx_arm.cpp
#	radio/src/storage/eeprom_conversions.cpp
#	radio/src/targets/Horus/adc_driver.cpp
#	radio/src/targets/Horus/board_horus.cpp
#	radio/src/targets/Horus/board_horus.h
#	radio/src/targets/Horus/diskio.cpp
#	radio/src/targets/Horus/hal.h
#	radio/src/targets/Horus/haptic_driver.cpp
#	radio/src/targets/Horus/i2c_driver.cpp
#	radio/src/targets/Horus/keys_driver.cpp
#	radio/src/targets/Horus/lcd_driver.cpp
#	radio/src/targets/Horus/led_driver.cpp
#	radio/src/targets/Horus/pulses_driver.cpp
#	radio/src/targets/Horus/pwr_driver.c
#	radio/src/targets/Horus/sdio_sd.c
#	radio/src/targets/Horus/sdio_sd.h
#	radio/src/targets/Horus/serial2_driver.cpp
#	radio/src/targets/Horus/telemetry_driver.cpp
#	radio/src/targets/Horus/usb_conf.h
#	radio/src/targets/Horus/usbd_desc.c
#	radio/src/targets/Horus/usbd_storage_msd.cpp
2015-11-15 23:08:34 +01:00
Bertrand Songis d3915a78fd Fixes #2902 2015-11-15 20:02:20 +01:00
Bertrand Songis f8f5dde24e Horus drivers fixes 2015-11-15 20:02:20 +01:00
Bertrand Songis e76cebbc66 Horus drivers 2015-11-15 20:02:20 +01:00
Bertrand Songis 8ba13e5685 EEPROM v217->v218 conversions (on board + Companion) 2015-11-15 20:02:20 +01:00
Bertrand Songis 116dcf93e0 Fixes #2902 2015-11-15 20:02:20 +01:00
Bertrand Songis 18e128ef55 EEPROM structure changes to allow more switches (9bits instead of 8bits) 2015-11-15 20:02:20 +01:00
Bertrand Songis 11fe3d41f8 Version moved to 2.2.0 2015-11-15 20:02:20 +01:00
Bertrand Songis d0d7135db4 Merge pull request #3068 from opentx/projectkk2glider/lua_split_files
Projectkk2glider/lua split files
2015-11-15 19:44:48 +01:00
Bertrand Songis 1ce0b71c5c Merge pull request #3073 from opentx/projectkk2glider/issue_3071
Fixes #3071: wrong telemetry unit and precision was used for V2 in lo…
2015-11-15 19:41:45 +01:00
Damjan Adamic 109faf8989 Fixes #3071: wrong telemetry unit and precision was used for V2 in logical switches (radios with ARM CPU other than Taranis) 2015-11-15 17:58:10 +01:00
Damjan Adamic 754b875d81 Re #3054: Lua byte-code of every loaded script is dumped to a file if LUA_COMPILER=YES is defined (only for simu target. Original code author (dsbeach) 2015-11-15 16:32:12 +01:00
Damjan Adamic 2572ed0eba Removed unnecessary FILINFO 2015-11-15 16:20:32 +01:00
Bertrand Songis 404a1934c5 [Horus] GVARS Menu 2015-11-15 14:18:43 +01:00
Damjan Adamic feac6d000f Companion build fixed (stamp duplication removed) 2015-11-15 13:19:26 +01:00
Bertrand Songis 77ebe3caec Wrong address for updates 2015-11-15 12:54:29 +01:00
Bertrand Songis e71b53964b [Horus] For the moment no better solution for Windows :( 2015-11-15 12:52:36 +01:00
Damjan Adamic 4a60c8aa6e Lua exports moved to lua dir 2015-11-15 12:12:24 +01:00
Damjan Adamic d54f25ccba Lua api and interface lua_api.cpp moved to lua dir and split into several files 2015-11-15 12:05:53 +01:00
Bertrand Songis 2f03e2c4ad Update DONATIONS.txt 2015-11-15 10:03:54 +01:00
Damjan Adamic c92d88b664 Lua documentation update 2015-11-15 09:50:53 +01:00
Bertrand Songis 11cff7a63b [Horus] Mouse middle button used for [Enter] 2015-11-15 00:28:22 +01:00
Bertrand Songis 07ca8319ad [Horus] Simulator buttons modelized 2015-11-14 21:15:28 +01:00
Bertrand Songis 2f54e85421 VERSION_FAMILY dynamic string introduced 2015-11-14 19:17:34 +01:00
Bertrand Songis b666892da4 Merge pull request #3065 from opentx/projectkk2glider/autogen_lua_docs_2
Projectkk2glider/autogen lua docs 2
2015-11-14 18:47:18 +01:00
Bertrand Songis edf1dbc0b7 Windows compilation fix 2015-11-14 18:24:51 +01:00
Bertrand Songis 7f991ea7f9 Next compilation fixes 2015-11-14 18:02:54 +01:00
Bertrand Songis f0753fe51c Next compilation fixes 2015-11-14 17:55:08 +01:00
Bertrand Songis 7f4abd7c83 [Horus] Windows compilation errors 2015-11-14 17:50:52 +01:00
Bertrand Songis 52809b51b9 Update DONATIONS.txt 2015-11-14 17:20:11 +01:00
Bertrand Songis ed2f66aedd [Horus] UI continued 2015-11-14 17:19:20 +01:00
Damjan Adamic 1a399a649d Typos 2015-11-13 20:00:46 +01:00
Damjan Adamic 0f246d2f39 More docs 2015-11-13 19:48:32 +01:00
Damjan Adamic e5ef862729 Docs added 2015-11-13 18:50:43 +01:00
Damjan Adamic e6546af9b1 Fixes #2947: luaGetVersion() upgraded to also return the radio type.
Start of Lua API documentation that can be parsed with a custom script that generates gitbook documentation
2015-11-13 18:50:43 +01:00
Andre Bernet feb98816ec Hide switch field for FM0 2015-11-13 19:37:27 +04:00
Andre Bernet 71411fcb62 LR12 protocol actually doesn't support remote failsafe configuration 2015-11-13 19:26:34 +04:00
Damjan Adamic d5824f5719 Re #3043: Air speed unit typo corrected in parser 2015-11-13 00:19:08 +01:00
Bertrand Songis f32231cab2 [Horus] Small optimization 2015-11-12 22:22:31 +01:00
Bertrand Songis f875aec72b Update DONATIONS.txt 2015-11-12 19:29:25 +01:00
Bertrand Songis 1b7e62a1f0 Merge pull request #3060 from opentx/projectkk2glider/issue_3059_speed_conversions
Fixes #3059: added unit conversions from km/h
2015-11-12 18:53:02 +01:00
Damjan Adamic ef5746de11 Re #3043: added Air speed parser 2015-11-12 18:47:32 +01:00
Damjan Adamic 454a664d01 Re #3059: table lookup used for unit conversion, saved some 50 bytes of FLASH 2015-11-12 14:53:00 +01:00
Damjan Adamic 58edcc3af8 Fixes #3059: added unit conversions from km/h 2015-11-12 13:55:24 +01:00
Bertrand Songis 09846ca917 Update DONATIONS.txt 2015-11-11 21:43:12 +01:00
Bertrand Songis 2b2f34af29 Release note for 2.1.6 updated 2015-11-11 10:42:20 +01:00
Bertrand Songis a06d405a2c Update DONATIONS.txt 2015-11-11 10:26:55 +01:00
Bertrand Songis 429490eb86 Switch to 2.1.6 2015-11-11 10:24:58 +01:00
Bertrand Songis c73a8bac25 [Taranis X9E] Problem of impossible shutdown on some radios 2015-11-11 10:23:53 +01:00
Bertrand Songis 86f1363d0a [Horus] Compilation fix 2015-11-11 10:12:09 +01:00
Bertrand Songis c4d7feaa9b [Horus] Simulator graphics 2015-11-11 10:02:12 +01:00
Bertrand Songis 312c370162 [Horus] DMA2D more used. Some graphics are really faster. 2015-11-10 21:57:41 +01:00
Bertrand Songis a9603cbdb7 [Horus] More timings 2015-11-10 21:57:41 +01:00
Damjan Adamic f854442c79 Fixes #3047:
* negative altitude on top bar was displayed wrong (same bug affected vertical speed)
* add ability to select an altitude sensor with ft unit for top bar
* display actual sensor unit for top bar altitude
2015-11-10 18:01:42 +01:00
mhotar 922141fcf7 simulator slices 2015-11-09 23:29:49 +01:00
Bertrand Songis 34fef4fefe [Horus] Some LCD timings added in comments 2015-11-09 20:02:08 +01:00
Bertrand Songis d74092d6eb Compilation failure 2015-11-08 20:56:37 +01:00
Bertrand Songis 5445e506a6 Simulator bitmaps moved to different directories 2015-11-08 20:56:23 +01:00
Andre Bernet a1d44d4d9f Telemetry custom screen changes didn't emit modified signal (Fix #3029) 2015-11-07 21:14:48 +01:00
Andre Bernet cc2fcce559 Hide D8/LR12 in companion when eu firmware option is selected 2015-11-07 08:35:47 +01:00
Bertrand Songis 3a740907bb Analog_values renamed to adcValues 2015-11-06 18:46:37 +01:00
Bertrand Songis b1f5ea115c [Horus] ADC driver by Mike
+ new CLI command repeat <interval> <other command>
2015-11-06 18:40:35 +01:00
Bertrand Songis a4869cdb8a Update releasenotes.txt 2015-11-05 19:01:08 +01:00
Bertrand Songis 333d7f1ac1 Update releasenotes.txt 2015-11-05 19:00:40 +01:00
martin 380f435cf2 CZ translations 2015-11-04 23:19:50 +01:00
Andre Bernet 5805c0904a French translations 2015-11-04 21:27:56 +01:00
Damjan Adamic cd2be28aab Typo in release notes 2015-11-04 19:23:54 +01:00
Damjan Adamic d038a0379b Release notes updated, release set to 2015-11-04 2015-11-04 19:14:51 +01:00
Bertrand Songis bca18f5938 Compilation fix 2015-11-03 21:36:22 +01:00
Bertrand Songis 62e6e30481 [Horus] Massstorage working now
Still a problem on Windows which doesn't want to format the SD card.
Also it seems I am not able to rename the card. It reminds me some issue
we already had on Taranis.
2015-11-03 21:02:28 +01:00
Bertrand Songis a556c50956 [Horus] Next round of screen changes + refactoring 2015-11-03 19:53:55 +01:00
Bertrand Songis 8f4c161dc0 [Horus] Massstorage (still not working) 2015-11-03 18:45:59 +01:00
Bertrand Songis aa24bd72ff Merge pull request #3022 from opentx/kilrah/protocol_fixes
Kilrah/protocol fixes
2015-11-02 00:42:39 +01:00
Andre Bernet a11884522a Missing else 2015-11-01 14:16:27 +04:00
Andre Bernet 58216ec8b0 Add channel names on companion failsafe sliders (fix #3021), remove redundant stuff 2015-11-01 14:06:49 +04:00
Andre Bernet 1641db873d Had forgotten to add the shift in channel names on failsafe setup page 2015-11-01 14:03:19 +04:00
Andre Bernet b1ec421b02 Disable trainer/battery compartment if UART mode not appropriate (#
2994)
2015-11-01 13:00:36 +04:00
Andre Bernet 5119448170 Companion support for Taranis internal PPM, remove disabled DJT choice for stock board 2015-11-01 12:26:15 +04:00
Andre Bernet 0d6d309362 Move available protocol list from EEPROMinterface to Firmware class 2015-11-01 12:22:36 +04:00
Damjan Adamic b56e107e25 Release notes updated 2015-10-31 20:22:14 +01:00
Bertrand Songis 473ddcb56d Update DONATIONS.txt 2015-10-31 18:49:57 +01:00
Bertrand Songis 484583106c Merge pull request #3011 from opentx/projectkk2glider/lua_io_issues
Projectkk2glider/lua io issues
2015-10-31 18:48:53 +01:00
Bertrand Songis 7138c7c0e4 Merge pull request #3019 from opentx/jtaylor2/issue_3012
Remove __CYGWIN__ from Issue 3012 Windows pathing fix because Cygwin
2015-10-31 18:48:25 +01:00
jtaylor2 dcebac87b9 Remove __CYGWIN__ from Issue 3012 Windows pathing fix because Cygwin
uses posix pathing and not Windows pathing.
2015-10-31 10:22:11 -04:00
Andre Bernet 8b419770e2 Harmonise module default channel count 2015-10-31 11:25:35 +04:00
Andre Bernet 3d29b8e7e5 Missing default for internal module type (Fix #3017) 2015-10-31 11:24:05 +04:00
Andre Bernet 22c429a1a7 Also search for simulators in companion.exe path on Windows (Fix #3012) 2015-10-31 10:17:43 +04:00
Damjan Adamic 3b4a6fb49b Fixes #3016: Changing the trainer port setting did not set the model modified flag 2015-10-30 22:01:19 +01:00
Damjan Adamic 3dc7e66ba7 Small fix in cli: main stack size reported wrong 2015-10-30 18:20:05 +01:00
Bertrand Songis fbc2def259 Update DONATIONS.txt 2015-10-30 14:59:45 +01:00
Andre Bernet 08ff104d26 Correct failsafe mapping (fix #2975) 2015-10-30 13:08:26 +04:00
martin a2c50ce2f8 font extra 15x17 2015-10-30 00:17:52 +01:00
Bertrand Songis b65fa29e1d Update DONATIONS.txt 2015-10-29 18:03:23 +01:00
Bertrand Songis b3073e104b Update DONATIONS.txt 2015-10-28 18:21:57 +01:00
Andre Bernet 22b17c64ff Semantics 2015-10-28 20:04:06 +04:00
Damjan Adamic 2e068044c6 Fixes #3003: Lua io.write() did not support numbers 2015-10-27 23:59:18 +01:00
Damjan Adamic d3e2a00cd2 Re #3001: f_open() did not support append mode (in simulator only) 2015-10-27 23:59:18 +01:00
Damjan Adamic 2feb5ac894 Fixes #3001: Lua io.open() could not create new files 2015-10-27 23:59:18 +01:00
Bertrand Songis 6f30718745 Update DONATIONS.txt 2015-10-27 18:44:53 +01:00
Bertrand Songis 16e7dbbb94 [Taranis X9E] Trainer cable always considered as plugged 2015-10-26 19:47:57 +01:00
Bertrand Songis 942148fc5c Another attempt to fix #2722 2015-10-26 19:20:53 +01:00
Bertrand Songis 088f4d5e3f [Taranis] The trainer icon will be shown only if valid PPM is received 2015-10-26 19:19:49 +01:00
Bertrand Songis 03fabd95ac [Horus] Model Selection menu started 2015-10-26 19:15:54 +01:00
Bertrand Songis 7e5374f31d Should fix Travis builds 2015-10-26 18:16:44 +01:00
Bertrand Songis 756441bc50 [9XR-PRO] Battgraph reduced (seemed not 100% when battery full) 2015-10-26 07:21:36 +01:00
Bertrand Songis 7c0767144f [9XR-PRO] Bug when searching EEPROM Fat 2015-10-25 23:25:18 +01:00
Bertrand Songis 95040234b3 Another attempt to fix #2722 2015-10-25 21:57:25 +01:00
Andre Bernet 01226b612a No PPM options are available if trainer mode is master (fix #2994) 2015-10-25 23:32:21 +04:00
Damjan Adamic 4605f9d61d Companion settings moved to 2.2 directory 2015-10-25 20:09:44 +01:00
Bertrand Songis fcb845a6b2 [Horus] Warning started. No transparency for now 2015-10-25 18:02:46 +01:00
Bertrand Songis 0e34c24d96 For Travis ... 2015-10-25 14:37:28 +01:00
Bertrand Songis 47ea418d5b Fix for #2722. Needs tests. 2015-10-25 12:36:46 +01:00
Bertrand Songis 2aa2b41f3a Fixes #2989 2015-10-25 11:49:29 +01:00
Bertrand Songis 85a5554922 [Taranis] Scrollbar wrong position sometimes in Model Setup 2015-10-25 11:09:08 +01:00
martin 543123a169 asterisk 2015-10-25 02:55:11 +02:00
martin b96f882866 asterisk 2015-10-25 02:18:55 +02:00
martin f0039129e9 library icons 2015-10-25 00:04:44 +02:00
dsbeach 6cbe780d57 Adding include for dirent.h for MSVC builds 2015-10-24 15:57:30 -04:00
Damjan Adamic cd4d6afff8 findTrueFileName() memory leak fixed 2015-10-24 20:33:14 +02:00
Bertrand Songis 9cd0cbf417 Test for the Travis server ... 2015-10-24 20:17:41 +02:00
Damjan Adamic 2a54bee20b Simulators and firmwares unregistered when application ends (fixes memory leaks) 2015-10-24 20:10:17 +02:00
Damjan Adamic ee4ea18a3e Re #2987: read_file_system_list() return value memory leak fixed 2015-10-24 19:53:41 +02:00
Bertrand Songis 0673663427 [Horus] Simulator refactoring. This one should be nice :) 2015-10-24 19:47:44 +02:00
Damjan Adamic d38cf06b07 File stripping disabled to improve user trace-backs 2015-10-24 19:09:29 +02:00
Damjan Adamic 54891af0d2 Move to 2.1.5 (we are skipping 2.1.4 to differentiate from the FrSky's 2.1.4) 2015-10-24 18:59:45 +02:00
Bertrand Songis 6f774eb61a [Horus] Companion simulator 2015-10-24 16:08:29 +02:00
Bertrand Songis ab0272c16c [Horus] Refactoring continued 2015-10-24 11:27:34 +02:00
Damjan Adamic 022bd2d3da Re #1915: "Start Logs" changed to "SD Logs" (again) 2015-10-24 10:26:18 +02:00
Bertrand Songis dd88490d00 Update DONATIONS.txt 2015-10-22 23:10:10 +02:00
Bertrand Songis fb371cf5b7 [Horus] Continued ... 2015-10-22 20:18:55 +02:00
Bertrand Songis e18e6f9c41 [Horus] Refactoring continued 2015-10-22 20:04:54 +02:00
Bertrand Songis c8f77fceec [Horus] SD Storage started. UI continued.
+ Some boyscout work on LCD functions
2015-10-22 07:10:19 +02:00
JivaroFAD 018a022c35 M2560 PPM_IN correction + bootloader source 2015-10-21 17:47:13 +02:00
JivaroFAD 1668507114 Cosmetics after pull #2828 2015-10-21 13:48:15 +02:00
Bertrand Songis 580dc6d2de Merge pull request #2983 from opentx/driver33/PL_TR
Translation up to date
2015-10-21 07:14:25 +02:00
Bertrand Songis ebe4ed19c5 Update DONATIONS.txt 2015-10-21 07:12:15 +02:00
Franck Aguerre bc08d95576 Merge pull request #2828 from tmrttmrt/tmrttmrt/Fixes#2750__Mega2560_ST7920_mixer_freq_too_slow
Tmrttmrt/fixes#2750  mega2560 st7920 mixer freq too slow
2015-10-20 23:22:35 +02:00
mhotar d353f3c388 round scale image 2015-10-20 20:14:10 +02:00
driver33 319b8695d5 Translation up to date 2015-10-20 16:54:27 +02:00
mhotar cad1cc4432 timer graprics 2015-10-19 20:26:12 +02:00
Bertrand Songis 768b255d7d Update DONATIONS.txt 2015-10-19 19:36:32 +02:00
Bertrand Songis aa88651e0a [9XR-PRO] Missing delay in LCD initialization. Will it fix #2852?
I need confirmation from a 9XR-PRO user. I had the bug one time
yesterday but I cannot reproduce ...
2015-10-19 19:35:37 +02:00
Bertrand Songis 9463f49ba1 Fixes #2797 - Model Restore broken on Sky9X / 9XR-PRO
It seems I am not allowed to write the 4bytes header separately. It's
overwritten by 4 zeroes at the next write.
2015-10-19 07:56:10 +02:00
Bertrand Songis cee3559aac Merge pull request #2979 from opentx/projectkk2glider/telemetryItems_protection
Out of bounds protection for telemetryItems[] array access and some c…
2015-10-18 18:00:43 +02:00
Damjan Adamic 082ba0893d Out of bounds protection for telemetryItems[] array access and some code refactoring for telemetry value precision 2015-10-18 12:06:25 +02:00
Damjan Adamic 4ef9913f76 Re #2956: Voltage symbol changed to upper case (ported from 2.0) 2015-10-18 09:46:08 +02:00
Bertrand Songis 8a3de9184b [Horus] Main view continued 2015-10-17 11:12:35 +02:00
Bertrand Songis 4f5ce6b0f0 [Horus] Main view added 2015-10-16 23:09:26 +02:00
Bertrand Songis 719ecc8473 [Horus] A lot of GUI fixes 2015-10-16 17:26:42 +02:00
martin 76b5143dd4 some more Horus graprics 2015-10-15 22:21:01 +02:00
Bertrand Songis 21a67b82d4 Update DONATIONS.txt 2015-10-15 20:28:17 +02:00
Bertrand Songis b458b79bed [Horus] make clean also cleans the font bitmap files 2015-10-14 23:47:52 +02:00
martin b3979d9fff reduced index size and icon spacing to fit all 12 icons 2015-10-14 23:47:52 +02:00
Bertrand Songis 8c337b721b [Horus] Now a fake main view 2015-10-14 23:47:52 +02:00
Bertrand Songis 7982c9d5c7 [Horus] Radio icons now displayed 2015-10-14 23:47:52 +02:00
Bertrand Songis 06c0ccf86a [Horus] Radio icons added 2015-10-14 23:47:52 +02:00
Bertrand Songis 8dc402d119 [Horus] Bitmaps definitions moved to a new file 2015-10-14 23:47:52 +02:00
Bertrand Songis 8c0f69746f Code simplification 2015-10-14 23:47:52 +02:00
martin 8f5b844e23 index cosmetics 2015-10-14 23:47:51 +02:00
Bertrand Songis df698e9ff2 Cosmetics 2015-10-14 23:47:51 +02:00
martin 907336722d index masks 2015-10-14 23:47:51 +02:00
Bertrand Songis e0fa546b10 Quick and dirty - I will rewrite this commit later 2015-10-14 23:47:51 +02:00
Bertrand Songis ddaf6237b9 Makefile fixes 2015-10-14 23:47:51 +02:00
Bertrand Songis ce2f7b61e9 New Horus masks added 2015-10-14 23:47:51 +02:00
Bertrand Songis e25115b104 Compilation fixes 2015-10-14 23:47:51 +02:00
Bertrand Songis c92909f7c5 A little bit code cleaning... 2015-10-14 23:47:51 +02:00
Bertrand Songis 2902ae1887 Horus simulator should now be OK 2015-10-14 23:47:51 +02:00
Bertrand Songis 34be811622 Horus drivers updated 2015-10-14 23:47:51 +02:00
Bertrand Songis aeed0e34a9 Horus bitmaps 2015-10-14 23:47:51 +02:00
Bertrand Songis c2dade2133 Horus fonts / bitmaps tools updated 2015-10-14 23:47:51 +02:00
Bertrand Songis 3d74f2b437 Horus drivers fixes 2015-10-14 23:47:27 +02:00
Bertrand Songis 78bcc4d582 Horus drivers 2015-10-14 23:47:26 +02:00
Bertrand Songis 1df45cbfc2 EEPROM v217->v218 conversions (on board + Companion) 2015-10-14 23:47:26 +02:00
Bertrand Songis 0bf2a204e2 Fixes #2902 2015-10-14 23:47:26 +02:00
Bertrand Songis d0f6c59b8a EEPROM structure changes to allow more switches (9bits instead of 8bits) 2015-10-14 23:47:26 +02:00
Bertrand Songis 3083269f30 Version moved to 2.2.0 2015-10-14 23:47:26 +02:00
Bertrand Songis 701082f012 [S.Port] New IDs for FrSky Powerbox 2015-10-14 20:52:29 +02:00
Andre Bernet dad1a06344 Remove redundant init (done in pwrInit()) 2015-10-14 10:30:52 +04:00
Bertrand Songis 8976afe3bc VC++ compilation fix 2015-10-14 07:13:29 +02:00
Bertrand Songis e326cb8515 Update DONATIONS.txt 2015-10-13 19:41:07 +02:00
Damjan Adamic dc4a434076 Release notes updated 2015-10-13 19:22:53 +02:00
Bertrand Songis 9ae7aea7bb Fixes #2837 2015-10-13 15:46:37 +02:00
Bertrand Songis dcbc20f1c0 Fixes #2876 2015-10-13 15:14:21 +02:00
Bertrand Songis 1acd23bf8c Fixes #2942 - Needs more tests
This bug was introduced when fixing #2787, I would like to be sure I
don't reintroduce a bug there now...
2015-10-13 15:04:59 +02:00
Bertrand Songis f98bf5e678 Update DONATIONS.txt 2015-10-13 12:04:05 +02:00
Bertrand Songis 60eca69bfe Fixes #2961 2015-10-12 23:29:52 +02:00
Bertrand Songis 7297669c4b Fixes #2951 2015-10-12 23:17:18 +02:00
Bertrand Songis ad63f7e7f7 Cosmetics 2015-10-12 23:02:53 +02:00
Bertrand Songis da8c0297c4 [CLI] Function "print time" added 2015-10-12 23:02:13 +02:00
Damjan Adamic cd16b4da0e Compilation fix for X9E 2015-10-12 22:52:57 +02:00
Damjan Adamic 94efa965da pass[] data type optimization 2015-10-12 22:30:21 +02:00
Damjan Adamic cb5bb83067 Fixes #2945: fixed bad alignment of modulePulsesData 2015-10-12 22:21:45 +02:00
Bertrand Songis 98abd4ec08 Merge pull request #2955 from ptsneves/master
Corrected ambiguity in ZSTR_TEMP referring to both TEMP1_ID and TEMP2…
2015-10-12 19:16:06 +02:00
Bertrand Songis 1cc3fedaf2 Update DONATIONS.txt 2015-10-12 19:14:53 +02:00
Executive 2f378d83d6 Corrected ambiguity in ZSTR_TEMP referring to both TEMP1_ID and TEMP2_ID. 2015-10-12 14:13:43 +01:00
Bertrand Songis 22f4f18071 Merge pull request #2965 from opentx/driver33/PL_TR
Up to date translation
2015-10-12 07:31:57 +02:00
driver33 268fc43fbd Up to date translation 2015-10-12 00:08:45 +02:00
Bertrand Songis 637d20a66d Compilation fix 2015-10-11 23:25:58 +02:00
Bertrand Songis 48a11f63ea [Taranis] DEBUG=YES without CLI=YES didn't compile 2015-10-11 22:39:38 +02:00
Bertrand Songis 30f5b1b275 Fixes #2913 2015-10-11 12:50:10 +02:00
Bertrand Songis e8680c32b0 Merge pull request #2957 from opentx/projectkk2glider/issue_2936_sh_sf_two_pos
Fixes #2936: 3POS type removed from SH and SF switches (hw only suppo…
2015-10-11 00:19:33 +02:00
Damjan Adamic 21760a3960 Fixes #2936: 3POS type removed from SH and SF switches (hw only supports 2POS type) 2015-10-10 16:38:04 +02:00
Damjan Adamic a30ddb7437 Fixes #2934: shortened screen-shot file name (screen-2013-01-01-123540.bmp), also affects EEPROM backup which uses same time-stamp generation function. 2015-10-10 12:48:49 +02:00
Bertrand Songis f4dc2caedf Update DONATIONS.txt 2015-10-10 07:46:42 +02:00
Bertrand Songis 0d9f011a4e Update DONATIONS.txt 2015-10-08 19:50:12 +02:00
Bertrand Songis 03ff929ef7 Update DONATIONS.txt 2015-10-07 18:55:51 +02:00
Bertrand Songis 3849121098 Update DONATIONS.txt 2015-10-06 23:42:37 +02:00
Bertrand Songis 66f473b8b6 Update DONATIONS.txt 2015-10-05 19:12:00 +02:00
Bertrand Songis 6af4d09345 Update DONATIONS.txt 2015-10-05 07:09:02 +02:00
Bertrand Songis e3dee13cb3 Update DONATIONS.txt 2015-10-03 12:20:52 +02:00
Bertrand Songis 7a01f04f49 Update DONATIONS.txt 2015-10-02 07:06:26 +02:00
Bertrand Songis b46fd48de6 Update DONATIONS.txt 2015-10-02 07:06:10 +02:00
Bertrand Songis d7d38cd076 Update DONATIONS.txt 2015-10-01 19:45:24 +02:00
Tomaz Mertelj 8e0adbe602 Merge branch 'master' of https://github.com/tmrttmrt/opentx into tmrttmrt/Fixes#2750__Mega2560_ST7920_mixer_freq_too_slow 2015-09-30 22:09:16 +02:00
tmertelj 11753450ae Fixes#2750__Mega2560_ST7920_mixer_freq_too_slow 2015-09-30 21:28:30 +02:00
Bertrand Songis bb1d368c03 Merge pull request #2933 from hrenz/patch-11
Patch 11 for 9XR-Pro with XJT-Modul and Telemetrie some Strings changed
2015-09-27 11:12:42 +02:00
hrenz 3231c0506f update for 9XR-Pro and some strings changed 2015-09-27 09:47:28 +02:00
hrenz 1b74d5a061 update only for X9R-pro somen strings changed 2015-09-27 08:01:32 +02:00
Bertrand Songis 7ec4f508ee Merge pull request #2930 from opentx/bsongis/issue1914_by_dsbeach
Bsongis/issue1914 by dsbeach
2015-09-26 10:07:51 +02:00
Bertrand Songis 60f2535212 Fixes #1914 2015-09-26 09:00:36 +02:00
Bertrand Songis 3f6e1d0b3a Lua error display function reused 2015-09-26 09:00:36 +02:00
David S. Beach e57361f7e1 2.1.x implementation of displayLuaScriptError() 2015-09-26 09:00:36 +02:00
Bertrand Songis 436b5003d9 Update README.md 2015-09-26 08:16:39 +02:00
Bertrand Songis 1dfa03d77d Update README.md 2015-09-26 08:14:24 +02:00
Markus Sattler 1d6adcc25a Fixes #2870 2015-09-26 07:59:04 +02:00
Bertrand Songis b48946b3aa Revert "Unused string removed"
This reverts commit b50c452500.
2015-09-25 17:02:22 +02:00
Bertrand Songis b50c452500 Unused string removed 2015-09-25 16:48:03 +02:00
Bertrand Songis e55466894c Merge pull request #2929 from opentx/projectkk2glider/issue_2925_lcd_line_fixes
Fixes #2925: added coordinate check in lcd_line()
2015-09-25 16:36:43 +02:00
Damjan Adamic a38e9f6d3a Fixes #2925: added coordinate check in lcd_line() 2015-09-25 13:13:21 +02:00
Andre Bernet de4a5c586d Navigation bug (should fix #2924) 2015-09-25 11:56:33 +02:00
Andre Bernet 455f9bfde2 Some defaults missing when changing telemetry formula, update propagation issues (fix #2928) 2015-09-25 10:47:46 +02:00
Bertrand Songis 9f25c7a0b6 Cosmetics 2015-09-25 07:22:34 +02:00
Bertrand Songis 02dbe6bcac Fixes #1905 2015-09-25 07:22:21 +02:00
Bertrand Songis 6fe12ba625 Cosmetics 2015-09-24 18:31:30 +02:00
Bertrand Songis cd794e986a Merge pull request #2926 from opentx/driver33/PL_TR
1. Translation up to date. 2. Fixes in sound grammar file - time values
2015-09-24 07:09:03 +02:00
driver33 3aba306de9 1. Translation up to date. 2. Fixes in sound grammar file - time values 2015-09-23 23:50:35 +02:00
Bertrand Songis 412d8131f7 Merge pull request #2922 from opentx/projectkk2glider/issue_2912_fr_tts_missing_sounds
Fixes #2912: added missing "midtrim" and "endtrim" to FR
2015-09-23 19:27:26 +02:00
Bertrand Songis daac7e6bf2 Merge pull request #2923 from opentx/projectkk2glider/issue_2920_translations_fixes
Projectkk2glider/issue 2920 translations fixes
2015-09-23 19:26:45 +02:00
Bertrand Songis b7bf6c5be7 Update DONATIONS.txt 2015-09-23 19:01:14 +02:00
Damjan Adamic cc28219760 Re #2912: translated trim strings 2015-09-23 15:21:16 +02:00
Damjan Adamic 5d9f168003 Re #2920: dropped obsolete translations 2015-09-23 15:13:10 +02:00
Damjan Adamic d1dbe6efce Re #2920: translations updated 2015-09-23 15:07:36 +02:00
Damjan Adamic 22a50041e3 Fixes #2920: typo in "Slow" 2015-09-23 15:07:20 +02:00
Damjan Adamic ea74e31841 Fixes #2912: added missing "midtrim" and "endtrim" to FR 2015-09-23 14:47:13 +02:00
Bertrand Songis cdc66a7d01 Wrong constant used in trainer driver (actually it is the same value) 2015-09-23 07:20:54 +02:00
Bertrand Songis a5f94e17eb Update DONATIONS.txt 2015-09-23 07:05:18 +02:00
Bertrand Songis be84af5f84 Merge pull request #2911 from opentx/bsongis/issue2753_missing_functions_in_companion
Fixes #2753 - Missing functions in Companion
2015-09-22 22:29:42 +02:00
Bertrand Songis 02b72befdb Update DONATIONS.txt 2015-09-22 07:05:48 +02:00
Bertrand Songis 5f343b4a6e Update DONATIONS.txt 2015-09-21 20:47:18 +02:00
Bertrand Songis 7f8211ada5 Fixes #2753 - Missing functions in Companion 2015-09-21 07:17:56 +02:00
Bertrand Songis a3584e56f4 Merge pull request #2910 from opentx/projectkk2glider/issue_2908_frsky_d_refactoring
Projectkk2glider/issue 2908 frsky d refactoring
2015-09-20 20:38:18 +02:00
Damjan Adamic 106702342d Re #2908: Companion build fixed 2015-09-20 19:13:54 +02:00
Damjan Adamic 701af4984b Re #2908: compiler warnings treated as errors (use build option WARNINGS_AS_ERRORS=YES), enabled in commit tests for several platforms (where it passes) 2015-09-20 13:38:35 +02:00
Damjan Adamic bfc01f9504 Re #2908: frsky_d.cpp split into ARM and nonARM files, ARM Frsky alarms code removed completely 2015-09-20 13:08:41 +02:00
Bertrand Songis 18ffe9f503 Merge pull request #2909 from opentx/projectkk2glider/issue_2905_mavlink_broken
Fixes #2950: Mavlink build option was not working
2015-09-20 12:02:35 +02:00
Damjan Adamic 407289e1d1 Fixes #2950: Mavlink build option was not working 2015-09-20 11:47:21 +02:00
Bertrand Songis 6bffe4aa80 Merge pull request #2897 from opentx/driver33/PL_TR
Keeping translation clean and up to date
2015-09-20 11:41:11 +02:00
Bertrand Songis 1aa5143677 Merge pull request #2899 from opentx/bsongis/issue2880_ppm_center_for_dsm2
Fixes #2880 - PPM_CENTER should be ok now with DSM2 pulses
2015-09-20 11:40:35 +02:00
Bertrand Songis 0f6bee2273 Merge pull request #2907 from opentx/bsongis/commit_tests_moved_to_travis
Commit tests moved to Travis
2015-09-20 10:33:02 +02:00
Bertrand Songis 71aa066b99 Commit tests moved to Travis 2015-09-20 10:08:56 +02:00
Damjan Adamic 96a2e18833 Release notes updated 2015-09-19 21:38:37 +02:00
Bertrand Songis d63ac41b6a Merge pull request #2901 from opentx/projectkk2glider/issue_2896_curves_without_files
Fixes #2896: draw curves without using temporary disk files
2015-09-19 20:41:56 +02:00
Damjan Adamic 365d2b6c58 Fixes #2896: draw curves without using temporary disk files 2015-09-19 18:19:08 +02:00
Bertrand Songis 6389f977bc Fixes #2880 - PPM_CENTER should be ok now with DSM2 pulses 2015-09-19 10:44:55 +02:00
Bertrand Songis 7134f38ad5 Update DONATIONS.txt 2015-09-18 23:47:04 +02:00
driver33 aab8fc8a96 Keeping translation clean and up to date 2015-09-18 14:59:40 +02:00
Bertrand Songis 0c39ed3488 Next VC++ errors fixed 2015-09-18 07:15:45 +02:00
Bertrand Songis a142a74c36 Next VC++ errors fixed 2015-09-17 22:50:12 +02:00
Bertrand Songis 9f8a1d5f97 Try to fix VC++ errors 2015-09-17 22:37:53 +02:00
Bertrand Songis e65c131c75 Fixes #2843 2015-09-17 18:23:18 +02:00
Bertrand Songis 552e730065 Update DONATIONS.txt 2015-09-17 18:06:06 +02:00
Bertrand Songis dbc0d764e1 Merge pull request #2887 from opentx/bsongis/issue2850_top_lcd_timer_configuration
Fixes #2850
2015-09-17 07:32:08 +02:00
Bertrand Songis 5cebe43306 Merge pull request #2890 from opentx/griebd/refactoring_between_eeprom_and_gui_2778
New interface between eeprominterface and gui.
2015-09-17 07:13:03 +02:00
Grieb 646cc937ac Fixes #2778. 2015-09-16 22:29:34 -03:00
Grieb 6d52039266 Refactoring to have messages in Companion when opening eeprom. 2015-09-16 22:29:28 -03:00
Bertrand Songis 14967b6a94 Update DONATIONS.txt 2015-09-16 21:59:39 +02:00
Bertrand Songis b9ce8df5b6 Fixes #2850 2015-09-16 21:47:47 +02:00
Bertrand Songis cae807499b Jenkins compilation fix 2015-09-16 20:45:16 +02:00
Bertrand Songis df0c0808b0 Warnings removed 2015-09-16 20:44:08 +02:00
Bertrand Songis 064c58d858 Gtests false positive
SYSTEM_RESET function added to avoid this kind of error
2015-09-16 20:35:37 +02:00
Bertrand Songis 9af87b228c Fixes #2855 again. Now with a non regression test ;) 2015-09-16 19:24:39 +02:00
Bertrand Songis 9eae49eed3 Merge pull request #2886 from opentx/driver33/polish_translation
Translation fixes
2015-09-16 19:13:13 +02:00
driver33 92310fff5f Translation fixes 2015-09-16 18:58:55 +02:00
Bertrand Songis 3d7c71d3ce Update DONATIONS.txt 2015-09-16 18:44:19 +02:00
Bertrand Songis cd0f24fd8c Update README.md 2015-09-16 18:41:56 +02:00
Bertrand Songis c1c3289b02 Integration with Travis 2015-09-16 18:38:24 +02:00
Bertrand Songis b13b3467af Merge pull request #2883 from gitter-badger/gitter-badge
Add a Gitter chat badge to README.md
2015-09-15 20:13:57 +02:00
The Gitter Badger 0569d5b880 Add Gitter badge 2015-09-15 18:05:54 +00:00
Bertrand Songis 80bf502b11 Fixes #2736 2015-09-15 07:07:37 +02:00
Bertrand Songis fbb5adcebb Fixes #2875 2015-09-14 21:35:02 +02:00
Bertrand Songis 3aac623a4b Update DONATIONS.txt 2015-09-14 20:14:28 +02:00
Bertrand Songis 10f5bd211b Fixes compilation in 'next' 2015-09-14 20:12:22 +02:00
Bertrand Songis 3387395932 Fixes #2855 2015-09-14 06:40:35 +02:00
Bertrand Songis c269b2ceff Merge pull request #2865 from hrenz/patch-10
update German openTx for V2.1.4  at 12.09.2015
2015-09-12 09:00:14 +02:00
hrenz 20c6edd58e update German openTx for V2.1.4 at 12.09.2015
only some strings changed for
X9D X9E 9XR-pro
2015-09-12 08:12:44 +02:00
Bertrand Songis 4854ffa683 Fixes #2855 2015-09-11 16:45:00 +02:00
Bertrand Songis 0baad9e393 Update DONATIONS.txt 2015-09-10 23:52:41 +02:00
Bertrand Songis 3ddcd3050e --version argument in companion 2015-09-09 17:45:40 +02:00
Bertrand Songis ed86c5e16c Move to 2.1.4 2015-09-09 17:45:40 +02:00
Bertrand Songis 2030bf7599 Update DONATIONS.txt 2015-09-09 15:25:40 +02:00
Bertrand Songis 4571ed2438 Fixes #2855 - Logical Switches now
Test needed please!
2015-09-09 15:20:43 +02:00
Andre Bernet b46bb9b5cf Companion translations 2015-09-09 11:07:37 +02:00
Bertrand Songis 2d4db9604a Translations problem in print model functions 2015-09-09 11:02:45 +02:00
Andre Bernet b65d716029 Release notes updated 2015-09-09 10:51:39 +02:00
Bertrand Songis 259a42bfdc Fixes #2855 2015-09-09 09:33:25 +02:00
Bertrand Songis 562c879751 Jenkins commit tests now stored in the repo 2015-09-09 09:03:33 +02:00
Bertrand Songis 746dbe22b8 Inversion between TIMER_MIN and TIMER_MAX!!! 2015-09-08 20:34:10 +02:00
Bertrand Songis 2a49e98a80 Update DONATIONS.txt 2015-09-08 20:15:04 +02:00
Bertrand Songis 20ee2318cd Fixes #2851 2015-09-08 20:13:17 +02:00
Bertrand Songis 21ac2eca88 Should fix #2848 - Worst case fixes a warning. 2015-09-08 19:29:11 +02:00
Bertrand Songis afdff355de Switch to 2.1.3 2015-09-08 19:22:16 +02:00
Bertrand Songis 3f14a25852 Warning removed 2015-09-08 19:19:38 +02:00
Bertrand Songis abc48390ca Fixes #2847 2015-09-08 19:09:16 +02:00
Andre Bernet 8dd5ebf053 Release notes updated Added note about throttle source 2015-09-08 10:03:06 +02:00
Bertrand Songis 65c9ae6bfd Merge pull request #2846 from opentx/MicheleVilla/FW_IT_Translations
Update it.h.txt
2015-09-07 22:29:12 +02:00
Andre Bernet 5188645313 Remove duplicate option 2015-09-07 22:28:29 +02:00
Michele 2260cde321 Update it.h.txt 2015-09-07 22:20:24 +02:00
Andre Bernet f76f7a6ad4 Companion translations 2015-09-07 22:11:07 +02:00
Andre Bernet 33c694f5a3 Release notes updated 2015-09-07 22:06:51 +02:00
Bertrand Songis a8890b11e0 [Companion] CLI option added 2015-09-07 21:54:07 +02:00
Bertrand Songis c8525b311f Fixes #2844 2015-09-07 21:46:12 +02:00
Bertrand Songis 99d3afbe1a Warning removed 2015-09-07 21:46:12 +02:00
Andre Bernet 1f1a88a06c Release notes updated 2015-09-07 21:06:29 +02:00
Andre Bernet bf6b5cc389 Release notes updated 2015-09-07 20:56:41 +02:00
Bertrand Songis 9967aab3dd Update DONATIONS.txt 2015-09-06 23:02:53 +02:00
mhotar 2fef5f3e78 CZ translation 2015-09-06 22:46:10 +02:00
Bertrand Songis d3edecb133 Merge pull request #2842 from opentx/driver33/PL_TR
Fixes in traslations
2015-09-06 21:04:52 +02:00
driver33 6ecf4ec6a0 Fixes in traslations 2015-09-06 20:58:07 +02:00
mhotar 57bc32edf5 Logo added to the lib 2015-09-06 20:56:23 +02:00
mhotar 5beeb208be CZ translation 2015-09-06 20:33:05 +02:00
Andre Bernet 2bf3f80364 Merge pull request #2834 from opentx/jtaylor2/issue_-2762
Telemetry simulator improvements (fix #2762)
2015-09-06 19:42:03 +02:00
Andre Bernet 3c0ed1350a Remove obsolete code 2015-09-06 19:34:56 +02:00
Bertrand Songis 2625e05953 Merge pull request #2841 from opentx/kilrah/ar9x
Support for AR9X board
2015-09-06 19:27:18 +02:00
Andre Bernet 461d994dea Cosmetics 2015-09-06 18:15:37 +02:00
Andre Bernet c2ee6d2eaf Disable volume/rtc options for now, not implemented yet 2015-09-06 16:51:02 +02:00
Bertrand Songis ebad326256 [9X] Model not stored on EEPROM upon creation
When TEMPLATES option disabled...
2015-09-06 16:39:16 +02:00
Bertrand Songis 3dc47f39ea Update DONATIONS.txt 2015-09-06 16:27:43 +02:00
Bertrand Songis aaacfb0888 [9XR-PRO] Navigation problem in Modelsel screen 2015-09-06 16:26:52 +02:00
Andre Bernet 45d22c83d4 AR9X simu added 2015-09-06 16:03:08 +02:00
Andre Bernet 45801a89ea Merge branch 'master' into kilrah/ar9x 2015-09-06 14:47:26 +02:00
Bertrand Songis 1a1f175ac1 Bars display problem on 9XR-PRO 2015-09-06 13:41:25 +02:00
Bertrand Songis 922ff5622f Merge pull request #2840 from opentx/driver33/polish_translation_2.1.x
Translation fixes for new features in 2.1.2
2015-09-06 13:25:54 +02:00
driver33 b4a8caba1c Translation fixes for new features in 2.1.2 2015-09-06 12:57:47 +02:00
Andre Bernet bab02ce9f7 French translations 2015-09-06 12:54:54 +02:00
Andre Bernet 3a09fb3777 NL translations (fix #2839) 2015-09-06 12:45:26 +02:00
Andre Bernet 7caa7f8144 French translations 2015-09-06 12:31:19 +02:00
Andre Bernet 1d9e2b7ad0 Merge remote-tracking branch 'origin/bsongis/refactoring_putsSwitches' 2015-09-06 12:16:58 +02:00
Andre Bernet 2a3e690373 Merge branch 'issue2780' 2015-09-06 12:14:42 +02:00
Andre Bernet 3f48f28079 Merge remote-tracking branch 'origin/bsongis/issue2418_better_fix' 2015-09-06 12:09:48 +02:00
Bertrand Songis 9083b1f35c Fixes #2805 2015-09-06 12:00:58 +02:00
Bertrand Songis a18ff7b502 Fixes #2800 2015-09-06 12:00:30 +02:00
Andre Bernet 0460b892d8 Companion translations updated for translators without build environment 2015-09-06 11:44:59 +02:00
Andre Bernet 4b9fcdaf9f Merge pull request #2832 from opentx/bsongis/#2810_reject_new_sensors
Fixes #2810 - Reject new sensor option
Fixes #2730 - Delete all sensors
2015-09-06 11:25:32 +02:00
Andre Bernet 91bd3f0cdb Delete all sensors (fix #2730) 2015-09-06 11:24:10 +02:00
Andre Bernet c96f8aef36 Translations weren't updated 2015-09-06 10:50:05 +02:00
Bertrand Songis bd48c4770b #2635 - Missing strings 2015-09-05 22:08:03 +02:00
Bertrand Songis 0a616cee36 Merge pull request #2751 from opentx/bsongis/issue2635_timer_haptic_countdown
Fixes #2635 - Not tested yet
2015-09-05 20:33:54 +02:00
Bertrand Songis b8923b1411 Merge pull request #2831 from opentx/bsongis/arm_tasks_refactoring
Bsongis/arm tasks refactoring
2015-09-05 20:29:20 +02:00
Bertrand Songis 57e26f4b5e Automatic tests fix 2015-09-05 14:34:34 +02:00
Bertrand Songis ffd49691f5 #2810 - Other possibility (no EEPROM change, discover button added) 2015-09-05 13:36:58 +02:00
Bertrand Songis f956563444 Merge pull request #2829 from tmrttmrt/tmrtmrt/Fixes#2825_MEGA_2560_audio_output_not_working
tmrtmrt/Fixes#2825_MEGA_2560_audio_output_not_working
2015-09-05 11:53:50 +02:00
Bertrand Songis b54123f8a3 Fixes #2810 - Reject new sensor option 2015-09-05 11:44:26 +02:00
Bertrand Songis 976c01051d Compilation fix 2015-09-05 11:37:09 +02:00
Bertrand Songis d14931f77f [ARM] Tasks stack class created
New taskinfo command added to the CLI. CLI stack size increased as it
was too short for the ls command (the CLI did hang!)
2015-09-05 11:10:18 +02:00
Bertrand Songis 2a2650376c Cosmetics 2015-09-04 18:23:54 +02:00
Bertrand Songis 17302fb6e0 [Companion] Current calibration masked on Taranis 2015-09-04 18:21:47 +02:00
jtaylor2 54cc9e0545 Cosmetic, fix line indent. 2015-09-04 06:18:46 -04:00
Bertrand Songis ff2c2d41ad Update DONATIONS.txt 2015-09-04 06:35:30 +02:00
jtaylor2 db6a68e8ed Remove printf left over from testing and correct spacing. 2015-09-03 19:03:34 -04:00
jtaylor2 967ac584a4 Add ability to set sensor instance to telemetry simulator so that it can send data to existing sensors (D sensors with instance 25).
Add default sensor values to RSSI, SWR, A1, A2, RXBat so that
alarms set with LS/SF don't constantly alarm.
2015-09-03 18:02:51 -04:00
Bertrand Songis 50b080cf61 Update DONATIONS.txt 2015-09-03 22:05:12 +02:00
Tomaz Mertelj a975d40ceb tmrtmrt/Fixes#2825_MEGA_2560_audio_output_not_working 2015-09-03 20:50:38 +02:00
David S. Beach e1b1342655 using pre-allocated table space via lua_createtable() for GPS, DATETIME, and CELLS 2015-09-03 14:41:18 -04:00
Tomaz Mertelj 8a6ba0eb8e Merge branch 'master' of https://github.com/tmrttmrt/opentx into tmrttmrt/Fixes#2750__Mega2560_ST7920_mixer_freq_too_slow 2015-09-03 20:36:00 +02:00
tmertelj 87df5766f0 tmrttmrt/Fixes#2750__Mega2560_ST7920_mixer_freq_too_slow 2015-09-03 20:32:23 +02:00
Damjan Adamic 4acebc3186 Fixes #2815: some languages were not completelly disabled and caused Companion crash 2015-09-03 12:50:35 +02:00
Damjan Adamic bd206cbbd2 Readme updated 2015-09-03 12:23:35 +02:00
Bertrand Songis c846cc582a Missing bits on 9XRPRO 2015-09-02 21:57:29 +02:00
Bertrand Songis be7b4e5064 Warning removed 2015-09-02 21:05:24 +02:00
David S. Beach 61b701f930 uncommented call to isAvailable() that was used for testing 2015-09-02 14:09:50 -04:00
David S. Beach 8b83911017 Added getValue() support for UNIT_DATETIME and UNIT_CELLS 2015-09-02 13:52:25 -04:00
Bertrand Songis 2274e6395d Issue #2806 fix start 2015-09-02 19:32:41 +02:00
Bertrand Songis f7c9da6826 Fixes #2809 2015-09-02 18:12:38 +02:00
mhotar bf6c6ac0c4 CZ translations 2015-09-01 21:18:41 +02:00
Bertrand Songis 405d83b539 Compilation fix 2015-09-01 19:38:48 +02:00
Bertrand Songis 362e7c67db Cosmetics 2015-09-01 19:35:30 +02:00
Bertrand Songis 29e2ce7bd1 Fixes #2754 2015-09-01 19:24:46 +02:00
Bertrand Songis a985d021b6 Fixes #2754 2015-09-01 18:55:44 +02:00
Bertrand Songis c907c20705 Compilation fix for Visual Studio 2015-09-01 07:29:07 +02:00
Bertrand Songis 5b4d9cd7d7 Missing #ifdef 2015-08-31 23:24:59 +02:00
Bertrand Songis 6ae59ab67c Update DONATIONS.txt 2015-08-31 21:54:07 +02:00
Bertrand Songis 6374f52585 Fixes #2418 2015-08-31 21:37:41 +02:00
Bertrand Songis 398d32821e Refactoring putsSwitches
Will simplify things when we have 64 logical switches ...
2015-08-31 20:48:32 +02:00
Damjan Adamic 771206e1b2 Merge pull request #2696 from opentx/bsongis/issue2595_cli
Fixes #2595 and #2598: USB serial port and CLI added
2015-08-31 11:06:04 +02:00
Damjan Adamic c47a43e5ce Re #2595: buffer full check got stuck (volatile was missing) 2015-08-31 10:47:28 +02:00
Damjan Adamic 62edfbb651 Merge pull request #2814 from opentx/driver33/PL_TR
Fix Polish gramar error on thousands
2015-08-30 22:04:33 +02:00
driver33 b17f697f69 Sound gramar fixes 2015-08-30 21:56:02 +02:00
driver33 8b00509cb2 Sound gramar fixes 2015-08-30 21:49:06 +02:00
Damjan Adamic ac9e9665dc Merge pull request #2813 from opentx/projectkk2glider/issue_2808_multiplex_format
Fixes #2808: Mixes multiplex representation now the same as on the radio
2015-08-30 21:39:05 +02:00
Damjan Adamic 89bb1226ac Fixes #2808: Mixes multiplex representation now the same as on the radio 2015-08-30 21:35:53 +02:00
Damjan Adamic 94cc359c9f Release notes fixed 2015-08-30 21:10:04 +02:00
Damjan Adamic 8999839538 Fixes #2807: Telemetry sensor names were not displayed 2015-08-30 21:09:35 +02:00
Damjan Adamic 09b2cd7b46 Release notes updated 2015-08-30 20:49:24 +02:00
Damjan Adamic 4b1bd9bfd5 Utility to convert issue numbers into changelog strings 2015-08-30 20:49:03 +02:00
Bertrand Songis 468b5520bd Update DONATIONS.txt 2015-08-30 19:52:08 +02:00
Damjan Adamic c0dee366c0 Merge pull request #2773 from dsbeach/issue2758
Fixes #2758: added Lua support for Latitude and Longitude
2015-08-30 17:15:55 +02:00
Damjan Adamic c767ed7159 Fixes #2811: Anomaly in Dutch Translation 2015-08-30 16:01:18 +02:00
Bertrand Songis 10e72cc214 Compilation fix 2015-08-29 09:49:27 +02:00
Bertrand Songis 7e6e709031 Merge pull request #2802 from opentx/driver33/PL_TR
fixes
2015-08-29 09:44:05 +02:00
driver33 a2514545f4 fixes 2015-08-29 00:14:00 +02:00
Bertrand Songis 57e8fc1cb1 Update DONATIONS.txt 2015-08-28 21:41:47 +02:00
Bertrand Songis 6d0d0f9b0b Merge pull request #2801 from opentx/projectkk2glider/issue_2790_power_loop
Fixes #2790: power on/off lop if big VCC capcitor was used
2015-08-28 21:34:47 +02:00
Andre Bernet 88aea7f780 Fix #2738 2015-08-28 19:25:48 +02:00
Damjan Adamic e4f7fd910c Fixes #2790: power on/off lop if big VCC capcitor was used 2015-08-28 18:07:24 +02:00
Andre Bernet 7befb457f2 Improve mixer screen layout (fix #2785) 2015-08-28 15:58:53 +02:00
Andre Bernet c22784d5a4 Fix #2796 2015-08-28 15:35:59 +02:00
Bertrand Songis 404cab2548 Bootloader compilation fix 2015-08-28 14:58:44 +02:00
Bertrand Songis ef56bf3cb4 New type swsrc_t introduced 2015-08-28 14:47:07 +02:00
Andre Bernet 3920cc6919 Fix #2794
French translations
2015-08-28 12:49:40 +02:00
Damjan Adamic 5a049857f5 Fixes #2798: Dutch translations fixed 2015-08-28 10:23:04 +02:00
Bertrand Songis 97a9c91baf Cosmetics 2015-08-28 09:53:33 +02:00
Bertrand Songis 55b5acb62e Constants renamed 2015-08-28 09:19:02 +02:00
Andre Bernet 34f7c3a463 Fix #2787 2015-08-27 23:00:02 +02:00
Andre Bernet 3002c0a478 Cosmetics 2015-08-27 22:12:54 +02:00
Andre Bernet 433983e2ca Should solve #2787, but doesn't... 2015-08-27 21:05:41 +02:00
Bertrand Songis 0a33883d49 Companion compilation fix 2015-08-27 14:42:35 +02:00
Bertrand Songis 5d7f55fa97 Remark from projectkk2glider taken into account
Serial2 connection and USB CDC output now waits there is some free space
before adding anything to the buffer
2015-08-27 14:38:47 +02:00
Bertrand Songis acad63f838 Update DONATIONS.txt 2015-08-27 13:54:54 +02:00
Andre Bernet ed2ae75c8a Fix #2774 (out of bounds access to trim array when the source of an input is not a stick) 2015-08-27 12:01:01 +02:00
Bertrand Songis dbca85c0e8 3DR removed from the blacklist
I received some excuses, and a small 1000€ donation which I shared with
Mike
2015-08-27 11:03:07 +02:00
Bertrand Songis 78a55507cd Update DONATIONS.txt 2015-08-27 10:36:23 +02:00
Bertrand Songis c3e16dac92 Fix for ARM boards without Haptic (Taranis non plus) 2015-08-27 10:34:01 +02:00
Bertrand Songis 6412361680 Merge pull request #2771 from opentx/driver33/PL_TR
Sound gramar fixes
2015-08-26 19:29:37 +02:00
Bertrand Songis 3b3fe4d946 Merge pull request #2772 from opentx/projectkk2glider/issue_2681_watchdog_fix
Projectkk2glider/issue 2681 watchdog fix
2015-08-26 19:28:12 +02:00
Bertrand Songis d1d8a32cff Update DONATIONS.txt 2015-08-26 19:19:09 +02:00
David S. Beach 8739bd8ad9 fix for issue 2758 lua support for latitude and longitude' 2015-08-25 15:48:08 -04:00
Damjan Adamic 77d3eae4d6 Re #2681 and #2626: Power off refactoring, the 9XE RTC reset prevention code now active 2015-08-25 20:36:51 +02:00
Damjan Adamic e83b7c3a69 Fixes #2681: the PWR pin was not turned on correctly in _bootStart(). Watchdog reset now works on 9XE, the Bootloader exit also works.
Trim switch pull up not enabled for 9XE in _bootStart().
Added watchdog test option in DEBUG screen (long press MENU key), use WATCHDOG_TEST=YES compile option to enable it.
2015-08-25 20:35:07 +02:00
Kjell Kernen f4e55f9d45 Merge branch 'master' of https://github.com/opentx/opentx 2015-08-25 20:21:57 +02:00
Kjell Kernen 8bde8ca7b4 Swedish Companion translation 2015-08-25 20:20:35 +02:00
driver33 d00b9eb8ec Sound gramar fixes 2015-08-25 19:26:37 +02:00
Andre Bernet 2f5682e25a Typo, removed dead code 2015-08-25 16:57:00 +02:00
Andre Bernet 0d6907c76c Preliminary ar9x board support 2015-08-25 16:20:08 +02:00
Andre Bernet 710ed9c5d1 PXX wasn't enabled on sky9x 2015-08-25 16:18:20 +02:00
Andre Bernet c53ba92139 Sky9x platform fixes 2015-08-25 16:16:45 +02:00
Bertrand Songis 5e2fe112b0 Merge pull request #2729 from opentx/projectkk2glider/issue_2728_edge_bug
Fixes #2728: edge switch could trigger right after the logicalSwitche…
2015-08-25 10:00:36 +02:00
Bertrand Songis 001c400f47 Merge branch 'master' into projectkk2glider/issue_2728_edge_bug
# Conflicts:
#	radio/releasenotes.txt
2015-08-25 09:59:24 +02:00
Bertrand Songis 983a4da111 Merge pull request #2760 from opentx/driver33/PL_TR
Companioen pl translation fixes
2015-08-25 09:53:58 +02:00
driver33 d42a29570c Companioen pl translation fixes 2015-08-24 20:36:26 +02:00
Bertrand Songis c2e35ddd9c Update DONATIONS.txt 2015-08-24 18:22:06 +02:00
Damjan Adamic 0f91d66b49 Merge pull request #2752 from opentx/bsongis/comparedialog_printdialog_refactoring
PrintDialog / CompareDialog refactoring. Fixes #2737 and #2576. I also completes some of the tasks in #1063.
2015-08-23 22:31:39 +02:00
Damjan Adamic 6ac811076e Fixes #2576: display receiver number in model print/compare 2015-08-23 22:17:27 +02:00
Damjan Adamic 2530caa16e Flight mode representation reverted back (additional fix), unneeded condition removed 2015-08-23 21:56:51 +02:00
Damjan Adamic a1a50041dd Flight mode representation reverted back 2015-08-23 21:03:48 +02:00
Damjan Adamic 65bdd25173 Various fixes: modelPrinter free, mixer crash, trims display, channel names, monospace font 2015-08-23 16:00:37 +02:00
Bertrand Songis 096b3c98a4 Update DONATIONS.txt 2015-08-23 15:55:46 +02:00
Bertrand Songis fbd7fa4464 Update DONATIONS.txt 2015-08-23 15:41:00 +02:00
Damjan Adamic 0c7e545b42 Cosmetics 2015-08-23 15:33:09 +02:00
Bertrand Songis ed05174fc8 PrintDialog / CompareDialog refactoring 2015-08-23 09:54:15 +02:00
Bertrand Songis a8db4c4fa5 Fixes #2635 - Not tested yet 2015-08-23 09:21:45 +02:00
Damjan Adamic ab1ce7515c Removal of unneeded LUA_EXPORT_TELEMETRY() macro 2015-08-22 20:52:08 +02:00
Damjan Adamic 34090a1d3e Fix: former Lua telemetry fields were not exported correctly (tx-voltage, clock and timers1-3) 2015-08-22 20:44:11 +02:00
Damjan Adamic 60c925a721 Fixes #2733: Minor tweaks to Dutch Translation 2015-08-21 20:55:26 +02:00
Damjan Adamic 36d5f42b66 Merge pull request #2727 from opentx/MicheleVilla/FW_IT_Translations
Update it.h.txt
2015-08-21 20:36:06 +02:00
Damjan Adamic 3075ad857e Fixes #2734: fixed endless loop in model compare (varable i was used both in outer and inner for loops) 2015-08-19 22:23:37 +02:00
Damjan Adamic 4056287d3d Re #2728: Release notes updated 2015-08-18 20:12:54 +02:00
Damjan Adamic 537d7e089f Fixes #2728: edge switch could trigger right after the logicalSwitchesReset() was called 2015-08-18 20:03:54 +02:00
Damjan Adamic b10276bb34 Added missing keys initialization for simu 2015-08-18 19:54:25 +02:00
Damjan Adamic e685528fd3 Re #2623: fixed f_getcwd() on Windows 2015-08-18 17:31:49 +02:00
Michele 7498ab9957 Update it.h.txt 2015-08-17 21:11:16 +02:00
Bertrand Songis 9f19deb1e2 Update DONATIONS.txt 2015-08-17 13:57:39 +02:00
Bertrand Songis 616741888e Merge pull request #2701 from opentx/projectkk2glider/issue_2671_battery_bars
Re #2671: fixes difference between top and main LCD TX battery bars, …
2015-08-17 13:56:14 +02:00
Damjan Adamic 5b4f0a0bbb Re #2671: fixes difference between top and main LCD TX battery bars, code made more readable with macros 2015-08-17 13:55:41 +02:00
Bertrand Songis 00a5437dde Merge pull request #2721 from opentx/MicheleVilla/FW_IT_Translations
Update it.h.txt
2015-08-17 13:52:03 +02:00
Bertrand Songis 379d432365 Merge pull request #2691 from opentx/projectkk2glider/issue_2623_sd_manager_fixes
Fixes #2623: several fixes:
2015-08-17 13:51:35 +02:00
Damjan Adamic 744c560255 Fixes #2623: macro for node type introduced, cosmetics 2015-08-17 13:40:28 +02:00
Damjan Adamic 28b9a70e6b Fixes #2623: several fixes:
Disable menu for [..],
Refresh file list after delete,
Copy destination can be a directory,
Prevent copy/paste into the same directory,
Enabled renaming of directories and files without extension,
Removed delete menu option for directories,
Several simulator filesystem functions improved
2015-08-17 13:40:27 +02:00
Bertrand Songis f5f1a052ca Fixes #2580 2015-08-17 13:37:26 +02:00
Michele e8f28cc681 Update it.h.txt
update Italian translation
2015-08-16 13:30:34 +02:00
Damjan Adamic 23c985ffd6 Fixes #2719: Dutch translations by fraternl 2015-08-16 11:10:07 +02:00
Damjan Adamic 3dc781c89c Re #2714: more Italian translations fixed (changes ported from en.h.txt) 2015-08-16 11:03:10 +02:00
Damjan Adamic 4d7f456be5 Re #2714: Italian translations fixed 2015-08-16 10:25:32 +02:00
Damjan Adamic 154572e547 Separate context menu for "General Settings", cosmetics 2015-08-16 09:28:43 +02:00
Damjan Adamic 3469fa5c93 Release notes updated 2015-08-16 09:04:34 +02:00
Damjan Adamic dcce01fa9c Merge pull request #2712 from opentx/griebd/model_wizard_issue_2711
Griebd/model wizard issue 2711
2015-08-16 09:02:13 +02:00
Grieb 56bc0d817f Fix #2091 2015-08-15 11:14:37 -03:00
Grieb 71706d5e93 Cosmetcs. (editor save removes trailing spaces) 2015-08-15 11:13:57 -03:00
Damjan Adamic b8c51c9bf0 Release notes updated 2015-08-15 14:03:40 +02:00
Damjan Adamic e68b421de3 Release notes updated 2015-08-15 14:00:39 +02:00
Damjan Adamic 32ca88dbf8 Release notes updated 2015-08-15 13:16:56 +02:00
Damjan Adamic 4d83dd2c24 Fixes #2684: Lua model scripts outputs not working in a simulator 2015-08-15 12:59:35 +02:00
Damjan Adamic 330a91441a Compilation fixes for Bin Allocator 2015-08-15 12:39:27 +02:00
Bertrand Songis affda2d8fe Update DONATIONS.txt 2015-08-15 11:23:43 +02:00
Bertrand Songis e7f3c280f0 Update DONATIONS.txt 2015-08-15 11:06:14 +02:00
Bertrand Songis 89c27cfcca Fixes #2704 2015-08-14 11:45:09 +02:00
Bertrand Songis 9303361d6b Fixes #2702 2015-08-13 18:14:54 +02:00
Bertrand Songis 82c8246c25 Merge pull request #2703 from opentx/MicheleVilla/Fix_FW_IT_Translations
Some Fix for it.h.txt
2015-08-13 13:26:43 +02:00
Bertrand Songis c0f2dddfa1 Create DONATIONS.txt 2015-08-13 13:25:11 +02:00
Michele db8ee18b5d Update it.h.txt 2015-08-13 10:12:05 +02:00
Bertrand Songis e3c9ecd26e Merge pull request #2698 from opentx/driver33/PL_TR
companion translation fix
2015-08-12 10:24:28 +02:00
driver33 5df19e1c3d companion translation fix 2015-08-12 10:18:38 +02:00
Bertrand Songis 3384ad2235 Update DONATIONS.txt 2015-08-12 07:36:19 +02:00
Damjan Adamic d693ccd4f0 Top part of the 9XE startup graphics was not shown, lcdRefreshWait() was in wrong place 2015-08-11 23:33:41 +02:00
Bertrand Songis 47547e2397 Merge pull request #2697 from opentx/projectkk2glider/issue_2671_lcd_fixes
Projectkk2glider/issue 2671 lcd fixes
2015-08-11 22:49:34 +02:00
Bertrand Songis 51f46d9a69 Compilation fix 2015-08-11 22:26:43 +02:00
Damjan Adamic 04a8570d48 Re #2671: added TX battery blinking on batter warning, fixed display problem when battery voltage lower than batlow value. 2015-08-11 22:22:18 +02:00
Damjan Adamic 806c343b80 Re #2671: voltage symbol changed to upper case in putsVolts(). 2015-08-11 22:18:35 +02:00
Bertrand Songis 17cb8f9459 Cli fixes 2015-08-11 22:06:30 +02:00
Bertrand Songis 1fdecd1ad4 Gtests false positive error 2015-08-11 19:15:12 +02:00
Bertrand Songis 900b53f165 Fixes #2693 2015-08-11 19:00:01 +02:00
Bertrand Songis 6356fbb2f4 Comments from projectkk2glider addressed 2015-08-11 18:15:43 +02:00
Bertrand Songis 979ece9208 Update DONATIONS.txt 2015-08-11 18:07:13 +02:00
Bertrand Songis a1df80a7f7 Ignore list updated 2015-08-11 06:58:27 +02:00
Bertrand Songis a5bb41a31b Cosmetics 2015-08-11 06:56:02 +02:00
Bertrand Songis 9b527b1810 First compilation fixes, thanks to Jenkins first comments 2015-08-10 23:00:45 +02:00
bertrand 2b312fdbb4 Fixes #2595 - Cli added
Based on projectkk2glider work, with a lot of bugs I am sure. Still not
tested, this is why I preferred working on my own branch. I push it now
so that Jenkins do the first tests and you can review if I am on the
right track. 

I am really wondering if a merge with the Lua api would be possible /
nice, what do you think?
2015-08-10 22:52:26 +02:00
Andre Bernet 2d9c130839 Merge pull request #2687 from opentx/bsongis/osx
Mac libraries now loaded correctly (Fixes #2678)
2015-08-10 11:03:13 +02:00
Bertrand Songis a569c67371 Fixes #2678 2015-08-10 01:08:56 +02:00
Bertrand Songis ada0f3d8b4 Merge pull request #2686 from opentx/projectkk2glider/issue_2685_d-type_altitude_fix
Fixes #2685: D-type altitude fixes (negative values, hi/lo precision …
2015-08-09 22:48:25 +02:00
Damjan Adamic 192f5a1bd7 Fixes #2685: D-type altitude fixes (negative values, hi/lo precision vario) 2015-08-09 22:21:46 +02:00
Damjan Adamic 70d77fd851 Re #2598: removed bad include 2015-08-09 16:02:35 +02:00
Damjan Adamic f7a8715657 Fixes #2598: added USB serial port (with echo example), use USB=SERIAL to enable. If DEBUG=YES then debug output also goes to the USB serial port 2015-08-09 15:41:24 +02:00
Damjan Adamic 5d8c86923b Re #2607: gtest for hi precision VFAS added 2015-08-08 18:17:09 +02:00
Damjan Adamic a6e53bd419 Cosmetics 2015-08-08 17:46:22 +02:00
Andre Bernet 08756af9f5 Don't import install dir settings from old versions (fix #2645) 2015-08-08 11:21:48 +02:00
Bertrand Songis 447df60823 Revert "[9XR-PRO] HiFi audio now :)"
This reverts commit 3d792ea4df.
2015-08-08 11:11:53 +02:00
Bertrand Songis 3d792ea4df [9XR-PRO] HiFi audio now :) 2015-08-08 10:58:52 +02:00
Bertrand Songis 26a38913a8 Fixes #2668 2015-08-08 10:06:52 +02:00
Bertrand Songis 238335dec6 Compilation error on VC++ 2015-08-08 09:32:31 +02:00
Bertrand Songis 1efbde7d46 Fixes #2660 2015-08-08 00:41:50 +02:00
Bertrand Songis 1e92313dcd 2.1.2 start ... 2015-08-08 00:38:18 +02:00
Bertrand Songis e174255ddb Indentation 2015-08-08 00:20:30 +02:00
Bertrand Songis 4b0841b17d _NOCCM renamed to __DMA (which is 32bits aligned on Sky9x/9XR-PRO) 2015-08-08 00:16:51 +02:00
Bertrand Songis e136905e75 Better fix for #2665 2015-08-08 00:12:39 +02:00
Bertrand Songis 7c0d9c7009 Revert "Fixes #2665"
This reverts commit c251865538.
2015-08-08 00:11:46 +02:00
Bertrand Songis c251865538 Fixes #2665 2015-08-07 18:48:23 +02:00
Bertrand Songis e079148249 Typo in release notes 2015-08-07 15:31:20 +02:00
Bertrand Songis fab861e8bd Update DONATIONS.txt 2015-08-07 15:15:12 +02:00
Damjan Adamic d0c696c1bc Another typo in release notes 2015-08-06 22:39:42 +02:00
Damjan Adamic 7b75c04b30 Typo in release notes 2015-08-06 22:22:42 +02:00
Damjan Adamic 572cfd67af Fixes #2658: real fix 2015-08-06 22:09:34 +02:00
Bertrand Songis c7a07ded12 Merge pull request #2659 from opentx/projectkk2glider/issue_2658
Fixes #2658: Companion release notes before/after new version downloa…
2015-08-06 22:04:03 +02:00
Damjan Adamic 4e7181fb7e Fixes #2658: Companion release notes before/after new version download broken 2015-08-06 22:01:05 +02:00
Bertrand Songis fce1cc681a Fixes #2657 2015-08-06 20:06:48 +02:00
Bertrand Songis a7b62fc2a9 Merge pull request #2651 from opentx/projectkk2glider/additional_kts_conversions
Added conversions of knots to m/s and f/s
2015-08-06 19:28:45 +02:00
Bertrand Songis 6fcecb5666 Merge pull request #2653 from opentx/projectkk2glider/issue_2638_9xe_logs
Fixes #2638: header line for logs fixed for 9XE
2015-08-06 19:28:05 +02:00
Bertrand Songis d837739e4f Merge pull request #2654 from opentx/projectkk2glider/issue_2652
Fixes #2652:  Add missing presets to frskyDSetDefault()
2015-08-06 19:25:45 +02:00
Bertrand Songis a530bc7a6f Update DONATIONS.txt 2015-08-06 19:05:13 +02:00
Damjan Adamic 32a7c9aee6 Re #2652: filtering for Sport RSSI reverted (reason: too few samples per second) 2015-08-06 14:47:13 +02:00
Damjan Adamic 5fe10c118d Re #2638: Release notes update 2015-08-06 14:35:09 +02:00
Damjan Adamic 815fef458c Fixes #2652: Add missing presets to frskyDSetDefault() 2015-08-06 14:31:50 +02:00
Damjan Adamic 20eff3358a Fixes #2638: header line for logs fixed for 9XE 2015-08-06 14:24:40 +02:00
Damjan Adamic 98c1503bed Added conversions of knots to m/s and f/s 2015-08-06 12:37:45 +02:00
Damjan Adamic 7c8093b70f Fixes #2649: Fixed missing LUA script outputs in special function "Play Value" 2015-08-06 09:32:17 +02:00
Bertrand Songis edba5bcf89 Tonight ... 2015-08-06 06:45:19 +02:00
Bertrand Songis 0a75eb93d3 Cosmetics 2015-08-06 00:40:46 +02:00
Bertrand Songis a2c30b1849 [Companion] Blacklist added (for companies who don't respect the GPL) 2015-08-06 00:16:24 +02:00
Damjan Adamic 386cb2c912 Release notes updated, date set to today 2015-08-05 22:53:58 +02:00
Bertrand Songis 60dc533fe8 Update DONATIONS.txt 2015-08-05 21:49:54 +02:00
Bertrand Songis 6c0a9714fc [9XR-PRO] Wrong code comment
Thanks project2gglider! It was a copy-paste from Mike's code. When I
will have spare time I will replace those numbers by constants...
2015-08-05 21:43:24 +02:00
Bertrand Songis 15469aeaf7 Fixes #2643 2015-08-05 21:37:22 +02:00
Bertrand Songis a8ff8b524b Fixes #2634 - Option ALLOW_NIGHTLY_BUILDS added 2015-08-05 18:51:50 +02:00
Bertrand Songis 2378080ae8 Fixes #2631 2015-08-05 18:50:22 +02:00
Bertrand Songis 23e16b26f1 Fixes #2592 - No more reset on 9XR-PRO when leaving PXX protocol
I would like a code review for this one (both Taranis and 9XR-PRO),
thanks!
2015-08-05 18:49:41 +02:00
Bertrand Songis 3353d989bb [9X/9XR-PRO] Cosmetics in Model Select screen 2015-08-05 18:47:06 +02:00
Bertrand Songis 58659b9b1a [Companion] It now remembers the last flashed firmware 2015-08-05 18:36:14 +02:00
Bertrand Songis f4eab9bf58 [9XR-PRO] Valgrind warnings removed 2015-08-05 18:35:26 +02:00
Bertrand Songis 57f5f68804 [9XR-PRO] Bugfixes port from Taranis on Global Custom Functions 2015-08-05 18:34:41 +02:00
Bertrand Songis 5c4b12dfc2 [9XR-PRO] Cosmetics in Statistics view 2015-08-05 18:32:36 +02:00
mhotar 99ff846209 CZ translations 2015-08-05 12:13:51 +02:00
Bertrand Songis 37dd2b0064 Release notes date set to tomorrow 2015-08-05 07:00:09 +02:00
Bertrand Songis 9c20658e26 Update DONATIONS.txt 2015-08-04 21:36:22 +02:00
Bertrand Songis 6e6e80bcfc Fixes #2605 2015-08-04 20:21:37 +02:00
Andre Bernet 185ad88bc8 Dutch translations by fraternl 2015-08-04 09:31:16 +02:00
Bertrand Songis 54405135c0 Fixes #2618 2015-08-03 23:20:12 +02:00
Bertrand Songis d7cf14857e Cosmetics 2015-08-03 23:18:33 +02:00
Bertrand Songis 5417c426e3 Merge pull request #2622 from opentx/projectkk2glider/issue_2607
Fixes #2607: Added support for 0.01V resolution to D series VFAS ID 0x39
2015-08-03 22:38:32 +02:00
Bertrand Songis 3f6621b087 [9XR-PRO] Only the first 64k EEPROM could be written because of uint16_t 2015-08-03 22:36:57 +02:00
Bertrand Songis 151fb59e27 Cosmetics 2015-08-03 22:36:02 +02:00
Bertrand Songis a2902280b0 #2619 - Stupid bug
Only ~62 EEPROM write and then we get an INVALID EEPROM
2015-08-03 22:35:16 +02:00
Bertrand Songis 10832ad60a #2619 - Valgrind complains on EEPROM block erase
Should not change anything though.
2015-08-03 22:33:28 +02:00
Damjan Adamic 121f7780c2 Fixes #2607: Added support for 0.01V resolution to D series VFAS ID 0x39 2015-08-02 18:39:58 +02:00
Damjan Adamic 25d233e832 Release notes updated 2015-08-02 17:42:30 +02:00
Andre Bernet 46de8229dd Small screen platform string fixes 2015-08-02 17:06:20 +02:00
Andre Bernet 813956721d Ignore sensor IDs for small screen platforms 2015-08-02 17:05:29 +02:00
Andre Bernet 302bf05f57 Revert git attributes 2015-08-02 11:04:56 +02:00
Bertrand Songis 977e44d44a Fixes #2592 - Needs test with next nightly builds
Please confirm if this is fixed or not, I don't have a 9XR-PRO with me
here!
2015-08-01 22:43:54 +02:00
Bertrand Songis 105ac6306a Frsky-D Telemetry protocol bug (0x5D followed by 0x3D)
I should add a non regression test...
2015-08-01 22:29:09 +02:00
Bertrand Songis 3c1734bdb2 Fixes #2612 2015-08-01 22:21:24 +02:00
Bertrand Songis 9546843bc2 Cosmetics 2015-08-01 21:09:06 +02:00
Bertrand Songis bf89c53f33 #2106 - .gitattributes updated, please check what I did, thanks! 2015-08-01 20:24:47 +02:00
Bertrand Songis 406e69ab1d Cosmetics 2015-08-01 20:20:18 +02:00
Bertrand Songis 753cb4f01c #2106 - Script which will unify line endings (and code formatting) 2015-08-01 20:17:30 +02:00
Bertrand Songis 40c34644b8 Proposal for an uncrustify configuration 2015-08-01 20:14:03 +02:00
Bertrand Songis b3b534cd6d #2106 - Unify the include guards in all headers 2015-08-01 20:10:57 +02:00
Bertrand Songis 491886a5c2 #2106 - Unify the copyright in source files 2015-08-01 20:08:09 +02:00
Andre Bernet 44c096c366 Align airspeed units to S.Port spec (Fix #2305) 2015-08-01 19:22:59 +02:00
Bertrand Songis 68eafbfba7 Merge pull request #2614 from opentx/driver33/PL_TR
New lines translation
2015-08-01 19:22:09 +02:00
driver33 dd5fd62b41 New lines translation 2015-08-01 19:16:32 +02:00
Andre Bernet a1bc46e473 Fix SBUS trainer failsafe detection 2015-08-01 17:48:02 +02:00
Bertrand Songis eedaf1966e Merge pull request #2613 from opentx/mhotar/cz_sk_tts
#2610 Mhotar/cz sk tts
2015-08-01 17:40:14 +02:00
mhotar 3cbbcf18c8 #2610 CZ unicode fix in tts.py 2015-08-01 17:23:20 +02:00
Andre Bernet 9a70c84179 Companion translations updated for translators without build environment 2015-08-01 16:51:33 +02:00
Andre Bernet 9546636f0a French translations 2015-08-01 16:38:14 +02:00
Andre Bernet ecd9f1e2cf Missing translation 2015-08-01 15:34:00 +02:00
Andre Bernet 310321ce0e Add Timer3 to stats screen (Fix #2515) 2015-08-01 15:24:13 +02:00
Andre Bernet 39c0b79f85 Copy telemetry sensors (Fix #2513) 2015-08-01 15:07:55 +02:00
Andre Bernet 70e93fb493 X9E rotary encoder now generates EVT_KEY_BREAK events (Fix #2609) 2015-08-01 13:43:54 +02:00
mhotar 8a202f0ecc #2610 sk tts 2015-08-01 13:08:45 +02:00
mhotar 53a77a5bdb #2610 cz tts 2015-08-01 12:46:52 +02:00
Andre Bernet b83ad1899a Fix hardware menu navigation 2015-08-01 11:24:52 +02:00
Andre Bernet 80aee0d126 Revert "Bug in hardware menu, the "Serial port" could not be changed"
This reverts commit b9d0154e909df5131bd9139592bc0f1b4571f3a8.
2015-08-01 11:24:52 +02:00
Andre Bernet df82aeed76 French translations 2015-08-01 11:24:51 +02:00
Damjan Adamic 70d67dd7dd Export to Google Earth now working (only) with the new telemetry fields (GPS, GAlt and GSpd) 2015-08-01 10:53:06 +02:00
Damjan Adamic 922220c748 Re #2579: added missing source trainer_input.cpp to simulator 2015-08-01 10:23:21 +02:00
Bertrand Songis 819509b63a Merge pull request #2608 from opentx/raphaelcoeffic/issue2549
Fixes #2549 - Use PrefixPath to find the simulator libs
2015-08-01 08:44:27 +02:00
Bertrand Songis db072442c8 Merge pull request #2606 from opentx/raphaelcoeffic/issue2579
Fixes #2579: Added support for Trainer signal alarm
2015-08-01 08:41:50 +02:00
Damjan Adamic c1efd39df7 Better Lua traces 2015-07-31 18:59:20 +02:00
Damjan Adamic f5dca813fb Bug in hardware menu, the "Serial port" could not be changed 2015-07-31 18:59:02 +02:00
Damjan Adamic 1bc8e0d6c1 Added main stack painting for STM32F4 2015-07-31 18:58:50 +02:00
Raphael Coeffic 0fba4a638d removed PrefixPath debug line 2015-07-31 10:43:54 +02:00
Raphael Coeffic 71530f253d Fixes #2549 - Use PrefixPath to find the simulator libs 2015-07-31 10:41:16 +02:00
Bertrand Songis 274ed3a917 Update DONATIONS.txt 2015-07-31 09:40:01 +02:00
Raphael Coeffic ebae27272e renamed g_ppmInXXX into ppmInputXXX
g_ppmIns -> ppmInput
g_ppmInputValidityTimer -> ppmInputValidityTimer
2015-07-30 22:43:56 +02:00
Raphael Coeffic 3049ff768e changed ppmInValid in tests/mixer.cpp as well 2015-07-30 22:07:16 +02:00
Raphael Coeffic f6bff9683d Fixes #2579: Added support for Trainer signal alarm
- added alarm “Trainer signal lost” & “Trainer signal recovered”.
- moved PPM capture code to trainer_input.{h,cpp}
2015-07-30 21:53:44 +02:00
Bertrand Songis 013c10e7fb Update DONATIONS.txt 2015-07-30 20:42:58 +02:00
Bertrand Songis af38cb6dff Update DONATIONS.txt 2015-07-30 20:38:24 +02:00
Bertrand Songis 3d461b771f Update DONATIONS.txt 2015-07-30 20:20:33 +02:00
Bertrand Songis cee35869ba Update DONATIONS.txt 2015-07-30 20:12:52 +02:00
Bertrand Songis b6a2e89c17 Update DONATIONS.txt 2015-07-29 23:34:44 +02:00
Bertrand Songis 7cf03bd74e Merge pull request #2600 from opentx/MicheleVilla/FW_It_translation_fix
Fix FW Italian Translation
2015-07-29 21:52:40 +02:00
Michele 776dec5c74 Update it.h.txt 2015-07-29 21:14:14 +02:00
bsongis 23b9d77217 Fixes #2561 2015-07-29 20:48:37 +02:00
Bertrand Songis 06dc5136f7 Merge pull request #2599 from hrenz/patch-8
Patch 8
2015-07-29 20:35:00 +02:00
bsongis b8b6263c75 Fixes #2589 2015-07-29 20:13:16 +02:00
Bertrand Songis 8cc98a53f3 Merge pull request #2597 from opentx/driver33/PL_TR
new strings translation
2015-07-29 19:35:59 +02:00
Bertrand Songis 67e0ecfa0b Merge pull request #2594 from raphaelcoeffic/sbus_failsafe
Added support for SBUS failsafe bit
2015-07-29 19:34:06 +02:00
hrenz b7f52f2521 Update de.h.txt 2015-07-29 19:03:48 +02:00
hrenz c6e9939024 Update de.h.txt
only some chars changed
2015-07-29 18:42:42 +02:00
hrenz dd3cbda0c7 Update de.h.txt 2015-07-29 18:37:00 +02:00
hrenz 260c7cd0c0 Update de.h.txt
some changes for X9E
and master
2015-07-29 18:33:14 +02:00
Damjan Adamic ee6b2da037 Cosmetics related to #1063 2015-07-29 18:05:27 +02:00
driver33 f52c95ed55 new strings translation 2015-07-29 16:49:20 +02:00
Raphael Coeffic d2ed8d9287 Beautified SBUS code
- use “defines” for each constant.
- do not change the frame pointer while checking frame validity (improves readability).
2015-07-29 08:47:58 +02:00
bsongis a9c60a45e9 Fixes #2586 2015-07-28 23:50:46 +02:00
Raphael Coeffic 0cfe5b6c76 Added support for SBUS failsafe bit 2015-07-28 23:29:04 +02:00
Bertrand Songis c8115c674d Merge pull request #2590 from opentx/projectkk2glider/print_and_compare_refactoring_21
Projectkk2glider/print and compare refactoring 21
2015-07-28 21:48:45 +02:00
Damjan Adamic b67dfbd086 Cosmetics 2015-07-28 21:15:33 +02:00
Damjan Adamic 4e4d0fe883 Re #1063: Deduplication of code for Inputs, Mixers, Logical Switches and Special Functions 2015-07-28 20:57:06 +02:00
Bertrand Songis 34c311a562 Merge pull request #2582 from opentx/projectkk2glider/issue_2581
Fixes #2581: symbols for renamed physical inputs were missing
2015-07-28 00:55:49 +02:00
Damjan Adamic 1da0f157de Fixes #2581: symbols for renamed physical inputs were missing 2015-07-27 21:24:51 +02:00
Bertrand Songis 545f54a89c Merge pull request #2548 from opentx/bsongis/bad_sport_sensors
#2538 - Proposal for a fix.
2015-07-27 07:39:03 +02:00
bsongis dad815f631 [Companion] AutoCheckBox used instead of QCheckBox 2015-07-27 07:36:38 +02:00
bsongis 9ca09d0a85 Cosmetics 2015-07-27 01:00:48 +02:00
bsongis 71f8b663cb Fixes #2559 - Needs test (next nightly build) 2015-07-27 01:00:48 +02:00
Bertrand Songis be9a26611f Simulators added to the Resources directory 2015-07-26 17:28:25 +02:00
Bertrand Songis d9362d2634 Hardcoded path removed 2015-07-26 16:24:52 +02:00
Bertrand Songis 09d6fa833f Merge pull request #2571 from opentx/projectkk2glider/issue_2533
Fixes #2533: menu was wrong if all items on the end were hidden
2015-07-26 15:06:57 +02:00
Bertrand Songis c7ff93fdf4 Update DONATIONS.txt 2015-07-26 15:05:59 +02:00
Damjan Adamic c2e73c74a6 Fixes #2533: menu was wrong if all items on the end were hidden 2015-07-26 15:02:08 +02:00
bsongis d2e38364e6 [OSX] opentx-simulators-bundle now inside makedmg target. Perhaps still
a missing cp of the libs somewhere, inside companion.app?
2015-07-26 14:55:46 +02:00
Bertrand Songis 404eefc3da Run install_name_tool on all dylib files 2015-07-26 14:06:25 +02:00
Bertrand Songis ba1c429554 Merge pull request #2568 from opentx/driver33/PL_TR
Comapnion translation fixes
2015-07-26 14:03:52 +02:00
driver33 0df47c19c7 Comapnion translation fixes 2015-07-26 13:23:20 +02:00
Bertrand Songis 027df32564 Merge pull request #2566 from opentx/driver33/PL_TR
Small fixes in letters and ajustments.
2015-07-26 12:53:16 +02:00
Bertrand Songis 21353d2b31 OSX last commit fix 2015-07-26 12:43:13 +02:00
bsongis f1df8ead68 [OSX] It should not be needed to manually copy SDL into the bundle now 2015-07-26 12:37:50 +02:00
driver33 dbac5b773f Fixes in FW translation 2015-07-26 11:41:13 +02:00
Jacek Drewniak fb1cdeeac1 Merge pull request #2565 from opentx/master
make equal
2015-07-26 11:32:59 +02:00
bsongis 8a66e883ec Typo when porting the mod for simulators not working on OSX 2015-07-26 09:15:59 +02:00
bsongis 1922bc9edd #2563 - Still needs mods on the server 2015-07-26 08:43:56 +02:00
Andre Bernet cc41d69954 Companion part 2015-07-26 00:12:30 +02:00
bsongis 771b7a1821 Should add the simulators to the OSX platform. But here Companion
doesn't run anymore. Instead the standalone simulator is fine.
2015-07-25 21:40:35 +02:00
Andre Bernet a3fa0bd79d We need to ignore the instance, not the data Id ;) 2015-07-25 18:11:02 +02:00
Andre Bernet 19e68bac4d RSSI lacked unit (Fix #2557)
dBm renamed to dB (made no sense)
2015-07-25 18:02:14 +02:00
mhotar 983e9f2f2b CZ translations-telem.screen names fixed 2015-07-25 17:28:25 +02:00
Andre Bernet 311b5e1d04 Number of SFs was actually wrong too! 2015-07-24 22:02:46 +02:00
Andre Bernet 9b002b94ca GF enabled checkbox was missing (Fix #2558)
Number of GF in setup panel was not aligned with the radio
2015-07-24 21:54:46 +02:00
bsongis 69cbb06470 Fixes #2271 2015-07-24 16:35:05 +02:00
Bertrand Songis 2b25071e8c Merge pull request #2551 from opentx/driver33/PL_TR
Adds new translations, some letter and words fixes
2015-07-24 11:25:49 +02:00
Jacek Drewniak c9d465ca2a Adds new translations, some letter and words fixes 2015-07-24 11:07:31 +02:00
bsongis e1dfb15ba9 Fixes #2546 2015-07-24 10:42:12 +02:00
bsongis 7e44eab63c Fixes #2534 2015-07-24 10:07:11 +02:00
Bertrand Songis 7e7a762617 Fixes #2535 2015-07-24 09:31:04 +02:00
Bertrand Songis d5c2d51dea Update DONATIONS.txt 2015-07-24 00:31:33 +02:00
Bertrand Songis 7d2e48a99b Fixes #2544 2015-07-23 22:42:59 +02:00
Bertrand Songis 4ea9e5c11f The ':' separator is not a so good idea in Windows installer (ADS) 2015-07-23 21:17:18 +02:00
Bertrand Songis 8f96f50a84 New version format (mandatory for small screens) 2015-07-23 19:07:06 +02:00
bsongis c90bf43d17 [Companion] Possibility to have a suffix 2015-07-23 18:49:22 +02:00
bsongis 2549e2a2de [Companion] make clean now deletes the stamp in firmware sources 2015-07-23 18:48:11 +02:00
bsongis 658ca48137 OpenTX removed from radio type 2015-07-23 18:46:18 +02:00
bsongis c64369e95f Default tab is again 0 in Preferences Dialog 2015-07-23 18:45:00 +02:00
bsongis 6eec7789cc Cosmetics 2015-07-23 18:44:19 +02:00
bsongis 1b6f34069a Previous version-indexes were not anymore supported 2015-07-23 18:42:39 +02:00
bsongis 98b4d26676 Fixes #2542 2015-07-23 18:34:32 +02:00
bsongis 62ae7ef2bd Simplification - related to #2545 - Needs to be tested again 2015-07-23 18:30:15 +02:00
bsongis c9a58e5cfa EN Cosmetics 2015-07-23 18:28:21 +02:00
bsongis 4d5c4621c7 [Companion] French translations typos 2015-07-23 18:22:34 +02:00
bsongis 2af072ea7f [Companion] Missing errors when flashing/reading Firmware / EEPROM
(window closed really quickly)
2015-07-23 18:16:37 +02:00
bsongis 2341f5be68 Fixes #2543 2015-07-23 07:19:33 +02:00
bsongis a100af81be Fixes #2541 2015-07-22 22:56:36 +02:00
bsongis 6f21556b81 #2538 - Proposal for a fix. We have many wrong sensors, including
openXsensor. The first ID is stored in EEPROM, but not used during the
search loop
2015-07-22 22:30:37 +02:00
bsongis 8d97235f41 #2526 - Firmware nightly builds are now downloadable from Companion -
Tests needed
2015-07-22 22:25:03 +02:00
Damjan Adamic 0559abd323 Release notes updated 2015-07-22 20:28:49 +02:00
bsongis d0211c5dc6 Update DONATIONS.txt 2015-07-22 19:33:06 +02:00
bsongis f42cf4c0f4 Adds the possibility to have a suffix in the firmware version 2015-07-22 19:31:18 +02:00
bsongis a8d4ba5758 Warning removed. HELI option really needs to be tested 2015-07-22 18:58:12 +02:00
bsongis a94d08606f Fixes #2517 2015-07-22 18:55:54 +02:00
bsongis 0a213389f4 Fixes #2539 2015-07-22 18:42:02 +02:00
Bertrand Songis 7041a4dac6 Update DONATIONS.txt 2015-07-22 18:36:13 +02:00
Bertrand Songis 97cc519bcb Merge pull request #2536 from opentx/projectkk2glider/issue_2530_and_2531
Fixes #2531: VFAS id 0x39: was 10x to small
2015-07-21 23:03:46 +02:00
Damjan Adamic 6fffd7fbae Fixes #2531: VFAS id 0x39: was 10x to small
Fixes #2530: VFAS id 0x3A and 0x3B: wrong calculation of value
2015-07-21 21:43:02 +02:00
Damjan Adamic d2bd78b366 Release notes updated 2015-07-21 21:14:43 +02:00
bsongis e758d524de [Companion] Vario / Voltage / Current sources export problem 2015-07-21 20:46:07 +02:00
Damjan Adamic d967ec0b80 Re #2500: new names for Linux targets (companion21 and simulator21), the dot was removed 2015-07-21 20:32:04 +02:00
bsongis 4509b1a2a7 Fixes #2533 2015-07-21 20:24:13 +02:00
Andre Bernet 4626550c53 D-type RPM sensor was broken (Fix #2509) 2015-07-21 20:21:30 +02:00
Damjan Adamic 7b469016c1 Fixes #2532: symbol for volts was in lower case, it is now in upper case 2015-07-21 20:06:44 +02:00
bsongis 29e9039176 Telemetry sources removed from the Reset Global Function 2015-07-21 19:22:19 +02:00
bsongis 370728433a Needed for #2518 2015-07-20 22:32:25 +02:00
Bertrand Songis f6b07ceda8 Merge pull request #2528 from opentx/driver33/PL_TR
Hot Fixes translation for 2.1.x
2015-07-20 22:10:07 +02:00
Jacek Drewniak 2c08118d6d Hot Fixes translation for 2.1.x 2015-07-20 21:56:07 +02:00
bsongis 7c8deb8a48 Fixes #2518 - Needs a test 2015-07-20 21:38:57 +02:00
Bertrand Songis b427fd1364 Merge pull request #2523 from opentx/projectkk2glider/issue_2513_duplicate_sensors
Fixes #2513: set value of duplicated telemetry sensors
2015-07-20 21:25:55 +02:00
Bertrand Songis 611f85113c Merge pull request #2522 from opentx/projectkk2glider/issue_2519_global_functions_play_value_fix
Fixes #2519: removed telemetry values from available selection in Glo…
2015-07-20 21:21:02 +02:00
Damjan Adamic 76791c1961 Unreachable code removed 2015-07-20 21:17:12 +02:00
Damjan Adamic 7b28910cc2 Re #2513: set value of duplicated telemetry sensors 2015-07-20 21:13:30 +02:00
Damjan Adamic 841f11c21a Fixes #2519: removed telemetry values from available selection in Global Functions for "Play Value" 2015-07-20 20:34:15 +02:00
bsongis f845be683c Fixes #2512 2015-07-20 19:55:36 +02:00
Bertrand Songis a1e2132c12 Update DONATIONS.txt 2015-07-20 18:38:46 +02:00
bsongis dec83e2ef5 Fixes #2514 2015-07-20 18:35:51 +02:00
bsongis f9897c0191 Fixes #2506 2015-07-20 07:16:21 +02:00
bsongis 668fadb737 Revert "Fixes #2506"
This reverts commit 1f06e7982a.
2015-07-20 07:09:05 +02:00
bsongis 1f06e7982a Fixes #2506 2015-07-19 22:27:06 +02:00
bsongis 7336d92a6d Fixes #2502 2015-07-19 22:16:12 +02:00
Damjan Adamic 7b490b03d9 Fix for windows installer build for 2.1 2015-07-19 18:15:41 +02:00
Bertrand Songis 7958ff7105 Merge pull request #2482 from opentx/projectkk2glider/companion_2.1_and_2.0_alongside_on_linux
Enables side by side installation of Companion 2.1 and 2.0 on Linux
2015-07-19 16:35:21 +02:00
Bertrand Songis 1492d808f3 Merge pull request #2501 from opentx/projectkk2glider/issue_2404_play_model_name
Fixes #2404: model name played when model is loaded
2015-07-19 15:33:07 +02:00
Damjan Adamic 84fe232b0c Re #2503: Standalone simulator now remembers which radio was simulated in previous session 2015-07-19 14:54:33 +02:00
Damjan Adamic 51b8d70cc6 Several lintian errors removed:
E: companion2.1: unstripped-binary-or-object usr/local/bin/companion2.1
E: companion2.1: unstripped-binary-or-object usr/local/bin/simulator2.1
E: companion2.1: unstripped-binary-or-object usr/local/lib/companion2.1/libopentx-9x-simulator.so
E: companion2.1: unstripped-binary-or-object usr/local/lib/companion2.1/libopentx-9x128-simulator.so
E: companion2.1: unstripped-binary-or-object usr/local/lib/companion2.1/libopentx-9xr-simulator.so
E: companion2.1: unstripped-binary-or-object usr/local/lib/companion2.1/libopentx-9xr128-simulator.so
E: companion2.1: unstripped-binary-or-object usr/local/lib/companion2.1/libopentx-9xrpro-simulator.so
E: companion2.1: unstripped-binary-or-object usr/local/lib/companion2.1/libopentx-gruvin9x-simulator.so
E: companion2.1: unstripped-binary-or-object usr/local/lib/companion2.1/libopentx-mega2560-simulator.so
E: companion2.1: unstripped-binary-or-object usr/local/lib/companion2.1/libopentx-sky9x-simulator.so
E: companion2.1: unstripped-binary-or-object usr/local/lib/companion2.1/libopentx-taranis-simulator.so
E: companion2.1: unstripped-binary-or-object usr/local/lib/companion2.1/libopentx-taranisplus-simulator.so
E: companion2.1: unstripped-binary-or-object usr/local/lib/companion2.1/libopentx-taranisx9e-simulator.so
E: companion2.1: udev-rule-in-etc etc/udev/rules.d/45-companion2.1-taranis.rules
2015-07-19 14:32:59 +02:00
Andre Bernet 576ce4983d Fix #2504 2015-07-19 14:18:03 +02:00
Damjan Adamic b1170b2ab9 Enables side by side installation of Companion 2.1 and 2.0 on Linux
Adds missing simulator libraries on Linux
Installs Standalone Simulator icon on Linux
2015-07-19 14:06:58 +02:00
Damjan Adamic 41d0675886 Fixes #2503: Standalone simulator radio selection display problem 2015-07-19 13:19:38 +02:00
Damjan Adamic 5048ce5d45 Re #2404: better definition of PLAY_MODEL_NAME() for various platforms 2015-07-19 12:44:40 +02:00
Damjan Adamic 268f168218 Re #2404: Compilation fix 2015-07-19 11:13:51 +02:00
Damjan Adamic 08d4cb15aa Fixes #2404: model name played when model is loaded (if file "SOUNDS/<language>/<model_name>/name.wav" exists) 2015-07-19 11:07:57 +02:00
bsongis 2e252aacac Compilation error fix 2015-07-19 09:54:14 +02:00
bsongis d23a1f5739 Fixes #2492 - Thanks go to Kilrah 2015-07-18 22:59:59 +02:00
bsongis 863ed513c0 We move to 2.1.1 2015-07-18 22:55:57 +02:00
bsongis 18f28270f0 Fixes #2493 2015-07-18 22:52:15 +02:00
Andre Bernet 11ced4eecf de was missing from voice file download dropdown (fix #2497) 2015-07-18 20:01:24 +02:00
Damjan Adamic 44e73bac96 Fixes #2466: "Range" changed to "Ratio" in Companion telemetry sensor configuration (as is on the radio)
Translations re-generated
2015-07-18 19:38:58 +02:00
Damjan Adamic 8ba9016580 Fixes #2494: "Play Haptic" renamed to "Haptic" in Companion (as is on the radio) 2015-07-18 19:19:07 +02:00
Damjan Adamic 17171b2166 Release notes updated 2015-07-18 19:00:11 +02:00
bsongis 34731af074 Fixes #2491 2015-07-18 18:55:30 +02:00
bsongis 654dac1acc [Companion] ComboBox for audio / scripts list was not cleared before all
itemps inserted
2015-07-18 18:04:44 +02:00
bsongis 90ebaf2d88 Fixes #2465 - A little bit refactoring done while fixing this one 2015-07-18 17:22:26 +02:00
bsongis 2b804f92b5 Fixes #2478 2015-07-18 14:16:09 +02:00
bsongis e1e60b5572 Fixes #2487 2015-07-18 13:34:49 +02:00
bsongis 4b9f69a666 Fixes #2160 2015-07-18 13:23:12 +02:00
bsongis 1c86a16c84 [ARM boards] Shift in CSV logs when no GPS fix 2015-07-18 13:18:19 +02:00
bsongis 0cf3aeef57 Fixes #2484 2015-07-18 13:09:14 +02:00
bsongis b04295ad44 [Taranis] New gauge in Mixers/Expos screen was not right when there was
no line associated to the Mix/Input channel. Now the gauge is not
displayed in such case. Needs tests again, thanks!
2015-07-18 12:38:13 +02:00
bsongis 6147c23c0f [Taranis] Compilation error when INTERNAL_MODULE_PPM and
MODULE_D16_EU_ONLY_SUPPORT both defined
2015-07-18 09:44:29 +02:00
Andre Bernet cad3b7726d Fix #2485 2015-07-18 09:13:26 +02:00
Bertrand Songis 895afcc58c Update DONATIONS.txt 2015-07-18 09:03:55 +02:00
Jacek Drewniak df6d77289c Fixes 2015-07-18 01:10:48 +02:00
bsongis 4ad6ea8190 When sorting the issues I found a graphic from Martin in #1945 which was
not implemented. What do you think of it?
2015-07-17 11:14:56 +02:00
Andre Bernet a480c6ce87 Fix #2479 2015-07-17 09:43:04 +02:00
Bertrand Songis 17c176084c Update DONATIONS.txt 2015-07-17 08:02:44 +02:00
bsongis 5fdff961a6 Fixes #2474 - Needs test, thanks! 2015-07-17 00:13:24 +02:00
bsongis 475f1f1b2a Fixes #2476 2015-07-17 00:05:20 +02:00
Bertrand Songis 1a23b0c8d1 Update DONATIONS.txt 2015-07-16 23:20:22 +02:00
bsongis 92b5b72350 Fixes #2472 2015-07-16 23:15:35 +02:00
Bertrand Songis b639466a4f Update DONATIONS.txt 2015-07-16 19:11:22 +02:00
Bertrand Songis 0347883fdd Update README.md 2015-07-16 18:48:57 +02:00
Bertrand Songis 46cc410da7 Update README.md 2015-07-16 18:47:49 +02:00
bsongis f3778e8d5b OpenTX 2.1.0 release 2015-07-16 18:20:48 +02:00
bsongis f51a313708 [Taranis] Display of shutdown bitmap instead of the message "SHUTDOWN"
in the popup
2015-07-14 22:12:24 +02:00
bsongis 7d9cd8c869 [Taranis X9E] A little vibration on startup / shutdown to wake the user
up
2015-07-14 19:16:16 +02:00
Andre Bernet 13958c9396 NL 2015-07-14 18:56:40 +02:00
bsongis 4f9e041a50 [Taranis X9E] Bootloader updated according to Mike's suggestion 2015-07-14 18:43:11 +02:00
Andre Bernet b609ad750f Max startup duration corrected 2015-07-14 12:19:09 +02:00
bsongis 0d4facd4ae [Taranis X9E] Startup / shutdown bitmaps were not centered vertically 2015-07-14 12:12:44 +02:00
bsongis 4ab0b31ed8 Nederlands compilation error 2015-07-14 11:49:39 +02:00
bsongis 0355a25b5a [Taranis X9E] Startup animation more fluid 2015-07-14 11:14:40 +02:00
bsongis 1cb78610f7 [Taranis X9E] Startup animation changed. Comments please! 2015-07-14 10:22:07 +02:00
bsongis e35720a24a [Taranis] The bootloader executed code from the application! 2015-07-14 09:50:29 +02:00
Andre Bernet 030588b992 NL update, enable it for simulation 2015-07-13 21:01:06 +02:00
bsongis 5fb12915e5 Fixes #2463 - Code review needed, thanks! 2015-07-13 14:13:49 +02:00
bsongis a1f713c721 [Taranis X9E] The firmware start check was not right on X9E 2015-07-13 11:37:44 +02:00
bsongis ff9d866550 [Taranis] "BOOT" string was optimized out from the bootloader! 2015-07-13 11:05:03 +02:00
bsongis d183bbd05e [Taranis] I rename the Lua scripts directory for telemetry "TELEMETRY"
instead of "TELEM"
2015-07-13 08:52:50 +02:00
bsongis 385536ab73 Fixes #2460 2015-07-13 08:35:10 +02:00
bsongis 5c3cfd9cdd Fixes #2461 2015-07-13 01:28:00 +02:00
bsongis b4364e13d4 Fixes #2456 2015-07-13 00:50:07 +02:00
bsongis 418bd90037 Fixes #2459 2015-07-13 00:32:17 +02:00
bsongis 0a3bcd2737 Fixes #2462 2015-07-12 22:46:53 +02:00
bsongis 00c62b13d6 Fixes #2453 2015-07-12 11:46:54 +02:00
Bertrand Songis a61195010a Merge pull request #2458 from opentx/driver33/PL_TR
small fixes
2015-07-12 11:10:36 +02:00
Jacek Drewniak 336da8f061 small fixes 2015-07-12 10:55:00 +02:00
bsongis 7b35b4bcc8 [Taranis X9E] The battery is a NI-MH 9.6V - 2000mAh 2015-07-11 19:15:57 +02:00
bsongis 1f665561eb [Taranis X9E] Makefile option "SHUTDOWN_CONFIRMATION=YES/NO" added 2015-07-11 17:21:20 +02:00
Bertrand Songis ede587f2e1 Merge pull request #2452 from opentx/frsky_2.1
Frsky 2.1
2015-07-11 10:49:47 +02:00
bsongis 8296f508de Fixes #2451 2015-07-11 10:46:46 +02:00
bsongis d4544f11f5 Fixes #2425 2015-07-11 10:37:55 +02:00
Bertrand Songis 5bf370295d Merge pull request #2450 from hrenz/patch-6
Update de.h.txt
2015-07-11 08:55:17 +02:00
bsongis d4ff8c99c7 Script for resizing / removing audio from videos 2015-07-11 08:53:37 +02:00
bsongis 5db809841a [Taranis] Bootloader cosmetics 2015-07-11 08:52:57 +02:00
bsongis a7462157c5 [Taranis X9E] Bitmaps added on startup 2015-07-11 08:52:30 +02:00
hrenz aa0aeece3c Update de.h.txt
Screenshot funktion added at german  line 308
2015-07-11 08:44:57 +02:00
JivaroFAD 51fffc6e1b M2560 JackPPM correction + sch update 2015-07-10 21:38:24 +02:00
bsongis 62e3e98da4 Fixes #2449 2015-07-10 19:34:44 +02:00
Damjan Adamic 87d90e391a Fixes #2446: some function static variables were dependent on continuity of g_tmr10ms value between simulator sessions. 2015-07-10 18:28:49 +02:00
bsongis 17f465bff5 [Taranis X9E] Shutdown procedure modified (popup with confirmation
added)
2015-07-10 17:34:55 +02:00
bsongis 5fc99e61d5 [Taranis] There is no v215=>v217 EEPROM conversion 2015-07-10 14:11:22 +02:00
bsongis 1f0d0433bb [Taranis X9E] Constants added 2015-07-10 11:03:38 +02:00
bsongis e4698d10a3 [Taranis X9E] Second version for the startup procedure 2015-07-10 09:15:18 +02:00
bsongis bfb72bb0a9 [Taranis X9E] The radio starts if the PWR button is pressed between 2s
and 5s
2015-07-10 00:08:08 +02:00
martin 14e248bec7 CZ translations 2015-07-10 00:06:30 +02:00
bsongis dd3eaf4ec9 [Taranis] Hardcoded timer removed 2015-07-09 23:49:23 +02:00
Damjan Adamic 1ebce293c9 Release notes updated (found more new features) 2015-07-09 23:06:21 +02:00
Damjan Adamic 1422deb42b simu switches for X9E fixed 2015-07-09 22:49:44 +02:00
Damjan Adamic 449829ea70 Switches warning: limited display to first 5 wrong switches 2015-07-09 22:46:13 +02:00
bsongis 9133558bed [Taranis] I had a Pot warning on Pot3 even if configured as None 2015-07-09 22:30:40 +02:00
Bertrand Songis 6ab60d2e84 Merge pull request #2445 from opentx/projectkk2glider/issue_2444_9XE_simu_keys
Fixes #2444: Wrong scroll direction in simulators for X9E
2015-07-09 22:24:14 +02:00
bsongis a738f674cc Mavlink compilation failure 2015-07-09 22:22:28 +02:00
bsongis ef21053b3d It was possible to reset Timer3 in custom functions even if Timer3
unavailable
2015-07-09 22:17:55 +02:00
Damjan Adamic 8ed9774b9a Fixes #2444: Wrong scroll direction in simulators for X9E 2015-07-09 21:41:05 +02:00
bsongis d0bee7d666 Nederlands added 2015-07-09 00:01:33 +02:00
bsongis 8c2b963395 Missing test 2015-07-08 23:17:35 +02:00
bsongis 999aab206a Timer3 was not reset on FlightReset (when present) 2015-07-08 19:42:18 +02:00
bsongis 19f5db6fe7 Fixes #2442 2015-07-08 19:42:18 +02:00
bsongis df7f715dd3 Contributors / Release notes dialogs refactoring 2015-07-08 19:42:18 +02:00
mhotar 46d7fb3ff6 CZ translations - Companion 2015-07-08 17:55:04 +02:00
bsongis 6bc7c62adc #2432 - ä added in special chars which need conversion 2015-07-08 07:09:41 +02:00
bsongis 9b7e913fbf Fixes #2434 2015-07-08 00:19:29 +02:00
bsongis be24ff122b [Taranis X9E] Bluetooth can be stopped and device name is now
configurable
2015-07-08 00:01:55 +02:00
Bertrand Songis a3c267b9be Merge pull request #2431 from opentx/mhotar/companionsplash21
Companion splash images 21 #2427
2015-07-07 23:47:00 +02:00
bsongis aac7384414 Fixes #2432 - Perhaps some chars missing? 2015-07-07 23:42:40 +02:00
martin c063dbbbb3 image files cleanup #2427 2015-07-07 22:33:35 +02:00
Damjan Adamic 6d5ed8409c simu was creating too small eeprom.bin file 2015-07-07 20:16:55 +02:00
bsongis 423580c260 Taranis X9E simulator was broken inside Companion 2015-07-07 20:03:23 +02:00
bsongis d43764a526 Cosmetics 2015-07-07 19:34:39 +02:00
bsongis a3df4120e1 Valgrind complained in some menus 2015-07-07 19:33:33 +02:00
mhotar bbc43a908e Companion CZ translation -still unfinished 2015-07-07 17:43:46 +02:00
mhotar 7c0f568251 Companion splash images 21 #2427 2015-07-07 11:30:17 +02:00
bsongis 1e44380c2d Release notes updated. Anything else I forgot? 2015-07-07 07:38:37 +02:00
bsongis 6dda06016b Donations updated 2015-07-07 07:28:09 +02:00
bsongis 66fe08f72e Option TARANIS_INTERNAL_PPM compilation fix 2015-07-07 07:22:41 +02:00
Romolo Manfredini 31b981e63e Italian TTS, fully fixed 2015-07-07 02:22:45 +02:00
bsongis 24630133cb Simu compilation fix 2015-07-07 00:22:20 +02:00
bsongis a56f75f3d9 [Taranis X9E] Bluetooth
- baudrate configured automatically to 115200bauds (factory
reset=9600bauds)
- device name is now "Taranis"
- Telemetry is mirrored
2015-07-06 23:55:58 +02:00
mhotar 7f65075af2 companion - some missing icons added 2015-07-06 19:26:50 +02:00
Damjan Adamic 12c87c820f Release notes updated for 2.1 (there might still be some (important) changes missing) 2015-07-06 19:10:42 +02:00
bsongis 8723c110b4 Fixes #2424 - ReplaceCHx should not be present in global functions 2015-07-06 18:42:54 +02:00
bsongis 5b567fc057 Fixes #2425 2015-07-06 18:30:58 +02:00
bsongis fc7c7f1a70 Fixes #2426 2015-07-06 17:53:43 +02:00
Romolo Manfredini c389f6621b German tts and some translation fix (companion is still missing) 2015-07-06 16:38:49 +02:00
bsongis 01b0c015f6 Fixes #2421 - Full check of I2C errors / infinite wait. In case of
eeprom read/write error, the I2C is reinitialized and the operation
started again.
2015-07-06 07:55:02 +02:00
Romolo Manfredini e090078401 Italian translations in companion - fix for singular/plural forms in italian 2015-07-06 02:58:25 +02:00
Romolo Manfredini 14ca8f3427 Italian translations - fix reading of time. 2015-07-05 21:35:05 +02:00
bsongis fd3f79a8d5 Possible fix for #2421 - Code review and tests needed 2015-07-05 19:57:14 +02:00
Damjan Adamic c09d4278c3 Fixes #2420: input name buffer overflow in Companion (ported from master) 2015-07-05 18:26:19 +02:00
bsongis 6bd9717315 TTS fixes 2015-07-05 13:09:17 +02:00
bsongis 79e36b8711 PlayDuration was broken 2015-07-05 12:28:41 +02:00
Andre Bernet 0683e60bec French translations 2015-07-05 12:09:53 +02:00
bsongis 9dc459ec43 Temporary fix for #2418 - We will do something better later when we have
more time, as the +/-1 / GVAR / VALUE could be integrated in the Source
menu ...
2015-07-05 11:42:26 +02:00
bsongis c05dd4597d Fixes #2411 2015-07-04 18:12:10 +02:00
bsongis 017c13dbdc Fixes #2415 2015-07-04 17:50:50 +02:00
bsongis 396ded7ee3 Fixes #2414 2015-07-04 17:40:50 +02:00
bsongis 40a6db3af4 Fixes #2417 2015-07-04 17:32:48 +02:00
bsongis 12171ef266 Script to capitalize model bitmaps 2015-07-04 17:22:13 +02:00
bsongis 4c4d3bc24d Fixes #2413 2015-07-04 14:17:09 +02:00
bsongis 6ca949d033 Fixes #2412 2015-07-04 12:43:55 +02:00
Andre Bernet 18eaca9135 French translations 2015-07-04 12:10:13 +02:00
bsongis 76e312ed5e DE translations 2015-07-04 10:41:01 +02:00
bsongis ffaf3401a2 Fixes #2405 - Trims were shifted by 2 2015-07-04 00:33:05 +02:00
bsongis ae4fc0888a [Taranis X9E] Wrong import of model settings in Companion 2015-07-03 23:24:09 +02:00
bsongis 9cedd8364c Fixes #2408 - Needs a test 2015-07-03 22:48:05 +02:00
bsongis 332ac86069 Fixes #2407 - Good catch! 2015-07-03 15:15:44 +02:00
bsongis 22f598cdac [Taranis] Fixes #2403 - Differential changes we did in 2.1 reverted 2015-07-03 14:03:11 +02:00
bsongis d6cba75510 [Taranis X9E] BT Cosmetics 2015-07-03 13:57:55 +02:00
martin 8fc7859cf1 CZ translations - partial 2015-07-03 00:26:49 +02:00
bsongis 1ad54b241d Fixes #2401 2015-07-02 19:50:40 +02:00
Damjan Adamic d73f3ed19a Re #1732: stack corruption fixed (ported from master) 2015-07-02 19:35:35 +02:00
Andre Bernet 07ac7db085 Failsafe mode was converted wrong when coming from a 216 eeprom (Fix #2400) 2015-07-02 17:50:50 +02:00
Andre Bernet 9f1c5666aa Companion French translations first part (rest tomorrow hopefully) 2015-07-01 23:48:35 +02:00
Andre Bernet b26cec42bb Update all companion translation files for translators without build environment 2015-07-01 22:52:31 +02:00
bsongis 34240377e0 Fixes #2399 2015-07-01 21:21:04 +02:00
Bertrand Songis a26b938d72 Merge pull request #2398 from opentx/driver33/PL_Tr
small fixes
2015-07-01 21:02:10 +02:00
bsongis d2d5cebb29 Compilation fix 2015-07-01 20:51:36 +02:00
bsongis 6c167fd6f0 Test code removed 2015-07-01 20:31:21 +02:00
bsongis 06cd8656f9 [Taranis X9E] Possibility to shutdown the radio during an ALERT, with
the small animation ...
2015-07-01 20:27:54 +02:00
bsongis b58fff1261 [Taranis X9E] We need to have a VARIANT in eeprom to recognize a Taranis
from a Taranis X9E EEPROM
2015-07-01 19:27:37 +02:00
Jacek Drewniak a956797ae3 small fixes 2015-07-01 17:27:57 +02:00
bsongis 9dc1f2d5f8 [Taranis X9E] Problem when pressing long the PWR button on power off, I
revert Mike's change for now
2015-07-01 08:00:50 +02:00
bsongis eef6bb0342 Fixes #2396 2015-07-01 06:53:48 +02:00
bsongis ce1982dad1 [Taranis X9E] I forgot to change the pins mask for the switches 2015-07-01 06:37:34 +02:00
bsongis 4957cbfef5 [Taranis X9E] Last minute hardware modifications! 2015-06-30 18:49:55 +02:00
bsongis f9ff77ea7b Cosmetics 2015-06-30 18:27:20 +02:00
bsongis 6abd888bf3 Compilation fix 2015-06-30 06:36:14 +02:00
bsongis 222440a5e3 Fixes #2391 2015-06-29 23:23:15 +02:00
bsongis 7800de54b0 Fixes #2390 2015-06-29 23:18:26 +02:00
Bertrand Songis ff409321ff Merge pull request #2290 from opentx/bsongis/issue_2266_set_failsafe_custom_function
Fixes #2266
2015-06-29 22:57:23 +02:00
Bertrand Songis 8b9265a3c7 Fixes #2360 2015-06-29 22:40:55 +02:00
bsongis e9f1471eba [Taranis X9E] Conversions from EEPROM v216 disabled 2015-06-29 22:20:51 +02:00
Bertrand Songis 7d5c392078 Merge pull request #2288 from opentx/bsongis/ccm_memory_on_f4
Bsongis/ccm memory on f4
2015-06-29 22:17:28 +02:00
Bertrand Songis ec4e843c52 Merge pull request #2392 from opentx/projectkk2glider/log_viewer_session_duration
Added session duration information in Log Viewer
2015-06-29 22:15:42 +02:00
Damjan Adamic 64315baf3a Added session duraton information in Log Viewer 2015-06-29 20:38:20 +02:00
bsongis a4ff92d299 [Taranis X9E] Inverted keys in bootloader 2015-06-29 19:23:14 +02:00
bsongis 8eae895c83 [Taranis X9E] The bootloader was not started (trims masks hardcoded) 2015-06-29 19:11:22 +02:00
Damjan Adamic 00a3e8b404 Typo in release notes 2015-06-29 18:37:00 +02:00
Damjan Adamic f592a78b4b Release notes updated 2015-06-29 18:30:24 +02:00
Damjan Adamic 106e32c5cc Donations copied from master 2015-06-29 18:27:58 +02:00
bsongis 5680f00fd3 [Taranis X9E] Variables moved to CCM Memory. Around 45k RAM saved. 2015-06-29 18:25:25 +02:00
Bertrand Songis 1086ae85e5 Merge pull request #2389 from opentx/driver33/PL_TR
Small fixes
2015-06-29 18:05:38 +02:00
Jacek Drewniak af2a79b43e Small fixes 2015-06-29 10:49:21 +02:00
bsongis 86c2788454 Compilation fix 2015-06-29 06:51:46 +02:00
bsongis 2b397b7433 [Taranis] Wrong PIN used for SPORT direction. SPORT devices flashing
need tests, it was broken for sure
2015-06-29 06:43:52 +02:00
bsongis 55356baea8 Fixes #2266 - SetFailsafe Custom Function. Version without an EEPROM
shift. It removes the ModuleOff function which nobody will need I hope
...
2015-06-28 22:28:18 +02:00
Bertrand Songis dab2267e10 Merge pull request #2297 from opentx/bsongis/dangerous_module_functions
Dangerous module functions fix
2015-06-28 20:53:16 +02:00
bsongis cc9b222175 Almost ready for a 2.1.0 release? 2015-06-28 19:43:21 +02:00
bsongis e19d56c66c Another fix for #2378 (various EEPROM import issues) 2015-06-28 19:15:29 +02:00
bsongis 2009c00dd0 And now? Issue #2378 2015-06-28 18:22:12 +02:00
bsongis e4b14233b5 Should fix #2378 - Who can confirm? 2015-06-28 17:52:42 +02:00
Andre Bernet 039b2e943c Add EU-only option to companion. Compile script is updated 2015-06-28 17:42:01 +02:00
Bertrand Songis 5baa5f588d Merge pull request #2388 from opentx/projectkk2glider/issue_2381
Fixes #2381: time based V2 params were not formated properly. Time un…
2015-06-28 17:31:02 +02:00
Damjan Adamic f8a2ec0aee Fixes #2381: time based V2 params were not formated properly. Time unit also added. 2015-06-28 17:28:24 +02:00
bsongis 447ea6fb39 [Taranis X9E] Patch from Mike to save power on shutdown 2015-06-28 17:20:57 +02:00
bsongis bfb10cd539 [Taranis X9E] Top LCD display problem when the timer becomes negative 2015-06-28 17:15:57 +02:00
bsongis 224a937825 Compilation fix 2015-06-28 16:46:08 +02:00
bsongis 871df6e913 [Taranis] Wrong audio volume scale 2015-06-28 16:41:17 +02:00
bsongis 8d5b178fc2 [Taranis X9E] Last minute modifications 2015-06-28 16:37:26 +02:00
bsongis 18d8edce36 Fixes #2360 2015-06-28 16:12:49 +02:00
Bertrand Songis d96f1f3400 Merge pull request #2320 from opentx/bsongis/special_eu_taranis_firmware
Special EU firmware for Taranis
2015-06-28 15:39:52 +02:00
bsongis 641e7335f7 Cosmetics 2015-06-28 15:38:30 +02:00
bsongis 688cd9f724 Special EU firmware for Taranis
Only D16 mode is EU-compatible. This version will hide both D8 and LR12
modes.
2015-06-28 15:33:42 +02:00
Damjan Adamic 7312bd2655 Fixes #2382: new atribute onlyPositive for telemetry sensor
Conflicts:
	radio/src/translations/it.h.txt
2015-06-28 12:37:55 +02:00
Bertrand Songis add90b3a88 Merge pull request #2387 from opentx/projectkk2glider/eeprom_import_debug
Debug output for eeprom import
2015-06-28 12:32:31 +02:00
bsongis 27b0052f06 Translations fixes 2015-06-28 12:27:31 +02:00
bsongis bfcb7dfeac Spanish translations by Jose Carlos Lorenzo Garcia, thanks! 2015-06-28 12:14:22 +02:00
Damjan Adamic 8a49645c14 Debug output for eeprom import. Use "cmake -D CMAKE_BUILD_TYPE=Debug -D DEBUG_IMPORT=ON ../src" to turn it on 2015-06-28 09:34:46 +02:00
Damjan Adamic 56d12d88c1 Re #2378: SHdown switch was missing 2015-06-27 19:00:41 +02:00
Damjan Adamic 4e10c965a9 Re #2378: fixed v216 inputs import 2015-06-27 19:00:41 +02:00
Damjan Adamic 40adc23d78 Dupliate declaration removed 2015-06-26 20:58:35 +02:00
Damjan Adamic 516be9d9d3 Trace fixed 2015-06-25 21:11:22 +02:00
Damjan Adamic 260da330c4 Fixes #2372: SWR telemetry value not available on Taranis 2015-06-25 21:04:00 +02:00
Damjan Adamic 56c249326f Fixes #2382: Vario only showing positive values (reverted from commit a88cace888) 2015-06-25 20:10:59 +02:00
Damjan Adamic a88cace888 Fixes #2382: Vario only showing positive values 2015-06-25 19:45:05 +02:00
Damjan Adamic 2f2b5e2ebe Fixed pot and slider names for 9XE 2015-06-25 18:38:16 +02:00
Damjan Adamic a8a3a7e29a Fixes #2380: can't select LS or RS as source in INPUT and MIXERS 2015-06-25 11:22:27 +02:00
Damjan Adamic 5ab974e140 GeneralEdit initial tab selection fix 2015-06-25 11:22:27 +02:00
Andre Bernet 134cf38617 Fix switch conversion issues on radio 2015-06-22 12:45:11 +02:00
Bertrand Songis 662b0dacf0 Merge pull request #2376 from opentx/driver33/PL_translation
Translation fixes
2015-06-20 12:04:16 +02:00
Jacek Drewniak 3a4ca2be05 Translation fixes 2015-06-20 10:51:57 +02:00
Damjan Adamic c0afcb51f7 Fixes #2326: Google Earth export GPS glitch filtering and lat/lon synchronization (ported from master) 2015-06-19 18:40:42 +02:00
bsongis 6a3f277fde Fixes #2371 (french sounds shifted) - Now only en / fr TTS sounds are
correct, I need help for all other languages!
2015-06-19 10:55:14 +02:00
bsongis 5d2a04467c Fixes #2368 2015-06-18 19:11:07 +02:00
bsongis f4e0518cd9 [Taranis] Precision was not good enough when displaying trim values on
main view
2015-06-18 19:10:39 +02:00
bsongis 98b23b348e Fixes #2369 2015-06-18 19:10:05 +02:00
Bertrand Songis 81abf548a3 Merge pull request #2370 from opentx/projectkk2glider/issue_2364_s3_ghost_readings_for_next
Fixes #2364: use fixed analog value for non-connected pots (ported fr…
2015-06-17 18:08:11 +02:00
Damjan Adamic 873871d9f4 Fixes #2364: use fixed analog value for non-connected pots (ported from master) 2015-06-17 10:34:16 +02:00
bsongis 0b44e10e0f [Taranis X9E] Trims exchanged 2015-06-17 07:02:47 +02:00
bsongis 5764cdee57 [Taranis] More stuff moved to hal 2015-06-16 22:44:10 +02:00
bsongis bbdadf57e7 [Taranis X9E] F1, F2, F4 and S2 direction inverted 2015-06-16 18:19:58 +02:00
bsongis f7af41c81c [Taranis X9E] Sliders S1 and S2 were not shown in the calibration screen 2015-06-16 18:18:34 +02:00
bsongis 07444b002c [Taranis] Switches selection menu 2015-06-16 18:10:16 +02:00
bsongis 0283096ac7 Different voices directory (voices-21) on the web server 2015-06-16 07:54:04 +02:00
bsongis 770f7b3174 [Taranis] Logical switch not saved when only v2 parameter modified 2015-06-15 22:27:39 +02:00
bsongis 34d096e115 All disabled telemetry google tests are now enabled 2015-06-15 22:05:53 +02:00
bsongis 414070bde1 [Taranis X9E] Again back to S1 / S2 instead of F5 / F6 2015-06-15 18:30:52 +02:00
Bertrand Songis 862dc273f0 [Taranis X9E] 2 optional sliders are now named LS and RS (as today on
Taranis)
2015-06-15 07:14:34 +02:00
Bertrand Songis b119e5552c [Taranis X9E] Sliders in the middle are called F5 and F6 2015-06-15 07:08:47 +02:00
bsongis fc492a7709 Fixes #2359 2015-06-14 23:16:19 +02:00
bsongis f4d1389c4d Cells sensor can now be displayed in PREC1 or even PREC0 2015-06-13 23:18:52 +02:00
Bertrand Songis 2d8b43fa9b [Taranis X9E] SWA not working (typo) 2015-06-13 10:33:23 +02:00
Bertrand Songis 3424c1f2d6 [Taranis] Keys shifted in the bootloader 2015-06-13 10:29:16 +02:00
Bertrand Songis 460847b425 [Taranis X9E] F1, F2 and F4 direction reversed 2015-06-13 10:24:07 +02:00
bsongis 590aa0620c Fixes #2346 2015-06-12 21:39:44 +02:00
bsongis 390781de7c [Taranis] Now the Modelsel screen comes quickly, eeCheck() is not any
more called when entering, but only when really needed ...
2015-06-12 21:21:01 +02:00
Bertrand Songis 74b43c478b Cosmetics 2015-06-12 16:26:36 +02:00
Bertrand Songis e88dd59c93 [Taranis X9E] SWM problem fix 2015-06-12 16:24:02 +02:00
Bertrand Songis 2953346b6b Refactoring 2015-06-12 14:17:06 +02:00
Bertrand Songis b32bc91385 Compilation fixes 2015-06-12 13:56:29 +02:00
Bertrand Songis 7e50b2e466 Cosmetics 2015-06-12 13:27:25 +02:00
Bertrand Songis 0e5299e32d [Taranis X9E] F3 and F4 inverted, S2 not working 2015-06-12 12:21:50 +02:00
Bertrand Songis 7dcbd3ae90 [Taranis X9E] F1 reversed direction 2015-06-12 12:01:12 +02:00
bsongis 103bfe4b79 [Taranis X9E] SWF reversed. SWR not answering 2015-06-12 11:05:28 +02:00
bsongis b0a4de5a14 [Taranis) Switch names displayed below bars in calibration screen 2015-06-12 08:16:22 +02:00
Bertrand Songis ed7cb82d3b Compilation fix 2015-06-12 07:17:41 +02:00
Bertrand Songis 5a9882a069 Cosmetics 2015-06-12 07:02:58 +02:00
Bertrand Songis f4659a55ba [Taranis X9E] Changes on SWO and SWP 2015-06-12 06:58:42 +02:00
Bertrand Songis 744b3139b8 Compilation fix 2015-06-12 06:57:41 +02:00
Bertrand Songis fa0e4b9964 Cosmetics 2015-06-11 23:18:37 +02:00
bsongis 63bed89a52 Compilation fixes 2015-06-11 20:29:21 +02:00
bsongis 95de75ba41 [Taranis X9E] Last minute changes taken into account. It remains a bug
in SWF and SWP definitions (they share the same pins in the spec)
2015-06-11 19:21:30 +02:00
JivaroFAD 08f97e08c6 M2560 sch update 2015-06-10 20:03:46 +02:00
bsongis 878f97a52c Compilation error (strange char inserted it seems) 2015-06-10 18:11:38 +02:00
bsongis 11e4278add Compilation fixes 2015-06-09 21:24:50 +02:00
bsongis 3ce0eecbb3 OpenOCD st-link config files now saved on git 2015-06-09 21:15:11 +02:00
bsongis 8365a8dbaf Constants renamed (so that Taranis hal is now nice) 2015-06-09 21:15:10 +02:00
bsongis bab4168ac4 lcd.drawNumber now takes a float instead of an integer as argument. Some
parameters declared as optional in the Lua API.
2015-06-09 21:15:10 +02:00
bsongis ac638f2020 Include fixed 2015-06-09 21:15:10 +02:00
bsongis 85329a67e4 Fixes #1689 - Vario silent when within zero range 2015-06-09 21:15:10 +02:00
bsongis 1ae43970b4 Cosmetics 2015-06-09 21:15:10 +02:00
Michał Wróbel 9b66a9b971 [9X] DRY, just use the BOLD_SPECIFIC_FONT macro 2015-06-08 23:35:44 +02:00
Michał Wróbel bbf88744cb [AVR] Fix last column of last row of DBLSIZE text (off-by-one error) 2015-06-07 19:34:53 +02:00
bsongis 3b6322181c [Taranis] Simplification of PWR driver 2015-06-06 18:17:21 +02:00
JivaroFAD c2c7fabfde M2560 : haptic state inversion + sch update 2015-06-06 12:15:18 +02:00
bsongis 0f9df195ad Compilation fix for Taranis X9E bootloader 2015-06-06 08:07:44 +02:00
Bertrand Songis 85411d28fc Merge pull request #2307 from cmarzer/internalPPM_2306
Internal ppm 2306
2015-06-05 09:47:32 +02:00
Bertrand Songis 49c455aa27 Merge pull request #2345 from opentx/bsongis/i2c_hardware_on_taranis
Bsongis/i2c hardware on taranis
2015-06-05 09:45:50 +02:00
bsongis f49a23b635 I2C speed now 400kHz except on REV4a boards 2015-06-05 09:45:04 +02:00
Damjan Adamic 67cd321400 Re #2260: class Profile dependency removed from simulatorinterface 2015-06-01 21:37:25 +02:00
JivaroFAD 61c7abf214 M2560 update
makefile option for soft-off and haptic added
audio&voice desactivated on Companion (not yet implemented)
doc update (LCD resistor added)
2015-06-01 00:11:35 +02:00
Cedric Marzer 8564500151 Cosmetic fixes 2015-05-31 21:49:42 +02:00
Bertrand Songis 05f7286eb8 Merge pull request #2349 from opentx/projectkk2glider/issue_2260_simulator_volume_gain_for_next
Fixes #2260: added volumeGain in simulator (ported from master)
2015-05-31 16:53:27 +02:00
bsongis 23adad950a REV4a only supports 100kHz, this is why I had random errors! Now I need
tests at 400kHz for the standard (non Plus) Taranis. I keep 200kHz for
now.
2015-05-31 16:43:15 +02:00
bsongis bbb5cd9fdb Code used to test I2C speeds 2015-05-31 16:09:14 +02:00
bsongis 6682d0c6d3 200kHz on non REVPLUS boards 2015-05-31 16:08:17 +02:00
Damjan Adamic 70ff6b06ed Fixes #2260: added volumeGain in simulator (ported from master) 2015-05-31 15:59:31 +02:00
bsongis d3b55e8ad6 Compilation fix. Now I2C @ 240kHz 2015-05-29 21:45:05 +02:00
bsongis 8bf7a78b77 240kHz 2015-05-29 21:23:44 +02:00
bsongis bb761f8cf6 EEPROM write added. Speed slowed down to 200kHz 2015-05-29 21:14:00 +02:00
bsongis 5401ead546 Makefile simplification. Fixes simu compilation error 2015-05-29 21:14:00 +02:00
bsongis ca9f250f64 Missing optimizations in the bootloader 2015-05-29 21:14:00 +02:00
bsongis 4a13a65024 I2C Read at 400MHz (hardware). I2C Write still not implemented 2015-05-29 21:14:00 +02:00
Andre Bernet bef5165f68 French translations 2015-05-27 10:15:06 +02:00
bsongis 51ae30cc27 Fixes #2335 2015-05-27 07:12:19 +02:00
bsongis f35148ed2d Cosmetics 2015-05-27 06:42:10 +02:00
bsongis 07c10f1256 Telemetry sensors not populated inside Companion simulator 2015-05-27 06:40:51 +02:00
JivaroFAD 88f907abc5 Revert 1dc10122 2015-05-26 23:10:21 +02:00
Cedric Marzer 2d7330d1bb Changed internalModule to gmodel.moduleData[INTERNAL_MODULE].type 2015-05-26 22:46:46 +02:00
Cedric Marzer e8e8daff11 Changed internalModule to gmodel.moduleData[INTERNAL_MODULE].type 2015-05-26 22:43:42 +02:00
Cedric Marzer 00cac49972 Merge remote-tracking branch 'upstream/next' into internalPPM_2306
Conflicts:
	radio/src/gui/Taranis/menu_model_setup.cpp
	radio/src/myeeprom.h
	radio/src/opentx.h
2015-05-26 22:09:12 +02:00
bsongis ca515a9edb Fixes #2343 2015-05-26 21:25:41 +02:00
bsongis 0f99e07d9a Telemetry fixes 2015-05-26 20:07:28 +02:00
JivaroFAD 33de4e903e MEGA2560 missing in avrdude arguments 2015-05-26 09:46:07 +02:00
Bertrand Songis cc1382e5e2 Merge pull request #2332 from opentx/bsongis/module_struct_change_for_2307
Bsongis/module struct change for 2307
2015-05-26 07:15:28 +02:00
bsongis 0c01f66272 Fixes #2299 2015-05-26 07:14:25 +02:00
bsongis 22f4c11bd9 DE translation error 2015-05-26 06:36:30 +02:00
bsongis 5e7ef29083 Bad use of signal / slot in 9X simulator 2015-05-25 23:40:09 +02:00
Bertrand Songis 69b6a98777 Merge pull request #2342 from opentx/projectkk2glider/issue_2301_findTrueFileName_fix_on_windows_for_next
Fixes #2301: findTrueFileName() was not finding any files on Windows
2015-05-25 22:21:57 +02:00
JivaroFAD 1dc10122ea Mega2560 ST7565P LCD + Companion flash dialog 2015-05-25 22:19:09 +02:00
Damjan Adamic e9c4274503 Fixes #2301: findTrueFileName() was not finding any files on Windows 2015-05-25 22:14:34 +02:00
JivaroFAD 4af46ec8dc Merge branch 'next' of https://github.com/opentx/opentx into next 2015-05-25 21:08:45 +02:00
JivaroFAD ed93edf8d9 Mega2560 update
FrSky was missing and heli was listed two times
Doc update
2015-05-25 21:08:00 +02:00
bsongis ae833f98d0 Cosmetics 2015-05-25 20:09:31 +02:00
bsongis 6f51fc9da6 Core in 9X simulator 2015-05-25 20:08:39 +02:00
JivaroFAD 9c87dcfba3 MEGA2560 pcb update 2015-05-24 12:05:32 +02:00
bsongis cd38ecd1ca Companion part 2015-05-24 09:58:44 +02:00
bsongis 18ab76718e #2307 - ModuleData structure modification 2015-05-24 08:58:47 +02:00
JivaroFAD e665f4a176 Mega2560 cleaning 2015-05-23 21:48:22 +02:00
Bertrand Songis 5a94a0db72 Merge pull request #2330 from opentx/romolo/writeerrors
Write errors to the radio are not correctly handled
2015-05-22 19:57:07 +02:00
Romolo Manfredini 0f867f2f3d Write errors to the radio are not correctly handled 2015-05-22 19:16:07 +02:00
bsongis a7a69d5529 [DE firmware] D16 becomes D16-EU (when only this mode is available)
Conflicts:
	radio/src/translations/de.h.txt
2015-05-22 12:21:01 +02:00
bsongis 66a0f264d3 [Mega2560] 2 more LCD options added 2015-05-22 08:41:12 +02:00
Bertrand Songis 2e066f08f6 Merge pull request #2328 from opentx/griebd/log_viewer_enhancement_2267_next
log viewer enhancement, now for next
2015-05-22 08:16:04 +02:00
Grieb 546aa42f56 logsdialog.cpp: removes unused function. 2015-05-21 22:08:47 -03:00
Grieb 3609e2df56 Log Viewer: add a second legend and reference to axes in the legends. 2015-05-21 22:08:47 -03:00
Grieb 46ccd15924 Log Viewer multi-axes. Fixes #2267. 2015-05-21 22:08:46 -03:00
Grieb 22dab11ccf No real changes, just preparing for multi axes in Log Viewer. 2015-05-21 22:08:45 -03:00
Grieb 70c5714775 Updated QCustomPlot to 1.3.1. 2015-05-21 22:08:45 -03:00
Grieb 7f4567c165 Solves item 2 of #2267. And add top/botton margin in graphs. 2015-05-21 22:08:44 -03:00
Andre Bernet 3929ea7845 Fix #2327 2015-05-21 22:58:07 +02:00
Michał Wróbel 04abe29c7c Fix help for string formatting codes in translation files 2015-05-21 19:58:09 +02:00
bsongis 59235fcfcb Indentation fixes 2015-05-21 19:14:00 +02:00
Bertrand Songis 483cc6c190 Merge pull request #2325 from opentx/jivarofad/M2560
LCD driver for stock and M2560
2015-05-21 19:07:01 +02:00
Bertrand Songis fcf417cf5d Merge pull request #2324 from xmxwx/no-buzzer
Support totally silent build (BUZZER=NO && AUDIO=NO)
2015-05-20 23:23:13 +02:00
Michał Wróbel 4d185f78db Support totally silent build (BUZZER=NO && AUDIO=NO) 2015-05-20 23:14:58 +02:00
JivaroFAD eb70ec38d7 M2560 schematics update
ST7920 pinout correction
2015-05-20 18:40:33 +02:00
JivaroFAD de13291db1 LCD driver simplification, 8 bytes saved (ST7565) 2015-05-20 18:08:33 +02:00
JivaroFAD 28812997ab Power-circuit schematic update 2015-05-20 00:00:08 +02:00
JivaroFAD 65017fc243 LCD driver update 2015-05-18 23:33:35 +02:00
Cedric Marzer 167734b755 more changes 2015-05-18 22:26:57 +02:00
Cedric Marzer 9a42cac661 More changes 2015-05-18 22:18:11 +02:00
Cedric Marzer a2c7e788c5 More changes, most of them cosmetic 2015-05-18 21:39:59 +02:00
Cedric Marzer 81835d476d Merge remote-tracking branch 'upstream/next' into internalPPM_2306 2015-05-18 19:47:50 +02:00
Cedric Marzer e9e717a271 Merge remote-tracking branch 'origin/internalPPM_2306' into internalPPM_2306 2015-05-18 13:35:09 +02:00
JivaroFAD a838344e5c M2560 doc update 2015-05-17 21:03:10 +02:00
JivaroFAD 744c797e30 ST7920 support added for 9x and M2560 boards
Merge of olterion ST7920 driver, thanks :)
Draft... please check !
2015-05-17 20:26:41 +02:00
JivaroFAD b5a47a9f57 Mega2560 doc update 2015-05-17 19:53:37 +02:00
Bertrand Songis 366bb5c962 Merge pull request #2317 from opentx/projectkk2glider/issue_2084_max_expos_for_next
Fixes #2084: wrong constant used to limit maximum number of expos (po…
2015-05-17 19:39:28 +02:00
Bertrand Songis 4a15c49561 Merge pull request #2314 from opentx/driver33/PL_translation
Driver33/pl translation
2015-05-17 19:37:29 +02:00
Damjan Adamic 74af80e8be Fixes #2084: wrong constant used to limit maximum number of expos (ported from master) 2015-05-17 18:57:20 +02:00
Jacek Drewniak 72ecd16046 Fixes from Bertrnd suggestion 2015-05-17 14:23:11 +02:00
Jacek Drewniak 6d12d57abe PL Translation fixes 2015-05-17 00:58:01 +02:00
bsongis ddf88e2721 EEPROM was readonly since my latest cosmetics (line removed by mistake) 2015-05-16 11:34:24 +02:00
Cedric Marzer 520df52951 Changed some stuff after bsongis kind review. 2015-05-15 17:52:32 +02:00
Cedric Marzer 9de8cefa79 issue_2306_fixed 2015-05-15 17:52:32 +02:00
Cedric Marzer a54e1605ba PPM internal module GUI added 2015-05-15 17:52:32 +02:00
bsongis 08a198ae66 Compilation error fix 2015-05-15 10:45:18 +02:00
Cedric Marzer 501b712163 Changed some stuff after bsongis kind review. 2015-05-14 23:11:23 +02:00
Cedric Marzer bab05340cf issue_2306_fixed 2015-05-14 22:43:49 +02:00
Cedric Marzer 3108b450b3 PPM internal module GUI added 2015-05-14 22:27:54 +02:00
bsongis 463e23f15b Cosmetics 2015-05-14 19:34:18 +02:00
bsongis 502582a896 Cosmetics 2015-05-14 19:27:02 +02:00
bsongis fc42b19a2f Compilation fix 2015-05-12 06:42:49 +02:00
Romolo Manfredini f134619f7d Typos 2015-05-11 22:31:31 +02:00
bsongis 0c17833ab7 Dangerous module functions fix 2015-05-11 20:34:24 +02:00
Andre Bernet 54a5a34fe8 Disable DANGEROUS_MODULE_FUNCTIONS execution for now, it's broken and _really_ dangerous... 2015-05-11 10:32:38 +04:00
Bertrand Songis 67da88ceb0 Merge pull request #2273 from opentx/bsongis/issue_2183_failsafe_settings_on_individual_channels
Bsongis/issue 2183 failsafe settings on individual channels
2015-05-11 06:45:39 +02:00
bsongis 059ea49f2f Fixes #2183
Failsafe settings on individual channels
2015-05-11 06:43:26 +02:00
Bertrand Songis 218e6a77ba Merge pull request #2281 from opentx/romolo/curveeditor_cutandpaste
Romolo/curveeditor cutandpaste
2015-05-11 06:40:51 +02:00
Romolo Manfredini 3a69982985 Curve editor cut & paste Fixes #1788 2015-05-11 00:36:31 +02:00
Bertrand Songis 68e3e28557 Merge pull request #2287 from opentx/romolo/simulator_s3
Fixes #1917
2015-05-10 12:38:42 +02:00
bsongis 274303a658 Fixes #1917 2015-05-10 12:36:24 +02:00
Andre Bernet cde0824f05 Avoid double logging of RSSI, SWR will need manual selection 2015-05-09 23:14:40 +04:00
Andre Bernet 28e92d964a Fix lots of broken stuff in companion telemetry sensor handling, sync displayed items/units/formulas with firmware (should fix #2285) 2015-05-09 21:49:27 +04:00
Andre Bernet 6d0537988f Failsafe warning only for protocols that support failsafe 2015-05-09 14:22:41 +04:00
Andre Bernet 86f4957c8c Fix #2283 2015-05-09 14:08:49 +04:00
Michał Wróbel ce58a11e73 New Makefile variable SIMUCPPFLAGS used for simu and gtests target 2015-05-09 00:45:18 +02:00
Michał Wróbel e20e66d9bb Fix simu and gtests compilation with TELEMETRY_MOD={14051,14051_SWAPPED} 2015-05-08 23:35:28 +02:00
bsongis fdc47640e2 system_stm32 files moved to targets directory 2015-05-08 18:55:16 +02:00
Andre Bernet dc94820442 Merge pull request #2264 from opentx/bsongis/issue_2186_different_rx_numbers_on_modules
Fixes #2186
2015-05-08 13:28:58 +04:00
Andre Bernet 28cd92253e Merge pull request #2272 from opentx/bsongis/issue_2117_failsafe_warning
#2117 failsafe warning
2015-05-08 13:18:28 +04:00
Andre Bernet 73078f1fc0 Magic number removed 2015-05-08 11:47:29 +04:00
Andre Bernet 6c045cf30b Correct shift 2015-05-08 10:59:21 +04:00
bsongis 6b41b558dd Companion part 2015-05-07 19:46:06 +02:00
bsongis 88881843d6 Compilation fix 2015-05-07 19:36:13 +02:00
bsongis 8cb6539264 Fixes #2117 2015-05-07 19:27:55 +02:00
Bertrand Songis 2c3eb5e313 Fixes #2268 2015-05-07 07:04:26 +02:00
Bertrand Songis 7755bf0341 Merge pull request #2270 from xmxwx/next
Fixes #2250
2015-05-07 06:39:20 +02:00
Michał Wróbel d63f6bcaf7 Fixes #2250 2015-05-07 03:14:31 +02:00
bsongis bda87be10e Damjan and Kilrah remarks taken into account 2015-05-06 18:37:55 +02:00
Bertrand Songis 5f79e7e428 Merge pull request #2244 from opentx/profilebackupfolder_next
Profilebackupfolder next
2015-05-05 20:42:35 +02:00
bsongis 9ed37ab21b Google tests broken with my last commit 2015-05-05 20:07:58 +02:00
bsongis eb6ba88f5a Fixes #2186
Also provides a lua function to retrieve module settings
2015-05-05 20:02:02 +02:00
Andre Bernet f4c3610a8c Mixers monitor in simulator (Fix #2258) 2015-05-05 11:51:55 +04:00
Andre Bernet 10b54312d8 VC++ compilation 2015-05-05 11:51:40 +04:00
Bertrand Songis 5751a6a06a Merge pull request #2255 from opentx/projectkk2glider/issue_2239_ppm_pushpull__for_9xrpro
Projectkk2glider/issue 2239 ppm pushpull  for 9xrpro
2015-05-04 20:37:17 +02:00
Damjan Adamic 60b2a378dd Re #2239: PPM output type added for 9XR-PRO (open drain or push-pull) 2015-05-04 20:35:29 +02:00
Bertrand Songis 1609b1236d Fixes #2253 2015-05-04 07:28:14 +02:00
Romolo Manfredini fc409adeca Small optimization 2015-05-03 21:17:03 +02:00
Bertrand Songis 88f76bf230 Update mainwindow.cpp 2015-05-03 17:22:02 +02:00
bsongis 133f5fee0f PXX pulses fix improved (thanks to Mike for the idea!) 2015-05-03 16:07:16 +02:00
Michał Wróbel 4bab22f797 A more natural fix for #2249 2015-05-03 15:16:49 +02:00
JivaroFAD 2d6933d5ec M2560 board : adc_drive MUX5 correction 2015-05-03 09:45:20 +02:00
Romolo Manfredini bd463e5422 Remove unneeded code: spared few uS in cpu time.. 2015-05-02 19:21:12 +02:00
Romolo Manfredini 1ec7eaad0a Merge origin/next into profilebackupfolder_next 2015-05-02 19:20:53 +02:00
Damjan Adamic 3db6191284 Re #2090: segmentation fault fixed when play button was pressed for the first time 2015-05-02 18:30:36 +02:00
Romolo Manfredini 28419db178 Fix small bug, override of profilebackup folder 2015-05-02 13:50:05 +02:00
Romolo Manfredini 04edf114ae Merge origin/profilebackupfolder_next into profilebackupfolder_next 2015-05-02 13:31:23 +02:00
Romolo Manfredini 78961a1146 As two field were added and binary structure changed we change also the internal version.
The new version will be 210 for opentx2.1
2015-05-02 12:58:47 +02:00
Romolo Manfredini c2db7f029c Allow direct editing of paths 2015-05-02 12:58:47 +02:00
Romolo Manfredini 3a7e4c5005 Fix identing in the code 2015-05-02 12:58:46 +02:00
Romolo Manfredini de6d9f427c Fix scan of floppy drive under win
This should fix scan of floppy drives and also detection of non
removable drives
2015-05-02 12:58:46 +02:00
Romolo Manfredini dc5e36c543 Implement profile specific settings for backup folder.
Profile backup path if set overrides general one, in any case the backup will be performed if either profile specific setting or general settings ones are enabled.
Disabling backup in profile will not disable backups if generic settings are enabled
2015-05-02 12:58:46 +02:00
Romolo Manfredini 19914fb26b Implement profile specific settings for backup folder.
Profile backup path if set overrides general one, in any case the backup will be performed if either profile specific setting or general settings ones are enabled.
Disabling backup in profile will not disable backups if generic settings are enabled
2015-05-02 12:58:45 +02:00
Romolo Manfredini f8059b5295 As two field were added and binary structure changed we change also the internal version.
The new version will be 210 for opentx2.1
2015-05-02 12:57:57 +02:00
Romolo Manfredini d99752b458 Allow direct editing of paths 2015-05-02 12:18:07 +02:00
Damjan Adamic 3e37b9c256 Merge pull request #2245 from opentx/romolo/potreset_next
Reset pots to the middle by right double clicking them
2015-05-02 12:14:14 +02:00
Romolo Manfredini c98cbbcd12 Fix identing in the code 2015-05-02 11:47:11 +02:00
Romolo Manfredini da6524c5ee Reset pots to the middle by right double clicking them 2015-05-02 06:28:58 +02:00
Romolo Manfredini d9fb195443 Fix scan of floppy drive under win
This should fix scan of floppy drives and also detection of non
removable drives
2015-05-02 01:00:24 +02:00
Romolo Manfredini 116b147c51 Implement profile specific settings for backup folder.
Profile backup path if set overrides general one, in any case the backup will be performed if either profile specific setting or general settings ones are enabled.
Disabling backup in profile will not disable backups if generic settings are enabled
2015-05-01 18:13:23 +02:00
Romolo Manfredini deb08e8f68 Implement profile specific settings for backup folder.
Profile backup path if set overrides general one, in any case the backup will be performed if either profile specific setting or general settings ones are enabled.
Disabling backup in profile will not disable backups if generic settings are enabled
2015-05-01 17:44:57 +02:00
bsongis 7ba457be50 I found it ... 3 hours just for this #ifdef missing! 2015-04-30 19:37:02 +02:00
bsongis 1c1f45251b Warning removed 2015-04-29 21:17:05 +02:00
bsongis 252384e910 Another dirty hack for the new Sky9x EEPROM format. This class should be
splitted in 3 or 4 classes ...
2015-04-28 23:08:28 +02:00
Bertrand Songis 4d474288a3 Merge pull request #2238 from opentx/projectkk2glider/issue_2154_64bit_overflow_for_next
Fixes #2154: USB mass storage problem with cards bigger than 4GB
2015-04-28 20:44:14 +02:00
Bertrand Songis 62ecb99e74 Merge pull request #2231 from opentx/driver33/PL_TR_update
Driver33/pl tr update
2015-04-28 20:41:42 +02:00
bsongis a7c1a39c4b [Companion] 9XR-PRO simulator added 2015-04-28 20:41:09 +02:00
Damjan Adamic a1e467aaa0 Fixes #2154: USB mass storage problem with cards bigger than 4GB 2015-04-28 20:41:07 +02:00
bsongis b4dcde3aa8 Constant renamed 2015-04-28 20:40:06 +02:00
bsongis 886431f396 [Sky9x] EEPROM fixes 2015-04-28 20:38:05 +02:00
Damjan Adamic 8343e57c1c Merge pull request #2235 from opentx/griebd/companion_logsdialog_small_glitch_on_next
[companion][logsdialog]Small glitch when loading a second file.
2015-04-28 18:08:33 +02:00
Grieb 99ee35f88c [companion][logsdialog]Small glitch when loading a second file. 2015-04-28 09:48:11 -03:00
bsongis 8e2bc06623 [MEGA2560] LCD options changed (only possible options are visible) 2015-04-28 07:28:03 +02:00
Michał Wróbel 31820a0520 Fix switch warning false negatives occuring when splash screen is disabled (#2220) 2015-04-28 01:13:45 +02:00
Romolo Manfredini 3f193831e7 Partial fixes for it translation in next 2015-04-26 23:39:49 +02:00
Jacek Drewniak 4358b20faf Length fixes 2015-04-26 22:58:54 +02:00
mhotar 3147777713 CZ translation - icon+ 4char stick name 2015-04-26 19:35:42 +02:00
Romolo Manfredini 1ecbd4fc33 Improve readability of gvar tab in the simulator 2015-04-26 18:48:34 +02:00
Romolo Manfredini c57dc13d14 Translation too long for small display. 2015-04-26 18:48:34 +02:00
bsongis fde3267b53 Compilation fix 2015-04-26 17:42:49 +02:00
bsongis f6dcb75b8e Another compilation fix (and more boyscout work) 2015-04-26 13:58:24 +02:00
Andre Bernet 5421eb59cb Fix logging of negative values 2015-04-26 15:50:00 +04:00
bsongis 0dd3c710c1 Compilation error fixes 2015-04-26 13:39:15 +02:00
bsongis a85240d665 Boyscout changes 2015-04-26 13:27:05 +02:00
Andre Bernet 873cdd70e9 More insisting recommendation about reading firmware release notes 2015-04-26 14:18:55 +04:00
bsongis 4fc5427d52 Compilation error fix 2015-04-26 12:08:23 +02:00
Andre Bernet be4d9ea09d Add GPS course item 2015-04-26 14:03:38 +04:00
Romolo Manfredini e549224c53 Fix for FM trims 2015-04-26 11:57:28 +02:00
Romolo Manfredini 6a1f3d5d96 Trainermode in printdialog 2015-04-26 11:57:27 +02:00
Romolo Manfredini c0e9b196f9 Modeledit, rearrange curve dialog to avoid vertical scrolls 2015-04-26 11:57:27 +02:00
Romolo Manfredini 2fdde52fcd printdialog - internal and external modules, skip not defined curves in printing 2015-04-26 11:57:27 +02:00
Romolo Manfredini 6e0eec364c comparedialog - compare curves and special functions 2015-04-26 11:57:26 +02:00
Bertrand Songis 27ee3e3ab4 Merge pull request #2220 from xmxwx/telemetry_mod_14051_swapped
TELEMETRY_MOD=14051_SWAPPED
2015-04-26 11:26:46 +02:00
Bertrand Songis b589cd6289 Merge pull request #2228 from xmxwx/#2221
Fixes #2221 (LCD contents shifted upwards by 6 pixels on 9XR).
2015-04-26 11:24:31 +02:00
Damjan Adamic a82e07d191 Link error on VC++ 2015-04-26 08:34:33 +02:00
Damjan Adamic 4ff2a62f6c Merge pull request #2230 from opentx/griebd/fix_error_in_X_axis_ploting
Fix bug found in #2229
2015-04-25 21:15:35 +02:00
Grieb 647693909a Fix bug found by @projectkk2glider: X axis was messed up in fly sessions. 2015-04-25 14:11:52 -03:00
Damjan Adamic eac8c0a535 Fixes #2227: removed wrong check for SDL Audio initialization 2015-04-25 18:03:47 +02:00
Damjan Adamic 2a667d1d53 Proper SDL library initialization for Audio and Joystick subsystems (ported from master) 2015-04-25 18:03:47 +02:00
Andre Bernet df2318a45d Prevent mAh from becoming old when counting slowly 2015-04-25 19:33:49 +04:00
Andre Bernet b40b1dadff mAh needs persistent option 2015-04-25 19:23:18 +04:00
Andre Bernet 8dfa324fc6 Reinstate INCDEC_REP10 where useful 2015-04-25 18:57:28 +04:00
Andre Bernet bc83156a65 Fix TTS decimals to account for bigger number of units 2015-04-25 18:09:15 +04:00
Romolo Manfredini ed506d61a8 Better layout of general setup 2015-04-25 16:07:56 +02:00
Michał Wróbel 8e074aaafc Fixes #2221 (LCD contents shifted upwards by 6 pixels on 9XR). 2015-04-25 15:36:24 +02:00
Michał Wróbel 485edb579d TELEMETRY_MOD=14051_SWAPPED
TELEMETRY_MOD=14051 (by gerardv @ forum.turnigy9xr.com) makes USART0 available
by reallocating AIL and THR onto pins 14 and 15 of the 14051 multiplexer.

TELEMETRY_MOD=14051_SWAPPED is based on TELEMETRY_MOD=14051, but uses USART1
instead of USART0, freeing USART0 for other purposes (debugging, interfacing
via AVRISP port). USART1 is freed up by reallocating LVert Trim Dn/Up onto
14051's 12 and 1 pins respectively.

Additionally, this commit cleans a few things up:
 * moves AVR ADC-related code to adc_driver.cpp,
 * provides #defines to have a convenient way to access either USART0 or USART1
   registers depending on static (build-time) configuration
 * moves code related to this telemetry mod to board_stock
 * replaces a few magic numbers with enums.

Thanks to Bernard Songis for review and suggestions!
2015-04-25 14:25:34 +02:00
bsongis ba05538920 EEPROM save process unification on ARM boards 2015-04-25 11:09:09 +02:00
bsongis 5ed9bfcee9 Warning fix 2015-04-25 10:58:26 +02:00
bsongis becad53951 Cosmetics 2015-04-25 10:52:01 +02:00
bsongis 27005f57d5 Cosmetics 2015-04-25 09:06:08 +02:00
bsongis 627d3fcfd6 [Sky9x] EEPROM format changed to allow a recovery in case of EEPROM file
system error
2015-04-25 09:01:23 +02:00
bsongis 3cdcb0e203 [Sky9x] EEPROM code moved to driver 2015-04-25 08:16:01 +02:00
Bertrand Songis ef0e55bc10 Merge pull request #2225 from opentx/griebd/companion_batt_meter_range_on_next_2195
Add Battery Meter Range on Companion
2015-04-25 08:01:48 +02:00
bsongis dbd452aefd [Sky9x] EEPROM fixes 2015-04-24 22:32:23 +02:00
Grieb dc34596f2d [companion][general settings]Add Battery Range Meter to companion eepe General Settings. Fixes #2195. 2015-04-24 14:28:31 -03:00
Grieb ce2e8ac1ca [companion][general settings]Just cosmetcs (re-indent and spaces). 2015-04-24 12:13:51 -03:00
Bertrand Songis 62239aac0e Merge pull request #2223 from opentx/griebd/find_lupdate_executable_2222
[companion]CMake find QT lupdate. Fixes #2222.
2015-04-24 06:36:56 +02:00
Grieb df37e17b9d [companion]CMake find QT lupdate. Fixes #2222. 2015-04-24 01:06:03 -03:00
Jacek Drewniak 1ec20a71c1 Making pl.h.txt equal to en.h.txt of all IFDEFS and TR()s 2015-04-23 12:08:30 +02:00
Bertrand Songis 41f78440db Merge pull request #2215 from opentx/girebd/next_log_viewer_performance_2163
log viewer performance #2163
2015-04-22 06:49:01 +02:00
Grieb a1d9e31bac [companion][logsDialog]Removed some old comented out code. 2015-04-21 22:50:48 -03:00
Bertrand Songis 48913c4132 Merge pull request #2214 from opentx/driver33/PL_TR
Small fixes
2015-04-21 18:12:25 +02:00
Grieb da62ac501f [companion][logsDialog]A 50% improvement performance on open file. 2015-04-21 12:47:29 -03:00
Jacek Drewniak dfcca38596 Small fixes 2015-04-21 11:33:00 +02:00
Bertrand Songis df573ac99e Merge pull request #2209 from opentx/bsongis/sky9x_eeprom
EEPROM on Sky9x
2015-04-21 06:40:16 +02:00
Bertrand Songis 78b1c118c1 Merge pull request #2145 from opentx/bsongis/issue_1471_Lua_read_write_SD
#1471 - libio added to Lua. For tests, can be simplified and expanded
2015-04-21 06:39:59 +02:00
Andre Bernet 38452ca4d0 3pos mid pos delay only for 3pos switches 2015-04-20 20:52:51 +04:00
bsongis 74b546a9fa Ignore list updated 2015-04-20 18:21:54 +02:00
bsongis 8425024eb9 eepromCheck called inside eepromOpen 2015-04-20 18:17:57 +02:00
bsongis 2ed15a8388 [Sky9x] EEPROM format change
Addresses remarks from Mike about new EEPROM format
2015-04-20 18:08:04 +02:00
Bertrand Songis ee0b07040e Merge pull request #2211 from opentx/driver33/PL_Translation
a lot of new translation and fixes
2015-04-20 06:36:41 +02:00
bsongis 5c25d10622 [Sky9x] Translations added 2015-04-19 22:37:55 +02:00
Bertrand Songis 1964ac207c EEPROM on Sky9x 2015-04-19 22:37:55 +02:00
Jacek Drewniak 2a8c566e7e a lot of new translation and fixes 2015-04-19 21:02:13 +02:00
JivaroFAD c6cf0f915e Mega2560 LCD refactoring 2015-04-19 12:13:24 +02:00
bsongis b469bc5906 Problem when gauges telemetry screen empty 2015-04-18 11:02:06 +02:00
Grieb a341c7f4f2 [companion][logsDialog]Two recomendations from QCustomPlot for performance. 2015-04-14 15:52:45 -03:00
bsongis 905e3c7871 Fixes #2203 2015-04-14 19:26:04 +02:00
Grieb bf7c083590 [companion][logsDialog]Fixed last commit performance decrease when closing log viewer. 2015-04-14 14:18:07 -03:00
Grieb 5707e89ddd [companion][logsDialog]Improved, a bit, performance when opening a new log file. 2015-04-14 12:37:17 -03:00
Grieb 208f80f07e [companion][logsDialog]Updated qCustomPlot. Made fly sessions selection instantaneous. 2015-04-14 01:39:31 -03:00
Bertrand Songis e3bdffd051 Merge pull request #2202 from opentx/griebd/missing_tr_on_next_logsdialog_2201
Add missing tr() in logsDialog.cpp on next.
2015-04-13 21:07:34 +02:00
Grieb bc60135f86 [companion][logsDialog]Add missing tr(). 2015-04-13 09:58:04 -03:00
Bertrand Songis 2e1a47dc2a Merge pull request #2189 from universam1/LCD-ERC12864FSF
Add support for LCD ERC12864FSF
2015-04-12 22:51:39 +02:00
Damjan Adamic 8417aa5aae Merge pull request #2191 from opentx/griebd/log_viewer_on_next_1863
log viewer #1863 for next
2015-04-12 09:22:47 +02:00
Grieb ce29561184 [Companion][logsDialog]Forgot the translations. 2015-04-11 00:54:47 -03:00
Grieb e150310715 [Companion][logsDialog]Fixes for #1863 in next. 2015-04-11 00:49:26 -03:00
bsongis 6840b88337 [Taranis] Internal conversions fixed 2015-04-08 20:17:59 +02:00
Bertrand Songis 2a8155c61c TTS script updated (english only for now) 2015-04-08 19:24:35 +02:00
bsongis ae26f4c4d5 Cosmetics 2015-04-07 22:38:36 +02:00
universam1 170c589067 Add support for LCD ERC12864FSF
common replacement LCD needs different init data
2015-04-07 11:34:12 +02:00
Damjan Adamic 0f15828093 X9E: turn off top lcd and both backlights when powering off 2015-04-06 18:22:34 +02:00
Damjan Adamic 8f75c8a1e0 X9E power off fixed in case of constantly pressed power button 2015-04-06 18:12:59 +02:00
Bertrand Songis 17b16e4670 [Taranis] Asynchronous screenshots (to ensure the LCD will be fully
refreshed before doing the screenshot)
2015-04-02 23:06:11 +02:00
Andre Bernet 4e4be82875 ft/s unit added 2015-04-02 23:55:55 +04:00
Andre Bernet 7000d3bf82 Enable source popup in Play Value SF 2015-04-02 23:28:53 +04:00
Andre Bernet 96fa393954 Fix #2062 2015-04-01 09:45:43 +04:00
Bertrand Songis ad1506a97b [ARM boards] If I am not mistaken, the imperial conversions should work
automatically for meters/feet in Telemetry
2015-04-01 07:17:08 +02:00
bsongis 8dadb5346b Revert "[ARM boards] Imperial parameter removed"
This reverts commit 79e727a149.
2015-03-31 23:08:37 +02:00
bsongis 9886dede73 [Taranis] Saves around 800bytes RAM (the same space is used for
DSM2/PPM/PXX pulses on external module)
2015-03-31 22:35:13 +02:00
Andre Bernet 4d2b387098 Translation 2015-03-31 22:39:47 +04:00
bsongis 84fc2007f5 Lua f_open in "a" mode added 2015-03-31 20:39:46 +02:00
Andre Bernet ed1db975ea Force PREC0 for °F sensors to avoid breaking the conversion 2015-03-31 22:35:12 +04:00
bsongis 79e727a149 [ARM boards] Imperial parameter removed 2015-03-31 19:47:56 +02:00
Andre Bernet 75999c06d7 Distance unit needs to be configurable 2015-03-31 21:44:53 +04:00
bsongis 004fe01242 Cosmetics 2015-03-31 19:10:14 +02:00
Andre Bernet ad9c2e0818 Simu compilation 2015-03-31 20:34:02 +04:00
Andre Bernet 10d70e7d00 Merge branch 'next' into bsongis/issue_1471_Lua_read_write_SD 2015-03-31 20:04:39 +04:00
Andre Bernet 82d11abb2e Display trims problem (Fix #2157) 2015-03-31 19:21:11 +04:00
Andre Bernet 8b29aa1e9b Add multiplier to RPM sensor (Fix #1688), fix offset/ratio DSBs 2015-03-31 17:49:43 +04:00
Andre Bernet 4110de0e64 Fix shift on X9E 2015-03-31 17:48:10 +04:00
Andre Bernet 50fa9a4dfd [Companion] Telemetry sensor ratio/offset weren't imported 2015-03-31 16:14:37 +04:00
bsongis 4a9aa52f28 One less configure_pins, still a lot to remove :) 2015-03-31 07:53:43 +02:00
bsongis 80c5c2f5f7 [Companion] Hide items in Switches Lists rather than disable them 2015-03-30 23:09:55 +02:00
bsongis 70f84b5dad [Taranis Plus] Amber backlight was broken 2015-03-30 22:43:48 +02:00
bsongis fe71712b18 [Taranis] Trainer inputs were not working in mixers 2015-03-30 21:48:37 +02:00
Jim 459837d6f3 Fix for Issue 2090 on next 2015-03-30 11:24:38 -04:00
Andre Bernet 9a12963da9 Make version more obvious 2015-03-30 14:18:35 +04:00
Andre Bernet aa2542f9c0 Separate major companion versions - 2.1 part, copy settings the most recent prior installation found and store them separately, and install in OpenTX\Companion 2.1 to allow running both versions 2015-03-30 14:11:21 +04:00
Andre Bernet 37ed485282 Bad copy /paste in uninstaller section 2015-03-30 13:29:45 +04:00
Andre Bernet fb7629530f Leftover files when uninstalling 2015-03-30 11:00:56 +04:00
Bertrand Songis f68e297185 Merge pull request #2175 from dkisselev/fix-2129
Fix trim switch labels on 9X
2015-03-30 06:49:53 +02:00
bsongis 4e6bc9db2f [ARM boards] Haptic was broken on 'next' 2015-03-30 00:18:26 +02:00
Denis Kisselev b3d48bab49 Clean up trim switch labels across platforms and languages 2015-03-29 14:34:19 -07:00
Andre Bernet 16c04b5ef7 Merge pull request #2173 from mpaperno/telemetrysimu_add_fields_next
Companion/Sim: [next] Add more fields to telemetry simulator UI
2015-03-28 18:25:38 +04:00
maxpaperno 2e65466184 Fix missing ifdef. 2015-03-28 10:23:22 -04:00
maxpaperno f98b032477 Companion/Sim: Add more fields to telemetry simulator UI;
Allow using hex notation for values;
Don't send blank values.
2015-03-28 10:10:44 -04:00
Andre Bernet 8a9686716c GVARs added to source popup 2015-03-28 15:16:52 +04:00
Andre Bernet 531854dd97 Add source popup in telemetry screen settings 2015-03-28 14:37:56 +04:00
bsongis 3c7d70328a Fixes #2050 2015-03-28 10:01:20 +01:00
Andre Bernet 0e6d9d35d9 Switch warnings were broken on all platforms 2015-03-28 12:56:28 +04:00
Bertrand Songis 5dfb3ae75e Merge pull request #2170 from opentx/kilrah/switches
Fix switch handling on X9E, cleanup/harmonize code for all revisions
2015-03-28 09:38:41 +01:00
Andre Bernet 930fd7443e Companion UI support 2015-03-28 11:42:45 +04:00
Andre Bernet 19ff2d6f39 Missing switches in companion 2015-03-28 02:10:13 +04:00
Andre Bernet 26fdac072a Taranis only 2015-03-28 01:31:22 +04:00
Andre Bernet d8fa6beb83 Should fix gtest 2015-03-28 01:24:00 +04:00
Andre Bernet 95be0729cf Fix switch handling on X9E, cleanup/harmonize code for all revisions 2015-03-28 00:51:39 +04:00
Andre Bernet 2325b0ea50 Heli translations 2015-03-27 12:48:30 +04:00
Andre Bernet 41d4bad0cc Switch mode translations 2015-03-27 11:53:02 +04:00
Andre Bernet 9593021ee1 Switch availability fixes 2015-03-27 11:34:02 +04:00
Andre Bernet a9e42b30e9 About bitmap had been lost 2015-03-26 12:09:55 +04:00
Andre Bernet ba64077182 Restore splash during EEPROM load for Taranis 2015-03-26 11:25:56 +04:00
Bertrand Songis fa5b9eec83 Merge pull request #2167 from opentx/bsongis/telemetry_totalize
Bsongis/telemetry totalize
2015-03-25 18:44:31 +01:00
Andre Bernet 7507f1a857 ...but only for ARM 2015-03-25 21:09:05 +04:00
Andre Bernet 438090536b TTS for new units 2015-03-25 21:03:03 +04:00
Andre Bernet 0bea656cd2 Don't show ID for calculated sensors 2015-03-25 14:05:02 +04:00
Andre Bernet c778a4756f Missing units in companion 2015-03-25 11:58:24 +04:00
Andre Bernet e6b0a01165 Fluid units 2015-03-25 11:49:25 +04:00
Andre Bernet 47274050ed messed up )'s 2015-03-25 10:32:32 +04:00
Andre Bernet f7372000c5 Totalizer needs unit 2015-03-25 10:22:57 +04:00
Bertrand Songis 2eed25986d Merge pull request #2166 from jtaylor2/Issue_2164
Fix to allow Companion to compile on Windows using Cygwin (posix) Issue 2164
2015-03-24 22:37:49 +01:00
U-HP-dv7\Jim 56323a330e Fix to allow Companion to compile on Windows using Cygwin (posix) 2015-03-24 16:52:21 -04:00
bsongis a6e86089ec Telemetry totalizer started ... 2015-03-24 21:45:16 +01:00
bsongis ce38605c11 Cosmetics 2015-03-24 21:05:11 +01:00
bsongis 1236714c04 No DateTime or GPS in Inputs sources 2015-03-24 20:45:50 +01:00
bsongis 2b4fb9fbe2 Same problem with Input curve 2015-03-24 20:35:08 +01:00
bsongis fa898e19cd Input scale unit was wrong 2015-03-24 20:30:39 +01:00
Andre Bernet 2c204c8231 Translations 2015-03-24 22:52:24 +04:00
bsongis 8cb67d3e2c Ignore list updated 2015-03-24 19:49:56 +01:00
bsongis dea8de4ef0 getFileExtension must now always checked against to NULL 2015-03-24 19:43:58 +01:00
bsongis 9ccb7e672f Should fix the problem with the bootloader flash (file extension search
was wrong)
2015-03-24 19:41:33 +01:00
bsongis 0b7a85daa7 #1471 - Lua moved to thirdparty directory - io.seek added 2015-03-24 18:58:58 +01:00
bsongis 360356b7e4 [Taranis] Shift in telemetry sources allowed in Inputs 2015-03-24 18:38:44 +01:00
bsongis a75ff0187f [Taranis] New inputs / mixes created with a default weight = GV1 instead
of 100%
2015-03-24 18:27:53 +01:00
Bertrand Songis 2003d11f1c Merge pull request #2162 from opentx/kilrah/765_source_popup
Source category selection popup (Fix #765)
2015-03-24 16:43:55 +01:00
Andre Bernet b82e9d5400 Fix scrollbar 2015-03-24 10:54:00 +04:00
Andre Bernet a966408570 Martin's graphics 2015-03-24 10:39:30 +04:00
Andre Bernet 5d6e86e2ad Cosmetics 2015-03-24 10:05:27 +04:00
Damjan Adamic ca0c5c02b0 Re #2160: create only one timer for updateSdsyncAction() 2015-03-23 20:02:49 +01:00
Andre Bernet 372f6e6d7b Refactoring 2015-03-23 14:01:26 +04:00
Andre Bernet f59b8f961e Source popup menu 2015-03-23 13:32:43 +04:00
Andre Bernet 863a30a5ed Cosmetics 2015-03-23 11:24:10 +04:00
bsongis fa33924ec7 Preparation for 2.1 firmwares downloads 2015-03-22 22:02:11 +01:00
Andre Bernet f93dad845d Cosmetics 2015-03-23 00:08:13 +04:00
bsongis 566dfea9bd EEPROM shift fix 2015-03-22 20:55:00 +01:00
Andre Bernet 6f6257dec3 Cosmetics 2015-03-22 23:37:36 +04:00
Andre Bernet 319160c72f Merge pull request #2161 from opentx/kilrah/telemetry_enhancements
Kilrah/telemetry enhancements
2015-03-22 22:59:47 +04:00
Andre Bernet 9245d7038c Companion support for new flags 2015-03-22 22:40:31 +04:00
Andre Bernet 11ede465ac Cosmetics 2015-03-22 22:25:58 +04:00
Andre Bernet 916d462b5b Merge branch 'next' into kilrah/telemetry_enhancements 2015-03-22 22:00:34 +04:00
Andre Bernet 25a0463d2d Warning if all telemetry slots are full 2015-03-22 22:00:04 +04:00
Bertrand Songis d161866544 Merge pull request #2087 from opentx/bsongis/issue_2056_set_rtc_from_gps
Fixes #2056 - Needs tests!
2015-03-22 18:53:59 +01:00
bsongis 763f906244 [Taranis X9E] Bluetooth driver 2015-03-22 18:50:08 +01:00
Andre Bernet 7f6d77e441 Translations 2015-03-22 21:38:28 +04:00
Andre Bernet d9cc451338 RPM blades 2015-03-22 20:56:03 +04:00
Andre Bernet 91f5205c4f Auto Offset / Filter now independent 2015-03-22 20:13:18 +04:00
Andre Bernet f735597210 Support for multiple items with the same value (allows different units/flags) 2015-03-22 18:33:40 +04:00
Andre Bernet aced02f2bb Reset SF can now reset individual telemetry items (fix #161) 2015-03-22 17:58:14 +04:00
Michele 51500d4455 Fix telemetry sensor navigation 2015-03-22 13:56:02 +04:00
Andre Bernet 405567ac11 Compilation fix when RTCLOCK not defined 2015-03-22 13:17:47 +04:00
Andre Bernet 1b5543698b Fix X9E clocks 2015-03-21 17:41:58 +04:00
Andre Bernet 609f701f90 Time/date marked as invalid when sensor is old 2015-03-21 12:30:12 +04:00
Andre Bernet c3cc3bd7d2 Merge branch 'next' into bsongis/issue_2056_set_rtc_from_gps 2015-03-21 12:19:01 +04:00
Andre Bernet 7ab483d469 Improve GPS date/time display 2015-03-21 11:13:29 +04:00
Andre Bernet 4318d04707 Fix date adjustment, avoid setting time/date before GPS reception is good (GPS sends 0:0:0 0-0-0). Doesn't handle disconnection/reconnection of GPS module while radio is on, datetime.datestate and datetime.timestate should be reset when sensor is considered old 2015-03-21 11:12:19 +04:00
Andre Bernet edb080903b A-type SP2UART can also send analog values 2015-03-21 00:33:29 +04:00
Andre Bernet d54a0389ea Source list can now exceed 8bit range 2015-03-21 00:20:27 +04:00
Andre Bernet 02cbd9db6a Add A3/A4, Hide SP2UART data channel, translations 2015-03-20 23:38:46 +04:00
Andre Bernet 52d1a399be Align simulated telemetry sensor IDs to default real ones 2015-03-20 18:19:20 +04:00
Andre Bernet 81a14c1732 Instance numbers synced with FrSky servo channel changer, and displayed on telemetry page to ease choosing a new ID 2015-03-20 17:52:49 +04:00
Andre Bernet 21f8eb7e9d ZSTR for all languages 2015-03-20 16:58:00 +04:00
Andre Bernet 3afd10011a Fix #2152, Fix SWR value 2015-03-20 16:53:51 +04:00
Andre Bernet da2d821e22 Compilation fix 2015-03-20 16:07:58 +04:00
Andre Bernet 99e5576af3 [X9E] More obvious power off screen 2015-03-20 16:01:09 +04:00
bsongis dc7fcf0b95 Merge branch 'next' of https://github.com/opentx/opentx into next 2015-03-20 12:09:44 +01:00
bsongis a458c78dbe [Taranis] USB=MASSSTORAGE option again OK 2015-03-20 12:09:37 +01:00
Andre Bernet c756815ad2 Fix #2153 2015-03-20 14:49:58 +04:00
bsongis 5a2d373edd [Taranis X9E] 2.5s Timer with small graphics for Power OFF 2015-03-20 11:34:48 +01:00
Andre Bernet b80cc973fe Fix simu compilation, simu will now quit after a manual EEPROM reset 2015-03-20 14:17:34 +04:00
Bertrand Songis bf0a914471 Merge pull request #2151 from opentx/kilrah/factorydefault
Factory reset function (manual EEPROM format)
2015-03-20 00:53:13 +01:00
bsongis 4e1f04fa04 Fixes #2144 - Needs tests 2015-03-18 19:38:00 +01:00
Andre Bernet 9275158694 SWR present in simu (Fix #2146) 2015-03-18 21:06:17 +04:00
Andre Bernet 5442cc917b SWR added to preset sensors 2015-03-18 21:04:33 +04:00
Andre Bernet 827e1e2b43 Factory reset function (manual EEPROM format) 2015-03-18 20:23:20 +04:00
Andre Bernet ce2a278862 GVAR names not available for 9x in companion (Fix #2150) 2015-03-18 20:21:47 +04:00
martin 62ac99b52e CZ translations 2015-03-17 23:13:46 +01:00
bsongis c44a355573 Fixes #2056 - Companion part 2015-03-17 06:42:47 +01:00
bsongis 0886873f54 Fix for the bug projectkk2glider noticed, thanks! 2015-03-17 06:42:47 +01:00
bsongis 01e6c60cf5 Companion compilation fix 2015-03-17 06:42:47 +01:00
bsongis 2a3c5958ad Fixes #2056 - Needs tests! 2015-03-17 06:41:46 +01:00
bsongis d0db790e5e [MEGA2560] PWR OFF fix. Thanks André for the review! 2015-03-16 20:18:36 +01:00
bsongis 4e55213ae6 #1471 - libio added to Lua. For tests, can be simplified and expanded 2015-03-16 20:15:32 +01:00
bsongis 7863bb23b9 Script small error when given action is wrong 2015-03-16 19:03:54 +01:00
bsongis 51ea69edcd font2png script updated 2015-03-16 19:02:59 +01:00
bsongis 3a4c0799e3 Cosmetics 2015-03-16 19:01:44 +01:00
bsongis 85422d11d3 Ignore list updated 2015-03-16 18:58:11 +01:00
bsongis 76ff70b59f DE translations by Helle 2015-03-15 18:29:54 +01:00
bsongis b6b14d69f7 VC++ compilation fix 2015-03-14 22:58:18 +01:00
Andre Bernet 3edacafcf1 Fix detection of other language simulators 2015-03-15 01:21:27 +04:00
bsongis 07bbcce093 Mega2560 board simulation added 2015-03-14 21:55:36 +01:00
Andre Bernet d2ae29544e Simulator libs wouldn't be found on linux (works on Win too) 2015-03-14 23:58:18 +04:00
Andre Bernet 1abc93bc0f Optimize build and fix VC parallel build issues 2015-03-14 23:45:43 +04:00
Andre Bernet bdfa29d31c Standalone simulator uses user's documents folder to store eeproms again 2015-03-14 20:25:45 +04:00
bsongis c496bb0606 Compilation fix 2015-03-14 16:16:41 +01:00
Andre Bernet dbff381dc5 Merge pull request #2102 from opentx/bsongis/issue_1599_sport_update
Bsongis/issue 1599 sport update
2015-03-14 18:37:49 +04:00
Andre Bernet f2b29505ec Cosmetics 2015-03-14 18:37:31 +04:00
Andre Bernet 170acef7c9 Cosmetics 2015-03-14 18:31:17 +04:00
Andre Bernet 99169b6a45 Save/restore previous module power state after SPORT upgrade 2015-03-14 18:07:30 +04:00
bsongis 821a198e92 Compilation fixes 2015-03-14 14:56:59 +01:00
Andre Bernet 940543cd38 Fix SPORT update state machine 2015-03-14 17:33:23 +04:00
bsongis 2817866ad2 Directories FatFS / CoOS / STM32 libs moved to thirdparty 2015-03-14 11:56:24 +01:00
Andre Bernet 996433db81 Missing { 2015-03-14 14:55:25 +04:00
bsongis d885807c11 [Taranis] SPORT Rx must be OFF when Tx is ON (otherwise it receives what
it sends...)
2015-03-14 11:48:54 +01:00
bsongis 318fc79dfe Cosmetics 2015-03-14 11:36:10 +01:00
bsongis fdb48528f9 Fixes #1599 - SPORT devices firmware update 2015-03-14 11:34:35 +01:00
bsongis da0b422dce Cosmetics 2015-03-14 11:27:08 +01:00
bsongis 8700b93ccb Code refactoring 2015-03-14 11:19:20 +01:00
bsongis fe3cbab84f Cosmetics 2015-03-14 11:09:58 +01:00
Bertrand Songis d9ef482dc0 Compilation fixes 2015-03-14 11:08:18 +01:00
Bertrand Songis 04bb6b7835 Cosmetics again 2015-03-14 10:37:19 +01:00
Bertrand Songis 2cb536469f [ARM boards] Automatic initialization of trainer parameters with non 0
values
2015-03-14 10:27:49 +01:00
Bertrand Songis 74779cc525 Cosmetics 2015-03-14 10:26:05 +01:00
Bertrand Songis 9b6422b534 Ignore list updated 2015-03-14 10:12:06 +01:00
Bertrand Songis 9b07493152 Merge pull request #2142 from griebd/limit_special_characters_in_model_name_2122
Fix #2122 on next branch
2015-03-13 20:44:52 +01:00
Bertrand Songis 3c1e59a69d Merge pull request #2141 from griebd/linux_xsd_compile_error_2138
Fix #2138 on next branch
2015-03-13 20:44:05 +01:00
Grieb 51a8da252d Fix #2122 on next branch 2015-03-13 16:24:36 -03:00
Grieb 3aa857edd0 Fix #2138 on next branch 2015-03-13 16:04:58 -03:00
Andre Bernet 98c136eff7 Navigation fix 2015-03-11 20:14:05 +04:00
Andre Bernet 10e693475f Graphics fixes 2015-03-11 19:55:02 +04:00
bsongis 9e3ef837bb Google tests again ok (missing initialization) 2015-03-11 06:50:37 +01:00
bsongis a61a7228da [Companion] Latest changes taken into account 2015-03-10 22:58:51 +01:00
bsongis 8dfeb9826e [Taranis] Icons in Pots warnings removed (line too long) 2015-03-10 22:58:06 +01:00
bsongis 3063126d75 [Taranis X9E] Sliders configuration (LS2 and RS2 will be optional) 2015-03-10 19:20:16 +01:00
bsongis fb73547b8f [Taranis] PAGE key disabled once EXIT press in the middle of calibration 2015-03-10 19:18:52 +01:00
bsongis fd1d640b40 [Taranis] Now the trims in switches list 2015-03-09 22:38:58 +01:00
bsongis 3393d0f409 [Taranis] Now the trims ... 2015-03-09 22:35:13 +01:00
bsongis 711e8894f4 #2129 - It looks nice ... Let'add the switches now! 2015-03-09 22:25:06 +01:00
bsongis 5c9809555b Fixes #2129 - Only EN and FR done, I will leave the others to the
translators
2015-03-09 21:41:47 +01:00
bsongis e7071e26ea [Taranis] Disabled Pots skipped in ExpoOne menu 2015-03-09 21:41:47 +01:00
Andre Bernet 8b228e5291 X9E top LCD timer can't display more than 99:99 2015-03-10 00:24:56 +04:00
Damjan Adamic 37a6f83f1b Changelog links now open in external browser (ported from master) 2015-03-09 21:16:42 +01:00
Andre Bernet bda7fef6db Relics removed 2015-03-09 23:57:37 +04:00
Andre Bernet 24d67c44ea MENU key shortcut was broken on Taranis since approximately forever 2015-03-09 23:56:36 +04:00
Andre Bernet 4bd71c8a62 X9E in simu 2015-03-09 23:11:22 +04:00
bsongis 22582cefc7 [Taranis X9E] Shift in Pots Warn when POT4 is None 2015-03-09 20:08:49 +01:00
bsongis 7451a8f7cb Warning removed 2015-03-09 19:57:00 +01:00
Bertrand Songis 937d426cbd Merge pull request #2131 from opentx/projectkk2glider/issue_2123_lcd_buffer_overflow_for_next
Fixes #2123: lcd_bmp() could write outside the LCD buffer
2015-03-09 19:54:10 +01:00
Damjan Adamic 579e38ee0b Fixes #2123: lcd_bmp() could write outside the LCD buffer 2015-03-09 19:47:31 +01:00
bsongis b2e4ede68a [Taranis] Display trims translation error 2015-03-09 19:44:29 +01:00
Andre Bernet cb06202c66 Tiny switch warming navigation bug 2015-03-09 22:31:20 +04:00
bsongis aaaee8e694 [Taranis X9E] Switches warning problem with the 2 last switches (SQ and
SR)
2015-03-09 19:13:04 +01:00
bsongis 8d82ee2009 [Sky9x] Compilation fixed. Thanks Jenkins! 2015-03-09 19:04:02 +01:00
bsongis 76b1111cf7 French translations updated 2015-03-09 18:51:14 +01:00
bsongis 2e514565cc [Taranis] Possibility to rename a directory in SD Manager 2015-03-09 18:51:14 +01:00
bsongis 0eeb0437db [Taranis X9E] Pots and Switches full support. Removed 2x2 switches
feature
2015-03-09 18:51:14 +01:00
bsongis dd0d34ba14 [Taranis] REV3 board support removed 2015-03-09 18:51:14 +01:00
Kjell Kernen bbd0541f78 Brought the swedish OpenTX translation up to date. 2015-03-09 11:31:45 +01:00
Kjell Kernen 9db80e074a Translated all new and changed Companion strings into Swedish 2015-03-09 11:04:55 +01:00
bsongis cebb1d39d6 VC++ Compilation error 2015-03-08 09:15:09 +01:00
bsongis 850caf741a [Taranis X9E] Top LCD now working. Only timer can be configured (top
line)
2015-03-07 20:16:56 +01:00
bsongis 91ee3e8d46 Warning removed 2015-03-04 23:10:30 +01:00
bsongis fc2dd028b4 Warning fixed 2015-03-04 23:07:03 +01:00
Bertrand Songis fff8f5f67e Fixes for VC++ Companion compilation 2015-03-04 22:30:20 +01:00
bsongis 13999cc65e [Taranis X9E] Top LCD Initialisation. All segments should be ON after
this commit.
2015-03-04 22:03:15 +01:00
bsongis b0cc60ccb2 [Taranis X9E] PLL fix 2015-03-04 18:24:46 +01:00
bsongis 67e6490136 Copy/Paste bug in CoOs config 2015-03-04 18:06:42 +01:00
bsongis bce5d64f05 Try to fix VC++ compilation error 2015-03-04 06:53:36 +01:00
bsongis c4ed923ae1 Rotary encoder was going the wrong direction in contextual menus 2015-03-03 23:43:19 +01:00
bsongis 3bd1e52e49 [Taranis X9E] Audio now OK. I don't understand for now why this *2 is
needed though!
2015-03-03 20:55:49 +01:00
bsongis 01cd86f6f6 [MEGA2560/GRUVIN9X] Overflow in Custom Functions switch (no ON and One) 2015-03-03 20:14:23 +01:00
bsongis 4c0515ab91 [Taranis X9E] Fixes (frequencies on M4, pots calibration, soft power
delay after startup)
2015-03-03 20:14:23 +01:00
bsongis fffa39a286 [Taranis] Cosmetics 2015-03-03 20:14:22 +01:00
bsongis 38d865694a [Taranis X9E] Simulator segfault since new timers used 2015-03-03 20:14:22 +01:00
bsongis 8604faa23a [MEGA2560] Typo completely broking the simulator! 2015-03-03 20:14:22 +01:00
bsongis 9cb8bfb43d [MEGA2560] Missing permanent timers configuration 2015-03-03 20:14:22 +01:00
Damjan Adamic 04acd54a44 Fixed compiler error introduced in 92ceaa948c 2015-02-28 20:54:13 +01:00
Damjan Adamic 471f68beb9 Fixes #2002: Companion audio tracks not alphabetically sorted 2015-02-28 20:48:44 +01:00
JivaroFAD 92ceaa948c MEGA2560 update
Build option for Companion
Default LCD = ST7565P and not ST7565R
2015-02-27 18:35:39 +01:00
Damjan Adamic 41cd128ad5 Re #457: audio working in Companion, Simulator and simu using SDL library (use SIMU_AUDIO=YES to enable)
Re #457: case insensitive f_stat() and f_open() for SIMU
2015-02-22 15:49:15 +01:00
Damjan Adamic 434baf15c4 Re #2026: DISKIO_SIMU renamed to SIMU_DISKIO 2015-02-22 15:13:10 +01:00
bsongis 52a2df4215 Mega2560 docs moved 2015-02-22 15:03:48 +01:00
Bertrand Songis ab559f334b Merge pull request #2105 from davxlw/davxlw_mixers_monitor_next
Mixers monitor + build option
2015-02-22 11:39:00 +01:00
davxlw 47025a3ffc Mixers monitor + build option 2015-02-22 11:12:06 +01:00
JivaroFAD e23ff880d8 Mega2560 update
Bootloader now ok
2015-02-21 20:34:54 +01:00
bsongis 8c7f702310 [X9E] White backlight now OK 2015-02-21 10:48:01 +01:00
bsongis b494f66e89 [Taranis] Antenna problem not any more raised when no module enabled. To
be tested and ported to 'master'
2015-02-21 09:53:08 +01:00
Andre Bernet b66e7cc26f Merge pull request #2098 from opentx/bsongis/move_to_STM32F4
Bsongis/move to stm32 f4
2015-02-21 12:20:00 +04:00
Bertrand Songis 7fae34d38e Merge pull request #2093 from opentx/projectkk2glider/issue_2007_sdcard_full_for_next
Projectkk2glider/issue 2007 sdcard full for next
2015-02-20 22:12:15 +01:00
Damjan Adamic 0cfc484c0e Re #2007: fixed line endings 2015-02-20 22:03:44 +01:00
Damjan Adamic beaa59888e Re #2007: return FR_NO_PATH on f_opendir() failure (simulator) 2015-02-20 22:00:21 +01:00
Damjan Adamic 8e6b898ca1 Re #2007: Companion build error (thanks to Jenkins) 2015-02-20 22:00:21 +01:00
Damjan Adamic 9d777f799d Fixes #2007: Handle full SD card in openLogs(). SD card info menu implemented for Taranis, added display of free sectors. Disk IO simulation (all ported from master) 2015-02-20 21:59:24 +01:00
Bertrand Songis 9e65cd386b Merge pull request #2101 from opentx/projectkk2glider/ram_savings
Projectkk2glider/ram savings
2015-02-20 21:24:07 +01:00
Damjan Adamic 3ef447b714 Compilation failure (thanks to Jenkins) 2015-02-20 21:03:41 +01:00
Damjan Adamic 83dd03d654 failsafeCounter reduced to uint16_t (needed max value is 1000) 2015-02-20 20:36:21 +01:00
Damjan Adamic a5e8c85557 Interrupt stack size reduced to 1kB, enabled painting and display of free interrupt stack space 2015-02-20 20:36:21 +01:00
bsongis 5ec4dd499c Rotary encoder now running in the right directions 2015-02-20 19:41:05 +01:00
bsongis fcafb4d374 LCD, Power Button, Rotary Encoder now OK 2015-02-20 19:01:42 +01:00
bsongis 8047fcbd92 [Taranis X9E] Power button now ok. Needs a graphical improvement. 2015-02-20 19:01:42 +01:00
bsongis 5617c1eefa Vectors table was not correctly relocated on STM32F4 2015-02-20 19:01:42 +01:00
bsongis 9c3e331162 Compilation problem on STM32F4 2015-02-20 19:01:42 +01:00
Damjan Adamic 6bf0418520 Fixes #1834
Fixes #1848
2015-02-20 19:01:42 +01:00
bsongis 25e5f2ef81 Compilation fixes 2015-02-20 19:01:42 +01:00
bsongis 315934f8d0 Move to latest CoOS 2015-02-20 19:01:42 +01:00
bsongis b456b630b5 STM32F4 move started 2015-02-20 19:00:20 +01:00
Bertrand Songis 785a814e68 Merge pull request #2073 from opentx/bsongis/issue_1925_screenshots_on_taranis
Bsongis/issue 1925 screenshots on taranis
2015-02-19 23:42:26 +01:00
Damjan Adamic 673001ec15 Re #1937: added TARANIS_INTERNAL_PPM option to Makefile (this change was not ported from master in commit 76937ea566) 2015-02-18 21:06:08 +01:00
Damjan Adamic bc2dd3dc8b Re #2084: gests for Lua Inputs manipulation 2015-02-18 20:27:45 +01:00
Damjan Adamic b0277ed057 Re #2084: Lua model.getInput() now also returns switch 2015-02-18 20:25:27 +01:00
Damjan Adamic ab3114d164 Fixes #2084: index changed to unsigned for Lua mixer funcitons 2015-02-18 20:25:07 +01:00
Damjan Adamic 2b8374f418 Fixes #2084: Lua model.insertInput() could not add a line to an empty input or at the end of the existing input lines
Also added unsigned to various vars (ported from master)
2015-02-18 20:24:15 +01:00
bsongis 23c4712bbf Date+Time append to screenshots filenames 2015-02-17 19:57:20 +01:00
bsongis 3c4a23a3c6 Palette inverted 2015-02-17 19:57:20 +01:00
bsongis 20f69fc294 Missing translations 2015-02-17 19:57:20 +01:00
bsongis c343a80b1b Fixes #1925 2015-02-17 19:57:20 +01:00
bsongis 895bc26f77 Fixes #1925 2015-02-17 19:53:20 +01:00
bsongis ae16191e76 Constant MENU_TITLE_HEIGHT renamed to MENU_HEADER_HEIGHT 2015-02-17 19:50:03 +01:00
bsongis 8c95e02ceb Missing HELI translations 2015-02-17 18:52:52 +01:00
bsongis 8e37225eb9 Heli tests now OK 2015-02-16 06:46:22 +01:00
bsongis d4b2bd2142 Trims bug fixed 2015-02-16 06:40:10 +01:00
Bertrand Songis 1e76e24dd7 Merge pull request #2057 from opentx/bsongis/issue_2032_CCPM_on_taranis
Fixes #2032
2015-02-15 13:04:02 +01:00
JivaroFAD 946a854efc mega2560 update
Documentation
2015-02-14 20:17:37 +01:00
bsongis a132d4cdea Some files forgotten 2015-02-14 18:49:21 +01:00
bsongis 856317ee4f Some files forgotten 2015-02-14 18:35:14 +01:00
bsongis 88f85aef06 #2032 fixed 2015-02-14 17:22:33 +01:00
bsongis 4a9c87cc9c Fixes #2032 2015-02-05 22:25:13 +01:00
bsongis 7e9435c721 BT driver fixes 2015-01-31 18:34:08 +01:00
bsongis ce257527f3 BT Pins were not correctly defined in the driver 2015-01-31 15:01:21 +01:00
bsongis abe631b1eb BT driver added (I only converted Adela's one to STM32F2 and got rid of
FreeRTOS)
2015-01-31 14:20:56 +01:00
bsongis d7472c0b07 Companion compilation failure 2015-01-31 08:25:08 +01:00
bsongis 3a13f07e96 Compilation failure 2015-01-31 08:19:50 +01:00
bsongis 33dfcbe2f4 Makefile option for Timers count 2015-01-31 08:14:00 +01:00
bsongis be024051e7 Icons generation problem on Jenkins server 2015-01-30 08:21:26 +01:00
Bertrand Songis d8146bb71c Merge pull request #2048 from opentx/projectkk2glider/issue_2009_timers_refactoring_for_next
Fixes #2009: Timer Voice minute call not working for persistent timers
2015-01-29 21:40:49 +01:00
bsongis f67f0ffb1d Issue #1608 start - What do you think? 2015-01-29 21:39:52 +01:00
bsongis 2a0445e41e Cosmetics 2015-01-29 21:39:52 +01:00
martin 3c27d898de Taranis icons
mainview_setup is model specific
model_checklist is useless here, can be as an option for mainviews
instead of its own menu icon
2015-01-29 21:02:05 +01:00
Damjan Adamic 4f8df3b973 Fixed line endings 2015-01-29 19:31:01 +01:00
Damjan Adamic afc41f082e Fixes #2009: Timer Voice minute call not working for persistent timers
Timers moved to timer.cpp
Added timer overflow protection
Added timer gtests
THt mode now triggers on THR>10%
2015-01-29 19:26:54 +01:00
bsongis 76937ea566 Fixes #1968 - I ported the last changes from Damjan in the same time.
Please review (I push it anyway as there was a freeze before on startup
when radio in Slave mode)
2015-01-28 23:22:04 +01:00
bsongis a63bb7f9be Taranis navigation simplified (there was an unuseful line 0 - needed on
9x - in all menus which shifted everything).
2015-01-28 19:53:42 +01:00
bsongis db1de54314 Sanity check added 2015-01-28 19:36:28 +01:00
bsongis 15378b8f19 Fixes #2015 2015-01-28 19:34:38 +01:00
bsongis fa3891192c Fixes #2046 2015-01-28 06:59:47 +01:00
martin c63be24106 Taranis icons 2015-01-28 00:14:01 +01:00
bsongis d77bfae7aa Fixes #2040 2015-01-27 23:56:32 +01:00
Kjell Kernen 435d7a79b2 Finnish translation by Janne Huuskonen 2015-01-27 22:11:04 +01:00
bsongis 23b373f80c Sensors timeout simulated in SIMU mode 2015-01-26 18:58:24 +01:00
JivaroFAD 215af55a2e mega2560 update
new pcb for rotary encoders
2015-01-25 11:00:53 +01:00
martin c159e02706 Taranis icons 2015-01-24 19:43:37 +01:00
Damjan Adamic 1cccbac519 Fixes #2027: Deleting file on radio does not actually frees clusters (patch from upstream) 2015-01-23 18:49:07 +01:00
Damjan Adamic f131119ca1 Fixes #2034: ldc_line() was wrong for slanted lines 2015-01-23 18:12:33 +01:00
bsongis d6b67899ff message function moved to GUI directories 2015-01-23 12:56:36 +01:00
bsongis db722da7c5 Bug introduced in Text View (Taranis) 2015-01-22 22:49:29 +01:00
Bertrand Songis 90e7264a40 Merge pull request #2036 from opentx/bsongis/issue1924_file_copy_rename_in_sdmanager
Bsongis/issue1924 file copy rename in sdmanager
2015-01-22 22:41:45 +01:00
martin 975568b149 Taranis icons 2015-01-22 22:09:38 +01:00
bsongis 30e1d09584 Adresses comments in #2036 - Thanks to Damjan for the review! 2015-01-22 20:17:26 +01:00
bsongis c615a35e14 #define of GUI forgotten in Makefile and Companion 2015-01-22 07:19:27 +01:00
bsongis bf0f4cae13 More flash savings when GUI=NO 2015-01-22 07:08:22 +01:00
martin d129d6eefd Merge branch 'next' of https://github.com/opentx/opentx into next 2015-01-21 22:57:10 +01:00
martin 1b7b402c0c Taranis icons 2015-01-21 22:56:02 +01:00
bsongis c0c9b5ae83 Option GUI=NO added 2015-01-21 22:41:43 +01:00
bsongis e05b74b05c Compilation error 2015-01-21 21:33:48 +01:00
bsongis aca3d01adc #1924 fixed with rename function added. Code review needed, I also saved
2kb RAM here ... Needs more tests than only mine, thanks!
2015-01-21 21:23:29 +01:00
bsongis f8aa77a82d STM32F4 StdPeriph Lib added for Taranis X9E 2015-01-20 23:52:38 +01:00
bsongis bbae10fae1 #1924 - Copy function implemented on Taranis - Uses around 64bytes in
RAM
2015-01-20 21:48:14 +01:00
bsongis 4e9ac498d0 Encoding problem in license.txt 2015-01-18 23:42:22 +01:00
bsongis a90f9d4937 splash code moved 2015-01-18 23:17:43 +01:00
bsongis 51cd77b450 LCD files moved 2015-01-18 22:27:10 +01:00
Bertrand Songis 79b5d84221 Merge pull request #2029 from davxlw/davxlw_override_next
Typo correction
2015-01-18 22:11:12 +01:00
davxlw 46a52cad89 Typo correction 2015-01-18 20:51:56 +01:00
bsongis 2d51e2140b Create a new installer for simulator only 2015-01-18 14:47:12 +01:00
bsongis 64d4219bfb Files movement continued (GUI finished). I will do the same for LCD
functions where we have too many ifdef
2015-01-18 14:26:44 +01:00
bsongis 35207ce6f6 More files moved 2015-01-18 00:21:35 +01:00
Bertrand Songis 2eb3779a18 Merge pull request #2019 from davxlw/davxlw_lcd_puts_center_next
Little lcd_putsCenter correction
2015-01-17 09:54:06 +01:00
davxlw 51ba359330 Little lcd_putsCenter correction 2015-01-17 09:44:27 +01:00
Bertrand Songis d0ad644045 Merge pull request #2018 from davxlw/davxlw_SF_SetTimer_Format_next
Companion: Time format for Special Functions Set Timers
2015-01-17 09:38:05 +01:00
davxlw f9e959be33 Companion: Time format for Special Functions Set Timers 2015-01-17 09:32:11 +01:00
Damjan Adamic fcbe4572b8 Fixes #1997: firmware upload failed when "Check Firmware Compatibility" was selected (ported from master) 2015-01-14 19:23:12 +01:00
Damjan Adamic 27314d04cf Fixes #1996: Include simulator in linux package 2015-01-13 17:41:20 +01:00
JivaroFAD 55a7fbaa2e mega2560 update
SW rework
2015-01-10 20:42:32 +01:00
bsongis 1f6e7e2c2f Fixes #1992 2015-01-10 11:10:30 +01:00
bsongis f51d8e1b6c Files movement continued ... 2015-01-10 09:11:28 +01:00
bsongis bfeab1402c New bunch of files moved ... 2015-01-09 23:56:16 +01:00
bsongis 2d19692038 #1942 - Test inverted as requested by the majority ;) 2015-01-09 21:46:11 +01:00
Damjan Adamic a9dfcdfd68 Fixes #1981: Edge function INSTANT bug for V1>2s (ported from master) 2015-01-09 20:21:53 +01:00
Damjan Adamic b878dc6736 Fixes #1987: first pixel not drawn by Lua lcd.drawLine(), bmpLoad() last column not loaded for some bitmap widths, gtests added (ported from master) 2015-01-09 20:11:30 +01:00
Damjan Adamic 891109a89d Bootloader now uses NANO setting from the main Makefile (ported from master) 2015-01-09 20:07:55 +01:00
bsongis 217a41e1d9 Fixes #1775 - Review and tests needed 2015-01-09 16:02:15 +01:00
bsongis 507947c4f6 Fixes #1942 - Review needed, thanks! If it works it could be used in
some other places.
Conflicts:
	radio/src/gui/menus.h
2015-01-09 15:17:26 +01:00
bsongis 62ea9c2648 #1876 fixed. Still needs tests on Taranis (I only tested on Taranis+) 2015-01-09 12:50:03 +01:00
Bertrand Songis fac4ff10c3 Merge pull request #1988 from kh90909/pwm-bl-fix-next-branch
Port ATmega2561 PWM_BACKLIGHT fix from master branch
2015-01-09 08:47:11 +01:00
Ken a7179f5b77 Tested fix for PWM_BACKLIGHT on ATmega2561 MCUs
The functionality of timer0 and timer2 are switched between ATmega64/128
and 641/1281/2561. When compiled for ATmega2561, this commit sets up timer0
in the same way as timer2 on ATmega64/128 (phase correct PWM, clk/64 count
rate, inverted if SP22 is defined).

The previous quick fix had a typo in the initialization of TCCR0B (0b111 is
an invalid value for the clock select bits CS2:0). It also did not respect
the SP22 define which indicates the PWM must be inverted. Smartieparts
v2.2 or later programmer boards have an inverted backlight driver. Finally,
it is unnecessary to set DDB7 as it is already set in boardInit() (line
101).
2015-01-08 21:29:01 -05:00
bsongis fe500463fd Quick fix for #1970 - I don't have any 2561 for testing, I let you test
and fix if needed!
2015-01-08 21:29:01 -05:00
JivaroFAD 3f371493c2 mega2560 update 2015-01-07 21:20:24 +01:00
bsongis 6c0c52094a VC++ compilation failure 2015-01-07 07:15:54 +01:00
JivaroFAD b95b66e69e mega2560 update
Nearly the end... transmitter is built and works, the first fly is for
next we !
2015-01-06 22:45:58 +01:00
bsongis 286aa677d0 Macro added for functions definitions in the Lua LateX document 2015-01-06 21:59:17 +01:00
bsongis dd17eee876 Compilation fix 2015-01-05 20:34:10 +01:00
Damjan Adamic 5c26f16dff Debian package maintainer changed to Bertrand Songis <bsongis-nosp@m-gmail.com> 2015-01-05 20:20:18 +01:00
Damjan Adamic 348f686084 45-taranis.rules renamed to 45-companion-taranis.rules to solve the clash with the same file name from Companion9x debian package 2015-01-05 20:20:04 +01:00
bsongis 20122512cb Companion compilation fixes 2015-01-05 20:07:27 +01:00
bsongis 7a135a75c4 GUI files moved 2015-01-05 19:33:31 +01:00
bsongis cc1c121c1f Avoid building of all lbms for all targets after a make clean 2015-01-05 19:19:05 +01:00
Damjan Adamic 6620cfa2c3 #1466: XJT_VERSION_ID sending disabled until defined 2015-01-04 20:13:22 +01:00
Damjan Adamic 5037dff0d4 Re #1489, #1270, Re #1466: Allow only one instance of new dialogs 2015-01-04 20:07:39 +01:00
Damjan Adamic bb921a0a7f Ported from master to next:
#1489: TRACE() output intercepted and shown in Companion (shortcut F6)
#1270: simple Trainer Simulator (shortcut F5)
#1466: telemetry simulator (shorcut F5)
2015-01-04 20:07:39 +01:00
bsongis a2dc0040b0 Cosmetics 2015-01-04 17:33:34 +01:00
bsongis c50677881f Fixes #1961 2015-01-04 17:13:50 +01:00
bsongis 9e9b0ff77d VC++ compilation error 2015-01-04 16:25:41 +01:00
bsongis 006256bce8 Wrong window name 2015-01-04 16:22:37 +01:00
bsongis 9df46efcd8 Cosmetics 2015-01-04 16:18:38 +01:00
bsongis fb0df7d058 Compilation error fixed 2015-01-04 15:58:33 +01:00
bsongis 1d7740ef4c Fixes #1793 - cp won't work on some Linux distributions 2015-01-04 15:50:57 +01:00
mhotar 513dd347c3 Taranis icons #1608 2015-01-03 21:07:21 +01:00
Damjan Adamic d9f51d21f4 Typo in comment 2015-01-03 19:17:34 +01:00
mhotar f8c94315bd Taranis icons 2015-01-03 13:01:01 +01:00
Damjan Adamic e14797ecf0 Re #457: AUDIO_FILENAME_MAXLEN to small 2015-01-03 12:53:05 +01:00
bsongis 80840602c9 Display problem in Logical Switches screen (telemetry values) 2015-01-02 21:02:02 +01:00
bsongis 2a64ae3720 Logical Switches screen splitted for better maintainability ... 2015-01-02 21:02:02 +01:00
mhotar 742b79f977 Taranis icons 2015-01-02 20:38:56 +01:00
bsongis e5d3810b6e Compilation failure fixed 2015-01-02 19:23:36 +01:00
bsongis eef904e9d4 Fixes #1940 - Also adds a "stops" feature in checkIncDec that could be
useful in a next future
2015-01-02 19:19:02 +01:00
bsongis 74f8df3a55 #1876 - Companion now recognizes the radio type from the binary file 2015-01-02 19:00:35 +01:00
bsongis 40f496e7fb #1876 - Radio identifier added inside the firmware - it will help
Companion to recognize the radio type and avoid to flash a wrong
firmware.
Conflicts:
	radio/src/Makefile
2015-01-02 19:00:05 +01:00
bsongis c27392b454 Shift in switches display (on Taranis / Taranis+) 2015-01-02 12:02:31 +01:00
bsongis 6f9d1795db Fixes #1965
Conflicts:
	companion/src/modeledit/telemetry.cpp
2015-01-01 21:46:58 +01:00
bsongis ea6dd2c9c4 Fixes #1960 2015-01-01 20:16:27 +01:00
JivaroFAD 661657588e mega2560 update
schmatics
2015-01-01 18:06:13 +01:00
Damjan Adamic 56670fc212 Re #1963: fixes the case of power switch fast OFF->ON sequence. 2015-01-01 09:30:16 +01:00
Damjan Adamic 7b19afa96f Fixes #1964 and possibly #1963: TIM13 was used bootloader and delays.c, lcdInitFinish() was missing from lcdSetRefVolt(), simplified LCD init interface for Taranis, delaysInit() was missing from Bootloader 2014-12-31 18:54:37 +01:00
bsongis 9e434c49d5 First LateX doc, special thanks to Olivier ;) I only changed the
longtable columns, there was a margin issue in the nested tabular.
Linked to issue #1432. Comments appreciated!
2014-12-30 08:20:20 +01:00
Bertrand Songis 93403e6f9b Merge pull request #1944 from opentx/projectkk2glider/9xe_adc3_driver
Working ADC3 driver for 9XE additional analog inputs (driver source base...
2014-12-29 20:33:53 +01:00
Damjan Adamic eca81904d2 Merge branch 'next' into projectkk2glider/9xe_adc3_driver
Conflicts:
	radio/src/myeeprom.h
2014-12-27 16:20:14 +01:00
Damjan Adamic d6cc03bef6 Switches warning: limited display to first 6 wrong switches
getMovedSwitch(): was not working on 9XE (too many switches, uint64_t needed)
simu: mapped UP and DOWN keyboard keys
2014-12-27 15:41:03 +01:00
Damjan Adamic f69e6c174e Default changed to link with nano lib (NANO=YES), reduces opentx size from 340040 to 323056 bytes 2014-12-27 13:00:45 +01:00
Damjan Adamic 05cfad13ea Using nano lib reduces bootloader size for Taranis from 31880 to 31004 bytes. 2014-12-27 13:00:45 +01:00
JivaroFAD f3d6e0825e mega2560 update
schematic correction
2014-12-27 11:47:49 +01:00
JivaroFAD 03067344c9 mega2560 update
Kicad sch & listing
2014-12-23 23:07:25 +01:00
Damjan Adamic e4e8efec96 Fixes #1927: THt persistent timer running after model load (with Throttle at -100%) 2014-12-21 20:14:13 +01:00
Damjan Adamic 579834587b Re #1937: reverse polarity on external CPPM output (Taranis all) 2014-12-21 16:02:48 +01:00
Damjan Adamic dffdd2d6c5 Fixes #1800: suppress center beep for non-existing pots 2014-12-21 16:02:21 +01:00
Bertrand Songis 3043163468 Merge pull request #1938 from opentx/driver33/pl_translation_fixes
translation fixes, compilation successful
2014-12-21 00:12:19 +01:00
Damjan Adamic ebd44a0c22 Turn on back-light in LCD_BL_Config() for REVPLUS (normal Taranis already did this) 2014-12-20 18:57:43 +01:00
Damjan Adamic 6304679582 Working ADC3 driver for 9XE additional analog inputs (driver source based on Michael Blandford's code) 2014-12-19 20:16:23 +01:00
JivaroFAD 36ec97c5fb mega2560 update
option LCD
2014-12-18 22:28:27 +01:00
bsongis cf87849c5b LCD bugfix on EEPROM alerts. No more Splash if splash disabled 2014-12-18 19:11:06 +01:00
martin 1ee17dddbc Horus bitmaps 2014-12-17 22:37:33 +01:00
bsongis 5046f77cd9 Refactoring fixes 2014-12-17 20:13:25 +01:00
bsongis 567dcd74f0 Visual C++ compilation error 2014-12-17 07:14:31 +01:00
JivaroFAD 5ca286c171 mega2560 update
Junk pulses on PORTB_4 with SD-Card option
2014-12-16 22:29:10 +01:00
bsongis 8d812d5314 Compilation fix 2014-12-16 21:53:56 +01:00
bsongis 38a639cef6 Refactoring 2014-12-16 21:17:39 +01:00
bsongis 62b64862d8 Fixes #1918 2014-12-16 21:15:06 +01:00
Damjan Adamic e647c8623b Fixes #1919: Shortcuts keys for inverting values don't work correctly with GVs, disabled DBLKEYS for !ARM 2014-12-16 08:35:55 +01:00
Jacek Drewniak 319ad3a6aa translation fixes, compilation successful 2014-12-16 02:52:50 +01:00
Bertrand Songis 28db217a50 Merge pull request #1934 from opentx/projectkk2glider/issue1909_tab_order_2_for_next
Projectkk2glider/issue1909 tab order 2 for next
2014-12-15 21:27:20 +01:00
Damjan Adamic c80f050038 Reverted changes in burndialog.ui 2014-12-15 20:43:19 +01:00
bsongis 4394d18b13 MenuGeneral split - 2nd part 2014-12-15 20:39:06 +01:00
Damjan Adamic 62ca755d5b 2MHz timer was not working on Taranis 2014-12-14 21:48:15 +01:00
bsongis b781455b61 MenuGeneral split - part 1 2014-12-14 20:34:51 +01:00
bsongis d8d12f0185 MenuModel split - 8th part 2014-12-14 20:08:55 +01:00
bsongis 0305a948c8 ModelMenu split - 7th part 2014-12-14 20:05:19 +01:00
bsongis 221b28aafa ModelMenu split - 6th part 2014-12-14 19:10:22 +01:00
bsongis 8c68d1e6d1 MenuModel split - 5th part 2014-12-14 18:54:52 +01:00
bsongis 52b92604e3 MenuModel split - 4th part 2014-12-14 18:49:52 +01:00
bsongis 32c9dc95d6 MenuModel split - 3rd part 2014-12-14 18:44:49 +01:00
bsongis 849bf8fab3 ModelMenu split - second part 2014-12-14 18:14:58 +01:00
bsongis 5e5c207f1e ModelMenu split - started 2014-12-14 17:55:00 +01:00
Damjan Adamic 2ac04e60ae Re #1909: tabs fixed in .ui files 2014-12-14 16:41:42 +01:00
Damjan Adamic e9e9ef45a7 Re #1909: tabs fixed for Model Edit -> Setup tab 2014-12-14 16:41:13 +01:00
Damjan Adamic c6c0f530c8 Re #1909: tabs fixed for Radio Profile firmware options 2014-12-14 16:11:17 +01:00
bsongis 3428edcc90 Bigger screens preparation 2014-12-14 15:32:31 +01:00
bsongis 594856565a New script for generating a bitmap from any font, any size (with anti
aliasing)
2014-12-14 15:14:45 +01:00
Damjan Adamic 95462b75e6 Re #1835: fix for negative trim index 2014-12-14 14:17:46 +01:00
Damjan Adamic 0e39aaaf72 Fixed #1835: Issue with heli swash plate mixing (notrim) 2014-12-14 12:42:28 +01:00
Damjan Adamic d732bb836c Fixes #1869: Google Earth additional fields exported as strings, support for variable number of columns 2014-12-14 10:05:43 +01:00
Damjan Adamic 34a2ed0419 Re #1926: SMLSIZE last line drawn, gtests expanded with LCD character overlapped test 2014-12-14 09:08:17 +01:00
Damjan Adamic 2d8eacd629 Re #1926: Fixed SMLSIZE gtests 2014-12-13 20:37:59 +01:00
Damjan Adamic f18a46a2a1 Fixes #1926: Little display glitches 2014-12-13 20:27:53 +01:00
bsongis cb5e283d74 Fixes #1923 2014-12-12 18:12:32 +01:00
Bertrand Songis 6a83b846d5 Fixes #1921 2014-12-12 07:15:44 +01:00
Bertrand Songis b66096107f MEGA2560 board added to Companion 2014-12-11 21:11:19 +01:00
Bertrand Songis 5ddc741732 Merge pull request #1916 from parched/1907_Python_version_error
Fixes #1907
2014-12-11 20:49:22 +01:00
JivaroFAD 5aed69ff85 mega2560 update
Power management finalization
2014-12-11 19:47:44 +01:00
bsongis 4a4478cd2e Fixes #1915 2014-12-11 18:49:32 +01:00
bsongis f008e6ad88 Fixes #1879 - Tests needed (differential is now applied before
weight/offset), just like other curves
2014-12-11 07:26:10 +01:00
James Duley e41139a397 Fixes #1907 2014-12-11 13:36:58 +13:00
bsongis 91e52f82c6 Fixes #1908 2014-12-09 21:38:27 +01:00
JivaroFAD 602fcfe4a9 mega2560 update
trim rework
2014-12-09 19:52:38 +01:00
Bertrand Songis e3406e12f8 Merge pull request #1901 from opentx/projectkk2glider/issue_1017_key_stuck
Fixes #1017: Startup key stuck display
2014-12-09 19:04:44 +01:00
Bertrand Songis 2a73656865 Merge pull request #1912 from opentx/MEGA2560
Mega2560
2014-12-09 19:00:05 +01:00
bsongis 404b55c87f MEGA2560 update (all commits merged in only one) 2014-12-09 18:57:43 +01:00
bsongis 361fbd83dc A lot of warnings removed 2014-12-09 07:22:30 +01:00
bsongis f608985a54 Fixes #1903
Conflicts:
	companion/src/modeledit/customfunctions.cpp
	companion/src/modeledit/customfunctions.h
2014-12-08 23:14:00 +01:00
bsongis 65ff9dcefa Remaining trace 2014-12-08 21:40:47 +01:00
bsongis 7ee2f911a8 Companion didn't compile 2014-12-08 21:39:56 +01:00
bsongis 4c2c85fe9f MEGA2560 didn't compile correctly 2014-12-08 20:20:13 +01:00
Damjan Adamic 2c591e810d Bootloader rotary encoder working, added missing lcdRefreshWait(), only 783 bytes of FLASH left 2014-12-08 19:59:09 +01:00
bsongis d43a49d845 Fixes #1905 2014-12-08 19:46:38 +01:00
bsongis a9e64c3603 #1761 - Radio part done 2014-12-08 19:39:54 +01:00
bsongis 9dd572c191 Warnings removed 2014-12-08 19:12:12 +01:00
Bertrand Songis 8c9e5687f1 Merge pull request #1893 from opentx/projectkk2glider/lcd_dma_in_background
Projectkk2glider/lcd dma in background
2014-12-08 18:53:43 +01:00
Damjan Adamic 36a7d4732f luaDoOneRunPermanentScript() param optimization, todo for luaLcdLock() removal 2014-12-08 17:51:53 +01:00
Damjan Adamic 55f0781bc9 Lua task timing done in perMain() 2014-12-07 17:23:44 +01:00
Damjan Adamic f0cd4fbe8d Compilation fixes (thanks to Jenkins) 2014-12-07 17:12:51 +01:00
Damjan Adamic 62f2a321f2 Refactored luaTask() based on script type 2014-12-07 17:05:16 +01:00
JivaroFAD d5c6fade8f MEGA2560 update 2014-12-07 12:07:29 +01:00
JivaroFAD 5ce8b9bc47 MEGA2560 update 2014-12-07 11:26:35 +01:00
Damjan Adamic bf39981b1b Re #1017: key stuck removed for AVR platforms, fixed bug in wait 2014-12-07 10:47:26 +01:00
Damjan Adamic 6f46ef23da Do lcdWaitDmaEnd() in perMain() 2014-12-07 10:24:27 +01:00
Damjan Adamic f8203b72f7 perMainArm() renamed to perMain() 2014-12-07 10:12:26 +01:00
Damjan Adamic afedd86fae perMain() moved into main_avr.cpp and main_arm.cpp 2014-12-07 09:58:46 +01:00
Damjan Adamic e55b7504c3 Cosmetic changes (thanks to Bertrand's review) 2014-12-07 09:41:31 +01:00
Damjan Adamic e9f8b14f8b Bootloader for 9XE 2014-12-06 19:16:05 +01:00
Damjan Adamic 8854ccd231 Companion fix 2014-12-06 18:35:39 +01:00
Damjan Adamic f2ed441916 LCD_DUAL_BUFFER optional (speed vs RAM) 2014-12-06 18:19:32 +01:00
Damjan Adamic e4de0da0bb Fixed Companion build 2014-12-06 15:55:07 +01:00
Damjan Adamic 8aeb35c912 Refactoring continued: Try to run lua scripts before the first LCD function 2014-12-06 15:36:10 +01:00
Damjan Adamic fac8571c29 Refactoring of perMainArm(), hw specific stuff moved to targets 2014-12-06 13:13:51 +01:00
Damjan Adamic 5c8e8ebbe5 Separated perMain() for ARM and other platforms 2014-12-06 12:44:30 +01:00
Damjan Adamic 5ad4df344e Fixes #1017: Startup key stuck display 2014-12-05 20:45:54 +01:00
Damjan Adamic 5566439e76 Fixed simu build 2014-12-04 22:17:06 +01:00
Damjan Adamic 271dae71f7 Try to keep perMain() execution period of 20ms 2014-12-04 21:23:09 +01:00
Damjan Adamic 0d1362e476 Dual-buffer for LCD 2014-12-04 21:11:27 +01:00
Damjan Adamic e32da2ba4a No more waiting in lcdRefresh() for SPI transfer to finish 2014-12-04 20:13:42 +01:00
Damjan Adamic 1b4834b547 Another simu build failure (thanks to Jenkins) 2014-12-03 22:28:10 +01:00
Damjan Adamic c10ff3880b Simu build failure (thanks to Jenkins) 2014-12-03 22:11:28 +01:00
Damjan Adamic a539add020 Re #1875 and #1849: implemented LCD initialization for low temperatures. Initialization skipped in case of watchdog reset or boot-loader exit. 2014-12-03 21:14:07 +01:00
bsongis e19684063a Bitmaps splitted into different directories 2014-12-03 21:11:01 +01:00
bsongis 4a5f5432dd #1808 - Synchronization done. Still missing a nice progress dialog with
a cancel button.
2014-12-03 19:58:07 +01:00
bsongis c2d772cfd6 Fixes #1888 2014-12-03 18:40:26 +01:00
bsongis 9c0dc91667 Trims display parameter added to Companion 2014-12-02 19:16:37 +01:00
bsongis 22c2846992 Trims displayed on main view - related to #1419 2014-12-02 07:26:12 +01:00
bsongis 7302d1b9af Fixes #1884 2014-12-01 22:42:27 +01:00
bsongis fa963041ef Taranis X9E Simulator - with rotary encoder 2014-12-01 22:08:19 +01:00
Damjan Adamic de43ce71df Re #1881: notice displayed while saving model at radio shutdown 2014-12-01 19:31:25 +01:00
Damjan Adamic 7717348bf5 Fixed missing mutex unlock in FatFs f_close() and f_closedir() 2014-12-01 19:11:38 +01:00
bsongis 8177fb7f3b Fixes #1872 2014-12-01 18:56:03 +01:00
bsongis 845e9890bb 18 switches displayed on main screen, thanks Martin for the graphics and
font!
2014-11-30 22:53:05 +01:00
Bertrand Songis 5d926eeffd Merge pull request #1886 from opentx/projectkk2glider/9xde_rotary_encoder_take2
Rotary encoder emulates PLUS and MINUS keys on X9DE
2014-11-30 13:04:40 -08:00
Damjan Adamic 382e5a0eef Missing stuff 2014-11-30 19:56:33 +01:00
Damjan Adamic 9980d11740 Rotary encoder emulates PLUS and MINUS keys 2014-11-30 19:46:44 +01:00
bsongis 8419513318 Main View code splitted (Taranis / others) 2014-11-30 19:31:54 +01:00
bsongis b5d3922f41 Fixes #1872 2014-11-30 19:01:29 +01:00
bsongis f62c4ff3e1 Some more chars in 3x5 font added 2014-11-30 18:40:27 +01:00
Damjan Adamic b64d200c94 Back-light PWM frequency changed from 100 to 500Hz (LCD was flickering at lower light levels) 2014-11-29 19:21:40 +01:00
bsongis d64989baac All X9E switches now working 2014-11-27 23:09:14 +01:00
bsongis 18a1006d4b Fixes #1872 2014-11-27 19:04:58 +01:00
Damjan Adamic 3eac23dc39 Fixes #1874: Wrong clock configuration for CoOS on Taranis 2014-11-26 17:33:27 +01:00
bsongis e5006769be X9E Trims should now be ok 2014-11-25 23:42:06 +01:00
bsongis ea0d7577c8 This interrupt had his priority assigned 2 times with different values 2014-11-25 22:32:48 +01:00
bsongis dfa32b805b X9E added to Makefile, [ENTER] moved to PF0 2014-11-25 21:57:48 +01:00
Kjell Kernen 17d61ef300 Swedish translation of Companion. 2014-11-25 13:29:56 +01:00
Kjell Kernen 25bb624e36 Swedish translation of OpenTX FW strings 2014-11-24 13:56:31 +01:00
bsongis 978e9a260c Partly fixes #1861 2014-11-22 19:23:42 +01:00
Bertrand Songis ed6811ffce Merge pull request #1866 from opentx/bsongis/switches_configuration
Bsongis/switches configuration
2014-11-22 10:02:00 -08:00
bsongis a2c16302a4 Fixes #1867
Conflicts:
	companion/src/modeledit/logicalswitches.cpp
2014-11-22 14:36:56 +01:00
bsongis 50978c15c5 Companion switches / anas names configuration 2014-11-21 19:32:41 +01:00
bsongis 06437b2954 Switches configuration + Switches/Pots/Sliders/Sticks custom names 2014-11-21 18:22:13 +01:00
bsongis 59d72f93ce Fixes #1858 2014-11-21 00:01:03 +01:00
bsongis b492d43f73 Cosmetics 2014-11-20 23:22:43 +01:00
bsongis 1f76ea106a Fixes #1864 2014-11-20 23:22:27 +01:00
bsongis f2751979e6 Removes one warning here 2014-11-20 20:10:57 +01:00
bsongis b46b049ba3 Fixes #1834
Fixes #1848
2014-11-19 22:35:57 +01:00
bsongis a690352100 Fixes #1852
Conflicts:
	companion/src/firmwares/opentx/opentxeeprom.cpp
	companion/src/modeledit/customfunctions.cpp
2014-11-19 21:19:20 +01:00
bsongis 47067b9169 Fixes #1851 2014-11-19 19:48:06 +01:00
bsongis 317c4657be Mutex lock check added as suggested by projectkk2glider 2014-11-19 19:41:15 +01:00
Bertrand Songis aa037f28d9 Merge pull request #1855 from kylemanna/perms_fix
Fix Permissions
2014-11-19 19:36:53 +01:00
Kyle Manna da8160f1ff permissions: Remove execute bit from src files
* Remove the execute permission on all c, cpp, and header files.
* These files will never need to be executed.
2014-11-19 09:52:44 -08:00
Kyle Manna ad65a95f3e permissions: Remove execute bit from txt and ui files
* Remove the execute permission on all ui and txt files.
* These files will never need to be executed.
2014-11-19 09:52:44 -08:00
Kyle Manna 9c37ba7beb permissions: Remove execute bit from images
* Remove the execute permission on all png and bmp images.
* These files will never need to be executed.
2014-11-19 09:52:30 -08:00
bsongis b099a8bf2b Merge error 2014-11-19 07:52:29 +01:00
bsongis e322fba277 ioMutex removed 2014-11-19 07:34:52 +01:00
bsongis 72f58e0b0b Optimization mode always -Os 2014-11-19 07:31:41 +01:00
bsongis 82e2d5d809 #1834 - Switch to lastest FatFS 0.10c
Conflicts:
	radio/src/FatFs/ff.h
2014-11-19 07:28:08 +01:00
bsongis 5e530d12b3 Fixes #1850 2014-11-16 22:39:04 +01:00
bsongis 8eef4cd0bd #1850 2014-11-16 22:18:37 +01:00
Damjan Adamic 35eb25d46e Conditon was always true 2014-11-16 20:12:58 +01:00
Damjan Adamic ede1f7ff6f Fixed bmpLoad():
* added gtests
 * fixed various memory leaks
 * fixed wrong display of images with width < 8
 * fixed wrong display of images with odd width and/or height
2014-11-16 19:56:04 +01:00
Damjan Adamic 3449118e07 Enabled more complier warnings and removed one for Taranis. Other targets still have some warnings. 2014-11-16 19:51:49 +01:00
bsongis a3f712b3dc Fixes #1844 2014-11-15 20:02:52 +01:00
bsongis b79c4ea79e Better this value for Cells testing 2014-11-09 22:09:42 +01:00
Damjan Adamic b22e52ae6f Solution for Windows Companion compile problem (lua_exports) 2014-11-09 21:29:00 +01:00
Damjan Adamic 89a855380d Fixes #1839: Companion simulator Lua crash on Mac 2014-11-09 10:39:48 +01:00
bsongis b84799e845 Cells sensor unit is not modifiable 2014-11-09 00:52:22 +01:00
Bertrand Songis 327a5dcffa Merge pull request #1840 from opentx/bsongis/Telemetry_refactoring
Telemetry refactoring - Fixes #1634
2014-11-08 14:32:41 +01:00
bsongis 88d9691d16 Telemetry refactoring - Fixes #1634 2014-11-08 12:06:42 +01:00
Bertrand Songis 7d8ca6931b Merge pull request #1804 from opentx/projectkk2glider/bin_allocator_issue_1791
Fixes #1791: Port Lua Bin Allocator to next:
2014-11-08 11:27:41 +01:00
bsongis 82c21b8c56 In MixerDialog GVar checkbox for Curves was visible even when GVARS
disabled
2014-11-08 11:24:52 +01:00
Damjan Adamic 8a80463476 Re #1783: NOT curves removed from inputs (for non ARM platforms) 2014-11-08 11:24:51 +01:00
Damjan Adamic 525d956935 Re #1783: NOT curves exported incorrectly (for non ARM platforms) 2014-11-08 11:24:51 +01:00
Damjan Adamic 1c053a7d0b Re #1783: Companion shows too many curve types in input/mixer for 9x 2014-11-08 11:24:51 +01:00
Damjan Adamic fdeb15253d This enables build of Companion on OS X
Remove the check for arm-gcc version when doing Companion build
2014-11-08 10:16:58 +01:00
mhotar 98895aad30 Yerico icons are ready. Other themes will be later. #1808 2014-11-06 19:47:03 +01:00
bsongis 1c6f938723 Synchronization function for #1808 added. Still missing a button
somewhere to call it.
2014-11-05 07:29:26 +01:00
bsongis 227a565a4e Fixes #1829 2014-11-04 07:25:23 +01:00
bsongis aa28af6235 Add a new parameter "Use Global Functions" for model where they are not
needed
2014-11-04 07:25:23 +01:00
Bertrand Songis 13772429f9 Merge pull request #1828 from opentx/projectkk2glider/issue_1811_for_next
Fixes #1811: Companion 2.0.12 Gvar import error (for limits)
2014-11-03 23:57:00 +01:00
Damjan Adamic 1d72831364 Fixes #1811: Companion 2.0.12 Gvar import error (for limits) 2014-11-03 20:02:24 +01:00
Bertrand Songis fb070d8621 Merge pull request #1823 from opentx/projectkk2glider/issue_1731_for_next
Fixes #1731: Joystick calibration crash after channel assignment
2014-11-02 19:17:33 +01:00
Damjan Adamic 24e97a78af Fixes #1731: Joystick calibration crash after channel assignment
also additional fixes to stick postion mapping
2014-11-02 18:54:03 +01:00
Damjan Adamic 5dc38fffe3 Fixes #1815: Stick icons missing next to trim key states on switch diag page 2014-11-02 13:35:31 +01:00
Damjan Adamic 5680c8e580 Fixes #1737: virtual inputs not selectable in SF Volume and heli Collective Source 2014-11-02 12:58:43 +01:00
bsongis b671ba4e40 Change temporary version to 2.0.99 2014-11-02 10:34:15 +01:00
Bertrand Songis 3fdca6e51d Merge pull request #1821 from opentx/projectkk2glider/issue_1818_for_next
Fixes #1818: added Lua model.resetTimer() function
2014-11-02 10:01:39 +01:00
Damjan Adamic 22c7ec6a39 Fixes #1818: added Lua model.resetTimer() function 2014-11-02 09:31:31 +01:00
bsongis 884d762de8 Fixes #1805 2014-10-26 16:00:53 +01:00
Damjan Adamic c89381bae5 Fixes #1791: Port Lua Bin Allocator to next:
* Bin Allocator
* Lua memory allocaton fixes
* Simulator memory leak fixes
2014-10-26 09:14:45 +01:00
mhotar 56a4cf5d26 scrolling for weight/offset gauge for ARM and small LCD 2014-10-25 21:32:21 +02:00
Damjan Adamic e34ce57a3f Missing screenshots for previous commit 2014-10-25 20:07:26 +02:00
Damjan Adamic f53df98f70 Fixed buffer overflow in lcd_hlineStip() 2014-10-25 19:58:59 +02:00
Damjan Adamic d5eed897fd Fixed buffer overflow in bmp_load() 2014-10-25 19:35:52 +02:00
Bertrand Songis b6d1c13a5d Merge pull request #1802 from opentx/mhotar/weightoffsetgauge
offset and weight gauge for almost all boards #1780
2014-10-24 23:12:06 +02:00
mhotar cba90cb283 offset and weight gauge for almost all boards #1780 2014-10-24 22:22:09 +02:00
Bertrand Songis 60fc8c11b6 VC++ compilation fixes 2014-10-24 20:50:29 +02:00
bsongis f8ace16258 Mike's latest fixes on SBUS (size check) 2014-10-24 12:32:39 +02:00
bsongis aa4bf2f508 Fixes #1780 2014-10-24 12:23:03 +02:00
bsongis 2673ab9b8f Does SBUS trainer still have reboots with this fix? 2014-10-24 12:18:41 +02:00
bsongis 1066176b0f Fixes #1796 - needs tests on the nightly builds. Caution I removed the
lcd.lock() function completely
2014-10-22 20:39:19 +02:00
bsongis ed16ed9cc4 Little display problem for negative curves on 9X 2014-10-21 07:19:09 +02:00
bsongis 1dada04b66 SWR added in the firmware as an option (SWR=YES) 2014-10-19 22:53:43 +02:00
bsongis 2fd5140e46 SWR added for latest Taranis+ production 2014-10-19 22:35:05 +02:00
bsongis e130c54e47 Cosmetics 2014-10-19 22:34:55 +02:00
Andre Bernet fb6b158999 Merge error 2014-10-17 23:35:54 +04:00
Andre Bernet 0de8acd608 Fix receiver number range (Fix #1790) 2014-10-17 22:55:44 +04:00
Damjan Adamic ce303b2f4a Bug in numbering of Lua multiple fields (only in generated documentation file, all numbers were too small by 1) 2014-10-16 18:27:28 +02:00
bsongis 0b8963b15e Shutdown sound - bye.wav - A little bit related to #719 2014-10-15 23:27:18 +02:00
Damjan Adamic 6839c02aba Fixes for simu 2014-10-15 20:04:06 +02:00
bsongis 52040406a4 Cosmetics 2014-10-14 22:43:47 +02:00
Damjan Adamic 874156122d Re #1610:
* sport.log only active if SPORT_FILE_LOG=YES
* audio concurrent access fixes
* added IO mutex
* added Event Trace Buffer
* fixed SD card error

Conflicts:
	radio/src/Makefile
	radio/src/targets/taranis/diskio.cpp
2014-10-14 22:43:05 +02:00
bsongis c4c7fed727 It was possible to have the Limits contextual menu displayed in
READ_ONLY mode
2014-10-14 22:34:49 +02:00
bsongis 8354f4d842 Sky9x Coprocessor bug fix 2014-10-14 22:33:34 +02:00
bsongis c53e85b702 Sky9x binary was built with the bootloader present on disk (was not
removed by make clean). So 99% it was a Taranis bootloader.
2014-10-14 22:33:25 +02:00
bsongis 35ba4b68b1 Companion bug in model import fixed (after changing radio in the same
session)
2014-10-14 22:32:58 +02:00
bsongis a26c83bd30 Fixes #1785 2014-10-12 19:42:58 +02:00
Bertrand Songis e35eb2029d Merge pull request #1757 from opentx/mhotar/cz_inputs
Mhotar/cz inputs
2014-10-06 21:55:46 +02:00
Bertrand Songis a062bda7d0 Merge pull request #1756 from opentx/driver33/PL_TR_fix
Translation fixes
2014-10-06 21:54:06 +02:00
Damjan Adamic f8e6fd7b2d Fixes #1755 (on next branch): LUA get/setTimer(): inconsistent timer struct 2014-10-05 14:54:29 +02:00
bsongis e234180f43 Note added to Companion: if you have a Taranis that has not had the
firmware upgraded to 2.0 then this version of Companion will not work
2014-10-03 16:37:08 +02:00
mhotar df44114903 merge conflicts 2014-09-29 22:09:26 +02:00
mhotar f639e4aab4 cz tts.py updated 2014-09-29 21:38:14 +02:00
Jacek Drewniak 11e7b86ce7 Translation fixes 2014-09-29 21:19:54 +02:00
Bertrand Songis 4e8ef3185c Merge pull request #1753 from opentx/bsongis/New_trainer_modes
Bsongis/new trainer modes
2014-09-29 11:04:52 +02:00
bsongis e73b0120cc New trainer modes added in Companion 2014-09-29 09:01:13 +02:00
bsongis 908b54d14b Translations updated 2014-09-29 08:12:42 +02:00
bsongis d7eb8eb0a9 Now SBUS / Battery compartment works! 2014-09-29 07:47:08 +02:00
bsongis f57444f1cb Master/SBUS Module now working 2014-09-29 07:47:08 +02:00
bsongis 440cd6a162 New trainer modes:
- Master / SBUS module
- Master / CPPM module
- Master / SBUS in battery compartment
Thanks to Mike for this feature!
2014-09-29 07:47:08 +02:00
bsongis 3aaa4b014b Conversions shift fixed 2014-09-29 07:44:02 +02:00
Bertrand Songis f1429cd8e0 Merge pull request #1751 from opentx/projectkk2glider/issue_1657_vario_limits
Fixes #1657:
2014-09-28 21:45:58 +02:00
bsongis f71cf21a02 Warning removed 2014-09-27 22:08:27 +02:00
Damjan Adamic be20e91314 Re #1696: fixed incorrect display of "<" and ">" characters 2014-09-27 19:44:49 +02:00
Damjan Adamic 2fb2590579 Fixes #1657:
* corrected varioLimitCenterMin range
* removed varioLimitMinOff checkbox (it is not used anymore in any radio)
2014-09-27 19:00:26 +02:00
JivaroFAD 9327cffbe6 RotaryA ok
Interrupts 0 and 1 changed to 4 and 5
2014-09-26 16:37:37 +02:00
JivaroFAD 1c24ef3c45 mega2560 RotaryB ok 2014-09-25 00:35:53 +02:00
bsongis b26187f759 Fixes #1630 - Thanks to projectkk2glider for his pull request #1738 - I
only added a google test
2014-09-24 12:07:15 +02:00
JivaroFAD f39650bf16 MEGA2560 update 2014-09-21 20:26:19 +02:00
bsongis 37e6819a57 Fixes #1740 - not tested on hardware 2014-09-21 10:46:46 +02:00
bsongis 8032d6ee66 Constructors called on static objects - I really need them now :) 2014-09-20 13:02:20 +02:00
Damjan Adamic 80eb34cea2 Fixes #1714: getting radio setting of imperial or metric in lua 2014-09-20 11:33:48 +02:00
Damjan Adamic 7497be4d28 Fixes #1649: added getDateTime() in lua which returns current date and time 2014-09-20 11:23:33 +02:00
mhotar 5ecb2f2305 No special character in CZ names of Inputs. 2014-09-20 01:44:06 +02:00
bsongis e4bb750c1f Fixes #1735 2014-09-19 20:19:55 +02:00
bsongis ef7bbea285 Global Functions now integrated inside Companion - Fixes #502 2014-09-18 15:32:55 +02:00
bsongis 343e395652 GeneralEdit class splitted as done previously for ModelEdit 2014-09-18 11:44:09 +02:00
bsongis 2f8b9347a4 Global functions (only Firmware) - saves 20bytes flash on 9X stock 2014-09-18 11:44:09 +02:00
bsongis 5173907efd Fixes #1727 2014-09-18 08:35:33 +02:00
bsongis 555a529a9b Fixes #1725 2014-09-16 20:08:23 +02:00
Bertrand Songis 79f7c83c24 Merge pull request #1724 from opentx/driver33/PL_Fix
some fixes
2014-09-16 19:08:45 +02:00
Jacek Drewniak cf2372d139 some fixes 2014-09-16 19:00:37 +02:00
bsongis c234b72d05 Inversion of S3 on Taranis+ (S3 should be wired as S2) - Issue #1716 2014-09-16 17:15:40 +02:00
Andre Bernet 1424667ff3 S2 inverted on T+ (Fix #1716) 2014-09-16 17:15:32 +02:00
bsongis 99e87050f3 Overflow on OverrideCHxx functions on ARM boards (range is now
-150:+150)
2014-09-15 18:50:23 +02:00
bsongis 93d2837dee #1647 - bitmap set/get added to the Lua interpreter 2014-09-15 18:50:11 +02:00
bsongis 829567a2c1 #1647 - getCurve exported to the Lua interpreter 2014-09-15 18:49:58 +02:00
bsongis 74252f787b Fixes #1633 2014-09-15 15:47:46 +02:00
bsongis 6c5d53194a S.PORT logs traced in sport.log when SPORT_FILE_LOG=YES taken from #1644 2014-09-15 12:30:37 +02:00
bsongis c751e3e4cd Makefile typos from #1644 2014-09-15 12:23:12 +02:00
bsongis 141e8322ec SD access part from #1644 2014-09-15 12:19:19 +02:00
bsongis 6190c399c5 Fixes #1709 2014-09-15 11:51:18 +02:00
bsongis 9ec17f6e68 Fixes #1669
Conflicts:
	radio/src/gui/view_main.cpp
2014-09-15 11:32:09 +02:00
bsongis 0ac40ab41f Automatic Model conversion problem on ARM boards (v216 to v217) 2014-09-15 10:57:54 +02:00
bsongis 4b9287ef8a Fixed last merge round 2014-09-15 10:28:34 +02:00
bsongis 31a7f877c9 MEGA2560 simu compilation now ok 2014-09-15 10:20:18 +02:00
bsongis b6824e772a Fixes #1656 - Throttle Source everywhere (english and french) 2014-09-15 10:20:07 +02:00
bsongis bdb8e0ef44 No THR warning when a new model is created / the wizard is called 2014-09-15 10:19:56 +02:00
bsongis 22ec446d16 Added NANO option in Makefile (default: NANO=NO) 2014-09-15 10:19:46 +02:00
bsongis 329458e138 Fixes #1715
Conflicts:
	radio/releasenotes.txt
2014-09-15 10:19:35 +02:00
bsongis a7831d68db This luaFree is not needed and could do a mess in RAM 2014-09-15 10:17:38 +02:00
mhotar f6a99f23c9 CZ translations - Companion 2014-09-15 10:17:19 +02:00
mhotar 6306c9da27 CZ translations - Radio
Conflicts:
	radio/src/translations/cz.h.txt
2014-09-15 10:16:31 +02:00
bsongis f705adde02 Companion compilation failure (missing files) 2014-09-15 10:14:00 +02:00
bsongis ea122610ef LTR patch (modified) applied. Saves around 8-10k RAM during the
interpreter initialization
Conflicts:
	radio/src/Makefile
	radio/src/lua.cpp
	radio/src/lua/src/linit.c
2014-09-15 10:12:57 +02:00
bsongis fff69c74f4 Tests added to avoid doing anything in the Lua interpreter after a Lua
Panic
2014-09-15 10:07:24 +02:00
mhotar e05a16988f No special characters in edit fields for CZ language, but enabled in internally defined strings.
It fixes autogenerated Input names.
2014-09-15 10:06:20 +02:00
bsongis 871e9f0be3 Revert some last changes so that there is no problem with Lua
Conflicts:
	radio/src/Makefile
	radio/src/opentx.cpp
2014-09-15 10:05:55 +02:00
bsongis 47499e9e7d Fixes #1656 2014-09-13 18:16:22 +02:00
bsongis 4f5a2ab884 Fixes #1675 2014-09-12 12:37:30 +02:00
bsongis 2237de99ed Mega2560 target didn't compile 2014-09-12 08:32:57 +02:00
Andre Bernet 36660505d2 SG switch warning was unreachable on Taranis 2014-09-10 20:13:40 +02:00
Andre Bernet 125e2539b6 On Taranis S3 was only hidden when the cursor was in the pot positions line 2014-09-10 20:06:41 +02:00
bsongis 9ee3da4a59 Compilation failure 2014-09-10 20:06:04 +02:00
bsongis 1f77806017 #1692 - We flush the queue instead of stopping the audio (the TADA sound
is cut otherwise)
2014-09-10 20:05:54 +02:00
bsongis 5254c553b2 Fixes #1697 2014-09-10 20:05:42 +02:00
bsongis f584766fc7 The Lua Wizard was broken in 2.0.11 2014-09-10 15:35:53 +02:00
bsongis e22c658ee9 Small alignment problem in protocols on 9X/9XR 2014-09-10 12:15:47 +02:00
bsongis a5296ca3c6 Fixes #1692 2014-09-10 12:15:38 +02:00
bsongis 50e7b9b7af Fixes #1566 2014-09-10 12:15:22 +02:00
bsongis 11ae62cff9 Navigation bug in protocol selection (9X/9XR only) 2014-09-10 12:15:09 +02:00
bsongis 651b1247fb Fixes the neutral value for PXX as described in #1694 2014-09-10 12:14:59 +02:00
bsongis 40d705af15 Fixes #1695 2014-09-10 12:14:41 +02:00
bsongis a60876f259 Fixes #1690 2014-09-10 12:14:25 +02:00
bsongis ace4ae07a8 Little display bug in DEBUG page 2014-09-10 12:13:46 +02:00
bsongis 46cd5eeb87 Simu compilation failure 2014-09-06 12:59:43 +02:00
bsongis 23b2602f41 [Sky9x] Linker error (no newlib-nano needed, no _sbrk) 2014-09-05 17:54:12 +02:00
bsongis 056d915d37 Added DEBUG information (thanks again projectkk2glider!)
Conflicts:
	radio/src/opentx.cpp
2014-09-05 17:54:12 +02:00
bsongis 500602e8cc Fixes #1643 - Thanks to projectkk2glider for his help on this one
Conflicts:
	radio/src/lua.cpp
	radio/src/opentx.cpp
2014-09-05 17:54:12 +02:00
Bertrand Songis 04f9eb5c0f Update DONATIONS.txt 2014-09-05 15:35:00 +02:00
bsongis 2cc432344b Compilation failure 2014-09-05 08:43:33 +02:00
Damjan Adamic df56b94135 Fixes #1666: fixed bootloader 2014-09-03 23:37:05 +02:00
Damjan Adamic 3dcf40b596 Fixes #1666: Missing constructor calls for static objects 2014-09-03 23:05:34 +02:00
bsongis 78f8b60f85 Menus refactoring (idea taken from er9x). Saves around 200bytes flash on
9X stock
2014-09-03 19:07:12 +02:00
bsongis f865af2cbe tasks.cpp added to deal with OpenTX tasks on ARM 2014-09-03 19:07:12 +02:00
Bertrand Songis 544449c499 Merge pull request #1664 from opentx/projectkk2glider/ram_savings
Saved 872 btyes of ram by moving variables to code
2014-09-02 15:28:18 +02:00
Damjan Adamic e506a001bf const language packs (can't be const in simu (linker can't find it)) 2014-09-02 10:18:17 +02:00
Damjan Adamic 13a1c5ca39 const APBAHBPrescTable
const splash_lbm
removed fnSwitchDuration
2014-09-02 10:14:26 +02:00
Damjan Adamic aa4ba74e1a added const (Audio) 2014-09-02 10:12:40 +02:00
Damjan Adamic a3d9ec8a65 added const (USB) 2014-09-02 10:07:22 +02:00
Bertrand Songis 9f8a908ff5 Update DONATIONS.txt 2014-09-02 07:09:47 +02:00
bsongis 0a86153843 SBUS 2014-09-01 15:15:26 +02:00
Bertrand Songis d4e64d9c2b Update DONATIONS.txt 2014-09-01 09:44:51 +02:00
bsongis 43f8e13c14 Fixes #1656 2014-09-01 09:44:22 +02:00
bsongis 8562bee9c1 Copy/Paste error on second serial port Rx 2014-08-31 22:46:36 +02:00
Bertrand Songis 4eebdfb39d Update DONATIONS.txt 2014-08-31 20:51:31 +02:00
bsongis 69b5f2fddf Fixes #1658 2014-08-29 23:06:53 +02:00
Bertrand Songis 419f133fb1 Update DONATIONS.txt 2014-08-29 21:31:59 +02:00
Bertrand Songis 81e8c8a519 Update DONATIONS.txt 2014-08-29 16:23:35 +02:00
bsongis 5ead4d8582 Fixes #1655 2014-08-29 16:03:46 +02:00
bsongis 6195f5ecc1 Fixes #1646 2014-08-29 11:53:41 +02:00
bsongis 3e1825aa54 Fixes #1651
Conflicts:
	radio/src/lua.cpp
2014-08-28 21:56:06 +02:00
bsongis 174cc164c5 Companion part for #1646 2014-08-28 21:03:15 +02:00
bsongis e620230e44 STAY replaced by EDGE in constants names 2014-08-28 21:03:15 +02:00
bsongis c107a1bc8e Fixes #1650 2014-08-28 21:03:15 +02:00
bsongis c2166c8a67 Fixes #1646 2014-08-28 21:03:15 +02:00
Bertrand Songis adacee2060 Update DONATIONS.txt 2014-08-28 13:54:19 +02:00
mhotar a5836fdc28 CZ translations 2014-08-28 01:24:55 +02:00
bsongis b0cf67a97e Fixes #1643 - no more freeze but now I have to understand why we go over
4k there
2014-08-27 23:45:15 +02:00
bsongis 784ec0f05a Fixes #1635 2014-08-27 23:15:34 +02:00
bsongis 0bfb1da97f [9X] Display problem of the battery range 2014-08-27 20:41:40 +02:00
bsongis f8d043b75f Compilation error 2014-08-27 15:39:13 +02:00
bsongis 18ec9006af lua_fields.txt removed 2014-08-27 15:33:16 +02:00
bsongis 03039a1c5a [9XR-PRO] Telemetry fix 2014-08-27 15:30:12 +02:00
bsongis bb7b37de62 lua_fields.txt removed from git as it is automatically generated 2014-08-27 12:26:03 +02:00
bsongis 92d17c7a86 Fixes #1621 2014-08-27 10:22:30 +02:00
bsongis 1f8b3725c4 [Companion] Servos limits are displayed in us if ppmus option selected 2014-08-26 16:51:55 +02:00
bsongis 1721fd635e Fixes #1596
Conflicts:
	companion/src/firmwares/opentx/opentxeeprom.cpp
More EEPROM saving in Mixes
2014-08-26 11:57:58 +02:00
Bertrand Songis 2f3664145d Update DONATIONS.txt 2014-08-26 10:16:11 +02:00
Bertrand Songis 1e82290d25 Update DONATIONS.txt 2014-08-25 20:46:26 +02:00
bsongis 46a5ea1377 RSSI initialization added in google tests 2014-08-25 11:51:47 +02:00
bsongis b2ed6e3e0d Fixes #1617 2014-08-25 11:35:35 +02:00
bsongis 18ebb79f20 Fixes #1636 2014-08-25 11:29:08 +02:00
bsongis 3e31f33b64 Bug in menus scroll system (not needed in master) 2014-08-25 11:28:50 +02:00
bsongis 9050cd64b1 Cosmetics 2014-08-25 11:28:50 +02:00
Damjan Adamic 4971820f40 Re #1547: commit 5949be30fa disabled delay for STICKY (which was wrong) now disabled for EDGE 2014-08-25 10:51:27 +02:00
Bertrand Songis af4c0c7aab Merge pull request #1624 from hrenz/patch-5
Update de.h.txt
2014-08-24 23:45:06 +02:00
Bertrand Songis 3a6a7540f1 Update DONATIONS.txt 2014-08-24 22:16:50 +02:00
Damjan Adamic 98e352b8e3 Fixes #1622: Lua function script not called for SF >= 8 2014-08-23 18:29:38 +02:00
Damjan Adamic 1e3f3fe029 limit.name was missing from 07fe45ec5f 2014-08-23 18:11:22 +02:00
Damjan Adamic 69aef74036 Fixes #1626: forgot Companion part (thanks Jenkins) 2014-08-23 17:27:16 +02:00
Damjan Adamic 8d49b1076b Fixes #1626: Enable the Lua bit32 library 2014-08-23 17:14:06 +02:00
bsongis 07fe45ec5f [Taranis] PPM Center will now have a bigger range [-500:+500] 2014-08-21 21:41:21 +02:00
Damjan Adamic b5c63e339f Added generation of Lua fields documentation file: lua_fields.txt 2014-08-21 10:00:40 +02:00
bsongis 4d84ba4c19 LCD refactoring - saves 6 bytes on 9x stock 2014-08-20 22:29:45 +02:00
Bertrand Songis 749afc103e Update DONATIONS.txt 2014-08-20 12:58:57 +02:00
bsongis d6639aec3d New donations, thanks! 2014-08-18 14:19:22 +02:00
bsongis 1454eff428 Fixes #1092 - Chronos names 2014-08-18 14:17:59 +02:00
bsongis 2d43ecdd05 Companion installer new name 2014-08-18 14:14:39 +02:00
Andre Bernet c373642686 French translation fix 2014-08-17 19:00:31 +02:00
hrenz 46d856ab57 Update de.h.txt
only line 482 483  changed
Filesafe Optinos Text
2014-08-17 18:01:11 +02:00
Kjell Kernen e01e0efebd German OpenTX translation from Helle 2014-08-17 12:21:10 +02:00
Damjan Adamic d77de08a68 gtests corrections: Timer3 addition changed source values 2014-08-16 18:03:07 +02:00
bsongis e89c920c4e Fixes #1612 2014-08-16 11:38:00 +02:00
bsongis 18748b4d6a SWR hidden on Taranis+ 2014-08-16 11:37:59 +02:00
bsongis 5cbfcc45a4 Timer3 added in sources 2014-08-16 11:37:59 +02:00
bsongis 7714c5779f 24bits for timers should be enough 2014-08-16 11:37:59 +02:00
Kjell Kernen 906a20738b German Companion translation by Helle 2014-08-15 15:37:10 +02:00
Kjell Kernen 8164fe4f07 German OpenTX translatin from Helle 2014-08-15 15:35:25 +02:00
Bertrand Songis 77fae410ad Merge pull request #1544 from opentx/projectkk2glider/tx_time_optimization
RTC time related optimizations
2014-08-14 21:39:35 +02:00
Bertrand Songis 6e754e9d30 Merge pull request #1597 from opentx/projectkk2glider/lua_new_features
Projectkk2glider/lua new features
2014-08-14 21:39:14 +02:00
Bertrand Songis 5bdea6ed26 Merge pull request #1531 from opentx/mhotar/trims
Mhotar/trims
2014-08-14 21:36:50 +02:00
Bertrand Songis 9ae66c0fb5 Update DONATIONS.txt 2014-08-14 21:13:20 +02:00
bsongis 4cb598bcaa Fixes #1228 2014-08-13 12:48:12 +02:00
bsongis 36481471a3 Fixes #1595 2014-08-13 11:37:03 +02:00
Bertrand Songis dd08886f2c Update DONATIONS.txt 2014-08-10 19:20:33 +02:00
Bertrand Songis 76ef4b5948 Update DONATIONS.txt 2014-08-10 19:19:41 +02:00
Damjan Adamic 3152ac1121 Fixes #1532: added Lua playTone() 2014-08-09 20:24:21 +02:00
Damjan Adamic c813cacb1b (reverted from commit fd3790519a) newlib-nano on my comp has a malloc/free bug, memory gets used but not freed 2014-08-09 20:19:01 +02:00
Damjan Adamic e13f2913df Fixes #1540: added Lua playDuration() 2014-08-09 18:04:48 +02:00
Damjan Adamic 07728782c8 Fixes #1538: Lua playFile(): current language sound path added to the file name in case of a relative path 2014-08-09 17:37:04 +02:00
Damjan Adamic fd3790519a new compile option NANO=YES triggers usage of newlib-nano when linking ARM code. 2014-08-09 17:05:17 +02:00
Bertrand Songis eaa247f46d Update DONATIONS.txt 2014-08-08 22:44:53 +02:00
Damjan Adamic ee2a23c19d Optimization: less gettime() calls 2014-08-08 20:35:27 +02:00
Damjan Adamic 43598fb6df Optimization: removed usage of gettime() where possible 2014-08-08 20:33:35 +02:00
bsongis 3ada9f7cf5 Companion PrintDialog bugfixes 2014-08-08 18:08:42 +02:00
bsongis 10a5e4dc89 Fixes #1527 2014-08-08 17:05:12 +02:00
bsongis 50e4850745 Fixes #1580 2014-08-08 16:29:13 +02:00
bsongis a92de216ac Fixes #1585 2014-08-08 11:48:03 +02:00
bsongis 3f3708f0f1 Fixes #1546
// TODO check if the vario / background music are stopped correctly if
switching to a model which doesn't have these functions enabled
2014-08-08 11:19:04 +02:00
Bertrand Songis 72c433ce9d Update DONATIONS.txt 2014-08-06 20:58:31 +02:00
Damjan Adamic f123b69521 Fixes #1548: bad Swedish Cell translation 2014-08-05 20:35:16 +02:00
Bertrand Songis 80369f0e8f Update DONATIONS.txt 2014-08-05 10:56:27 +02:00
Kjell Kernen 8cd67bf31e Swedish OpenTX translation updated 2014-08-05 10:38:24 +02:00
Kjell Kernen 34ef060e16 Swedish Companion translation updated 2014-08-05 10:24:09 +02:00
Bertrand Songis 1f07f88dce Update DONATIONS.txt 2014-08-04 14:32:05 +02:00
Bertrand Songis 4db5bdd486 Update DONATIONS.txt 2014-08-04 12:03:46 +02:00
bsongis 05ac0682f0 Fixes #1583 2014-08-04 12:02:50 +02:00
bsongis f12c3072b5 Fixes #1579 2014-08-04 11:54:35 +02:00
bsongis 35aea83c89 Fixes #1582 2014-08-04 11:38:39 +02:00
bsongis cf9b5d05a8 Fixes #1568 2014-08-04 11:29:35 +02:00
bsongis d5393be5cb Fixes #1584 2014-08-04 11:20:07 +02:00
Bertrand Songis 10c9936fa0 Merge pull request #1586 from opentx/projectkk2glider/issue_1567
Projectkk2glider/issue 1567
2014-08-04 11:08:00 +02:00
Bertrand Songis 7a74d3ac85 Update DONATIONS.txt 2014-08-04 10:57:23 +02:00
bsongis 39edaff669 Problems with S3 on Taranis (not plus) 2014-08-04 10:19:31 +02:00
bsongis c5aed5f79b Companion MAC compilation fix 2014-08-04 10:01:32 +02:00
bsongis 9b07a77e14 #1566 Companion conversion issue when importing Logical Switches with a
stick as v1 or v2 in previous EEPROM
2014-08-04 10:01:32 +02:00
Bertrand Songis 380fe5e44d Update DONATIONS.txt 2014-08-04 09:58:11 +02:00
Damjan Adamic 8bd2c120d6 Re #1567: cleanup 2014-08-03 19:27:02 +02:00
Damjan Adamic 741ef45f3e Re #1567:
introduced generateProcessUniqueTempFileName() which is used everywhere we need temporary file
renamed unlink() into qunlink()
fixed missing deletion of curve pngs in print dialog
2014-08-03 19:21:46 +02:00
Damjan Adamic 4103adf75d Re #1567: introduced unlink() function that takes QString parameter 2014-08-03 18:03:13 +02:00
Damjan Adamic c0e612531d Re #1567: writeBackup(): added PID to temporary file name 2014-08-03 17:38:24 +02:00
Damjan Adamic 55cb5dce87 Re #1567: readEeprom():
* added PID to temporary file name
 * better error message
 * temporary file deletion
2014-08-03 17:38:24 +02:00
Bertrand Songis 12ba27247e Update DONATIONS.txt 2014-08-02 09:41:10 +02:00
Bertrand Songis 1e33e99655 Update DONATIONS.txt 2014-08-01 07:43:31 +02:00
Damjan Adamic 50acd1fd92 Expanded non regression tests for #1569 2014-07-31 20:23:11 +02:00
bsongis c3626225aa Non regression tests for #1569 2014-07-31 17:24:10 +02:00
Bertrand Songis b71a96ed55 Update DONATIONS.txt 2014-07-31 16:43:23 +02:00
Bertrand Songis d2fcd544d8 Merge pull request #1576 from opentx/projectkk2glider/dirty_hack_issue_1569
Projectkk2glider/dirty hack issue 1569
2014-07-31 16:06:55 +02:00
Damjan Adamic 50997721e2 Using anas instead for getValue 2014-07-31 15:57:50 +02:00
Damjan Adamic 828372ab29 Fix for the case of extended trims
Code cleanup
2014-07-31 15:47:32 +02:00
Damjan Adamic 21ae270c0e Fixes #1569 2014-07-31 15:08:37 +02:00
bsongis 1b2efd1121 Fixes #1572 2014-07-31 11:26:05 +02:00
bsongis 8d6a7c9495 Simu name fixed 2014-07-31 11:22:41 +02:00
bsongis 189becfbb2 Fixes #1569 2014-07-31 11:22:18 +02:00
Bertrand Songis 5a19e147fd Update DONATIONS.txt 2014-07-30 07:45:00 +02:00
Bertrand Songis 062f93ae38 Update DONATIONS.txt 2014-07-28 23:41:37 +02:00
bsongis 9861a08150 Fixes #1562 2014-07-28 21:02:42 +02:00
Bertrand Songis de15d0a5a4 Update DONATIONS.txt 2014-07-28 18:54:56 +02:00
Andre Bernet 1e77bb3c02 French translations 2014-07-27 18:40:16 +02:00
bsongis adadbe06ad Fixes #1559 2014-07-27 17:37:39 +02:00
Andre Bernet 92f2c48de9 French translation fix 2014-07-27 17:31:06 +02:00
Bertrand Songis 1d4fa2a8b0 Update DONATIONS.txt 2014-07-26 22:27:25 +02:00
Bertrand Songis 5493776b9c Update DONATIONS.txt 2014-07-26 19:48:32 +02:00
bsongis b166b77c3e New french TTS prompts 2014-07-26 19:47:40 +02:00
Bertrand Songis 0ecb978364 Update DONATIONS.txt 2014-07-26 19:14:46 +02:00
Bertrand Songis c8d792d3d8 Merge pull request #1556 from opentx/driver33/PL_TR
TR fixes
2014-07-26 12:24:22 +02:00
Jacek Drewniak e9663e40e2 TR fixes 2014-07-26 11:51:23 +02:00
bsongis a7e906dea9 All other Off are uppercase! 2014-07-25 23:30:19 +02:00
Bertrand Songis 685ab3d101 Update DONATIONS.txt 2014-07-25 22:25:49 +02:00
Bertrand Songis 77564d74a4 Merge pull request #1554 from opentx/MicheleVilla/IT_translation_FW
Update it.h.txt
2014-07-25 19:38:14 +02:00
Bertrand Songis a0142d65be Update DONATIONS.txt 2014-07-25 19:29:08 +02:00
bsongis 662bf15562 Fixes #1555 2014-07-25 19:28:08 +02:00
Bertrand Songis 79b928af56 Update DONATIONS.txt 2014-07-25 17:10:32 +02:00
Bertrand Songis 8c28f4bc48 Update DONATIONS.txt 2014-07-25 15:06:16 +02:00
bsongis 7a4d6c89a1 2.0.9 preparation 2014-07-25 12:05:34 +02:00
bsongis 38347becca Cosmetics 2014-07-25 12:05:34 +02:00
Michele 49036dbb40 Update it.h.txt
One change in Italian translation
2014-07-25 11:58:05 +02:00
Bertrand Songis abf36de157 Update DONATIONS.txt 2014-07-25 08:41:56 +02:00
bsongis 32afbf5a5a Fixes #1552 2014-07-25 08:39:41 +02:00
bsongis cba4a02cc1 Fixes #1551 2014-07-25 07:31:58 +02:00
bsongis 4062555605 FAI option tooltip updated (too many users select it without knowing
what it means)
2014-07-24 21:02:15 +02:00
bsongis 9cb38ce839 Companion default firmware is now OpenTX for Taranis 2014-07-24 20:51:31 +02:00
Bertrand Songis 905090ef09 Update DONATIONS.txt 2014-07-24 14:44:59 +02:00
Bertrand Songis 62e5820082 Update DONATIONS.txt 2014-07-24 12:07:18 +02:00
bsongis 2d21e16201 In Companion Wizard, Delta Wing has now 50% weight on elevons (as in
OpenTX Wizard)
2014-07-23 19:19:10 +02:00
bsongis 07303f4301 Taranis calibration better fix 2014-07-23 18:23:24 +02:00
bsongis 91228f803c snprintf undefined on VC++ 2014-07-23 18:02:46 +02:00
bsongis e5d7e1f7c2 Taranis calibration bug 2014-07-23 17:55:02 +02:00
bsongis 81573537eb Fixes #1549 2014-07-23 17:09:55 +02:00
bsongis 7a85328b86 #1549 (Firmware part) 2014-07-23 17:05:14 +02:00
bsongis fd84c62ff4 Dead code removed 2014-07-23 16:31:20 +02:00
bsongis 13e0b21656 The firmware should compile correctly on Windows now 2014-07-23 15:55:27 +02:00
bsongis 5949be30fa Fixes #1547 2014-07-23 15:46:51 +02:00
bsongis 0117c2da68 Fixes #1259 2014-07-23 15:15:26 +02:00
bsongis 943f70c599 OpenTX 2.0.8 preparation 2014-07-22 17:27:33 +02:00
Bertrand Songis 52a48fc4b1 Update DONATIONS.txt 2014-07-22 17:04:17 +02:00
Damjan Adamic 2712ffabb0 Re #1486: gtest improvements in Lua section 2014-07-22 11:39:36 +02:00
Bertrand Songis fa8c8a7094 Update DONATIONS.txt 2014-07-22 07:44:49 +02:00
bsongis 5907193571 Fixes #1543 2014-07-21 23:21:35 +02:00
bsongis 45abfb872f Fixes #1486 2014-07-21 22:25:55 +02:00
bsongis 4d5962b15b Fixes #1533 2014-07-21 20:41:57 +02:00
bsongis eea1c3a84c SAFETY renamed to OVERRIDE 2014-07-21 20:38:44 +02:00
bsongis deed7fc20f Curve index is correctly resetted when its type is changed 2014-07-21 20:23:56 +02:00
bsongis 62fca3f8b6 Fixes #1534 2014-07-21 20:09:39 +02:00
bsongis 9377e58407 Change Lua field name from vario-speed to vertical-speed 2014-07-21 19:22:40 +02:00
bsongis 9b53f69038 Fixes #1535 2014-07-21 19:15:24 +02:00
Bertrand Songis 3680149b52 Merge pull request #1529 from opentx/projectkk2glider/lua_constants_issue_1480
Projectkk2glider/lua constants issue 1480
2014-07-21 19:12:06 +02:00
Bertrand Songis 93faeeafbe Update DONATIONS.txt 2014-07-21 18:34:39 +02:00
Damjan Adamic 2d5d1cb357 Re #1480: couple corrections of field names 2014-07-21 12:04:08 +02:00
Damjan Adamic 2a5364dc8c Re #1480: wrong field.id for multiple fields 2014-07-21 11:51:30 +02:00
bsongis 7f47a4fe10 Fixes #1542 2014-07-20 18:51:24 +02:00
Bertrand Songis a0cc428228 Update DONATIONS.txt 2014-07-19 13:15:16 +02:00
Andre Bernet 61985f7d6a All companion translation files updated 2014-07-19 12:26:49 +02:00
Andre Bernet 3baf64f123 French translations 2014-07-19 12:26:10 +02:00
Andre Bernet 4fd40c154e Rename of "SafetyCH" to "OverrideCH" was not done in companion - UPDATE SERVER SCRIPT! 2014-07-19 12:22:32 +02:00
Andre Bernet 3c360618b9 nosafetych option was duplicated for 9x 2014-07-19 12:19:07 +02:00
Andre Bernet 1d96731ad5 Typo 2014-07-19 12:09:34 +02:00
Andre Bernet 9d1d31d26a lupdate-qt4 is just lupdate on Win 2014-07-19 12:09:04 +02:00
Bertrand Songis 0b52ccfaf1 Update DONATIONS.txt 2014-07-19 07:41:55 +02:00
bsongis 484566083e A little refactoring to avoid all the sprintf and too many string
comparaisons. Completely untested
2014-07-18 22:13:02 +02:00
Bertrand Songis 0f33dc6113 Update DONATIONS.txt 2014-07-18 18:49:59 +02:00
mhotar afad17be7e exttrim sign added #1419 2014-07-18 14:05:45 +02:00
Damjan Adamic 7f3778fc3c Re #1480: units updated 2014-07-18 10:41:16 +02:00
Damjan Adamic 0a9dcc5ce6 Re #1480: added TELEM_MAX_ASPEED conversion in luaGetValueAndPush() 2014-07-18 10:41:16 +02:00
Damjan Adamic 2f01f139cc Re #1480: Cosmetics 2014-07-18 09:07:36 +02:00
Damjan Adamic fb3e615008 Fixes #1480: How to handle the increasing number of Lua constants 2014-07-18 08:59:38 +02:00
mhotar 5ee76f57cc Merge branch 'mhotar/trims' of https://github.com/opentx/opentx into mhotar/trims 2014-07-18 01:34:59 +02:00
mhotar d32484406e trim marks showing direction #1419 2014-07-18 01:30:10 +02:00
Bertrand Songis ce6d0807fa Update DONATIONS.txt 2014-07-17 23:14:29 +02:00
Bertrand Songis cab8f3db71 Update DONATIONS.txt 2014-07-17 08:53:18 +02:00
bsongis 399a8b2e35 Fixes #1517 2014-07-16 20:27:05 +02:00
bsongis 3d4a791940 Timers display bug on main view 2014-07-16 19:27:08 +02:00
bsongis 7373ce2cae Better fix for model backups import 2014-07-16 19:07:09 +02:00
Bertrand Songis 5da1e35efe Update DONATIONS.txt 2014-07-16 14:54:42 +02:00
bsongis fe5b7bee8c Fixes #1516 2014-07-16 14:53:36 +02:00
bsongis 2da1134796 Quick & dirty fix to allow open of backup models from Taranis 2014-07-16 14:52:46 +02:00
Damjan Adamic 83e47d9e35 Typo in german translation for "Änderungen" 2014-07-16 10:37:20 +02:00
Damjan Adamic f0c76efaf7 Re #1506 - FAS offest was limited to +-1.5A in Companion, now +-12A (same as radio) 2014-07-16 09:30:44 +02:00
Bertrand Songis 2fe7d856c3 Update DONATIONS.txt 2014-07-16 08:16:13 +02:00
bsongis a7c1f22b36 Missing reference screenshot for 128x64 Smlsize test 2014-07-15 23:47:20 +02:00
bsongis d92620919b SMLSIZE last row missing 2014-07-15 23:14:02 +02:00
Bertrand Songis 94bb21886b Update DONATIONS.txt 2014-07-15 23:13:17 +02:00
bsongis 5db98a3fef SMLSIZE last row missing 2014-07-15 23:03:48 +02:00
Bertrand Songis 763c7fbb7d Update DONATIONS.txt 2014-07-15 22:11:05 +02:00
bsongis b2d1a4ed22 Fixes #1506 - There was an EEPROM shift in vario settings ... 2014-07-15 16:04:26 +02:00
bsongis e7211065ab Function duplicated 2014-07-15 16:04:26 +02:00
bsongis 68b8b0e38f make clean didn't remove lbm files on Windows (because find doesn't work
correctly)
2014-07-15 16:04:26 +02:00
bsongis 644c833311 Inverted DBLSIZE was one row too big on Taranis 2014-07-15 16:04:26 +02:00
bsongis 30b1f62e99 Fonts improvement on 9XR-PRO / Sky9x 2014-07-15 16:04:26 +02:00
Bertrand Songis 03aa787c8e Update DONATIONS.txt 2014-07-15 14:01:51 +02:00
bsongis 79592d3b00 Fixes #1506 2014-07-15 13:27:05 +02:00
Bertrand Songis 7ed527a328 Update DONATIONS.txt 2014-07-15 13:15:09 +02:00
bsongis 3e0766f2bf Missing sticks reset in google tests (stick position reused in next
tests)
2014-07-15 09:19:22 +02:00
bsongis 71e7926045 Release notes updated #1508 2014-07-15 08:51:18 +02:00
bsongis 8c3d47deac Instant Trim automatic tests - Issue #1508 2014-07-15 08:49:55 +02:00
bsongis 197f31d5a1 Fixes #1508 - Needs another non regression test 2014-07-14 23:41:37 +02:00
Bertrand Songis 1a198c35ad Update DONATIONS.txt 2014-07-14 22:31:15 +02:00
Bertrand Songis 2934fc4d23 Merge pull request #1513 from opentx/projectkk2glider/issue_1510
Re #1510 - This might be a better warning message
2014-07-14 21:26:09 +02:00
Damjan Adamic 4ae9585080 Re #1510 - Added switches warning, better protocol warnings and limited display to max 10 warnings 2014-07-14 20:11:21 +02:00
Damjan Adamic 161016a02a Bad string "Write Backup from file to to Radio" fixed 2014-07-14 19:16:53 +02:00
Damjan Adamic 559bb83864 Re #1510 - This might be a better warning message 2014-07-14 19:13:39 +02:00
bsongis 9a37c3027e Release notes updated 2014-07-14 18:32:17 +02:00
bsongis 6548afcad3 Fixes #1510 - The warning is not very explicit, but at least it is there
...
2014-07-14 18:26:36 +02:00
bsongis ee31c51275 9XR-PRO / Sky9x compilation failure when BOLD=NO 2014-07-14 17:50:01 +02:00
bsongis 63aadad10c Preparation for 2.0.7 2014-07-14 08:11:02 +02:00
bsongis 30958a9a65 I forgot to include this in Companion. Should be ok in the Tx though 2014-07-14 01:42:42 +02:00
bsongis 995183bf22 Compilation error when no gauges 2014-07-14 01:06:54 +02:00
Bertrand Songis 99fedb081e Update DONATIONS.txt 2014-07-13 20:24:07 +02:00
Damjan Adamic cc934c3ac0 Gtest updated according to 28c900e3f7 hack 2014-07-13 15:44:00 +02:00
Damjan Adamic c1d789d004 Fixes #1494 2014-07-13 15:41:18 +02:00
Andre Bernet 4d945b5d95 DSM2=SERIAL was broken if EXT!=FRSKY (fix #1498) 2014-07-13 15:26:14 +02:00
Andre Bernet 28c900e3f7 Dirty hack to filter out bogus cell values from FLVSS... 2014-07-13 14:48:12 +02:00
Damjan Adamic b41ba50b53 Removed raw member that was introduced in commit 3f39352d95. Its role now plays last member of values[] array. Same RAM usage, reduced FLASH usage. 2014-07-13 14:44:42 +02:00
Damjan Adamic 2d22c18758 Added RAW_FRSKY_MINMAX() macro for access to the raw telemetry value and gtests for it 2014-07-13 14:35:15 +02:00
Damjan Adamic 8ce05b3284 Data from tow FLVSS sensors and parsing program for sport.log 2014-07-13 12:18:40 +02:00
bsongis 6d18820b53 Added a new test with real logs from FLVSS. It seems there is a bug on
the FLVSS :(
2014-07-11 23:53:36 +02:00
Bertrand Songis 58ed329ac2 Update DONATIONS.txt 2014-07-11 14:23:12 +02:00
bsongis 2e0858bc0c Whole Cells telemetry info not updated after Telemetry Reset 2014-07-11 12:22:54 +02:00
bsongis 7c9636c58c I try this for #1444, if needed we will revert 2014-07-11 11:40:42 +02:00
Bertrand Songis 9dbd1326da Update DONATIONS.txt 2014-07-11 10:29:24 +02:00
Damjan Adamic 4c82d12c1a Re #1481 - added gtests for SPort FAS sensor 2014-07-10 11:32:04 +02:00
Bertrand Songis 972685bc15 Merge pull request #1477 from opentx/projectkk2glider/cells_gtests
Tests and support for second FLVSS
2014-07-10 09:56:11 +02:00
bsongis 00f8b97ee4 Fixes #1478 2014-07-10 09:32:10 +02:00
bsongis 0b7bbbbdbd Fixes #1475 2014-07-10 09:04:33 +02:00
bsongis 47bc3e896c Fixes #1481 2014-07-10 08:08:33 +02:00
bsongis 904249b2dc Fixes #1478 2014-07-10 08:06:48 +02:00
Damjan Adamic 3700047d2c Re #1409 and #1444:
* added support for two FLVSS
* added gtests for FLVSS
2014-07-09 14:18:39 +02:00
Romolo Manfredini d44e851648 Fix problems with libpng 2014-07-09 13:04:51 +02:00
bsongis 1be75735be Fixes #1476 2014-07-09 09:53:04 +02:00
Bertrand Songis 7da72240a3 Update DONATIONS.txt 2014-07-09 00:17:18 +02:00
bsongis 9357c951f1 Fixes #1474 - I am not happy with this fix, but I don't want to modify
the font right now
2014-07-08 22:05:56 +02:00
Bertrand Songis 1afeb9f977 Merge pull request #1473 from opentx/MicheleVilla/FW_Translation
Update it.h.txt
2014-07-08 19:19:35 +02:00
Michele 000e55725c Update it.h.txt 2014-07-08 18:39:53 +02:00
bsongis 38e342b27b Cosmetics in the voltages screen. Cells, Cells-, Cell, Cell- tested, it
works.
2014-07-08 13:16:37 +02:00
bsongis 3e9064e2e2 2.0.6 preparation 2014-07-08 12:03:48 +02:00
bsongis 2d764e73fd Cosmetics 2014-07-08 11:39:27 +02:00
bsongis f8efcf420a 200 extra bytes used on 9x with FRSKY_HUB option. I return to previous
implementation. Only ARM boards will have the extra features.
2014-07-08 11:38:47 +02:00
bsongis cf546a2341 Refactoring FLVSS - only one sensor for now 2014-07-08 11:02:00 +02:00
Bertrand Songis 87a4f3526b Merge pull request #1465 from opentx/projectkk2glider/reimplementation_of_1443
Projectkk2glider/reimplementation of 1443
2014-07-08 08:26:32 +02:00
bsongis 6b49119af7 getValue(...) Lua identifiers more consistent 2014-07-08 08:04:05 +02:00
bsongis 4c6314331d The compilation server complains with pl language ... 2014-07-07 23:10:26 +02:00
Bertrand Songis 55ab067a0c Merge pull request #1468 from opentx/projectkk2glider/issue_1457
Projectkk2glider/issue 1457
2014-07-07 22:58:42 +02:00
bsongis 3fc18b1cf7 Fixes #1467 - Check your mixes on Sky9x / 9XR-PRO especially if you used
mix warnings!
2014-07-07 22:55:52 +02:00
bsongis f2f8419da1 I forgot to remove the persistent toggled handler 2014-07-07 21:45:51 +02:00
Damjan Adamic 365c2f9e34 Re #1457 - cleanup 2014-07-07 21:38:55 +02:00
bsongis 01fde3db27 Some TODOs removed 2014-07-07 20:56:40 +02:00
Damjan Adamic d743ed9645 Forgoten makefile for split gtests 2014-07-07 19:54:55 +02:00
Damjan Adamic dd67811638 Cosmetics 2014-07-07 19:49:18 +02:00
Damjan Adamic ebe4f6a365 Gtests split into several source files 2014-07-07 19:23:43 +02:00
Damjan Adamic b4e816b784 Re #1443 - Reverting back d675ab1578 with some improvements:
* when telemetry is not streaming all logical switches that involve telemetry value evaluate to FALSE (same as before the change in above commit)
* the duration and delay processing is now enabled for such logical switches (new functionality that was not present before above commit)
2014-07-07 19:18:18 +02:00
bsongis 2798fa7ba9 Fixes #1451 2014-07-07 18:03:48 +02:00
Damjan Adamic ee077a06e6 Re #1464 - added test: "L1 Vfas < 9.6 Delay (0.5s)" 2014-07-07 15:48:46 +02:00
Romolo Manfredini 8f73e9bde0 Fix warnings with libpng 2014-07-07 12:57:33 +02:00
Romolo Manfredini 45d8fca125 Merge origin/next into next 2014-07-07 12:38:13 +02:00
Romolo Manfredini 2bc6c1e754 Fix warnings with libpng 2014-07-07 12:37:10 +02:00
bsongis 39a0feae3b Fixes #1463 2014-07-07 12:19:28 +02:00
bsongis ad7da779c7 Curves in Mixes were not correctly restored on Companion for Sky9x
boards
2014-07-07 07:21:12 +02:00
bsongis 23cafa84f2 Fixes #1392 2014-07-06 23:37:13 +02:00
Damjan Adamic a20e5aee3b Re #1457 - added display of channels 17-32 to Companion simulator 2014-07-06 19:50:42 +02:00
bsongis fa3c50df8e Fixes #1458 2014-07-06 18:58:34 +02:00
bsongis 81eb9326eb Fixes #1461 2014-07-06 18:40:02 +02:00
bsongis 7c71d56383 Fixes #1451 2014-07-06 17:46:16 +02:00
Bertrand Songis 5109a2d7c1 Merge pull request #1460 from opentx/projectkk2glider/issue_1458
Fixes #1458 - Incorrect display of free mem on statistics page
2014-07-06 13:23:08 +02:00
bsongis 82cc799afe Fixes #1458 - 64k was hardcoded 2014-07-06 13:09:33 +02:00
Damjan Adamic 88bb28e3f1 Re #1458 - added gtest for big numbers (>uint16_t) 2014-07-06 09:25:38 +02:00
Damjan Adamic f4fdc233c0 Re #1458 - Forgoten files for new gtest 2014-07-06 09:14:20 +02:00
Damjan Adamic 7130e48089 Re #1458 - the cast is back, but cast to different type depending on platform. Gtest modernized. 2014-07-06 09:11:29 +02:00
Damjan Adamic ed094f89e8 Fixes #1458 - Incorrect display of free mem on statistics page
lcd_outdezNAtt() on ARM was casting values to uint16_t.
2014-07-06 08:49:35 +02:00
bsongis 58f81b193b PPM polarity was inverted in Companion PrintDialog and CompareDialog 2014-07-05 23:17:57 +02:00
Damjan Adamic 50122d4ee1 Bad indentation 2014-07-05 19:43:31 +02:00
bsongis f66388c1d3 LCD asynchronous refresh prepared for Taranis+ 2014-07-05 19:32:00 +02:00
Bertrand Songis 838190ce80 Merge pull request #1455 from opentx/projectkk2glider/issue_1440
Fixes #1440 - Logical switches state not reset after model load
2014-07-05 19:22:42 +02:00
Damjan Adamic 1bc04db9cd gtest only for Taranis (thanks Jenkins) 2014-07-05 19:20:56 +02:00
Damjan Adamic 30a68cf170 Fixes #1440 - Logical switches state not reset after model load:
* logical switches reset not called anymore when user selects "Reset Flight", but only after model load
* logical switches reset now includes a reset of switches state (set to false)
2014-07-05 19:11:16 +02:00
bsongis ec8c207631 Cosmetics 2014-07-05 19:07:32 +02:00
bsongis 9337080307 Hardware SPI used for the Taranis+ LCD. Thanks Mike! 2014-07-05 19:03:11 +02:00
bsongis 8200164797 LCD contrast was set before lcdInit on Taranis 2014-07-05 19:03:11 +02:00
Damjan Adamic 7d85d40f68 Fixes #1452 - Backlight simulation 2014-07-05 17:08:56 +02:00
bsongis 5d23135b0d DBLSIZE restrictions on 9x make the gtests fail 2014-07-05 15:46:26 +02:00
bsongis be6f1587ed Display problems on Sky9x 2014-07-05 15:37:49 +02:00
bsongis c184ddd996 Fixes #1447 - Needs tests 2014-07-05 11:32:22 +02:00
bsongis c903bbcb13 Issue #1428 - SafetyCH changed to OverrideCH on Taranis 2014-07-04 16:53:50 +02:00
Andre Bernet 9b008ded21 Merge pull request #1446 from opentx/bsongis/Taranis+_LCD_refactoring
Bsongis/taranis+ lcd refactoring
2014-07-04 15:33:35 +02:00
bsongis 6f79de6cae Fixes the grayscale inversion on Taranis (not Plus) 2014-07-04 15:20:36 +02:00
bsongis 711b54c98e Fixes #1436 - Be careful, there is a conversion on M128/gruvin9x boards,
L13, L14 and L15 are removed
2014-07-04 12:23:08 +02:00
bsongis 6876718d72 The top bar was a little bit too dark 2014-07-04 11:53:59 +02:00
bsongis 4ffb9f69c6 Taranis LCD functions refactoring 2014-07-04 11:53:29 +02:00
Bertrand Songis b8a6548686 Merge pull request #1442 from opentx/projectkk2glider/total_timer_fixes
Bug fix and refactoring of globalTimer
2014-07-04 11:23:00 +02:00
Damjan Adamic 8c010277c9 Renamed s_timeCumTot to sessionTimer 2014-07-04 11:09:30 +02:00
Bertrand Songis f30e3db1ef Merge pull request #1443 from opentx/projectkk2glider/telemetry_ls_duration_bug
Fixes a bug for case: telemetry values used in logical switches and they...
2014-07-04 10:19:15 +02:00
Damjan Adamic d675ab1578 Fixes a bug for case: telemetry values used in logical switches and they have a duration and/or delay set. 2014-07-03 20:50:31 +02:00
Damjan Adamic b6cbde48be Removed sessionTimer and replaced with existing s_timeCumTot.
Corrected bug when saving g_eeGeneral.globalTimer (missing reset of session timer and eeprom dirty)
2014-07-03 19:14:15 +02:00
Bertrand Songis 1fef79ce80 Update DONATIONS.txt 2014-07-03 14:07:56 +02:00
Bertrand Songis 4f03ae75c5 Merge pull request #1438 from opentx/driver13/PL_TR
translation fixes
2014-07-03 09:47:11 +02:00
Jacek Drewniak 34850fb73d translation fixes 2014-07-03 09:06:41 +02:00
Bertrand Songis ee05f7f80e Update DONATIONS.txt 2014-07-02 23:58:49 +02:00
bsongis 83614359aa Fixes #1434 2014-07-02 23:26:55 +02:00
bsongis 17a2865070 Fixes #1424 2014-07-02 21:50:25 +02:00
bsongis e3866fda45 Fixes #1395 2014-07-02 21:38:05 +02:00
bsongis 81ed325830 Fixes #1422 2014-07-02 17:49:15 +02:00
Bertrand Songis 36e78b9315 Merge pull request #1429 from opentx/projectkk2glider/frsky_refactoring
Projectkk2glider/frsky refactoring
2014-07-02 16:36:54 +02:00
bsongis 6716482ae4 Fixes #1428 2014-07-02 16:34:26 +02:00
Damjan Adamic 7e758ce7ad Wrong type corrected and cosmetic fixes 2014-07-02 16:08:31 +02:00
bsongis 63fe996ebc Fixes #1427 - M badly displayed when SMLSIZE font used 2014-07-02 15:28:34 +02:00
Damjan Adamic 038365e639 Introduced frskyCellVoltage_t type and united code with frskyUpdateCells() 2014-07-02 12:57:36 +02:00
bsongis c3aebfa239 Fixes #1425 2014-07-02 12:25:28 +02:00
Damjan Adamic e6370ebb2a United setting of cell voltage in frskySetCellVoltage() 2014-07-02 12:24:19 +02:00
bsongis 1e25e368d2 #1397 fix continued 2014-07-02 11:17:33 +02:00
Damjan Adamic 645350a1a2 Fixes #1397 - Refactored telemetry view page navigation, long PAGE key press now cycles in oposite direction 2014-07-02 11:17:33 +02:00
Bertrand Songis dd927e6761 Merge pull request #1423 from opentx/projectkk2glider/missing_minCell
Projectkk2glider/missing min cell
2014-07-02 09:50:57 +02:00
Damjan Adamic 713b2e2cf5 Added missing frskyData.hub.minCell update if using SPORT FLVS sensor 2014-07-02 09:41:25 +02:00
Damjan Adamic 7a02e57dcf Cells initialization in simulator 2014-07-02 09:40:30 +02:00
Bertrand Songis 724949b8fc Merge pull request #1417 from opentx/MicheleVilla/IT_TranslationFW
Update it.h.txt
2014-07-02 09:27:03 +02:00
bsongis 1f5295db9c Compilation problem (thanks Jenkins) 2014-07-01 23:08:54 +02:00
bsongis 72ef865c10 Prevents lines from wrapping when writing text 2014-07-01 22:53:28 +02:00
bsongis be0ebe833c Sleep a little bit more between read eeprom / flash / write eeprom on 9x
/ 9xr
2014-07-01 22:53:28 +02:00
bsongis 57b08fb064 Fixes #1362 2014-07-01 22:53:28 +02:00
bsongis 7162ab5399 Warning raised by Valgrind 2014-07-01 22:53:27 +02:00
Michele 4eb44837f3 Update it.h.txt
One change in Italian translation
2014-07-01 22:07:33 +02:00
Damjan Adamic 194a635800 Ups, forgot a bit of debugging code 2014-07-01 21:56:06 +02:00
Damjan Adamic e4314004a8 ACCURAT_THROTTLE_TIMER was lost when splitting code into mixers.cpp in 2fbd4ff13a 2014-07-01 21:53:56 +02:00
bsongis 74534b74c2 Fixes #1415 2014-07-01 19:02:34 +02:00
bsongis 59eb020eb1 getGeneralSettings(), lcd.getLastPos() and lcd.drawGauge() added 2014-07-01 18:06:37 +02:00
bsongis 1d1a815ef7 lcd.drawChannel(...) added. Possibility to write telemetry values using
different sizes
2014-07-01 17:36:39 +02:00
Bertrand Songis 4088abaafb Merge pull request #1413 from opentx/projectkk2glider/telemetry_enhancements
Unfiltered value used for writing into telemetry log
2014-07-01 16:01:03 +02:00
bsongis 9333f3778f The check on the BL size was wrong as it didn't take care of the
_bootStart() function size
2014-07-01 15:59:45 +02:00
Damjan Adamic 070a133cd5 Merge branch 'next-upstream' 2014-07-01 15:45:35 +02:00
Damjan Adamic 74f4f99280 Added regresion test for FrskyValueWithMin averaging algorithm 2014-07-01 15:40:12 +02:00
Damjan Adamic 66848156a8 Removed test code 2014-07-01 15:32:17 +02:00
bsongis 74dfd64e29 The background function is not anymore mandatory in Telemetry scripts 2014-07-01 14:45:39 +02:00
Bertrand Songis ef0b81cd2d Update DONATIONS.txt 2014-07-01 14:40:26 +02:00
bsongis 09842fe531 Telemetry "voltages" and "after flight" screens may be overriden by
telempw.lua and telemaf.lua
2014-07-01 12:10:17 +02:00
bsongis 3c93699f8f Ignore list updated 2014-07-01 11:39:44 +02:00
bsongis a9dd0d0dfb Taranis+ LCD driver a little bit improved 2014-07-01 11:39:01 +02:00
Bertrand Songis 013e6925dc Update DONATIONS.txt 2014-07-01 09:10:04 +02:00
bsongis 591ccfd25f Cosmetics 2014-07-01 08:06:22 +02:00
bsongis b0bdaf6b65 Warning removed 2014-07-01 08:06:22 +02:00
Bertrand Songis f77e6370cf Merge pull request #1412 from opentx/projectkk2glider/issue_1407
Fixes #1407 - Strange input interaction when Throttle trim idle only
2014-06-30 22:44:04 +02:00
Bertrand Songis ce70efa31d Update DONATIONS.txt 2014-06-30 22:31:39 +02:00
bsongis 3a7fe01950 Taranis+ LCD driver is now working! 2014-06-30 22:24:04 +02:00
Damjan Adamic 3f39352d95 Reduced the size of averaging buffer and introduced a raw (unfiltered) value. Averaged value is same as before, but one byte saved per class instance. Unfiltered value is used for writing into telemetry log. 2014-06-30 21:12:01 +02:00
Damjan Adamic d38c02f847 Fixes #1403 - "make clean PCB=TARANIS" deletes necessary source file 2014-06-30 17:58:05 +02:00
Bertrand Songis 2dddd76320 Fixes #1410 2014-06-30 17:57:28 +02:00
bsongis 391e6a867f It's easier to check gtests screenshots with the right filenames 2014-06-30 17:43:33 +02:00
bsongis 1df8b5f5c1 Fixes #1358 2014-06-30 17:43:33 +02:00
bsongis 6913c8e7e5 Cosmetics 2014-06-30 17:43:33 +02:00
bsongis aab03a2b9f BIGBIG font added 2014-06-30 17:43:33 +02:00
Damjan Adamic a83c6c8a0c Fixes #1408 - Move down in Inputs tab not working 2014-06-30 17:24:36 +02:00
Damjan Adamic b5cdd60367 Fixes #1407 - Strange input interaction when Throttle trim idle only 2014-06-30 17:03:59 +02:00
Bertrand Songis 5453ff5678 Update DONATIONS.txt 2014-06-30 17:00:09 +02:00
Bertrand Songis 7b69fb2f79 Update DONATIONS.txt 2014-06-30 16:12:46 +02:00
bsongis 19ac5d3038 New LCD tests added 2014-06-30 16:09:10 +02:00
bsongis 4b64862cf2 New automatic tests added for the LCD 2014-06-30 15:55:19 +02:00
bsongis f643f0be85 Mike's Taranis+ lcd driver 2014-06-30 12:08:01 +02:00
bsongis 0e0b1792e4 switchState function is not needed in the bootloader 2014-06-30 12:07:04 +02:00
bsongis f81c31510b Fixes #1385 2014-06-30 11:27:46 +02:00
bsongis 5c3bd1faf9 Fixes #1389 2014-06-30 11:17:16 +02:00
bsongis 90cf98465b No Telemetry tab in Companion when the firmware doesn't need it 2014-06-30 11:15:26 +02:00
bsongis 1dd47484d4 Stack alignment change doesn't compile on VC++ 2014-06-30 11:15:26 +02:00
Kjell Kernen bd4a85c6a7 Swedish Companion translation 2014-06-30 11:07:04 +02:00
Kjell Kernen b6520e2db6 Finnish Companion translation from Janne Huuskonen 2014-06-30 11:02:12 +02:00
Bertrand Songis 0ea114b219 Merge pull request #1400 from opentx/projectkk2glider/issue_1399
Fixes #1399 - Option to hide inv parameter effect in the channel monitor
2014-06-30 00:39:59 +02:00
Bertrand Songis e36f54eda5 Merge pull request #1401 from opentx/projectkk2glider/lua_stuff
Projectkk2glider/lua stuff
2014-06-30 00:26:41 +02:00
Bertrand Songis d983404656 Update DONATIONS.txt 2014-06-30 00:22:53 +02:00
Bertrand Songis 677b50d39c Update DONATIONS.txt 2014-06-30 00:21:48 +02:00
Damjan Adamic e5ae504bae Fixes #1394 - Taranis GPS Speed still 120km/h limited 2014-06-29 20:31:59 +02:00
Damjan Adamic ce302aae60 Fixes #1338 - Extend limits - Companion (scale bug) 2014-06-29 17:57:56 +02:00
Damjan Adamic b0869fccfc Re #1358 - defined PREC2 in Lua 2014-06-29 14:29:22 +02:00
Damjan Adamic 17ab12f7bf Added missing eeDirty(EE_MODEL) 2014-06-29 14:26:39 +02:00
Damjan Adamic 816f9ce8a0 Fixes #1388 -New Lua functions: model.getInfo() and model.setInfo() 2014-06-29 13:54:50 +02:00
Damjan Adamic 5fb41eb32f Fixes #1396 - Special functions, adjust GV1 Source CHxx not saved in .eepe file (on AVR platforms) 2014-06-29 13:08:28 +02:00
Damjan Adamic c687e20fff Fixes #1390 - hide switches !SHup, !SHdown, !SFup and !SFdown for Taranis 2014-06-29 12:43:34 +02:00
Damjan Adamic c5aa691467 Fixes #1399 - Option to hide inv parameter effect in the channel monitor 2014-06-29 12:00:29 +02:00
Andre Bernet a3d7c694ef Merge pull request #1391 from opentx/driver33/PL_TR
fixes
2014-06-27 23:58:19 +02:00
Jacek Drewniak 2c8b51c9d6 fixes 2014-06-27 23:27:43 +02:00
Andre Bernet a518a34055 String lengths corrected 2014-06-27 16:44:01 +02:00
Andre Bernet 4d3ca7e82e No DBLKEYS on 9XR-PRo 2014-06-27 16:41:30 +02:00
Andre Bernet 98c756a6d2 Remove orphan "tsticks" option 2014-06-27 16:37:11 +02:00
Andre Bernet 84d5c6c4b0 9XR-Pro in standalone simu 2014-06-27 16:28:27 +02:00
Damjan Adamic 935458caa4 No time on full EEPROM backup (reverted from commit e3b8e91a0a) 2014-06-27 08:48:53 +02:00
Bertrand Songis dcec97411e Update DONATIONS.txt 2014-06-27 07:11:16 +02:00
Andre Bernet 91032483c8 More stuff in release notes 2014-06-26 23:04:28 +02:00
Andre Bernet 9e40708f7c 2.0.5 preparation 2014-06-26 22:59:10 +02:00
Andre Bernet 54902a5a00 Lua telemetry screens had been shifted in d2df4af, and start screen still wasn't the intended one.
Now we've got lua first, custom second, then the voltage and end of flight default screens. Makes sense, so that the most potentially powerful type is first.
2014-06-26 18:54:27 +02:00
Andre Bernet 927a9b9f38 Merge pull request #1384 from opentx/MicheleVilla/IT_Translation_FW
Update it.h.txt
2014-06-26 15:58:16 +02:00
Michele bfdb3a9da7 Update it.h.txt
Small changes in Italian translation
2014-06-26 15:54:41 +02:00
Andre Bernet 63269ac35a Backlight Alarm parameter added in companion (fix #1123) 2014-06-26 15:20:29 +02:00
Andre Bernet 113deb6b75 Switch warning for SG wasn't reachable (fix #1371) 2014-06-26 14:41:52 +02:00
mhotar c48f4a51a6 No INVERS in FM string #1357 2014-06-26 13:51:54 +02:00
Andre Bernet 3cd2f709fc wget doesn't like https on win (#1378) 2014-06-26 13:28:20 +02:00
Andre Bernet d2df4af67d Telemetry screens order (Fix #1369) 2014-06-26 13:17:47 +02:00
Andre Bernet 67177aed42 Fix VC compilation for #1364 fix 2014-06-26 13:14:05 +02:00
Kjell Kernen 5879ca2fb6 Moved initialization of eeprom interfaces to before the first lines of active code to avoid future problems. 2014-06-26 12:56:16 +02:00
Kjell Kernen 77a7f13507 German OpenTX firmware translation from Helle 2014-06-26 12:04:56 +02:00
Bertrand Songis 2a794e2ae3 Merge pull request #1379 from opentx/projectkk2glider/issue_1364
Fixes #1364 - Stack alignment to 8 bytes
2014-06-26 11:50:54 +02:00
Bertrand Songis 090f659dca Merge pull request #1381 from opentx/dvogonen/issue_1360_Companion_crash
Fixes #1360
2014-06-26 11:49:41 +02:00
Bertrand Songis ca79fabdc7 Update DONATIONS.txt 2014-06-26 11:46:26 +02:00
Kjell Kernen 693f232f01 Fixes #1360 2014-06-26 11:39:43 +02:00
Damjan Adamic 8c33914cbb Fixes #1364 - Stack alignment to 8 bytes 2014-06-26 10:30:01 +02:00
bsongis a8e594e54c Fixes #1373 - I don't get why this was disable on the MAC, for sure
there was a reason
2014-06-26 07:51:53 +02:00
bsongis 17f7d90dbf Fixes #1374 2014-06-26 07:50:13 +02:00
Bertrand Songis 7ad3d5d317 Update DONATIONS.txt 2014-06-26 07:19:31 +02:00
bsongis 3d37b0d397 Lua bugfixes in getCustomFunction/setCustomFunction and
getLogicalSwitch/setLogicalSwitch
2014-06-26 07:16:43 +02:00
Andre Bernet e8fc7c4c89 Cnsp range was wrong 2014-06-25 21:58:52 +02:00
Damjan Adamic 405fd802d5 Re #1361 - Fixed 10000% bug 2014-06-25 09:02:23 +02:00
mhotar 5d1e9a1701 FM -translatable string 2014-06-25 00:40:20 +02:00
Bertrand Songis d09b85ddc4 Update DONATIONS.txt 2014-06-24 22:54:46 +02:00
mhotar a4aa0eb7c8 FM marks - fix INVERS surrounding 2014-06-24 22:07:43 +02:00
Bertrand Songis d105325dd7 Fixes #1359 2014-06-24 20:56:13 +02:00
bsongis 1fb9e57c62 Fixes #1357 2014-06-24 17:41:13 +02:00
Bertrand Songis 576d9d6d9d Update DONATIONS.txt 2014-06-24 17:20:36 +02:00
Bertrand Songis b7f3d1674d Update DONATIONS.txt 2014-06-24 17:13:07 +02:00
Bertrand Songis f7b009a9be Update DONATIONS.txt 2014-06-24 16:06:40 +02:00
2530 changed files with 711277 additions and 409006 deletions
+112
View File
@@ -0,0 +1,112 @@
# Handle line endings automatically for files detected as text
# and leave all files detected as binary untouched.
* text=auto
#
# The above will handle all files NOT found below
#
# These files are text and should be normalized (Convert crlf => lf)
# Source files
*.c text
*.cc text
*.cxx text
*.cpp text
*.c++ text
*.hpp text
*.h text
*.h++ text
*.hh text
*.lua text
*.pxd text
*.py text
*.py3 text
*.pyw text
*.pyx text
*.pl text
*.pm text
*.sln text eol=crlf
*.csproj text eol=crlf
*.vbproj text eol=crlf
*.vcxproj text eol=crlf
*.vcproj text eol=crlf
*.dbproj text eol=crlf
*.fsproj text eol=crlf
*.lsproj text eol=crlf
*.wixproj text eol=crlf
*.modelproj text eol=crlf
*.sqlproj text eol=crlf
*.wmaproj text eol=crlf
*.xproj text eol=crlf
*.props text eol=crlf
*.filters text eol=crlf
*.vcxitems text eol=crlf
*.sh eol=lf
# Compiled Object files
*.slo binary
*.lo binary
*.o binary
*.obj binary
# Precompiled Headers
*.gch binary
*.pch binary
# Compiled Dynamic libraries
*.so binary
*.dylib binary
*.dll binary
# Compiled Static libraries
*.lai binary
*.la binary
*.a binary
*.lib binary
# Executables
*.exe binary
*.out binary
*.app binary
# Binary files
*.db binary
*.p binary
*.pkl binary
*.pyc binary
*.pyd binary
*.pyo binary
# Documents
*.doc diff=astextplain
*.DOC diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot diff=astextplain
*.DOT diff=astextplain
*.pdf diff=astextplain
*.PDF diff=astextplain
*.rtf diff=astextplain
*.RTF diff=astextplain
*.md text
*.adoc text
*.textile text
*.mustache text
*.csv text
*.tab text
*.tsv text
*.sql text
# Graphics
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.tif binary
*.tiff binary
*.ico binary
# SVG treated as an asset (binary) by default. If you want to treat it as text,
# comment-out the following line and uncomment the line after.
*.svg binary
#*.svg text
*.eps binary
+5 -5
View File
@@ -1,8 +1,8 @@
/.idea/
/.*project
/.settings
/.autotools
radio/src/bootloader/.dep/
radio/src/bootloader/bootloader_ramBoot*
*.lbm
*.o
/doc
/doc/
build*/
cmake-build-*/
/debian/
+3
View File
@@ -0,0 +1,3 @@
[submodule "radio/src/thirdparty/GCS_MAVLink/include_v1.0"]
path = radio/src/thirdparty/GCS_MAVLink/include_v1.0
url = https://github.com/mavlink/c_library_v1.git
+93
View File
@@ -0,0 +1,93 @@
sudo: required
dist: trusty
language: python
compiler: gcc
virtualenv:
system_site_packages: true
python:
- 3.4
env:
global:
- QT_BASE=53
# - QT_BASE=54
# - QT_BASE=55
# - QT_BASE=56
# - QT_BASE=57
#- GCC_ARM=/opt/gcc-arm-none-eabi/bin
- AVR_FLAVORS="AVR9X 9X GRUVIN9X MEGA2560"
- PYTHONPATH=${PYTHONPATH}:/usr/lib/python3/dist-packages
matrix:
#
# ALL will build every individual board & DEFAULT, sequentially.
# DEFAULT is "make all" (including Companion & Simulator), with default settings
#
# - FLAVOR=ALL
- FLAVOR=DEFAULT
- FLAVOR=AVR9X
# - FLAVOR=9X
# - FLAVOR=GRUVIN9X
# - FLAVOR=MEGA2560
- FLAVOR=ARM9X
# - FLAVOR=AR9X
# - FLAVOR=SKY9X
# - FLAVOR=9XRPRO
- FLAVOR=X7
- FLAVOR=X9
# - FLAVOR=X9D
# - FLAVOR=X9D+
# - FLAVOR=X9E
- FLAVOR=HORUS
# - FLAVOR=X10
# - FLAVOR=X12Sr10
# - FLAVOR=X12S
before_install:
- sudo add-apt-repository ppa:ubuntu-sdk-team/ppa --yes
- sudo add-apt-repository ppa:terry.guo/gcc-arm-embedded --yes
- sudo add-apt-repository ppa:ubuntu-toolchain-r/test --yes
- if [ "$QT_BASE" = "53" ]; then sudo add-apt-repository ppa:beineri/opt-qt532-trusty -y; fi
- if [ "$QT_BASE" = "54" ]; then sudo add-apt-repository ppa:beineri/opt-qt542-trusty -y; fi
- if [ "$QT_BASE" = "55" ]; then sudo add-apt-repository ppa:beineri/opt-qt551-trusty -y; fi
- if [ "$QT_BASE" = "56" ]; then sudo add-apt-repository ppa:beineri/opt-qt562-trusty -y; fi
- if [ "$QT_BASE" = "57" ]; then sudo add-apt-repository ppa:beineri/opt-qt571-trusty -y; fi
- sudo apt-get update -qq
install:
- sudo apt-get --yes --force-yes install python3-pyqt5 curl libmpfr4 libmpc3 libfox-1.6-dev libgtest-dev
- |
if [[ " ${AVR_FLAVORS} " =~ " ${FLAVOR} " || ${FLAVOR} == "ALL" ]]; then
wget --quiet https://launchpad.net/ubuntu/+source/gcc-avr/1:4.9.2+Atmel3.5.0-1/+build/8403710/+files/gcc-avr_4.9.2+Atmel3.5.0-1_amd64.deb
wget --quiet https://launchpad.net/ubuntu/+source/avr-libc/1:1.8.0+Atmel3.5.0-1/+build/8435473/+files/avr-libc_1.8.0+Atmel3.5.0-1_all.deb
wget --quiet https://launchpad.net/ubuntu/+source/binutils-avr/2.25+Atmel3.5.0-2/+build/8435474/+files/binutils-avr_2.25+Atmel3.5.0-2_amd64.deb
sudo dpkg --install gcc-avr_4.9.2+Atmel3.5.0-1_amd64.deb avr-libc_1.8.0+Atmel3.5.0-1_all.deb binutils-avr_2.25+Atmel3.5.0-2_amd64.deb
fi
if [[ ! " ${AVR_FLAVORS} " =~ " ${FLAVOR} " || ${FLAVOR} == "ALL" ]]; then
sudo apt-get --yes --force-yes install gcc-arm-none-eabi
# Trying to build with gcc-arm 4.7 isn't working because it can't find the compiler, despite adding to PATH (in commit-tests.sh) by defining GCC_ARM above
# - wget --quiet https://launchpad.net/gcc-arm-embedded/4.7/4.7-2013-q3-update/+download/gcc-arm-none-eabi-4_7-2013q3-20130916-linux.tar.bz2
# - tar xjf gcc-arm-none-eabi-4_7-2013q3-20130916-linux.tar.bz2
# - mv gcc-arm-none-eabi-4_7-2013q3 /opt/gcc-arm-none-eabi
fi
- sudo apt-get install --yes --force-yes -qq qt${QT_BASE}base qt${QT_BASE}multimedia qt${QT_BASE}svg qt${QT_BASE}tools; source /opt/qt${QT_BASE}/bin/qt${QT_BASE}-env.sh
addons:
sonarcloud:
organization: "opentx-github"
token:
secure: "BuQrGRijNpL2V/IQNcOxvjChj8PScfCdiv403EE73Nqb4+sB8YL92Fnzrnw9bC8wF7BVSDJVpYF0gbdaTzuCmaeZfM8NJK0TOJAbH6+B8bhIrU/V1SBuVjHQnndV/wysieruKnK/KxYJZqItgSlnPo+PmiFxtXJNlas0Kstb2O4="
# github_token:
# secure: "Qkmp4VrQJtKgZ/pz65SNnCDiF4slgFfQS/3whyLXLcDbFb1Hv1oj7Hqz9EVDUSO2eEhgQGaOKkRc0CfAAOBwW6OvhE0xh7P1CJEjzOp6+3gI/LyZUNsqa+awVRZTsfm1YZaOPaPWJ7cI0uz3/OoSUeIecs4PDWPrQMGRlsrq7Q8="
branches:
- "2.2"
script:
- build-wrapper-linux-x86-64 --out-dir bw_output ./tools/commit-tests.sh
- sonar-scanner
cache:
directories:
- '$HOME/.sonar/cache'
+185
View File
@@ -0,0 +1,185 @@
project(OpenTX)
set(VERSION_MAJOR "2")
set(VERSION_MINOR "2")
set(VERSION_REVISION "1")
set(VERSION_SUFFIX $ENV{OPENTX_VERSION_SUFFIX})
set(VERSION_FAMILY ${VERSION_MAJOR}.${VERSION_MINOR})
set(VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_REVISION}${VERSION_SUFFIX})
set(SDCARD_REVISION "0013")
set(SDCARD_VERSION ${VERSION_MAJOR}.${VERSION_MINOR}V${SDCARD_REVISION})
cmake_minimum_required(VERSION 2.8)
cmake_policy(SET CMP0020 NEW)
cmake_policy(SET CMP0023 OLD)
if(POLICY CMP0042)
cmake_policy(SET CMP0042 NEW)
endif()
if(POLICY CMP0043)
cmake_policy(SET CMP0043 NEW)
endif()
if(POLICY CMP0054)
cmake_policy(SET CMP0054 NEW)
endif()
if(POLICY CMP0058)
cmake_policy(SET CMP0058 NEW) # for ninja
endif()
set(CMAKE_COLOR_MAKEFILE ON)
set(CMAKE_CXX_STANDARD 11)
set(RADIO_DIRECTORY ${PROJECT_SOURCE_DIR}/radio)
set(RADIO_SRC_DIRECTORY ${RADIO_DIRECTORY}/src)
set(COMPANION_SRC_DIRECTORY ${PROJECT_SOURCE_DIR}/companion/src)
set(SIMU_SRC_DIRECTORY ${COMPANION_SRC_DIRECTORY}/simulation)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/cmake)
include(Macros)
today(DATE)
now(TIME)
git_id(GIT_STR)
message(STATUS "OpenTX ${VERSION} @${GIT_STR}")
# options shared by all targets
option(APP_CUSTOM_DBG_HANDLER "Use custom message handler for debug output in all Qt apps." ON)
set(APP_CUSTOM_DBG_LEVEL "0" CACHE STRING
"Debug output level: 0=debug+; 1=info+; 2=warn+; 3=critical+; 4=fatal only.")
set(APP_CUSTOM_DBG_SHOW_FILE "DEFAULT" CACHE STRING
"Show source file names in debug output. 1/0/DEFAULT (default is ON with DEBUG builds).")
option(VERBOSE_CMAKELISTS "Show extra information while processing CMakeLists.txt files." OFF)
option(WARNINGS_AS_ERRORS "Treat any compiler warning as an error (adds -Werror flag)." OFF)
if(WIN32)
set(WIN_EXTRA_LIBS_PATH "C:/Programs" CACHE PATH
"Base path to extra libs/headers on Windows (SDL & pthreads folders should be in here).")
list(APPEND CMAKE_PREFIX_PATH "${WIN_EXTRA_LIBS_PATH}" "${WIN_EXTRA_LIBS_PATH}/SDL") # hints for FindSDL
endif()
# Python check
find_package("PythonInterp")
if(PYTHONINTERP_FOUND)
message(STATUS "Python found, version: ${PYTHON_VERSION_STRING}")
get_filename_component(PYTHON_DIRECTORY ${PYTHON_EXECUTABLE} DIRECTORY)
else()
message(WARNING "Python not found! Most firmware and simu flavors not buildable.")
set(LUA NO)
endif()
find_package(Qt5Core)
find_package(Qt5Widgets)
find_package(Qt5Xml)
find_package(Qt5LinguistTools)
find_package(Qt5PrintSupport)
find_package(Qt5Multimedia)
find_package(Qt5Svg)
if(Qt5Core_FOUND)
message(STATUS "Qt Version: ${Qt5Core_VERSION}")
### Get locations of Qt binary executables & libs (libs are for distros, not for linking)
# first set up some hints
get_target_property(QtCore_LOCATION Qt5::Core LOCATION)
get_filename_component(qt_core_path ${QtCore_LOCATION} PATH)
if(APPLE)
get_filename_component(qt_core_path "${qt_core_path}/.." ABSOLUTE)
endif()
set(QT_LIB_DIR ${qt_core_path} CACHE PATH "Path to Qt libraries (.dll|.framework|.so).")
find_path(QT_BIN_DIR NAMES "qmake" "qmake.exe" HINTS "${CMAKE_PREFIX_PATH}/bin" "${qt_core_path}/../bin" "${qt_core_path}" DOC "Path to Qt binaries (qmake, lupdate, etc.).")
find_program(QT_QMAKE_EXECUTABLE qmake HINTS "${QT_BIN_DIR}" DOC "Location of qmake program.")
find_program(QT_LUPDATE_EXECUTABLE lupdate HINTS "${QT_BIN_DIR}" DOC "Location of Qt's 'lupdate' program for updating translation files.")
# Try to find Qt translations
if(QT_QMAKE_EXECUTABLE)
execute_process(
COMMAND ${QT_QMAKE_EXECUTABLE} -query QT_INSTALL_TRANSLATIONS
OUTPUT_VARIABLE qt_translations_hint
OUTPUT_STRIP_TRAILING_WHITESPACE
)
endif()
find_path(QT_TRANSLATIONS_DIR NAMES "qt_en.qm" HINTS "${qt_translations_hint}" DOC "Path to prebuilt Qt translations (qt_*.qm).")
### Common definitions for the Qt-based apps
list(APPEND APP_COMMON_DEFINES -DSIMU)
list(APPEND APP_COMMON_DEFINES -DQXT_STATIC)
list(APPEND APP_COMMON_DEFINES -DQT_USE_QSTRINGBUILDER) # more efficient QString construction using % operator
if(APP_CUSTOM_DBG_HANDLER)
# provide full qDebug log context to our custom handler. This may also affect libsimulator, which is why it is here
list(APPEND APP_COMMON_DEFINES -DQT_MESSAGELOGCONTEXT)
list(APPEND APP_COMMON_DEFINES -DAPP_DBG_HANDLER_ENABLE=1)
if(APP_CUSTOM_DBG_LEVEL GREATER -1 AND APP_CUSTOM_DBG_LEVEL LESS 5)
list(APPEND APP_COMMON_DEFINES -DAPP_DBG_HANDLER_DEFAULT_LEVEL=${APP_CUSTOM_DBG_LEVEL})
endif()
if(NOT APP_CUSTOM_DBG_SHOW_FILE STREQUAL "DEFAULT" AND (APP_CUSTOM_DBG_SHOW_FILE STREQUAL "1" OR APP_CUSTOM_DBG_SHOW_FILE STREQUAL "0"))
list(APPEND APP_COMMON_DEFINES -DAPP_DBG_HANDLER_SHOW_SRC_PATH=${APP_CUSTOM_DBG_SHOW_FILE})
endif()
else()
list(APPEND APP_COMMON_DEFINES -DAPP_DBG_HANDLER_ENABLE=0)
endif()
else()
message(WARNING "Qt not found! Companion and Simulator builds disabled.")
endif()
if(NOT WIN32)
find_package(Fox QUIET) # QUIET not working on WIN32?
if (FOX_FOUND)
message(STATUS "Foxlib found at ${FOX_LIBRARY}")
else() # if(NOT WIN32)
message("Libfox not found, simu target will not be available")
endif()
endif()
if(Qt5Core_FOUND OR FOX_FOUND)
set(SDL_BUILDING_LIBRARY YES) # this prevents FindSDL from appending SDLmain lib to the results, which we don't want
find_package("SDL")
if(SDL_FOUND)
message(STATUS "SDL Lib: ${SDL_LIBRARY}; Headers: ${SDL_INCLUDE_DIR}; Version: ${SDL_VERSION_STRING}")
if (NOT ${SDL_VERSION_STRING} VERSION_LESS "2.0")
message(FATAL_ERROR "OpenTX requires SDL 1.x, not 2.x")
endif()
else()
message(STATUS "SDL not found! Simulator audio, and joystick inputs, will not work.")
endif()
endif()
# Check for a file that is typically left from a OpenTX 2.1 build and abort if found
if (EXISTS ${RADIO_SRC_DIRECTORY}/stamp.h OR EXISTS ${RADIO_SRC_DIRECTORY}/translations/en.h)
message(FATAL_ERROR "Source directory contains files leftover from a OpenTX 2.1 build. Please run `git clean -f` in source directory (Careful: Will remove any extra files) or do a new clean git checkout")
endif()
# Windows-specific includes and libs shared by sub-projects
if(WIN32)
list(APPEND WIN_INCLUDE_DIRS "${RADIO_SRC_DIRECTORY}/thirdparty/windows/dirent")
if(MSVC)
list(APPEND WIN_INCLUDE_DIRS "${RADIO_SRC_DIRECTORY}/thirdparty/windows/msinttypes")
set(WIN_PTHREAD_BASE_PATH "${WIN_EXTRA_LIBS_PATH}/pthreads/Pre-built.2" CACHE PATH "Where to find pthreads include and lib folders.")
list(APPEND WIN_INCLUDE_DIRS "${WIN_PTHREAD_BASE_PATH}/include")
find_file(WIN_PTHREAD_LIB pthreadVC2.lib PATHS "${WIN_PTHREAD_BASE_PATH}" PATH_SUFFIXES lib/x86 lib NO_DEFAULT_PATH)
find_file(WIN_PTHREAD_DLL pthreadVC2.dll PATHS "${WIN_PTHREAD_BASE_PATH}" PATH_SUFFIXES lib/x86 lib dll/x86 dll NO_DEFAULT_PATH)
if(WIN_PTHREAD_LIB)
list(APPEND WIN_LINK_LIBRARIES "${WIN_PTHREAD_LIB}")
else()
message(SEND_ERROR "pthreadVC2.lib not found!")
endif()
else()
set(CMAKE_C_USE_RESPONSE_FILE_FOR_INCLUDES OFF)
set(CMAKE_C_USE_RESPONSE_FILE_FOR_LIBRARIES OFF)
set(CMAKE_CXX_USE_RESPONSE_FILE_FOR_INCLUDES OFF)
set(CMAKE_CXX_USE_RESPONSE_FILE_FOR_LIBRARIES OFF)
endif()
endif()
add_subdirectory(${RADIO_SRC_DIRECTORY})
if(Qt5Core_FOUND)
add_subdirectory(${COMPANION_SRC_DIRECTORY})
endif()
+1293 -12
View File
File diff suppressed because it is too large Load Diff
-495
View File
@@ -1,495 +0,0 @@
Mario Sette
Felice Baratto
Alessandro Mari
Gianpiero Spontina
Ingo Kuzniak
Hans-Åke Rahm
Tamas Varga
Thomas Gregg
Didier Christien
Alain Pinard
Sergio Melas
Paul Montenot
Chris Guy
Adrien Gravouille
Thomas Black
Marc Lucht
Michel Baily
Zdenek Trojanek
Martin Hotar
[Devo] Stefan Grundevik
[Devo] Fabio Eboli
Federico Zotti
Albin Esbjörnsson
Kilian Hüttenhofer
Stephen Stough
Adilson Oliveira
Robert Saint Marie
Tad Leake
Andreas Weitl
Chan Lofland
Dirk Kasten
Denisov Alexander
Timo Varppee
Ondrej Hatapka
Valérie Billon
R. Scott Page
Johan Cronje
Renato Aranghelovici
Jeffrey Irvin
Aloft Hobbies
John Rodgers
Kenneth Crump
Damjan Adamic
Martin Wilson
Joe Street
John Holdsworth
Daniel Schwartz
Dean Church (monthly)
Michael Halse
David Mark
Ted Moss
Jim Wagner
Nicola Porzi
Michael Halse
Chewytm
Espen Solbu
Mike Frizell
Bruce Jones
Stefano Airaghi
Dan Eeckhout
Alex Calderhead
Leonard MacKey
Heung Jin Choi
Mike Retterer
Keith Wood
Viljo Liukku
Eric Beier
Burt Pickard-Richardson
Helmut Renz
Rick Harms
Vincenzo Vavala
Patricia Martin
Harald Klein
Carl Petersen
Douglas Burkett
Clifford Evans
Teodor Yantchev
Jarad Berkman
Christian Schulz
Gregory J Shepherd
Michael Shellim
Ming Wang
R. Scott Page
Bernard Lukaschek
Nigel Chippindale
Mike Perkins
Ted Hammond
David Beanland
Bernd Koehler
Frédéric Duflos
Dave Fasken
Heinrich Illig
Michael Collins
Michael Manning
Craig Lorentz
Jonathan Modellismo - jonathan.it
André Lasseret
Felipe Alexandre de Oliveira
Brian Harris
Philippe Herbots
Rainer Nelte
Franck Bernhard
Erhard Werner
Stig Jøran Moen
Keith Hertzog
Christophe Dauvergne
Michel Baily
Tauno Rautakorpi
Sven Assmus
Paul Dittman
Mike Matheny
Cheryl Wynne
Emay Toha
Don Nolder
André Lasseret
Filip Lowette
Arnaldo Gabella
Fiorenzo Agnelli
Michele Villa
Christophe Rodriguez
Larisa Filocamo
Hartmut Sahm
Åke Brodin
Aloft Hobbies - www.alofthobbies.com
Ted Moss
Filippos Tigarakis
Chewytm
Eric Burdis
Nigel Chippindale
Michael Deasy
Stephen Stough
Kenneth Lilja (monthly)
Robert Jero
Gary Bancroft
Robert Cotsford
NorthSide
George Constandinides
Robert Schonk Jr
Kevin Berkefeld
Peter Webster
Mike Matheny
Martin Sniedze
Fernando Rimoldi
Sidney Fisher
Bruce Anderson
John Rodgers
Ed Pare
Thomas Kilduff
Robert Ferguson
Bryan Green
Kevin Berkefeld
Julien Michel
Krittikun Chiraphanda
Douglas Law
Alberto Scotti
Oliver Kunkel
D. Joseph Frazier
Heiko Polig
Andrew Fernie
Marco Lange
Nick McMillan
Michel Baily (monthly)
Patrick Mullen
Scott Campbell
Erich Roeder
Wayne Davy
Michael Fontenot
Willie Swanepoel
Satoru Sasaki
Tyler Darby
Nicholas Crego
Keith Hertzog
Johan Moelich
Timo Esser
Dean Church (monthly)
Brian Paddock (monthly)
Jean Pierre Parisy
Norbert Martsch
Jean-Marie Guitard
Mike Perkins
Tilman Baumann (monthly)
Fred Larssen
Ari Aalto
Robert Sams
Kirk Robertson
John Koontz
Jeffery Golias
Paul Robinson
Dave Matison
Mike Matheny
Pino Agostino
Graham Boucher (monthly)
Nelson Noura
Joel Allamy
Philip David Martin
Sean Stephen
Bruce Mackay
Blake Spilman
Timothy Pelletier
Glen Roe (ShowMaster)
Jan Van Ooteghem
David Ankers - Special thanks here to the OpenPilot project!
Lawrence Christensen (monthly)
Leo Duflou
Bruce Wood
Arnd Feige
Tauno Rautakorpi
Steve Coley
Stefan Kiendl
Gregory Nuspel
Mitchell Brenner
Ronnnie DePrez
Ferenc Koller
Robert Sessler
Didier Lanot
Rodney Hunt
Steve Bernard
Paul Nazaroff
Gordon Ernenputsch
Ksamak
Marc Gittelman
David Poole
Ralph Sauer
Karl-Heinz Gansel
Michels Bernhard
Thomas Demmelbauer
Felice Baratto
Michael Halse
Horst Kampen
Ian Gough
Matthew Brett
Lexington S Morley
Clemens Drews
Axel Stöckle
Roberto Orsello
Richard Ruck
Hugh Caldwell
Christian Marauli
Albin Esbjörnsson
Per Esbjörnsson
Bernd Hohmann
Sławomir Juszczak
Stephen Henderson
David Morgan
Aloft Hobbies
Netanel Hobara
Cameron Galipo
Doug Schafer
Pietro Rossin
Earl Killingsworth
Victor B Wright
Terry McKinley
Марков Алексей
Offer Shmuely
Ian Lobley
Keith Hertzog
Stéphane Fortas
Peter Mitrik
Thomas Majewski
ANF King
Henrik Hammarström
Kenneth Lilja (monthly)
R Wells
Uwe Jordt
Harald Wilczak
Bernhard Lohmann
Ferenc Koller
Robert Ferguson
Daniel Byers
Tyler Darby
Miguel Villalpando
Kim Dong Hoon
Terry McKinley
Walter Bell
wsTech - http://wstech.de
Clinton Linck
Josep Clodas Sola
Thierry Martin
Peter Mauro
Mitchell Brenner
Yak
Lluis Bullich Rañe
Steffen Rohr
Eric Jacquin
Harvest Lane
Ville Kuvaja
DK-System
Heinz Vogel
Heung Jin Choi
MMJS van der Helm
Dan Neelands
Yashiro Masayuki
Isaac Sloan
Harold Baird
Roy Bender
Bradley Murchie
Maximilian Süß
Dean Jansa
Ronald Donker
Paul Oldenkamp
Dietmar Drees
Bradley Murchie
Richard Fahie
James Kaufman
Henry Deucker
Christian Fuchs
Arold Reinders
Robert Miller
Aviomotive - www.aviomotive.com
Mark Gaskievicz
Roland Müller
Frank Gewalt
Remi Viard
Reginald H Millsom
Pierluigi Sommaruga
A Harris
Stefan Grunenberg
Francisco Gutierrez Muñoz
Steve Coley
Sean Cull
Roberto Orsello
David Finger
FrSky - www.frsky-rc.com (monthly)
Jean-Marie Oddo
Mike Matheny
Glen Roe (Showmaster)
Arron Bates
Tim Spurr
Daniel Morgan
Trent Ready
Mark Maskiell
Robert Crockford
Mark Illum
David McGuire
Martyn Coles
Jose Sobral
Heung Jin Choi
Tomasz Janiak
Fabien Gagné
Joe Street
Micha Ronen
Albert Blondin
Klaus Schuebel
Evening Shade Pottery
Thomas Kilduff
Sven Assmus
Markus Eberl
Nicholas Field
Harald Wilczak
Michel Baily
John Grepps
Anthony Burbidge
Sherba Baine
Gordon Evans
Fred Figge
Uwe Kuehn
David Beatty
Aaron Stringer
Alan J Wasserman
Wolfgang Rauser
Samuel Cook
BoltRC - www.boltrc.com
Friedrich Ipolt
Barrington Cole
Charles Lakins
Thos. O'Meara Photography
Adam Chevalier
Mike Mulligan
Serge Michaux
Robert Young
Wilco Hijink
Roy Nixon
Lexington S Morley
Daryl Dacko
Beat Zurflueh
Piotr Kundu
Kevin Berkefeld
Tomasz Klys
Mirco Didone'
Christoph Schroeter
Zdenek Trojanek
Bryan Anderson
Kamco Enterprises
Robert Bates
Robert Brown
Dennis Marinus
Ronald Van Putte
Thomas Kvitle Jenssen
Patrick Tuxbury
Istvan Magi
Sasaki Satoru
David Laburthe
Vit Jelinek
Pablo Gomez Martinez
Alan Thoren
Jack Clodfelter
William Simon
James Houck
Peter Fithern
Thomas Svedman
TechFixPros
Rafael Eric Suarez Nordlow
Colin Rycroft
Emanuel Stassar
Michael Gregory
Robert Russell
Gordon Stahl
Felix Kaiser
Joshua Bardwell
Davd Goodall
Leonard MacKey
Miles Kelly
Sergio Robledo
Mikael Wallbäck
Daniel Malcman
Paul Dittman
Attilio Rausse
Sidney Gates
Andrea Montefusco
Paul Luby
Donald L Webster
Kenneth Frehafer
Peter McHenry
Matthias Hase
Markus Wolf
Andrew Fazio
Stefan Künst
Stephen Adams
Arold Reinders
Tauno Rautakorpi
Frank Houvenaghel
Aerial Tech Hobbies - www.aerialtechhobbies.com
George Neusse
Andreja Rusjakovski
Axel Stöckle
Mike Perkins
Erwin Störrle
Rodger Hopper
Fernando Cesar
Jonathan Gillis
DK-System
Lexington S Morley
Bernd Koehler
Davis RC
Pete Johnson
Patricia Martin
Florian Tschacher
Brian Spearing
Craig Hall
Joseph Case
Harald Klein
Robert Crockford
Chris Boultinghouse
Kitsew
Georgios Papadopoulos
Fourmost Products
Dennis Miller
Dave Matison
Maximilian Radig
Juan Rodriguez
Robert Sessler
John Murray
Martin Sniedze
David Poole
Manfred Delakowitz
Martijn Kruissen
Jörgen Norman
Nathan Kinney
John Godden
Larry Roper
Mike Frizell
Daniel Pospolita
Peter Herz
Don Mondrik
Paul Fram
Charles Knight
Matthew Adams
Kenneth Reed
Gary Wild
Christof Ramm
Bruno Bedard
Salih Samim Aydin
Alexander Pils
Andrew Scerbina
Donovan Bodishbaugh
Ray Dunn
Burt Pickard-Richardson
Robert Ferguson
CY Enterprise
Michel Stathakis Neto
Beat Zurflueh
Heinrich Illig
Portstate Pty Ltd
Jens Hoffmann
Ricardo Santos
+13 -5
View File
@@ -1,8 +1,16 @@
##OpenTX Next Branch
## OpenTX 2.2 Branch
You have found your way to the GitHub repository site for the OpenTX Next Branch. This code branch holds the source code for the ongoing development.
[![Travis build Status](https://travis-ci.org/opentx/opentx.svg?branch=2.2)](https://travis-ci.org/opentx/opentx)
[![Quality Gate](https://sonarcloud.io/api/badges/gate?key=OpenTX:2.2)](https://sonarcloud.io/dashboard?id=OpenTX:2.2)
[![Join the chat at https://opentx.rocket.chat](https://camo.githubusercontent.com/3d659054abd6ce21c0e47cf3b83a51bda69ca282/68747470733a2f2f64656d6f2e726f636b65742e636861742f696d616765732f6a6f696e2d636861742e737667)](https://opentx.rocket.chat)
[![Donate using Paypal](https://img.shields.io/badge/paypal-donate-yellow.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=DJ9MASSKVW8WN)
The stable release code is not here, it is in the master branch.
Under no circumstances build and use software from this branch for real world application. At times you will be more or less guaranteed to crash your plane and destroy all your model settings.
The ongoing development on 2.2.x is done in this branch.
Refer to the opentx.wiki for information about setting up the tool chains for building OpenTX and OpenTX Companion as well as other development related issues.
Refer to the [OpenTX wiki](https://github.com/opentx/opentx/wiki) for information about setting up the tool chains for building OpenTX and OpenTX Companion as well as other development related issues.
Useful links:
* OpenTX Main Site http://www.open-tx.org/
* OpenTx University http://open-txu.org/
* OpenTX User Manual https://www.gitbook.com/book/opentx/opentx-taranis-manual/details
* OpenTX Lua Reference Guide https://www.gitbook.com/book/opentx/opentx-lua-reference-guide/details
+24
View File
@@ -0,0 +1,24 @@
macro(add_bitmaps_target targetname filter width format)
set(bitmaps_files)
file(GLOB bitmaps ${filter})
foreach(bitmap ${bitmaps})
get_filename_component(target ${bitmap} NAME_WE)
set(target ${target}.lbm)
add_custom_command(
OUTPUT ${target}
COMMAND ${PYTHON_EXECUTABLE} ${RADIO_DIRECTORY}/util/img2lbm.py ${bitmap} ${target} ${width} ${format} ${ARGN}
DEPENDS ${bitmap}
)
list(APPEND bitmaps_files ${target})
endforeach()
add_custom_target(${targetname} DEPENDS ${bitmaps_files})
endmacro(add_bitmaps_target)
macro(add_truetype_font_target radio name font size bold)
set(target ${RADIO_SRC_DIRECTORY}/fonts/${radio}/font_${name})
add_custom_target(ttf_${radio}_${name}
COMMAND ${PYTHON_EXECUTABLE} ${RADIO_DIRECTORY}/util/font2png.py ${font} ${size} ${bold} ${target}
WORKING_DIRECTORY ${RADIO_SRC_DIRECTORY}
)
set(ttf_${radio}_fonts_targets ${ttf_${radio}_fonts_targets} ttf_${radio}_${name})
endmacro(add_truetype_font_target)
+63
View File
@@ -0,0 +1,63 @@
# Imported from the DeskVox project (LPGL 2.1)
include(FindPackageHandleStandardArgs)
set(hints
$ENV{LIB_BASE_PATH}/fox
)
set(paths
/usr
/usr/local
)
find_path(FOX_INCLUDE_DIR
NAMES
fx.h
HINTS
${hints}
PATHS
${paths}
PATH_SUFFIXES
include
include/fox
include/fox-1.6
)
find_library(FOX_LIBRARY
NAMES
FOX-1.6
fox-1.6
HINTS
${hints}
PATHS
${paths}
PATH_SUFFIXES
lib64
lib
)
find_library(FOX_LIBRARY_DEBUG
NAMES
FOXD-1.6
foxd-1.6
HINTS
${hints}
PATHS
${paths}
PATH_SUFFIXES
lib64
lib
)
if(FOX_LIBRARY_DEBUG)
set(FOX_LIBRARIES optimized ${FOX_LIBRARY} debug ${FOX_LIBRARY_DEBUG})
else()
set(FOX_LIBRARIES ${FOX_LIBRARY})
endif()
find_package_handle_standard_args(FOX
DEFAULT_MSG
FOX_INCLUDE_DIR
FOX_LIBRARY
)
+256
View File
@@ -0,0 +1,256 @@
#.rst:
# FindSDL
# -------
#
# Locate SDL library
#
# This module defines
#
# ::
#
# SDL_FOUND, if false, do not try to link to SDL
# SDL_LIBRARY, the name(s) of the library(ies) to link against
# SDL_LIBSDL, the full path and name of libSDL (or SDL.[lib|dll].
# SDL_LIBSDLMAIN, full path and name of libSDLmain (or SDLmain.lib).
# SDL_LIBRARY_PATH, the full path to the found libSDL
# SDL_INCLUDE_DIR, where to find SDL.h
# SDL_VERSION_STRING, human-readable string containing the version of SDL
#
#
#
# This module responds to the flag:
#
# ::
#
# SDL_BUILDING_LIBRARY
# If this is defined, then no SDL_main will be linked in because
# only applications need main().
# Otherwise, it is assumed you are building an application and this
# module will attempt to locate and set the proper link flags
# as part of the returned SDL_LIBRARY variable.
#
#
#
# Don't forget to include SDLmain.h and SDLmain.m your project for the
# OS X framework based version. (Other versions link to -lSDLmain which
# this module will try to find on your behalf.) Also for OS X, this
# module will automatically add the -framework Cocoa on your behalf.
#
#
#
# Additional Note: If you see an empty SDL_LIBSDL in your
# configuration and no SDL_LIBRARY, it means CMake did not find your SDL
# library (SDL.dll, libsdl.so, SDL.framework, etc). Set
# SDL_LIBSDL to point to your SDL library, and configure again.
# Similarly, if you see an empty SDL_LIBSDLMAIN, you should set this
# value as appropriate. These values are used to generate the final
# SDL_LIBRARY variable, but when these values are unset, SDL_LIBRARY
# does not get created.
#
#
#
# $SDLDIR is an environment variable that would correspond to the
# ./configure --prefix=$SDLDIR used in building SDL. l.e.galup 9-20-02
#
# Modified by Eric Wing. Added code to assist with automated building
# by using environmental variables and providing a more
# controlled/consistent search behavior. Added new modifications to
# recognize OS X frameworks and additional Unix paths (FreeBSD, etc).
# Also corrected the header search path to follow "proper" SDL
# guidelines. Added a search for SDLmain which is needed by some
# platforms. Added a search for threads which is needed by some
# platforms. Added needed compile switches for MinGW.
#
# On OSX, this will prefer the Framework version (if found) over others.
# People will have to manually change the cache values of SDL_LIBRARY to
# override this selection or set the CMake environment
# CMAKE_INCLUDE_PATH to modify the search paths.
#
# Note that the header path has changed from SDL/SDL.h to just SDL.h
# This needed to change because "proper" SDL convention is #include
# "SDL.h", not <SDL/SDL.h>. This is done for portability reasons
# because not all systems place things in SDL/ (see FreeBSD).
#
# Modified for OpenTx by Maxim Paperno 19-Dec-2016
# Added SDL_LIBSDL, SDL_LIBSDLMAIN & SDL_LIBRARY_PATH, removed SDLMAIN_LIBRARY,
# SDL_LIBRARY_TEMP, and fixed bug with recursive appending of supporting
# libraries to cached SDL_LIBRARY_TEMP variable.
#
#=============================================================================
#CMake - Cross Platform Makefile Generator
#Copyright 2000-2015 Kitware, Inc.
#Copyright 2000-2011 Insight Software Consortium
#All rights reserved.
#
#Redistribution and use in source and binary forms, with or without
#modification, are permitted provided that the following conditions
#are met:
#
#* Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
#* Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
#* Neither the names of Kitware, Inc., the Insight Software Consortium,
# nor the names of their contributors may be used to endorse or promote
# products derived from this software without specific prior written
# permission.
#
#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
#"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
#LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
#A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
#HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
#SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
#LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
#DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
#THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
#(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
#OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
#------------------------------------------------------------------------------
#
#The above copyright and license notice applies to distributions of
#CMake in source and binary form. Some source files contain additional
#notices of original copyright by their contributors; see each source
#for details. Third-party software packages supplied with CMake under
#compatible licenses provide their own copyright notices documented in
#corresponding subdirectories.
#
#------------------------------------------------------------------------------
#
#CMake was initially developed by Kitware with the following sponsorship:
#
# * National Library of Medicine at the National Institutes of Health
# as part of the Insight Segmentation and Registration Toolkit (ITK).
#
# * US National Labs (Los Alamos, Livermore, Sandia) ASC Parallel
# Visualization Initiative.
#
# * National Alliance for Medical Image Computing (NAMIC) is funded by the
# National Institutes of Health through the NIH Roadmap for Medical Research,
# Grant U54 EB005149.
#
# * Kitware, Inc.
#=============================================================================
find_path(SDL_INCLUDE_DIR SDL.h
HINTS
ENV SDLDIR
PATH_SUFFIXES SDL SDL12 SDL11
# path suffixes to search inside ENV{SDLDIR}
include/SDL include/SDL12 include/SDL11 include
)
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(VC_LIB_PATH_SUFFIX lib/x64)
else()
set(VC_LIB_PATH_SUFFIX lib/x86)
endif()
# SDL-1.1 is the name used by FreeBSD ports...
# don't confuse it for the version number.
find_library(SDL_LIBSDL
NAMES SDL SDL-1.1
HINTS
ENV SDLDIR
PATH_SUFFIXES lib ${VC_LIB_PATH_SUFFIX}
)
# Non-OS X framework versions expect you to also dynamically link to
# SDLmain. This is mainly for Windows and OS X. Other (Unix) platforms
# seem to provide SDLmain for compatibility even though they don't
# necessarily need it.
find_library(SDL_LIBSDLMAIN
NAMES SDLmain SDLmain-1.1
HINTS
ENV SDLDIR
PATH_SUFFIXES lib ${VC_LIB_PATH_SUFFIX}
PATHS
/sw
/opt/local
/opt/csw
/opt
)
# SDL may require threads on your system.
# The Apple build may not need an explicit flag because one of the
# frameworks may already provide it.
# But for non-OSX systems, I will use the CMake Threads package.
if(NOT APPLE)
find_package(Threads)
endif()
# MinGW needs an additional library, mwindows
# It's total link flags should look like -lmingw32 -lSDLmain -lSDL
if(MINGW)
set(MINGW32_LIBRARY mingw32 CACHE STRING "mwindows for MinGW")
endif()
if(SDL_LIBSDL)
# For SDLmain
if(SDL_LIBSDLMAIN AND NOT SDL_BUILDING_LIBRARY AND NOT SDL_INCLUDE_DIR MATCHES ".framework")
list(FIND SDL_LIBSDL "${SDL_LIBSDLMAIN}" _SDL_MAIN_INDEX)
if(_SDL_MAIN_INDEX EQUAL -1)
list(APPEND _SDL_LIBRARY_TEMP "${SDL_LIBSDLMAIN}")
endif()
unset(_SDL_MAIN_INDEX)
endif()
list(APPEND _SDL_LIBRARY_TEMP "${SDL_LIBSDL}")
# For OS X, SDL uses Cocoa as a backend so it must link to Cocoa.
# CMake doesn't display the -framework Cocoa string in the UI even
# though it actually is there if I modify a pre-used variable.
# I think it has something to do with the CACHE STRING.
# So I use a temporary variable until the end so I can set the
# "real" variable in one-shot.
if(APPLE)
list(APPEND _SDL_LIBRARY_TEMP "-framework Cocoa")
endif()
if(Threads_FOUND)
list(APPEND _SDL_LIBRARY_TEMP ${CMAKE_THREAD_LIBS_INIT})
endif()
# MinGW needs an additional library, mwindows
# It's total link flags should look like -lmingw32 -lSDLmain -lSDL
if(MINGW)
list(INSERT 0 _SDL_LIBRARY_TEMP mingw32)
endif()
# Set the final string here so the GUI reflects the final state.
set(SDL_LIBRARY ${_SDL_LIBRARY_TEMP} CACHE STRING "Full list of required SDL & supporting libraries.")
unset(_SDL_LIBRARY_TEMP)
get_filename_component(_SDL_LIBRARY_TEMP ${SDL_LIBSDL} PATH)
set(SDL_LIBRARY_PATH ${_SDL_LIBRARY_TEMP} CACHE PATH "Path to SDL library.")
unset(_SDL_LIBRARY_TEMP)
endif()
if(SDL_INCLUDE_DIR AND EXISTS "${SDL_INCLUDE_DIR}/SDL_version.h")
file(STRINGS "${SDL_INCLUDE_DIR}/SDL_version.h" SDL_VERSION_MAJOR_LINE REGEX "^#define[ \t]+SDL_MAJOR_VERSION[ \t]+[0-9]+$")
file(STRINGS "${SDL_INCLUDE_DIR}/SDL_version.h" SDL_VERSION_MINOR_LINE REGEX "^#define[ \t]+SDL_MINOR_VERSION[ \t]+[0-9]+$")
file(STRINGS "${SDL_INCLUDE_DIR}/SDL_version.h" SDL_VERSION_PATCH_LINE REGEX "^#define[ \t]+SDL_PATCHLEVEL[ \t]+[0-9]+$")
string(REGEX REPLACE "^#define[ \t]+SDL_MAJOR_VERSION[ \t]+([0-9]+)$" "\\1" SDL_VERSION_MAJOR "${SDL_VERSION_MAJOR_LINE}")
string(REGEX REPLACE "^#define[ \t]+SDL_MINOR_VERSION[ \t]+([0-9]+)$" "\\1" SDL_VERSION_MINOR "${SDL_VERSION_MINOR_LINE}")
string(REGEX REPLACE "^#define[ \t]+SDL_PATCHLEVEL[ \t]+([0-9]+)$" "\\1" SDL_VERSION_PATCH "${SDL_VERSION_PATCH_LINE}")
set(SDL_VERSION_STRING ${SDL_VERSION_MAJOR}.${SDL_VERSION_MINOR}.${SDL_VERSION_PATCH})
unset(SDL_VERSION_MAJOR_LINE)
unset(SDL_VERSION_MINOR_LINE)
unset(SDL_VERSION_PATCH_LINE)
unset(SDL_VERSION_MAJOR)
unset(SDL_VERSION_MINOR)
unset(SDL_VERSION_PATCH)
endif()
include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDL
REQUIRED_VARS SDL_LIBRARY SDL_LIBRARY_PATH SDL_INCLUDE_DIR
VERSION_VAR SDL_VERSION_STRING)
@@ -1,68 +1,68 @@
# Find Xerces-C
# The following setings are defined
# XERCESC_ROOT_DIR, the root of the include and lib directory
# XERCESC_INCLUDE_DIR, the full path of the include dir (ADVANCED)
# XERCESC_LIBRARIES, the name of the xerces-c library (ADVANCED)
# Look for a root installation
IF( MSVC )
SET( XERCES_WINDIR C:/Programs/xerces-vc )
ELSE( )
SET( XERCES_WINDIR C:/Programs/xerces )
ENDIF( )
FIND_PATH(XERCESC_ROOT_DIR include/xercesc/parsers/SAXParser.hpp
${XERCES_WINDIR}
"C:/mingw/msys/1.0/local"
"C:/Program Files/CodeSynthesis XSD 3.2"
/usr
/usr/local
"C:/MinGW"
$ENV{CODESYNTH}
DOC "The root of an installed xerces-c installation"
)
# try to find the header
FIND_PATH(XERCESC_INCLUDE_DIR xercesc/parsers/SAXParser.hpp
${XERCESC_ROOT_DIR}/include
/usr/include
/usr/local/include
)
# Find the library
FIND_LIBRARY(XERCESC_LIBRARY
NAMES xerces-c xerces-c_3
PATHS
${XERCESC_ROOT_DIR}/lib
${XERCESC_ROOT_DIR}/lib/vc-9.0
${XERCESC_ROOT_DIR}/lib64/vc-9.0
/usr/lib
/usr/local/lib
DOC "The name of the xerces-c library"
)
IF (XERCESC_ROOT_DIR)
IF (XERCESC_INCLUDE_DIR AND XERCESC_LIBRARY)
SET (XERCESC_FOUND TRUE)
SET (XERCESC_LIBRARIES "${XERCESC_LIBRARY}")
# FIXME: There should be a better way of handling this?
# FIXME: How can we test to see if the lib dir isn't
# FIXME: one of the default dirs?
LINK_DIRECTORIES(${XERCESC_ROOT_DIR}/lib)
ENDIF (XERCESC_INCLUDE_DIR AND XERCESC_LIBRARY)
ENDIF (XERCESC_ROOT_DIR)
IF (XERCESC_FOUND)
IF (NOT XERCESC_FIND_QUIETLY)
MESSAGE (STATUS " found xerces-c: ${XERCESC_LIBRARY}")
ENDIF (NOT XERCESC_FIND_QUIETLY)
ELSE (XERCESC_FOUND)
IF (XERCESC_FIND_REQUIRED)
MESSAGE(FATAL_ERROR "Could not find Xerces-C")
ENDIF (XERCESC_FIND_REQUIRED)
ENDIF (XERCESC_FOUND)
MARK_AS_ADVANCED(
XERCESC_INCLUDE_DIR
XERCESC_LIBRARY
# Find Xerces-C
# The following setings are defined
# XERCESC_ROOT_DIR, the root of the include and lib directory
# XERCESC_INCLUDE_DIR, the full path of the include dir (ADVANCED)
# XERCESC_LIBRARIES, the name of the xerces-c library (ADVANCED)
# Look for a root installation
IF( MSVC )
SET( XERCES_WINDIR C:/Programs/xerces-vc )
ELSE( )
SET( XERCES_WINDIR C:/Programs/xerces )
ENDIF( )
FIND_PATH(XERCESC_ROOT_DIR include/xercesc/parsers/SAXParser.hpp
${XERCES_WINDIR}
"C:/mingw/msys/1.0/local"
"C:/Program Files/CodeSynthesis XSD 3.2"
/usr
/usr/local
"C:/MinGW"
$ENV{CODESYNTH}
DOC "The root of an installed xerces-c installation"
)
# try to find the header
FIND_PATH(XERCESC_INCLUDE_DIR xercesc/parsers/SAXParser.hpp
${XERCESC_ROOT_DIR}/include
/usr/include
/usr/local/include
)
# Find the library
FIND_LIBRARY(XERCESC_LIBRARY
NAMES xerces-c xerces-c_3
PATHS
${XERCESC_ROOT_DIR}/lib
${XERCESC_ROOT_DIR}/lib/vc-9.0
${XERCESC_ROOT_DIR}/lib64/vc-9.0
/usr/lib
/usr/local/lib
DOC "The name of the xerces-c library"
)
IF (XERCESC_ROOT_DIR)
IF (XERCESC_INCLUDE_DIR AND XERCESC_LIBRARY)
SET (XERCESC_FOUND TRUE)
SET (XERCESC_LIBRARIES "${XERCESC_LIBRARY}")
# FIXME: There should be a better way of handling this?
# FIXME: How can we test to see if the lib dir isn't
# FIXME: one of the default dirs?
LINK_DIRECTORIES(${XERCESC_ROOT_DIR}/lib)
ENDIF (XERCESC_INCLUDE_DIR AND XERCESC_LIBRARY)
ENDIF (XERCESC_ROOT_DIR)
IF (XERCESC_FOUND)
IF (NOT XERCESC_FIND_QUIETLY)
MESSAGE (STATUS " found xerces-c: ${XERCESC_LIBRARY}")
ENDIF (NOT XERCESC_FIND_QUIETLY)
ELSE (XERCESC_FOUND)
IF (XERCESC_FIND_REQUIRED)
MESSAGE(FATAL_ERROR "Could not find Xerces-C")
ENDIF (XERCESC_FIND_REQUIRED)
ENDIF (XERCESC_FOUND)
MARK_AS_ADVANCED(
XERCESC_INCLUDE_DIR
XERCESC_LIBRARY
)
@@ -1,52 +1,54 @@
# Locate Xsd from code synthesis include paths and binary
# Xsd can be found at http://codesynthesis.com/products/xsd/
# Written by Frederic Heem, frederic.heem _at_ telsey.it
# This module defines
# XSD_INCLUDE_DIR, where to find elements.hxx, etc.
# XSD_EXECUTABLE, where is the xsd compiler
# XSD_FOUND, If false, don't try to use xsd
FIND_PATH( XSD_INCLUDE_DIR xsd/cxx/parser/elements.hxx
# Locate Xsd from code synthesis include paths and binary
# Xsd can be found at http://codesynthesis.com/products/xsd/
# Written by Frederic Heem, frederic.heem _at_ telsey.it
# This module defines
# XSD_INCLUDE_DIR, where to find elements.hxx, etc.
# XSD_EXECUTABLE, where is the xsd compiler
# XSD_FOUND, If false, don't try to use xsd
FIND_PATH( XSD_INCLUDE_DIR xsd/cxx/parser/elements.hxx
"/opt/local/xsd-3.3.0-i686-macosx/libxsd"
"C:/Programs/xsd-3.3.0/libxsd"
"C:/Program Files/CodeSynthesis XSD 3.2/include"
"C:/mingw/xsd-3.3.0-i686-windows/libxsd"
$ENV{XSDDIR}/include
$ENV{CODESYNTH}/include
/usr/local/include /usr/include
)
IF( WIN32 )
SET( XSDCXX_FILENAME1 xsd-cxx.exe )
ELSE( )
SET( XSDCXX_FILENAME1 xsdcxx )
SET( XSDCXX_FILENAME2 xsd )
ENDIF( )
FIND_PROGRAM( XSDCXX_EXECUTABLE
NAMES
${XSDCXX_FILENAME1} ${XSDCXX_FILENAME2}
"C:/Programs/xsd-3.3.0/libxsd"
"C:/Program Files/CodeSynthesis XSD 3.2/include"
"C:/mingw/xsd-3.3.0-i686-windows/libxsd"
$ENV{XSDDIR}/include
$ENV{CODESYNTH}/include
/usr/local/include /usr/include
$ENV{XSDDIR}/libxsd
)
IF( WIN32 )
SET( XSDCXX_FILENAME1 xsd-cxx.exe )
ELSE( )
SET( XSDCXX_FILENAME1 xsdcxx )
SET( XSDCXX_FILENAME2 xsd )
ENDIF( )
FIND_PROGRAM( XSDCXX_EXECUTABLE
NAMES
${XSDCXX_FILENAME1} ${XSDCXX_FILENAME2}
PATHS
"/opt/local/xsd-3.3.0-i686-macosx/bin"
"C:/Programs/xsd-3.3.0/bin"
"C:/mingw/xsd-3.3.0-i686-windows/bin"
"C:/Program Files/CodeSynthesis XSD 3.2/bin"
$ENV{XSDDIR}/bin
/usr/local/bin
/usr/bin
)
MESSAGE(STATUS ${XSDCXX_EXECUTABLE})
# if the include and the program are found then we have it
IF( XSD_INCLUDE_DIR )
IF( XSDCXX_EXECUTABLE )
SET( XSD_FOUND "YES" )
ENDIF( XSDCXX_EXECUTABLE )
ENDIF( XSD_INCLUDE_DIR )
MARK_AS_ADVANCED(
XSD_INCLUDE_DIR
XSDCXX_EXECUTABLE
)
"/opt/local/xsd-3.3.0-i686-macosx/bin"
"C:/Programs/xsd-3.3.0/bin"
"C:/mingw/xsd-3.3.0-i686-windows/bin"
"C:/Program Files/CodeSynthesis XSD 3.2/bin"
$ENV{XSDDIR}/bin
/usr/local/bin
/usr/bin
$ENV{XSDDIR}/xsd
)
MESSAGE(STATUS ${XSDCXX_EXECUTABLE})
# if the include and the program are found then we have it
IF( XSD_INCLUDE_DIR )
IF( XSDCXX_EXECUTABLE )
SET( XSD_FOUND "YES" )
ENDIF( XSDCXX_EXECUTABLE )
ENDIF( XSD_INCLUDE_DIR )
MARK_AS_ADVANCED(
XSD_INCLUDE_DIR
XSDCXX_EXECUTABLE
)
+75
View File
@@ -0,0 +1,75 @@
macro(today RESULT)
if(WIN32)
execute_process(COMMAND "cmd" " /C date /T" OUTPUT_VARIABLE ${RESULT})
string(REGEX REPLACE "[^0-9]*([0-9]+)[^0-9]([0-9]+)[^0-9]([0-9]+).*" "\\1-\\2-\\3" ${RESULT} ${${RESULT}})
elseif(UNIX)
execute_process(COMMAND "date" "+%Y-%m-%d" OUTPUT_VARIABLE ${RESULT})
string(REGEX REPLACE "(....)-(..)-(..).*" "\\1-\\2-\\3" ${RESULT} ${${RESULT}})
else(WIN32)
message(WARNING "date not implemented")
set(${RESULT} 00-00-0000)
endif(WIN32)
endmacro(today)
macro(now RESULT)
if(WIN32)
execute_process(COMMAND "cmd" " /C time /T" OUTPUT_VARIABLE ${RESULT})
string(REGEX REPLACE "(..):(..).*" "\\1:\\2:00" ${RESULT} ${${RESULT}})
elseif(UNIX)
execute_process(COMMAND "date" "+%H:%M:%S" OUTPUT_VARIABLE ${RESULT})
string(REGEX REPLACE "(..):(..):(..).*" "\\1:\\2:\\3" ${RESULT} ${${RESULT}})
else(WIN32)
message(WARNING "time not implemented")
set(${RESULT} 00:00:00)
endif(WIN32)
endmacro(now)
find_package(Git)
macro(git_id RESULT)
set(${RESULT} 0)
if (GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git")
execute_process(COMMAND "${GIT_EXECUTABLE}" "--git-dir=${PROJECT_SOURCE_DIR}/.git" "rev-parse" "--short=8" "HEAD" OUTPUT_VARIABLE proc_out ERROR_VARIABLE proc_err)
if(proc_err)
message(WARNING "Git failed with error: ${proc_err}")
else()
string(REGEX REPLACE "(.*)\n" "\\1" ${RESULT} ${proc_out})
endif()
elseif(NOT GIT_FOUND)
message(WARNING "Git executable not found, revision number not available.")
else()
message(STATUS "Git repository not found, revision number not available.")
endif()
endmacro(git_id)
macro(use_cxx11)
if (CMAKE_VERSION VERSION_LESS "3.1" AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
set (CMAKE_CXX_FLAGS "--std=gnu++11 ${CMAKE_CXX_FLAGS}")
endif ()
endmacro(use_cxx11)
macro(PrintTargetReport targetName)
if(CMAKE_CXX_COMPILER MATCHES "/cl\\.exe$")
set(cpp_version ${MSVC_VERSION})
else()
execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE cpp_version)
endif()
if(cpp_version)
string(STRIP "v${cpp_version}" cpp_version)
else()
set(cpp_version "WARNING: COMPILER NOT FOUND!")
endif()
message("TARGET ${targetName}: cpp compiler ${CMAKE_CXX_COMPILER} ${cpp_version}")
if(VERBOSE_CMAKELISTS)
get_directory_property(DirOpts COMPILE_OPTIONS)
get_directory_property(DirDefs COMPILE_DEFINITIONS)
string(REPLACE ";" " " DirOpts "${DirOpts}")
string(REPLACE ";" "; " DirDefs "${DirDefs}")
string(TOUPPER "${CMAKE_BUILD_TYPE}" build_type)
message("\twith cpp flags: ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${build_type}} ${DirOpts}")
message("\twith link flags: ${CMAKE_EXE_LINKER_FLAGS}")
message("\twith defs: ${DirDefs}")
message("--------------")
endif()
endmacro(PrintTargetReport)
+296 -1
View File
@@ -1,3 +1,298 @@
<h2>Version 2.2.0 / 2017-05-30</h2>
Major release! Please see <a href=http://www.open-tx.org/2017/05/30/opentx-2.2.0>this page</a> for details.
<h2>Version 2.1.9 / 2016-09-14</h2>
<ul>
<li>SD sync fixes (<a href=https://github.com/opentx/opentx/issues/3351>#3351</a>)</li>
<li>Fixed: Telemetry mode "FrSky D (cable)" choice was missing for Taranis (<a href=https://github.com/opentx/opentx/issues/3372>#3372</a>)</li>
<li>Show persistent option only for calculated sensors (<a href=https://github.com/opentx/opentx/issues/3454>#3454</a>)</li>
<li>Fixed Flight mode clear command (<a href=https://github.com/opentx/opentx/issues/3214>#3214</a>)</li>
<li>Fixed a problem with Rotary encoders linked to flight mode (could freeze Companion) (<a href=https://github.com/opentx/opentx/issues/3459>#3459</a>, <a href=https://github.com/opentx/opentx/issues/3470>#3470</a>)</li>
<li>Telemetry simulator improvements: added fuel quantity sensor, increased RPM range (<a href=https://github.com/opentx/opentx/issues/3505>#3505</a>, <a href=https://github.com/opentx/opentx/issues/3506>#3506</a>)</li>
<li>Implemented minimal support for the DYI Multimodule (<a href=https://github.com/opentx/opentx/issues/3526>#3526</a>)</li>
<li>Fixed: GVar combo-box not being refreshed when GV check-box (re-)selected (<a href=https://github.com/opentx/opentx/issues/3518>#3518</a>)</li>
<li>Fixed: Heli inversion not correctly shown/saved from Companion on Radios without virtual inputs (<a href=https://github.com/opentx/opentx/issues/3510>#3510</a>)</li>
<li>Implemented print functions for the Heli setup screen (<a href=https://github.com/opentx/opentx/issues/3554>#3554</a>)</li>
<li>Fixed: Flight modes linked trims display value (<a href=https://github.com/opentx/opentx/issues/3547>#3547</a>, <a href=https://github.com/opentx/opentx/issues/3568>#3568</a>)</li>
<li>Fixed: New model global variables and rotary encoders initialisation (<a href=https://github.com/opentx/opentx/issues/3473>#3473</a>)</li>
<li>Fixed: Prevent circular linked global variables and rotary encoders (<a href=https://github.com/opentx/opentx/issues/3472>#3472</a>)</li>
<li>Fixed wrong log replay speed issue in Telemetry simulator (<a href=https://github.com/opentx/opentx/issues/3708>#3708</a>)</li>
<li>Various texts and translations corrections</li>
</ul>
<h2>Version 2.1.8 / 2016-04-14</h2>
<ul>
<li>Telemetry Simulator sensor instance number fixed (<a href=https://github.com/opentx/opentx/issues/3207>#3207</a>)</li>
<li>Fixed: Throttle Source combo-box was populated multiple times (<a href=https://github.com/opentx/opentx/issues/3222>#3222</a>)</li>
<li>RTC option tool-tip corrected (<a href=https://github.com/opentx/opentx/issues/3225>#3225</a>)</li>
<li>Fixed: Companion was looking for custom scripts at the wrong place (<a href=https://github.com/opentx/opentx/issues/3237>#3237</a>)</li>
<li>Offset displayed in inputs screen (<a href=https://github.com/opentx/opentx/issues/3248>#3248</a>)</li>
<li>Import/export handling was broken for Average formula telemetry sensors (<a href=https://github.com/opentx/opentx/issues/3262>#3262</a>)</li>
<li>Fixed: Hardware Setup control types and names were not stored in profile (<a href=https://github.com/opentx/opentx/issues/3260>#3260</a>)</li>
<li>Fixed voice language list (<a href=https://github.com/opentx/opentx/issues/3338>#3338</a>)</li>
<li>Fixed data overflow in Special Functions Override Channel (<a href=https://github.com/opentx/opentx/issues/3347>#3347</a>)</li>
<li>Fixed: Sync dialog new line problem (only present for some UI languages) (<a href=https://github.com/opentx/opentx/issues/3350>#3350</a>)</li>
<li>Removed a few legacy timer limitations, fix non-working limit (<a href=https://github.com/opentx/opentx/issues/3301>#3301</a>)</li>
<li>Default AVR fuse settings changed to disable JTAG interface (<a href=https://github.com/opentx/opentx/issues/3379>#3379</a>)</li>
<li>Channel range fix (Start, Channels) in Model Settings, Setup page, int/ext module settings</li>
<li>Use friendly GVAR names in dialogs (if available) (<a href=https://github.com/opentx/opentx/issues/3353>#3353</a>)</li>
<li>Various texts and translations corrections</li>
</ul>
<h2>Version 2.1.7 / 2016-01-04</h2>
<ul>
<li>Lua 'execute' failed in non-root directory (in Simulator) (<a href=https://github.com/opentx/opentx/issues/3024>#3024</a>)</li>
<!-- this is disabled until the speed problem is fixed <li>Header line always visible in Outputs, Logical Switches and Special Functions (<a href=https://github.com/opentx/opentx/issues/2861>#2861</a>)</li> -->
<li>LR12 changes: removed option for remote failsafe configuration, added in EU firmware variant</li>
<li>Added Clear option to the flight mode context menu (right click on the Name label) (<a href=https://github.com/opentx/opentx/issues/3026>#3026</a>)</li>
<li>New features for Telemetry Simulator: log replay, user friendly sensor values (<a href=https://github.com/opentx/opentx/issues/3124>#3124</a>)</li>
<li>Added F7 key to reload LUA permanent scripts in radio simulator (<a href=https://github.com/opentx/opentx/issues/3141>#3141</a>)</li>
<li>AR9X firmware flashing fall-back was wrong</li>
<li>Command line options support added to standalone simulator (try "./simulator21 --help" on Linux and "simulator.exe /help" on Windows for usage) (<a href=https://github.com/opentx/opentx/issues/3160>#3160</a>)</li>
<li>Various rounding problem fixed: Telemetry sensor Ratio parameter (<a href=https://github.com/opentx/opentx/issues/3117>#3117</a>),
Outputs Sub-trim, Min and Max values (<a href=https://github.com/opentx/opentx/issues/3156>#3156</a>)</li>
<li>Fixed: telemetry sensors Ratio and Offset value increment/decrement step (<a href=https://github.com/opentx/opentx/issues/3121>#3121</a>)</li>
<li>Hardware/Calibration tab split int two tabs (<a href=https://github.com/opentx/opentx/issues/2974>#2974</a>)</li>
<li>Fixed Fahrenheit temperature conversion error (if PREC was not 0) (<a href=https://github.com/opentx/opentx/issues/3146>#3146</a>)</li>
<li>Application Setting 'Enable automatic backup before writing firmware' was not saved (<a href=https://github.com/opentx/opentx/issues/3040>#3040</a>)</li>
<li>Fixed RPM package problem on Fedora (<a href=https://github.com/opentx/opentx/issues/3130>#3130</a>)</li>
<li>Fixed conversion errors when loading 2.0.x EEPE (<a href=https://github.com/opentx/opentx/issues/3177>#3177</a>)</li>
<li>Various texts and translations corrections</li>
</ul>
<h2>Version 2.1.6 / 2015-11-11</h2>
<ul>
<li>Telemetry custom screen changes didn't emit modified signal (<a href=https://github.com/opentx/opentx/issues/3029>#3029</a>)</li>
<li>Hide D8/LR12 when eu firmware option is selected</li>
</ul>
<h2>Version 2.1.5 / 2015-11-05</h2>
Notice: version 2.1.4 was skipped by the OpenTX team to avoid confusion with FrSky's release of OpenTX 2.1.4
<ul>
<li>Fixed: changing any setting on the telemetry panel does not set the file as being modified (<a href=https://github.com/opentx/opentx/issues/2875>#2875</a>)</li>
<li>Print model fix for "Play value.... not on startup" (<a href=https://github.com/opentx/opentx/issues/2736>#2736</a>)</li>
<li>Top LCD Timer could not be selected for X9E (<a href=https://github.com/opentx/opentx/issues/2850>#2850</a>)</li>
<li>More informative error/info messages when openin eepe files (<a href=https://github.com/opentx/opentx/issues/2778>#2778</a>)</li>
<li>Print model fix for curves (<a href=https://github.com/opentx/opentx/issues/2896>#2896</a>)</li>
<li>Added missing special functions (bind, range check, set failsafe) (<a href=https://github.com/opentx/opentx/issues/2753>#2753</a>)</li>
<li>Some defaults missing when changing telemetry formula, update propagation issues (<a href=https://github.com/opentx/opentx/issues/2928>#2928</a>)</li>
<li>Fixed wrong import of Logical switches from OpenTX 2.0.x version (<a href=https://github.com/opentx/opentx/issues/2942>#2942</a>)</li>
<li>Fixed a problem with updates path on Windows (<a href=https://github.com/opentx/opentx/issues/2876>#2876</a>)</li>
<li>Edge representation unified (changed from "no release" to "instant") (<a href=https://github.com/opentx/opentx/issues/2837>#2837</a>)</li>
<li>Added channel names on failsafe sliders (<a href=https://github.com/opentx/opentx/issues/3021>#3021</a>)</li>
<li>Corrected failsafe mapping when using Custom failsafe mode, D16 protocol and channel range different from from 1-8.
Users with such setups are advised to re-check their failsafe settings (<a href=https://github.com/opentx/opentx/issues/2975>#2975</a>)</li>
<li>Various texts and translations corrections</li>
<li>Various small bug-fixes: <a href=https://github.com/opentx/opentx/issues/2994>#2994</a>,
<a href=https://github.com/opentx/opentx/issues/3016>#3016</a>,
<a href=https://github.com/opentx/opentx/issues/3012>#3012</a>
</li>
</ul>
<h2>Version 2.1.3 / 2015-09-09</h2>
<ul>
<li>Fix missing translations in inputs/mixes tabs, print and compare dialogs (<a href=https://github.com/opentx/opentx/issues/2847>#2847</a>)</li>
</ul>
<h2>Version 2.1.2 / 2015-09-07</h2>
<ul>
<li>Fixed: Lua model scripts outputs not working in a simulator (<a href=https://github.com/opentx/opentx/issues/2684>#2684</a>)</li>
<li>Fixed a problem of Companion 2.1 trying to install into 2.0 path.
The effect will only be visible for the users that did not install any of the previous 2.1.x versions.
(<a href=https://github.com/opentx/opentx/issues/2645>#2645</a>)</li>
<li>Added missing SDL libraries to MAC package (<a href=https://github.com/opentx/opentx/issues/2678>#2678</a>)</li>
<li>Added used channels check/warning in Wizard (<a href=https://github.com/opentx/opentx/issues/2091>#2091</a>)</li>
<li>Model Print and Model Compare improvements and fixes (<a href=https://github.com/opentx/opentx/issues/2734>#2734</a>, <a href=https://github.com/opentx/opentx/issues/2737>#2737</a>, <a href=https://github.com/opentx/opentx/issues/2576>#2576</a>)</li>
<li>Negative telemetry offset value was reset when writing back to radio (<a href=https://github.com/opentx/opentx/issues/2738>#2738</a>)</li>
<li>Telemetry sensor names were not displayed (<a href=https://github.com/opentx/opentx/issues/2807>#2807</a>)</li>
<li>Mixes multiplex representation now the same as on the radio (<a href=https://github.com/opentx/opentx/issues/2808>#2808</a>)</li>
<li>Fixed language-related startup crash on Mac (<a href=https://github.com/opentx/opentx/issues/2815>#2815</a>)</li>
<li>Fixed issues with conversion from 2.0 (<a href=https://github.com/opentx/opentx/issues/2809>#2809</a>, <a href=https://github.com/opentx/opentx/issues/2800>#2800</a>)</li>
<li>Fixed Throttle source export issue on X9E (<a href=https://github.com/opentx/opentx/issues/2844>#2844</a>)</li>
<li>Added support for the AR9X replacement board (prototype) for the Turnigy 9X radio, info <a href=http://www.rcgroups.com/forums/showthread.php?t=2479552>here</a></li>
</ul>
<h2>Version 2.1.1 / 2015-08-06</h2>
<ul>
<li>Vario source and center silent options were not saved(<a href=https://github.com/opentx/opentx/issues/2476>#2476</a>)</li>
<li>DSM receiver numbers for external module were not converted from previous version EEPROM (<a href=https://github.com/opentx/opentx/issues/2474>#2474</a>)</li>
<li>Precision incorrectly set for Calculated->Cells sensor (<a href=https://github.com/opentx/opentx/issues/2479>#2479</a>)</li>
<li>Unit incorrectly set for Calculated->Cells sensor (<a href=https://github.com/opentx/opentx/issues/2485>#2485</a>)</li>
<li>Fixed import/export of trim values (<a href=https://github.com/opentx/opentx/issues/2484>#2484</a>)</li>
<li>Removed constant access to floppy disk (<a href=https://github.com/opentx/opentx/issues/2160>#2160</a>)</li>
<li>Telemetry view script combo box list was empty (<a href=https://github.com/opentx/opentx/issues/2465>#2465</a>)</li>
<li>Telemetry view bars ranges not transfered to radio (<a href=https://github.com/opentx/opentx/issues/2491>#2491</a>)</li>
<li>Fixed Standalone simulator radio selection display problem (<a href=https://github.com/opentx/opentx/issues/2503>#2503</a>)</li>
<li>Added missing simulation libraries and enabled side by side installation of Companion 2.0 and 2.1 on Linux (<a href=https://github.com/opentx/opentx/issues/2500>#2500</a>)</li>
<li>Standalone simulator now remembers which radio was simulated in previous session (<a href=https://github.com/opentx/opentx/issues/2503>#2503</a>)</li>
<li>Radio calibration value were not displayed (<a href=https://github.com/opentx/opentx/issues/2502>#2502</a>)</li>
<li>Fixed Vario / Voltage / Current sources export problem</li>
<li>Writing model settings to 9XR-PRO did not work (<a href=https://github.com/opentx/opentx/issues/2402>#2402</a>, <a href=https://github.com/opentx/opentx/issues/2517>#2517</a>)</li>
<li>Model Print and Model Compare improvements</li>
<li>Fixed Companion OSX version (<a href=https://github.com/opentx/opentx/issues/2549>#2549</a>)</li>
<li>Firmware nightly builds are now downloadable from nightly builds of Companion (<a href=https://github.com/opentx/opentx/issues/2526>#2526</a>, <a href=https://github.com/opentx/opentx/issues/2634>#2634</a>)</li>
<li>Fixed telemetry item lists (<a href=https://github.com/opentx/opentx/issues/2541>#2541</a>)</li>
<li>Fixed missing pots P1..P3 for 9X (<a href=https://github.com/opentx/opentx/issues/2543>#2543</a>)</li>
<li>Fixed "Invalid model and settings" error message when writing models and settings to the radio (<a href=https://github.com/opentx/opentx/issues/2544>#2544</a>)</li>
<li>Global Functions fixes (<a href=https://github.com/opentx/opentx/issues/2558>#2558</a>)</li>
<li>Export to Google Earth now working (only) with the new telemetry fields (GPS, GAlt and GSpd) (<a href=https://github.com/opentx/opentx/issues/2546>#2546</a>)</li>
<li>Fixed unsuccessful writing of setting to the radio for 9XR PRO (<a href=https://github.com/opentx/opentx/issues/2605>#2605</a>)</li>
<li>Fixed missing LUA script outputs in special function "Play Value" (<a href=https://github.com/opentx/opentx/issues/2649>#2649</a>)</li>
<li>Various texts and translations corrections</li>
<li>Various small bug-fixes</li>
</ul>
<h2>Version 2.1.0 / 2015-07-16</h2>
<ul>
<li>SD card synchronizaton tool</li>
<li>Added session duraton information in Log Viewer</li>
<li>Enabled <i>Mixers monitor</i> in Taranis simulator</li>
<li>Better support for multi-axes in Log Viewer (<a href=https://github.com/opentx/opentx/issues/2267>#2267</a>)</li>
<li>File path issue in Taranis simulator function <i>findTrueFileName()</i> on Windows (<a href=https://github.com/opentx/opentx/issues/2301>#2301</a>)</li>
<li>Added simulator volume gain setting (<a href=https://github.com/opentx/opentx/issues/2260>#2260</a>)</li>
<li>Added GPS glitch filtering and Latitude/Longitude position synchronization to Google Earth export (<a href=https://github.com/opentx/opentx/issues/2326>#2326</a>)</li>
<li>Fixed a rare program crash when editing Input for 9X radio (<a href=https://github.com/opentx/opentx/issues/2420>#2420</a>)</li>
<li>Fixed missing RSSI audio warnings if simulator was started multiple times (<a href=https://github.com/opentx/opentx/issues/2446>#2446</a>)</li>
</ul>
<h2>Version 2.0.17 / 2015-05-04</h2>
<ul>
<li>Simulator crash (<a href=https://github.com/opentx/opentx/issues/2253>#2253</a>)</li>
</ul>
<h2>Version 2.0.16 / 2015-05-03</h2>
<ul>
<li><i>nooverridech</i> firmware option was not working</li>
<li>Fixed setting Expo from gvars for 9XR-Pro (<a href=https://github.com/opentx/opentx/issues/2040>#2040</a>)</li>
<li>Added Mixers Monitor screen option <i>mixersmon</i> (<a href=https://github.com/opentx/opentx/issues/1945>#1945</a>)</li>
<li>Added audio playing in simulator (<a href=https://github.com/opentx/opentx/issues/457>#457</a>)</li>
<li>Fixed sorting of audio tracks (<a href=https://github.com/opentx/opentx/issues/2002>#2002</a>)</li>
<li>Model wizard fixes (<a href=https://github.com/opentx/opentx/issues/2091>#2091</a>)</li>
<li>GVAR names removed for 9x, radio doesn't support them (<a href=https://github.com/opentx/opentx/issues/2150>#2150</a>)</li>
<li>Some LS sources didn't follow the Imperial units setting (<a href=https://github.com/opentx/opentx/issues/2180>#2180</a>)</li>
<li>Added more fields to the telemetry simulator (<a href=https://github.com/opentx/opentx/issues/2171>#2171</a>)</li>
<li>Log viewer improvements and massive speed increase (<a href=https://github.com/opentx/opentx/issues/1863>#1863</a>, <a href=https://github.com/opentx/opentx/issues/2163>#2163</a>)</li>
<li>Added Battery meter range setting (<a href=https://github.com/opentx/opentx/issues/2195>#2195</a>)</li>
<li>Improvements in Print and Compare dialogs (<a href=https://github.com/opentx/opentx/issues/2219>#2219</a>)</li>
<li>Reset pots to the middle by right double clicking them in Simulator (<a href=https://github.com/opentx/opentx/issues/1939>#1939</a>)</li>
<li>Minor fixes: <a href=https://github.com/opentx/opentx/issues/2153>#2153</a>,
<a href=https://github.com/opentx/opentx/issues/2138>#2138</a>,
<a href=https://github.com/opentx/opentx/issues/2090>#2090</a>,
<a href=https://github.com/opentx/opentx/issues/2122>#2122</a>
</li>
</ul>
<h2>Version 2.0.15 / 2015-01-13</h2>
<ul>
<li>Firmware was not written correctly on radio when compatibility warning check enabled</li>
<li>Time format for Special Functions Set Timers</li>
</ul>
<h2>Version 2.0.14 / 2015-01-12</h2>
<ul>
<li>OpenTX Companion and Companion9x can now be installed side by side on Linux</li>
<li>Improved TAB order in dialogs</li>
<li>Special Function <i>Start Logs</i> renamed to more appropriate <i>SD Logs</i></li>
<li>Improvements for MAC build</li>
<li>Fixes to Google Earth logs export</li>
<li>Firmware compatibility warning check added when flashing new firmware to radio</li>
<li>Fixed issue with Telemetry Type setting on 9XR-PRO</li>
<li>Added Telemetry simulator</li>
<li>Added Trainer simulator</li>
<li>Added Debug Output window</li>
<li>Various texts and translations corrections</li>
<li>Various small bug-fixes</li>
<li>More reliable method of writing EEPROM.BIN and FIRMWARE.BIN to radio</li>
<li>Fixed issue with Edge function INSTANT for V1>2s</li>
<li>Fixed buffer overflow in Joystick code</li>
</ul>
<h2>Version 2.0.13 / 2014-11-20</h2>
<ul>
<li>Too many curves shown on non ARM boards</li>
<li>Fixed vario limits</li>
<li>Fixes in compare dialog</li>
<li>Fixed receiver number range</li>
<li>Virtual inputs not selectable in SF Volume and heli Collective Source</li>
<li>Joystick calibration crash after channel assignment</li>
<li>Gvar import error for limits</li>
<li>Companion shows too many curve types in input/mixer for 9x</li>
<li>NOT curves removed from inputs (for non ARM platforms)</li>
<li>Companion again builds on OS X (Mac)</li>
<li>Companion simulator Lua crash on OS X 64bit (Mac)</li>
<li>Companion didn't take care of PlayScript functions</li>
</ul>
<h2>Version 2.0.12 / 2014-09-15</h2>
<ul>
<li>Typos & Translations updated</li>
</ul>
<h2>Version 2.0.11 / 2014-09-10</h2>
<ul>
<li>Limits EEPROM export was broken (all boards except Taranis)</li>
<li>Fix issue when a GVAR was used as Offset</li>
</ul>
<h2>Version 2.0.10 / 2014-09-08</h2>
<ul>
<li>Taranis is now the default board in General Settings</li>
<li>GVARS allowed in Limits min/max/offset</li>
<li>Limits displayed in us when ppmus option selected
</ul>
<h2>Version 2.0.8 / 2014-07-23</h2>
<ul>
<li>Compare dialog bugfixes</li>
<li>Curve index correctly resetted when type changed</li>
</ul>
<h2>Version 2.0.7</h2>
<ul>
<li>SafetyCH function was missing in simulator</li>
<li>EEPROM export warning when exporting logical switches > L12 on 9X128</li>
<li>FAS offset was not exported on 9X/9XR boards</li>
<li>Trims modes bugfix on non Taranis boards</li>
<li>It was impossible to open a backuped model from the Tx</li>
</ul>
<h2>Version 2.0.6</h2>
<ul>
<li>Fix Mix curves bug on Sky9x boards</li>
<li>Channels 17-32 are displayed in the simulator</li>
<li>Backlight simulation bugfix</li>
</ul>
<h2>Version 2.0.5</h2>
<ul>
<li>Fix crash on startup</li>
<li>Fix version number in simu</li>
<li>9XR-Pro now supported on Mac</li>
<li>Fix loss of settings in telemetry custom screens</li>
<li>Fix 10000% bug when using GVs in mixer weithg or offset</li>
<li>Fix Cnsp range in logical switches (up to 30000mAh)</li>
</ul>
<h2>Version 2.0.4</h2>
<ul>
<li>Sound should be ok on all platforms</li>
@@ -182,4 +477,4 @@
<li>Try to reduce modeledit window form MAC</li>
<li>Wrong init of RF-Module data</li>
<li>Read flash from TX didn't worked for Taranis</li>
</ul>
</ul>
+477 -347
View File
@@ -1,168 +1,251 @@
PROJECT( companion )
set(SIMULATOR_INSTALL_PREFIX "" CACHE STRING "Alternative simulator library search path")
SET( C9X_VERSION_MAJOR "2" )
SET( C9X_VERSION_MINOR "0" )
SET( C9X_VERSION_REVISION "4" )
SET( C9X_VERSION ${C9X_VERSION_MAJOR}.${C9X_VERSION_MINOR}.${C9X_VERSION_REVISION} )
if(${CMAKE_SYSTEM_NAME} MATCHES "(Linux|FreeBSD)")
set(C9X_NAME_SUFFIX ${VERSION_MAJOR}${VERSION_MINOR})
set(COMPANION_NAME "companion${C9X_NAME_SUFFIX}")
set(SIMULATOR_NAME "simulator${C9X_NAME_SUFFIX}")
if (NOT ${SIMULATOR_INSTALL_PREFIX} STREQUAL "")
set(SIMULATOR_LIB_PATH ${SIMULATOR_INSTALL_PREFIX}/lib/companion${C9X_NAME_SUFFIX})
else()
set(SIMULATOR_LIB_PATH ${CMAKE_INSTALL_PREFIX}/lib/companion${C9X_NAME_SUFFIX})
endif()
message(STATUS "Simulators library search path: " ${SIMULATOR_LIB_PATH})
set(SIMULATOR_LIB_INSTALL_PATH ${CMAKE_INSTALL_PREFIX}/lib/companion${C9X_NAME_SUFFIX})
else()
set(COMPANION_NAME "companion")
set(SIMULATOR_NAME "simulator")
endif()
CMAKE_MINIMUM_REQUIRED( VERSION 2.8 )
# This the name that the user will see in the generated DMG and what the application
# will be called under /Applications. We include the version string to make installing
# different versions for different eeproms easier, i.e. without manually renaming
set(COMPANION_OSX_APP_BUNDLE_NAME "OpenTX Companion ${VERSION_MAJOR}.${VERSION_MINOR}")
SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
# On OS X we copy dfu-util to the application bundle. This the path from which we copy
# the binary (default homebrew path)
set(DFU_UTIL_PATH "/usr/local/bin/dfu-util")
set(AVRDUDE_PATH "/usr/local/bin/avrdude")
set(AVRDUDE_CONF "/usr/local/etc/avrdude.conf")
MESSAGE( STATUS "Looking for XercesC " )
FIND_PACKAGE(XercesC)
IF ( XERCESC_FOUND )
INCLUDE_DIRECTORIES( ${XERCESC_INCLUDE_DIR} )
SET(LidarFormat_LIBRAIRIES ${LidarFormat_LIBRAIRIES} ${XERCESC_LIBRARIES})
ELSE()
MESSAGE( FATAL_ERROR "XercesC not found! Please set XercesC path ..." )
ENDIF()
option(ALLOW_NIGHTLY_BUILDS "Allow nightly builds download / update") # Disabled by default
if(ALLOW_NIGHTLY_BUILDS)
add_definitions(-DALLOW_NIGHTLY_BUILDS)
endif(ALLOW_NIGHTLY_BUILDS)
MESSAGE( STATUS "Looking for Xsd " )
FIND_PACKAGE(Xsd)
IF ( XSD_FOUND )
INCLUDE_DIRECTORIES( ${XSD_INCLUDE_DIR} )
MESSAGE("XSD Include Path: " ${XSD_INCLUDE_DIR} )
ELSE()
MESSAGE( FATAL_ERROR "XSD not found! Please set XSD path ..." )
ENDIF()
option(DEBUG_STORAGE_IMPORT "Turn on debug output for storage import") # Disabled by default
if(DEBUG_STORAGE_IMPORT)
add_definitions(-DDEBUG_STORAGE_IMPORT)
message(STATUS "Storage import debugging enabled")
endif()
if(DEBUG)
add_definitions(-DDEBUG)
endif()
MESSAGE( STATUS "Looking for SDL " )
FIND_PACKAGE(Sdl)
IF ( SDL_FOUND )
INCLUDE_DIRECTORIES( ${SDL_INCLUDE_DIR} )
MESSAGE("SDL Include Path: " ${SDL_INCLUDE_DIR} )
ADD_DEFINITIONS( -DJOYSTICKS )
ELSE()
MESSAGE( "SDL not found! Joysticks support will be disabled" )
ENDIF()
option(TABLE_LAYOUT "Use QTableWidget for grid layouts") # Disabled by default
if(TABLE_LAYOUT)
add_definitions(-DTABLE_LAYOUT)
message(STATUS "Using QTableWidget")
endif()
FIND_PACKAGE(Qt4 4.8.4 REQUIRED)
SET( QT_USE_QTNETWORK True )
SET( QT_USE_QTXML True )
INCLUDE( ${QT_USE_FILE} )
if(WIN32)
option(WIN_DO_FULL_INSTALL "'install' target will perform a full installation into CMAKE_INSTALL_PREFIX path, otherwise only supporting DLLs are copied to binaries folder (default)" OFF)
option(WIN_USE_CONSOLE "Open a Windows command console for Simulator debug output." OFF)
if(WIN_USE_CONSOLE)
add_definitions(-DWIN_USE_CONSOLE_STDIO)
endif()
endif()
MESSAGE( STATUS "Looking for PHONON " )
FIND_PACKAGE(Phonon)
IF ( PHONON_FOUND )
INCLUDE_DIRECTORIES( ${PHONO_INCLUDE_DIR} )
MESSAGE("PHONON Include Path: " ${PHONON_INCLUDE_DIR} )
ADD_DEFINITIONS( -DPHONON )
ELSE()
MESSAGE( "PHONON not found!" )
ENDIF()
if(SDL_FOUND)
include_directories(${SDL_INCLUDE_DIR})
add_definitions(-DJOYSTICKS)
endif()
ADD_CUSTOM_COMMAND(
COMMAND ${XSDCXX_EXECUTABLE} cxx-tree --root-element-all --generate-serialization --output-dir ${PROJECT_BINARY_DIR}/ ${PROJECT_SOURCE_DIR}/radio.xsd
OUTPUT ${PROJECT_BINARY_DIR}/radio.hxx ${PROJECT_BINARY_DIR}/radio.cxx
DEPENDS ${PROJECT_SOURCE_DIR}/radio.xsd
)
add_definitions(${APP_COMMON_DEFINES}) # set in top-level CMakeLists
IF( MSVC )
SET(CMAKE_CXX_FLAGS "/EHsc /LD")
INCLUDE_DIRECTORIES( ${PROJECT_SOURCE_DIR}/winbuild C:/Programs/pthreads/Pre-built.2/include C:/Programs/msinttypes)
LINK_DIRECTORIES( C:/Programs/pthreads/Pre-built.2/lib/ )
SET( PTHREAD_LIBRARY pthreadVC2.lib )
ELSE( )
SET( PTHREAD_LIBRARY pthread )
ADD_DEFINITIONS( -Wall )
LINK_DIRECTORIES( /usr/local/lib )
ENDIF( )
if(NOT MSVC)
set(WARNING_FLAGS "${WARNING_FLAGS} -Wall")
if(WARNINGS_AS_ERRORS)
set(WARNING_FLAGS "${WARNING_FLAGS} -Werror")
endif()
else()
# silence lots of warnings regarding "insecure" use of functions (sprintf, strcpy, etc)
set(WARNING_FLAGS "${WARNING_FLAGS} /D_CRT_SECURE_NO_WARNINGS")
if(WARNINGS_AS_ERRORS)
set(WARNING_FLAGS "${WARNING_FLAGS} /WX")
endif()
endif()
set(RADIO_SRC_DIRECTORY ${PROJECT_SOURCE_DIR}/../../radio/src)
set(SIMU_SRC_DIRECTORY ${PROJECT_SOURCE_DIR}/simulation)
set(COMPANION_SRC_DIRECTORY ${PROJECT_SOURCE_DIR})
if(WIN32)
include_directories(SYSTEM ${WIN_INCLUDE_DIRS})
if(NOT WIN_USE_CONSOLE)
set(WIN_EXECUTABLE_TYPE WIN32) # GUI (WinMain) app
endif()
if(MSVC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc /LD /MP")
if(NOT WIN_USE_CONSOLE)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:WINDOWS,5.01") # is this even needed?
endif()
elseif(MINGW)
# struct packing breaks on MinGW w/out -mno-ms-bitfields: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52991 & http://stackoverflow.com/questions/24015852/struct-packing-and-alignment-with-mingw
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mno-ms-bitfields")
endif()
else()
set(PTHREAD_LIBRARY pthread)
link_directories(/usr/local/lib)
endif()
add_custom_command(
OUTPUT ${RADIO_SRC_DIRECTORY}/bitmaps/sticks.lbm
COMMAND make lbm
DEPENDS ${RADIO_SRC_DIRECTORY}/bitmaps/sticks_4x1.xbm
WORKING_DIRECTORY ${RADIO_SRC_DIRECTORY}
)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WARNING_FLAGS}")
add_custom_command(
OUTPUT ${RADIO_SRC_DIRECTORY}/translations/en.h
COMMAND make tra
DEPENDS ${RADIO_SRC_DIRECTORY}/translations/en.h.txt
WORKING_DIRECTORY ${RADIO_SRC_DIRECTORY}
)
use_cxx11() # ensure gnu++11 in CXX_FLAGS with CMake < 3.1
include_directories(
${CMAKE_BINARY_DIR}
${CMAKE_CURRENT_BINARY_DIR}
${PROJECT_SOURCE_DIR}/../..
${CMAKE_SOURCE_DIR}
${COMPANION_SRC_DIRECTORY}
${COMPANION_SRC_DIRECTORY}/shared
${SIMU_SRC_DIRECTORY}
${RADIO_SRC_DIRECTORY}
${RADIO_SRC_DIRECTORY}/fonts/std
${RADIO_SRC_DIRECTORY}/lua/src
${XSD_INCLUDE_DIR}
${COMPANION_SRC_DIRECTORY}/thirdparty/qcustomplot
${COMPANION_SRC_DIRECTORY}/thirdparty/miniz
${COMPANION_SRC_DIRECTORY}/storage
)
add_subdirectory(modeledit)
add_subdirectory(simulation)
############# Do macro replacements on input files #############
configure_file(${COMPANION_SRC_DIRECTORY}/version.h.in ${CMAKE_BINARY_DIR}/version.h @ONLY)
configure_file(${COMPANION_SRC_DIRECTORY}/companion.desktop.in ${CMAKE_CURRENT_BINARY_DIR}/companion.desktop @ONLY)
configure_file(${COMPANION_SRC_DIRECTORY}/simulator.desktop.in ${CMAKE_CURRENT_BINARY_DIR}/simulator.desktop @ONLY)
############# Translations ###############
### Generate .qm files and assemble resource (qrc) file.
# available Companion translations (src/translations/*.ts)
set(LANGUAGES cs de en es fi fr it pl sv zh_CN)
foreach(language ${LANGUAGES})
list(APPEND companion_TS translations/companion_${language}.ts)
endforeach(language)
# .ts -> .qm
qt5_add_translation(companion_QM ${companion_TS})
# add Qt translations if found
if(QT_TRANSLATIONS_DIR)
# Some languages have all translations in one qt_*.qm file and others break them up into modules, in which case we need qt_base_*.qm
file(GLOB qtbase_QM "${QT_TRANSLATIONS_DIR}/qtbase_*.qm")
file(GLOB qt_QM "${QT_TRANSLATIONS_DIR}/qt_??.qm") # don't want to match "qt_help_*.qm"
list(APPEND qt_QM "${QT_TRANSLATIONS_DIR}/qt_zh_CN.qm" "${QT_TRANSLATIONS_DIR}/qt_zh_TW.qm") # exceptions not matched by the GLOB
else()
message(STATUS "QT_TRANSLATIONS_DIR not found, unable to package pre-built Qt translations with application.")
endif()
set(TRANSLATIONS_QRC "${CMAKE_CURRENT_BINARY_DIR}/translations.qrc")
# Dynamically create translations.qrc file (XML) from all collected translation files.
foreach(qm_file ${companion_QM} ${qt_QM} ${qtbase_QM})
get_filename_component(qm_file_name ${qm_file} NAME)
# Add file with full path and file name (w/out path) as alias to be used in actual code
set(TRANSLATION_FILES_LIST "${TRANSLATION_FILES_LIST} <file alias=\"${qm_file_name}\">${qm_file}</file>\n")
endforeach()
configure_file(${COMPANION_SRC_DIRECTORY}/translations.qrc.in ${TRANSLATIONS_QRC} @ONLY)
### Add optional "translations" target for updating .ts files
if(QT_LUPDATE_EXECUTABLE)
add_custom_target(translations
WORKING_DIRECTORY ${COMPANION_SRC_DIRECTORY}
COMMAND ${QT_LUPDATE_EXECUTABLE} ${CMAKE_SOURCE_DIR} -no-obsolete -ts ${companion_TS}
)
else()
message(STATUS "Qt lupdate not found, 'translations' target will not be availabe.")
endif()
############# Common lib ###############
set(common_SRCS
appdebugmessagehandler.cpp
boards.cpp
customdebug.cpp
eeprominterface.cpp
firmwares/th9x/th9xeeprom.cpp # TODO not needed
firmwares/th9x/th9xinterface.cpp
helpers.cpp
radiodata.cpp
translations.cpp
firmwares/er9x/er9xeeprom.cpp
firmwares/er9x/er9xinterface.cpp
firmwares/gruvin9x/gruvin9xeeprom.cpp
firmwares/gruvin9x/gruvin9xinterface.cpp
firmwares/ersky9x/ersky9xeeprom.cpp
firmwares/ersky9x/ersky9xinterface.cpp
${RADIO_SRC_DIRECTORY}/bitmaps/sticks.lbm
${RADIO_SRC_DIRECTORY}/translations/en.h
firmwares/opentx/opentxeeprom.cpp
firmwares/opentx/open9xStockeeprom.cpp
firmwares/opentx/open9xGruvin9xeeprom.cpp
firmwares/opentx/open9xSky9xeeprom.cpp
firmwares/opentx/opentxinterface.cpp
firmwares/opentx/opentxTaranisSimulator.cpp
firmwares/opentx/opentxSky9xsimulator.cpp
firmwares/opentx/opentxGruvin9xsimulator.cpp
firmwares/opentx/opentxM128simulator.cpp
firmwares/opentx/opentxM64simulator.cpp
file.cpp
appdata.cpp
)
modeledit/node.cpp # used in simulator
modeledit/edge.cpp # used by node
)
qt4_wrap_cpp(common_SRCS)
set(common_MOC_HDRS
appdebugmessagehandler.h
helpers.h
modeledit/node.h
)
add_library(common ${common_SRCS})
set(common_RESOURCES
companion.qrc
${TRANSLATIONS_QRC}
)
qt5_wrap_cpp(common_SRCS ${common_MOC_HDRS})
qt5_add_resources(common_RCC ${common_RESOURCES})
#add_custom_target(gen_qrc DEPENDS ${common_RCC} ${companion_QM})
add_library(common ${common_SRCS} ${common_RCC})
qt5_use_modules(common Core Xml Widgets)
target_link_libraries(common PRIVATE simulation)
#add_dependencies(common gen_qrc)
set(CPN_COMMON_LIB common)
############# Supporting libraries ###############
add_subdirectory(shared)
add_subdirectory(modeledit)
add_subdirectory(generaledit)
add_subdirectory(simulation)
add_subdirectory(storage)
add_subdirectory(thirdparty/qcustomplot)
############# Companion ###############
set(companion_SRCS
hexinterface.cpp
flashinterface.cpp
# xmlinterface.cpp
# ${PROJECT_BINARY_DIR}/radio.cxx
helpers.cpp
helpers_html.cpp
mdichild.cpp
generaledit.cpp
modelslist.cpp
mountlist.cpp
avroutputdialog.cpp
apppreferencesdialog.cpp
fwpreferencesdialog.cpp
burnconfigdialog.cpp
multimodelprinter.cpp
comparedialog.cpp
contributorsdialog.cpp
creditsdialog.cpp
releasenotesdialog.cpp
releasenotesfirmwaredialog.cpp
customizesplashdialog.cpp
burndialog.cpp
radiointerface.cpp
progresswidget.cpp
progressdialog.cpp
process_copy.cpp
process_flash.cpp
process_sync.cpp
flashfirmwaredialog.cpp
flasheepromdialog.cpp
printdialog.cpp
modelprinter.cpp
fusesdialog.cpp
logsdialog.cpp
downloaddialog.cpp
splashlibrary.cpp
splashlibrarydialog.cpp
mainwindow.cpp
companion.cpp
radionotfound.cpp
qcustomplot.cpp
wizarddata.cpp
wizarddialog.cpp
)
multiprotocols.cpp
)
set(companion_MOC_HDRS
avroutputdialog.h
apppreferencesdialog.h
fwpreferencesdialog.h
burnconfigdialog.h
@@ -170,26 +253,31 @@ set(companion_MOC_HDRS
printdialog.h
fusesdialog.h
logsdialog.h
contributorsdialog.h
creditsdialog.h
releasenotesdialog.h
releasenotesfirmwaredialog.h
customizesplashdialog.h
splashlibrary.h
splashlibrarydialog.h
splashlabel.h
burndialog.h
progresswidget.h
progressdialog.h
process_copy.h
process_flash.h
process_sync.h
flashfirmwaredialog.h
flasheepromdialog.h
downloaddialog.h
generaledit.h
modelslist.h
mdichild.h
mainwindow.h
radionotfound.h
qcustomplot.h
qautocombobox.h
helpers.h
wizarddialog.h
)
modelprinter.h
multimodelprinter.h
modelslist.h
)
set(companion_UIS
mdichild.ui
avroutputdialog.ui
comparedialog.ui
fusesdialog.ui
logsdialog.ui
@@ -197,254 +285,296 @@ set(companion_UIS
fwpreferencesdialog.ui
burnconfigdialog.ui
downloaddialog.ui
generaledit.ui
printdialog.ui
contributorsdialog.ui
htmldialog.ui
customizesplashdialog.ui
splashlibrary.ui
burndialog.ui
splashlibrarydialog.ui
progresswidget.ui
progressdialog.ui
flashfirmwaredialog.ui
flasheepromdialog.ui
radionotfound.ui
)
set(companion_RCS
companion.qrc
${CMAKE_CURRENT_BINARY_DIR}/translations.qrc
)
MACRO (TODAY RESULT)
IF (WIN32)
EXECUTE_PROCESS(COMMAND "cmd" " /C date /T" OUTPUT_VARIABLE ${RESULT})
string(REGEX REPLACE "(..)/(..)/(....).*" "\\1.\\2.\\3" ${RESULT} ${${RESULT}})
ELSEIF(UNIX)
EXECUTE_PROCESS(COMMAND "date" "+%d/%m/%Y" OUTPUT_VARIABLE ${RESULT})
string(REGEX REPLACE "(..)/(..)/(....).*" "\\1.\\2.\\3" ${RESULT} ${${RESULT}})
ELSE (WIN32)
MESSAGE(SEND_ERROR "date not implemented")
SET(${RESULT} 00.00.0000)
ENDIF (WIN32)
ENDMACRO (TODAY)
MACRO (NOW RESULT)
IF (WIN32)
EXECUTE_PROCESS(COMMAND "cmd" " /C time /T" OUTPUT_VARIABLE ${RESULT})
string(REGEX REPLACE "(..):(..).*" "\\1:\\2:00" ${RESULT} ${${RESULT}})
ELSEIF(UNIX)
EXECUTE_PROCESS(COMMAND "date" "+%H:%M:%S" OUTPUT_VARIABLE ${RESULT})
string(REGEX REPLACE "(..):(..):(..).*" "\\1:\\2:\\3" ${RESULT} ${${RESULT}})
ELSE (WIN32)
MESSAGE(SEND_ERROR "time not implemented")
SET(${RESULT} 00:00:00)
ENDIF (WIN32)
ENDMACRO (NOW)
TODAY(DATE)
NOW(TIME)
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/version.h.in ${CMAKE_CURRENT_BINARY_DIR}/version.h @ONLY)
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/translations.qrc.in ${CMAKE_CURRENT_BINARY_DIR}/translations.qrc @ONLY)
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/firmwares/opentx/stamp-opentx.h.in ${CMAKE_CURRENT_BINARY_DIR}/stamp-opentx.h @ONLY)
IF( WIN32 )
SET( companion_SRCS ${companion_SRCS} icon.rc )
IF ( NOT MSVC )
SET(CMAKE_EXE_LINKER_FLAGS -mwindows)
ENDIF( )
ENDIF( )
INCLUDE_DIRECTORIES( ${CMAKE_BINARY_DIR} )
INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR} )
SET( LANGUAGES he pl pt ru de fr it sv cs fi nl)
FOREACH( language ${LANGUAGES} )
SET( companion_TS ${companion_TS} translations/companion_${language}.ts )
ENDFOREACH( language )
set( companion_SRCS ${companion_SRCS} )
QT4_WRAP_UI( companion_SRCS ${companion_UIS} )
QT4_WRAP_CPP( companion_SRCS ${companion_MOC_HDRS} )
QT4_ADD_TRANSLATION( companion_QM ${companion_TS} )
QT4_ADD_RESOURCES( companion_SRCS ${companion_RCS} )
ADD_DEFINITIONS( -DQT_TRANSLATIONS_DIR="${QT_TRANSLATIONS_DIR}" )
IF( APPLE )
ADD_EXECUTABLE( ${PROJECT_NAME} MACOSX_BUNDLE ${companion_SRCS} ${companion_QM} )
# OS X compiler no longer automatically includes /Library/Frameworks in search path
SET( CMAKE_EXE_LINKER_FLAGS -F/Library/Frameworks )
ELSE( )
ADD_EXECUTABLE( ${PROJECT_NAME} WIN32 ${companion_SRCS} ${companion_QM} )
ENDIF( )
TARGET_LINK_LIBRARIES( ${PROJECT_NAME} modeledit simulation common ${QT_LIBRARIES} ${QT_QTMAIN_LIBRARY} ${XERCESC_LIBRARY} ${PTHREAD_LIBRARY} ${SDL_LIBRARY} ${PHONON_LIBS} )
############# Standalone simu ###############
set(TH9X_CHECKOUT_DIRECTORY ${PROJECT_BINARY_DIR}/firmwares/th9x)
add_custom_command(
OUTPUT ${TH9X_CHECKOUT_DIRECTORY}/th9xsimulator.cpp
COMMAND ${CMAKE_COMMAND} -E make_directory ${TH9X_CHECKOUT_DIRECTORY}
COMMAND cd ${TH9X_CHECKOUT_DIRECTORY} && svn checkout http://th9x.googlecode.com/svn/trunk/src@285 .
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/firmwares/th9x/th9xsimulator.cpp ${TH9X_CHECKOUT_DIRECTORY}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/firmwares/th9x/th9xsimulator.cpp
)
set(ER9X_CHECKOUT_DIRECTORY ${PROJECT_BINARY_DIR}/firmwares/er9x)
add_custom_command(
OUTPUT ${ER9X_CHECKOUT_DIRECTORY}/er9xsimulator.cpp
COMMAND ${CMAKE_COMMAND} -E make_directory ${ER9X_CHECKOUT_DIRECTORY}
COMMAND cd ${ER9X_CHECKOUT_DIRECTORY} && svn checkout http://er9x.googlecode.com/svn/trunk/src@790 .
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/firmwares/er9x/er9xsimulator.cpp ${ER9X_CHECKOUT_DIRECTORY}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/firmwares/er9x/er9xsimulator.cpp
)
set(ERSKY9X_CHECKOUT_DIRECTORY ${PROJECT_BINARY_DIR}/firmwares/ersky9x)
add_custom_command(
OUTPUT ${ERSKY9X_CHECKOUT_DIRECTORY}/ersky9xsimulator.cpp
COMMAND ${CMAKE_COMMAND} -E make_directory ${ERSKY9X_CHECKOUT_DIRECTORY}
COMMAND cd ${ERSKY9X_CHECKOUT_DIRECTORY} && svn checkout http://ersky9x.googlecode.com/svn/trunk/src@170 .
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/firmwares/ersky9x/ersky9xsimulator.cpp ${ERSKY9X_CHECKOUT_DIRECTORY}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/firmwares/ersky9x/ersky9xsimulator.cpp
)
set(simu_SRCS
${TH9X_CHECKOUT_DIRECTORY}/th9xsimulator.cpp
${ER9X_CHECKOUT_DIRECTORY}/er9xsimulator.cpp
${ERSKY9X_CHECKOUT_DIRECTORY}/ersky9xsimulator.cpp
${RADIO_SRC_DIRECTORY}/bitmaps/sticks.lbm
${RADIO_SRC_DIRECTORY}/translations/en.h
modeledit/node.cpp
modeledit/edge.cpp # TODO not needed
simulator.cpp
)
set(simu_MOC_HDRS
modeledit/node.h
)
set( simu_SRCS ${simu_SRCS} )
qt4_wrap_cpp(simu_SRCS ${simu_MOC_HDRS} )
qt4_add_resources(simu_SRCS companion.qrc) # TODO not needed
)
if(WIN32)
set(simu_SRCS ${simu_SRCS} icon.rc)
set(icon_RC icon.rc)
endif()
add_executable(simulator WIN32 ${simu_SRCS})
qt5_wrap_ui(companion_SRCS ${companion_UIS})
qt5_wrap_cpp(companion_SRCS ${companion_MOC_HDRS})
if(SDL_FOUND)
target_link_libraries(simulator simulation common ${QT_LIBRARIES} ${PTHREAD_LIBRARY} ${SDL_LIBRARY} ${PHONON_LIBS})
else()
target_link_libraries(simulator simulation common ${QT_LIBRARIES} ${QT_QTMAIN_LIBRARY} ${PTHREAD_LIBRARY} ${SDL_LIBRARY} ${PHONON_LIBS})
add_executable(${COMPANION_NAME} MACOSX_BUNDLE ${WIN_EXECUTABLE_TYPE} ${companion_SRCS} ${icon_RC})
qt5_use_modules(${COMPANION_NAME} Core Widgets Network)
target_link_libraries(${COMPANION_NAME} PRIVATE generaledit modeledit simulation ${CPN_COMMON_LIB} qcustomplot shared storage ${PTHREAD_LIBRARY} ${SDL_LIBRARY} ${WIN_LINK_LIBRARIES})
PrintTargetReport("${COMPANION_NAME}")
############# Standalone simulator ###############
set(simu_SRCS simulator.cpp )
add_executable(${SIMULATOR_NAME} MACOSX_BUNDLE ${WIN_EXECUTABLE_TYPE} ${simu_SRCS} ${icon_RC})
target_link_libraries(${SIMULATOR_NAME} PRIVATE simulation ${CPN_COMMON_LIB} storage ${PTHREAD_LIBRARY} ${SDL_LIBRARY} ${WIN_LINK_LIBRARIES})
############# Install ####################
# Generate list of simulator plugins, used by all platforms
file(GLOB simulator_plugins "${CMAKE_BINARY_DIR}/*opentx-*simulator${CMAKE_SHARED_LIBRARY_SUFFIX}")
# the current flavour is not automatically added if build in the current cmake iteration, so always
# add its library name to be sure
string(TOLOWER ${PCB} FLAVOUR)
if(POLICY CMP0026)
cmake_policy(SET CMP0026 OLD) # https://cmake.org/cmake/help/v3.0/policy/CMP0026.html
endif()
get_property(current_plugin TARGET opentx-${FLAVOUR}-simulator PROPERTY LOCATION)
list(APPEND simulator_plugins "${current_plugin}")
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
message(STATUS "install " ${CMAKE_BINARY_DIR} " to " ${CMAKE_INSTALL_PREFIX}/bin)
install(TARGETS ${COMPANION_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
install(TARGETS ${SIMULATOR_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
install(FILES ${simulator_plugins} DESTINATION "${SIMULATOR_LIB_INSTALL_PATH}")
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/companion.desktop DESTINATION share/applications RENAME companion${C9X_NAME_SUFFIX}.desktop)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/simulator.desktop DESTINATION share/applications RENAME simulator${C9X_NAME_SUFFIX}.desktop)
if(${CMAKE_INSTALL_PREFIX} MATCHES "/usr/local")
set(INSTALL_TEMP_SHR_PFX "/usr/")
set(INSTALL_TEMP_LIB_PFX "/")
endif()
install(FILES images/linuxicons/16x16/companion.png DESTINATION ${INSTALL_TEMP_SHR_PFX}share/icons/hicolor/16x16/apps RENAME companion${C9X_NAME_SUFFIX}.png)
install(FILES images/linuxicons/22x22/companion.png DESTINATION ${INSTALL_TEMP_SHR_PFX}share/icons/hicolor/22x22/apps RENAME companion${C9X_NAME_SUFFIX}.png)
install(FILES images/linuxicons/24x24/companion.png DESTINATION ${INSTALL_TEMP_SHR_PFX}share/icons/hicolor/24x24/apps RENAME companion${C9X_NAME_SUFFIX}.png)
install(FILES images/linuxicons/32x32/companion.png DESTINATION ${INSTALL_TEMP_SHR_PFX}share/icons/hicolor/32x32/apps RENAME companion${C9X_NAME_SUFFIX}.png)
install(FILES images/linuxicons/48x48/companion.png DESTINATION ${INSTALL_TEMP_SHR_PFX}share/icons/hicolor/48x48/apps RENAME companion${C9X_NAME_SUFFIX}.png)
install(FILES images/linuxicons/128x128/companion.png DESTINATION ${INSTALL_TEMP_SHR_PFX}share/icons/hicolor/128x128/apps RENAME companion${C9X_NAME_SUFFIX}.png)
install(FILES images/linuxicons/256x256/companion.png DESTINATION ${INSTALL_TEMP_SHR_PFX}share/icons/hicolor/256x256/apps RENAME companion${C9X_NAME_SUFFIX}.png)
install(FILES images/linuxicons/512x512/companion.png DESTINATION ${INSTALL_TEMP_SHR_PFX}share/icons/hicolor/512x512/apps RENAME companion${C9X_NAME_SUFFIX}.png)
install(FILES images/linuxicons/scalable/companion.svg DESTINATION ${INSTALL_TEMP_SHR_PFX}share/icons/hicolor/scalable/apps RENAME companion${C9X_NAME_SUFFIX}.svg)
install(FILES ../targets/linux/45-companion-taranis.rules DESTINATION ${INSTALL_TEMP_LIB_PFX}lib/udev/rules.d RENAME 45-companion${C9X_NAME_SUFFIX}-taranis.rules)
install(FILES ../targets/linux/45-usbasp.rules DESTINATION ${INSTALL_TEMP_LIB_PFX}lib/udev/rules.d RENAME 45-companion${C9X_NAME_SUFFIX}-usbasp.rules)
# Linux specific code
set(OperatingSystem "Linux")
elseif(WIN32)
set(QT_DLL_DIR ${QT_LIB_DIR})
set(INSTALL_TEMP_QTDLL_FILES Qt5Core Qt5Gui Qt5Widgets Qt5Xml Qt5Network Qt5PrintSupport Qt5Multimedia Qt5Svg)
set(INSTALL_TEMP_ICUDLL_FILES icudt54.dll icuin54.dll icuuc54.dll)
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
set(INSTALL_TEMP_QTDLL_SFX "d")
endif()
if(NOT WIN_DO_FULL_INSTALL)
# Just copy supporting DLLs to build folder
set(INSTALL_DESTINATION "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}")
message(STATUS "Partial install to " ${INSTALL_DESTINATION})
else()
# Full Windows installation with all supporting files
set(INSTALL_DESTINATION "${CMAKE_INSTALL_PREFIX}")
message(STATUS "Full install to " ${INSTALL_DESTINATION})
# companion & simulator binaries
install(TARGETS ${COMPANION_NAME} DESTINATION ${INSTALL_DESTINATION})
install(TARGETS ${SIMULATOR_NAME} DESTINATION ${INSTALL_DESTINATION})
install(FILES ${simulator_plugins} DESTINATION "${INSTALL_DESTINATION}")
# supporting utilities
set(INSTALL_TEMP_FILES avrdude.exe avrdude.conf dfu-util.exe libusb0.dll libusb-1.0.dll)
foreach(tmpfile ${INSTALL_TEMP_FILES})
install(FILES "${COMPANION_SRC_DIRECTORY}/../targets/windows/${tmpfile}" DESTINATION ${INSTALL_DESTINATION})
endforeach()
endif() # WIN_DO_FULL_INSTALL
# Qt dlls
foreach(tmpfile ${INSTALL_TEMP_QTDLL_FILES})
install(FILES ${QT_DLL_DIR}/${tmpfile}${INSTALL_TEMP_QTDLL_SFX}.dll DESTINATION ${INSTALL_DESTINATION})
endforeach()
install(FILES ${QT_DLL_DIR}/../plugins/platforms/qwindows${INSTALL_TEMP_QTDLL_SFX}.dll DESTINATION ${INSTALL_DESTINATION}/platforms)
# ICU dlls
foreach(tmpfile ${INSTALL_TEMP_ICUDLL_FILES})
# Qt5.7+ doesn't use icu dlls anymore, hence optional
install(FILES ${QT_DLL_DIR}/${tmpfile}.dll DESTINATION ${INSTALL_DESTINATION} OPTIONAL)
endforeach()
# SDL dll
if(SDL_FOUND AND SDL_LIBRARY_PATH AND EXISTS "${SDL_LIBRARY_PATH}/SDL.dll")
set(SDL_DIR ${SDL_LIBRARY_PATH}) # this is also used by NSIS installer script
install(FILES ${SDL_DIR}/SDL.dll DESTINATION ${INSTALL_DESTINATION})
elseif(SDL_FOUND)
message(WARNING "Installer: SDL.dll not found!")
endif()
# C++/system dlls, depends on compiler
if(MSVC)
string(REPLACE "\\" "/" WIN_SYSDIR "$ENV{windir}")
set(WIN_SYSDIR "${WIN_SYSDIR}/SysWOW64") # This would be "system32" for a 64-bit build or on x86... but how to tell?
if(IS_DIRECTORY "${WIN_SYSDIR}")
install(FILES "${WIN_SYSDIR}/msvcp140.dll" "${WIN_SYSDIR}/vcruntime140.dll" DESTINATION ${INSTALL_DESTINATION} OPTIONAL)
endif()
if(WIN_PTHREAD_DLL)
install(FILES "${WIN_PTHREAD_DLL}" DESTINATION ${INSTALL_DESTINATION})
endif()
elseif(MINGW)
get_filename_component(MINGW_DIR ${CMAKE_CXX_COMPILER} PATH)
if(IS_DIRECTORY ${MINGW_DIR})
install(FILES "${MINGW_DIR}/libgcc_s_dw2-1.dll" "${MINGW_DIR}/libstdc++-6.dll" "${MINGW_DIR}/libwinpthread-1.dll" DESTINATION ${INSTALL_DESTINATION})
set(MINGW_DIR "${MINGW_DIR}/../opt/bin")
# SSL support
install(FILES "${MINGW_DIR}/libeay32.dll" "${MINGW_DIR}/ssleay32.dll" DESTINATION ${INSTALL_DESTINATION} OPTIONAL)
endif()
endif()
endif() # WIN32 install
############# Packaging ####################
IF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
INSTALL( TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/bin )
INSTALL( FILES companion.desktop DESTINATION share/applications )
INSTALL( FILES images/linuxicons/16x16/companion.png DESTINATION /usr/share/icons/hicolor/16x16/apps )
INSTALL( FILES images/linuxicons/22x22/companion.png DESTINATION /usr/share/icons/hicolor/22x22/apps )
INSTALL( FILES images/linuxicons/24x24/companion.png DESTINATION /usr/share/icons/hicolor/24x24/apps )
INSTALL( FILES images/linuxicons/32x32/companion.png DESTINATION /usr/share/icons/hicolor/32x32/apps )
INSTALL( FILES images/linuxicons/48x48/companion.png DESTINATION /usr/share/icons/hicolor/48x48/apps )
INSTALL( FILES images/linuxicons/128x128/companion.png DESTINATION /usr/share/icons/hicolor/128x128/apps )
INSTALL( FILES images/linuxicons/256x256/companion.png DESTINATION /usr/share/icons/hicolor/256x256/apps )
INSTALL( FILES images/linuxicons/512x512/companion.png DESTINATION /usr/share/icons/hicolor/512x512/apps )
INSTALL( FILES images/linuxicons/scalable/companion.svg DESTINATION /usr/share/icons/hicolor/scalable/apps )
INSTALL( FILES ../targets/linux/45-taranis.rules DESTINATION /etc/udev/rules.d/ )
# Linux specific code
SET(OperatingSystem "Linux")
ELSE (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
INSTALL( TARGETS ${PROJECT_NAME} DESTINATION ${QT_BINARY_DIR} )
ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
# Create Windows installer with NSIS (only works for MSVC for now)
if(WIN32)
if(MSVC)
set(COMPANION_NSI_IN_FILE companion-vs.nsi.in)
set(SIMULATOR_NSI_IN_FILE simulator-vs.nsi.in)
else()
set(COMPANION_NSI_IN_FILE companion-msys.nsi.in)
set(SIMULATOR_NSI_IN_FILE simulator-msys.nsi.in)
endif()
IF( WIN32 )
IF( MSVC )
SET( NSI_IN_FILE companion-vs.nsi.in )
ELSE( )
SET( NSI_IN_FILE companion-msys.nsi.in )
ENDIF( )
set(SYSDIR "$ENV{windir}/system32")
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../targets/windows/${COMPANION_NSI_IN_FILE} ${PROJECT_BINARY_DIR}/companion/companion.nsi @ONLY)
#configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../targets/windows/${SIMULATOR_NSI_IN_FILE} ${PROJECT_BINARY_DIR}/companion/simulator.nsi @ONLY)
SET( SYSDIR "$ENV{windir}/system32" )
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/../targets/windows/${NSI_IN_FILE} ${CMAKE_CURRENT_BINARY_DIR}/companion.nsi @ONLY)
FIND_PROGRAM(NSIS_EXE makensis.exe PATHS
find_program(NSIS_EXE makensis.exe PATHS
"C:/Program Files/NSIS"
"C:/Program Files (x86)/NSIS"
"C:/Program Files (x86)/NSIS"
"C:/Programs/NSIS"
)
ADD_CUSTOM_COMMAND(OUTPUT ${PROJECT_BINARY_DIR}/companionInstall.exe
COMMAND "${NSIS_EXE}" ARGS companion.nsi
DEPENDS ${PROJECT_NAME} simulator ${PROJECT_BINARY_DIR}/companion.nsi
COMMENT "Windows NSIS Installer")
)
ADD_CUSTOM_TARGET( installer
DEPENDS ${PROJECT_BINARY_DIR}/companionInstall.exe
SOURCES ${PROJECT_BINARY_DIR}/companion.nsi
)
ENDIF( )
add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/companion/companion-windows.exe
COMMAND "${NSIS_EXE}" ARGS ${PROJECT_BINARY_DIR}/companion/companion.nsi
DEPENDS companion simulator opentx-simulators ${PROJECT_BINARY_DIR}/companion/companion.nsi
COMMENT "Companion Windows NSIS Installer")
IF( APPLE )
SET(MACOSX_BUNDLE_ICON_FILE iconmac.icns)
IF( CMAKE_GENERATOR STREQUAL Xcode )
SET( WORK_DIR ${CMAKE_BINARY_DIR}/Debug )
ELSE( )
SET( WORK_DIR ${PROJECT_BINARY_DIR} )
ENDIF()
ADD_CUSTOM_TARGET( addframeworks ALL
COMMAND mkdir -p companion.app/Contents/Frameworks
COMMAND mkdir -p companion.app/Contents/Resources
COMMAND mkdir -p companion.app/Contents/translations
COMMAND rsync ${PROJECT_SOURCE_DIR}/images/${MACOSX_BUNDLE_ICON_FILE} companion.app/Contents/Resources/${MACOSX_BUNDLE_ICON_FILE} # Copy the icon files
#COMMAND rsync ${PROJECT_SOURCE_DIR}/../targets/mac/lib* companion.app/Contents/Frameworks
#COMMAND rsync ${PROJECT_SOURCE_DIR}/../targets/mac/libcrypto.1.0.0.dylib companion.app/Contents/Frameworks
COMMAND rsync -r --exclude=.svn ${PROJECT_SOURCE_DIR}/../targets/mac/qt_menu.nib companion.app/Contents/Resources/
COMMAND rsync ${PROJECT_BINARY_DIR}/*.qm companion.app/Contents/translations
COMMAND ${QT_BINARY_DIR}/macdeployqt companion.app
WORKING_DIRECTORY ${WORK_DIR}
DEPENDS ${PROJECT_NAME} )
# add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/companion/simulator-install.exe
# COMMAND "${NSIS_EXE}" ARGS ${PROJECT_BINARY_DIR}/companion/simulator.nsi
# DEPENDS simulator ${PROJECT_BINARY_DIR}/companion/simulator.nsi
# COMMENT "Simulator Windows NSIS Installer")
ADD_CUSTOM_TARGET( makedmg
COMMAND ${QT_BINARY_DIR}/macdeployqt companion.app -dmg -no-plugins
WORKING_DIRECTORY ${WORK_DIR}
DEPENDS addframeworks )
add_custom_target(installer
DEPENDS ${PROJECT_BINARY_DIR}/companion/companion-windows.exe
# DEPENDS ${PROJECT_BINARY_DIR}/companion/simulator-windows.exe
SOURCES ${PROJECT_BINARY_DIR}/companion/companion.nsi
# SOURCES ${PROJECT_BINARY_DIR}/companion/simulator.nsi
)
endif()
ENDIF( )
ADD_CUSTOM_TARGET( stamp
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/version.h ${CMAKE_SOURCE_DIR}/../companion.stamp
DEPENDS ${CMAKE_BINARY_DIR}/version.h )
ADD_CUSTOM_TARGET( translations
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
COMMAND lupdate-qt4 ${CMAKE_SOURCE_DIR} -ts ${companion_TS} )
SET(CPACK_PACKAGE_NAME "COMPANION")
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Models and settings editor for the OpenTx open source firmware")
set(CPACK_PACKAGE_NAME "companion${C9X_NAME_SUFFIX}")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Models and settings editor for the OpenTX open source firmware")
string(TOLOWER "${CPACK_PACKAGE_NAME}" CPACK_PACKAGE_NAME_LOWERCASE)
# The file stripping is deliberately disabled, with the stripped file we get
# very poor trace-backs from the users when they report Companion crash
set(CPACK_STRIP_FILES FALSE)
# Qt5 + Cmake + Mac is poorly documented. A lot of this is guesswork
# and trial and error. Do not hesitate to fix it for the better
IF(APPLE)
set(plugin_dest_dir ${COMPANION_NAME}.app/Contents/Plugins)
set(qtconf_dest_dir ${COMPANION_NAME}.app/Contents/Resources)
set(APPS "\${CMAKE_INSTALL_PREFIX}/${COMPANION_NAME}.app")
set(companion_res_dir ${COMPANION_NAME}.app/Contents/Resources)
set_target_properties(${COMPANION_NAME} PROPERTIES MACOSX_BUNDLE_BUNDLE_NAME "Companion ${VERSION_MAJOR}.${VERSION_MINOR}")
set_target_properties(${SIMULATOR_NAME} PROPERTIES MACOSX_BUNDLE_BUNDLE_NAME "Simulator ${VERSION_MAJOR}.${VERSION_MINOR}")
# Use a non standard Info.plist that adds Retina support flags
set_target_properties(${COMPANION_NAME} PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${PROJECT_SOURCE_DIR}/companion/targets/mac/MacOSXBundleInfo.plist.in)
set_target_properties(${SIMULATOR_NAME} PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${PROJECT_SOURCE_DIR}/companion/targets/mac/MacOSXBundleInfo.plist.in)
INSTALL(TARGETS ${COMPANION_NAME}
BUNDLE DESTINATION . COMPONENT Runtime
RUNTIME DESTINATION bin COMPONENT Runtime
)
install(FILES ${simulator_plugins} DESTINATION "${companion_res_dir}" COMPONENT Runtime)
# Write qt.conf to tell qt where to find it plugins
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/qt.conf"
"[Paths]\nPlugins = Plugins\n")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/qt.conf"
DESTINATION "${companion_res_dir}"
COMPONENT Runtime)
# menu file
install(DIRECTORY ${PROJECT_SOURCE_DIR}/companion/targets/mac/qt_menu.nib DESTINATION "${companion_res_dir}" COMPONENT Runtime)
# manually add the required plugins
foreach (plugin ${Qt5Multimedia_PLUGINS} ${Qt5PrintSupport_PLUGINS} ${Qt5Gui_PLUGINS} ${Qt5Svg_PLUGINS})
get_target_property(QPA_PLUGIN ${plugin} LOCATION)
get_filename_component(QPA_PLUGIN_FILENAME ${QPA_PLUGIN} NAME)
# Todo is there a nicer way to get the QT Plugin directory name?!
get_filename_component(QPA_PLUGIN_DIRECTORY ${QPA_PLUGIN} DIRECTORY)
get_filename_component(QPA_PLUGIN_DIRECTORY ${QPA_PLUGIN_DIRECTORY} NAME)
install(FILES ${QPA_PLUGIN} DESTINATION "${plugin_dest_dir}/${QPA_PLUGIN_DIRECTORY}/" COMPONENT Runtime)
list(APPEND bundle_qt_libs "\${CMAKE_INSTALL_PREFIX}/${plugin_dest_dir}/${QPA_PLUGIN_DIRECTORY}/${QPA_PLUGIN_FILENAME}")
endforeach()
# Add icon
set(MACOSX_BUNDLE_ICON_FILE iconmac.icns)
set(MAC_ICON_FILE ${COMPANION_SRC_DIRECTORY}/images/${MACOSX_BUNDLE_ICON_FILE})
SET_SOURCE_FILES_PROPERTIES(${MAC_ICON_FILE} PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
set(${COMPANION_SOURCES} ${COMPANION_SOURCES} ${PROJECT_SOURCE_DIR}/images/${MACOSX_BUNDLE_ICON_FILE})
install(FILES ${MAC_ICON_FILE} DESTINATION ${companion_res_dir} COMPONENT Runtime)
# Copy dfu-util and avrdude, resolve symlink first
get_filename_component(DFU_UTIL_ABSOLUTE_PATH ${DFU_UTIL_PATH} REALPATH)
get_filename_component(AVRDUDE_ABSOLUTE_PATH ${AVRDUDE_PATH} REALPATH)
get_filename_component(AVRDUDECONF_ABSOLUTE_PATH ${AVRDUDE_CONF} REALPATH)
install(PROGRAMS ${DFU_UTIL_ABSOLUTE_PATH} ${AVRDUDE_ABSOLUTE_PATH} DESTINATION ${companion_res_dir} COMPONENT Runtime)
install(FILES ${AVRDUDECONF_ABSOLUTE_PATH} DESTINATION ${companion_res_dir} COMPONENT Runtime)
set(bundle_tools_path "\${CMAKE_INSTALL_PREFIX}/${companion_res_dir}/dfu-util;\${CMAKE_INSTALL_PREFIX}/${companion_res_dir}/avrdude")
# Include depencies (adding frameworks, fixing the embbeded libraries)
# I get write errors without setting BU_CHMOD_BUNDLE_ITEMS even though it is
# technically a hack (that is already is in the Bundle library ...)
install(CODE "
include(BundleUtilities)
file(GLOB bundle_simulator_libs \"\${CMAKE_INSTALL_PREFIX}/${companion_res_dir}/libopentx-*${CMAKE_SHARED_LIBRARY_SUFFIX}\")
set(BU_CHMOD_BUNDLE_ITEMS on)
fixup_bundle(\"${APPS}\" \"\${bundle_simulator_libs};${bundle_qt_libs};${bundle_tools_path}\" \"${QT_LIB_DIR}\")
file(RENAME \"\${CMAKE_INSTALL_PREFIX}/${COMPANION_NAME}.app\" \"\${CMAKE_INSTALL_PREFIX}/${COMPANION_OSX_APP_BUNDLE_NAME}.app\")
" COMPONENT Runtime)
endif()
find_program(DPKG_PROGRAM dpkg DOC "dpkg program of Debian-based systems")
if(DPKG_PROGRAM)
SET(CPACK_GENERATOR "DEB")
set(CPACK_GENERATOR "DEB")
execute_process(
COMMAND ${DPKG_PROGRAM} --print-architecture
OUTPUT_VARIABLE CPACK_DEBIAN_PACKAGE_ARCHITECTURE
OUTPUT_STRIP_TRAILING_WHITESPACE
)
SET(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME_LOWERCASE}_${C9X_VERSION}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}")
SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "Romolo Manfredini <romolo.manfredini-nosp@m-gmail.com>")
SET(CPACK_DEBIAN_PACKAGE_VERSION ${C9X_VERSION})
SET(CPACK_DEBIAN_PACKAGE_VERSION_MAJOR ${C9X_VERSION_MAJOR})
SET(CPACK_DEBIAN_PACKAGE_VERSION_MINOR ${C9X_VERSION_MINOR})
SET(CPACK_DEBIAN_ARCHITECTURE $(CMAKE_SYSTEM_PROCESSOR))
SET(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME_LOWERCASE}_${VERSION}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}")
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Bertrand Songis <bsongis-nosp@m-gmail.com>")
set(CPACK_DEBIAN_PACKAGE_VERSION ${VERSION})
set(CPACK_DEBIAN_PACKAGE_VERSION_MAJOR ${VERSION_MAJOR})
set(CPACK_DEBIAN_PACKAGE_VERSION_MINOR ${VERSION_MINOR})
set(CPACK_DEBIAN_ARCHITECTURE $(CMAKE_SYSTEM_PROCESSOR))
set(CPACK_DEBIAN_PACKAGE_DEPENDS "libqt5multimedia5-plugins")
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
elseif(APPLE)
set(CPACK_GENERATOR "DragNDrop")
# set(CPACK_GENERATOR "TGZ") # for quick testing
set(CPACK_BINARY_DRAGNDROP ON)
set(CPACK_DMG_BACKGROUND_IMAGE ${COMPANION_SRC_DIRECTORY}/images/splash22_3_dmg.png)
set(CPACK_DMG_VOLUME_NAME "OpenTX Companion")
set(CPACK_DMG_DS_STORE ${PROJECT_SOURCE_DIR}/companion/targets/mac/DS_Store)
set(CPACK_PACKAGE_FILE_NAME "opentx-${CPACK_PACKAGE_NAME_LOWERCASE}-${VERSION}")
else(DPKG_PROGRAM)
SET(CPACK_GENERATOR "RPM")
SET(CPACK_RPM_PACKAGE_VERSION ${C9X_VERSION})
SET(CPACK_RPM_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION_SUMMARY})
SET(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME_LOWERCASE}-${C9X_VERSION}-${CMAKE_SYSTEM_PROCESSOR}")
endif(DPKG_PROGRAM)
set(CPACK_GENERATOR "RPM")
set(CPACK_RPM_PACKAGE_VERSION ${VERSION})
set(CPACK_RPM_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION_SUMMARY})
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME_LOWERCASE}-${VERSION}-${CMAKE_SYSTEM_PROCESSOR}")
set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "/lib /lib/udev /lib/udev/rules.d")
endif(DPKG_PROGRAM)
INCLUDE(CPack)
include(CPack)
+163
View File
@@ -0,0 +1,163 @@
/*
* Copyright (C) OpenTX
*
* Based on code named
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include "appdebugmessagehandler.h"
#include <QFileDevice>
AppDebugMessageHandler::AppDebugMessageHandler(QObject * parent) :
QObject(parent),
m_appDebugOutputLevel(APP_DBG_HANDLER_DEFAULT_LEVEL),
m_showSourcePath(APP_DBG_HANDLER_SHOW_SRC_PATH),
m_showFunctionDeclarations(APP_DBG_HANDLER_SHOW_FUNCTION_DECL)
{
m_srcPathFilter = QRegularExpression("^" APP_DBG_HANDLER_SRC_PATH "[\\\\\\/](.*?)$", QRegularExpression::InvertedGreedinessOption);
m_functionFilter = QRegularExpression("^.+?(\\w+\\().+$");
}
AppDebugMessageHandler * AppDebugMessageHandler::instance()
{
static AppDebugMessageHandler * _instance = NULL;
#if APP_DBG_HANDLER_ENABLE
if(_instance == NULL && !qApp->closingDown())
_instance = new AppDebugMessageHandler(qApp); // Ensure this object is cleaned up when the QApplication exits.
#endif
return _instance;
}
void AppDebugMessageHandler::setAppDebugOutputLevel(const quint8 & appDebugOutputLevel)
{
m_appDebugOutputLevel = appDebugOutputLevel;
}
void AppDebugMessageHandler::setShowSourcePath(bool showSourcePath)
{
m_showSourcePath = showSourcePath;
}
void AppDebugMessageHandler::setShowFunctionDeclarations(bool showFunctionDeclarations)
{
m_showFunctionDeclarations = showFunctionDeclarations;
}
void AppDebugMessageHandler::addOutputDevice(QIODevice * device)
{
if (device && !m_outputDevices.contains(device))
m_outputDevices.append(device);
}
void AppDebugMessageHandler::removeOutputDevice(QIODevice * device)
{
if (device) {
// no QVector::removeAll() in Qt < 5.4
int i = 0;
foreach (QIODevice * d, m_outputDevices) {
if (d == device)
m_outputDevices.remove(i);
++i;
}
}
}
void AppDebugMessageHandler::installAppMessageHandler()
{
m_defaultHandler = qInstallMessageHandler(g_appDebugMessageHandler);
}
void AppDebugMessageHandler::messageHandler(QtMsgType type, const QMessageLogContext & context, const QString & msg)
{
static const char symbols[] = { 'D', 'W', 'E', 'X', 'I' }; // correspond to QtMsgType enum
// normalize types, QtDebugMsg stays 0, QtInfoMsg becomes 1, rest are QtMsgType + 1
quint8 lvl = type;
if (type == QtInfoMsg)
lvl = 1;
else if (type > QtDebugMsg)
++lvl;
if (lvl < m_appDebugOutputLevel && type != QtFatalMsg)
return;
#if defined(Q_OS_LINUX) && (QT_VERSION < QT_VERSION_CHECK(5, 3, 0))
// Filter out lots of QPainter warnings from undocked QDockWidgets... hackish but effective (only workaround found so far)
if (lvl == 2 && QString(context.function).contains("QPainter::"))
return;
#endif
QString msgPattern = QString("[%1] ").arg(symbols[type]);
if (m_showSourcePath) {
QString file = QString("%1::").arg(context.file);
file.replace(m_srcPathFilter, "\\1");
msgPattern.append(file);
}
if (m_showFunctionDeclarations)
msgPattern.append(context.function);
else
msgPattern.append("%{function}()");
msgPattern.append(":%{line} -%{if-category} [%{category}]%{endif} %{message}");
if (type == QtFatalMsg)
msgPattern.append("\nBACKTRACE:\n%{backtrace depth=12 separator=\"\n\"}");
qSetMessagePattern(msgPattern);
if (!m_defaultHandler || m_outputDevices.size() || receivers(SIGNAL(messageOutput(quint8, const QString &)))) {
#if (QT_VERSION >= QT_VERSION_CHECK(5, 4, 0))
msgPattern = qFormatLogMessage(type, context, msg);
#else
msgPattern.replace("%{line}", QString::number(context.line));
msgPattern.replace("%{if-category} [%{category}]%{endif}", QString(context.category));
msgPattern.replace("%{message}", msg);
if (!m_showFunctionDeclarations) {
QString func = context.function;
msgPattern.replace("%{function}", func.replace(m_functionFilter, "\\1)"));
}
#endif
emit messageOutput(lvl, msgPattern);
foreach (QIODevice * d, m_outputDevices) {
if (d && d->isWritable() && (!d->property("level").isValid() || d->property("level").toInt() <= lvl)) {
d->write(qPrintable(msgPattern % "\n"));
if (QFileDevice * fd = qobject_cast<QFileDevice *>(d))
fd->flush();
}
}
}
// if (QThread::currentThread() == qApp->thread()) // gui thread
if (m_defaultHandler) {
m_defaultHandler(type, context, msg);
}
else {
fprintf(stderr, "%s", qPrintable(msgPattern));
if (type == QtFatalMsg)
abort();
}
}
// Message handler which is installed using qInstallMessageHandler. This needs to be global.
void g_appDebugMessageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg)
{
if (AppDebugMessageHandler::instance())
AppDebugMessageHandler::instance()->messageHandler(type, context, msg);
}
+142
View File
@@ -0,0 +1,142 @@
/*
* Copyright (C) OpenTX
*
* Based on code named
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef APPDEBUGMESSAGEHANDLER_H
#define APPDEBUGMESSAGEHANDLER_H
#include <cstdlib>
#include <iostream>
#include <QApplication>
#include <QDebug>
#include <QIODevice>
#include <QMessageLogContext>
#include <QObject>
#include <QRegularExpression>
#include <QString>
/*
* Custom debug/message handler class to work in conjunction with qDebug() family of functions.
* Formats all stderr output generated by the application in a consistent manner.
* It can also be used by other event listeners to intercept messages they may be interested in (connect to messageOutput() signal).
*
* Include this header to use qInfo() safely with Qt < v5.5 (qInfo becomes alias for qDebug).
*
* Note that the default message format can still be overriden by setting QT_MESSAGE_PATTERN environment variable at _runtime_.
* see: https://doc.qt.io/qt-5/qtglobal.html#qSetMessagePattern
*
* This is an app-wide "global" thread-safe singleton class, use it with AppDebugMessageHandler::instance().
* For example, at start of application:
*
* QApplication app(argc, argv);
* AppDebugMessageHandler::instance()->installAppMessageHandler();
*
* To connect to a signal:
*
* connect(AppDebugMessageHandler::instance(), &AppDebugMessageHandler::messageOutput, this, &DebugOutput::onAppDebugMessage);
*
* This singleton will self-destruct upon QApplication termination.
*
*/
#if defined(QT_DEBUG) || defined(DEBUG)
#define APP_DBG_HANDLER_IS_DBG_BUILD 1
#else
#define APP_DBG_HANDLER_IS_DBG_BUILD 0
#endif
// Enable/disable this custom handler handler entirely
#ifndef APP_DBG_HANDLER_ENABLE
#define APP_DBG_HANDLER_ENABLE 1
#endif
// Default log level (can also be set with setAppDebugOutputLevel()):
// 0 = debug+; 1 = info+; 2 = warn+; 3 = critical+; 4 = fatal only
#ifndef APP_DBG_HANDLER_DEFAULT_LEVEL
#define APP_DBG_HANDLER_DEFAULT_LEVEL 0
#endif
// Include source file path/name in output (filtered with APP_DBG_HANDLER_SRC_PATH)
#ifndef APP_DBG_HANDLER_SHOW_SRC_PATH
#define APP_DBG_HANDLER_SHOW_SRC_PATH APP_DBG_HANDLER_IS_DBG_BUILD
#endif
// Show just the function Class::name vs. full declaration with return and param types
#ifndef APP_DBG_HANDLER_SHOW_FUNCTION_DECL
#define APP_DBG_HANDLER_SHOW_FUNCTION_DECL 0
#endif
// base path for source file name filter, everything after this is kept; RegEx, non-greedy
#ifndef APP_DBG_HANDLER_SRC_PATH
#define APP_DBG_HANDLER_SRC_PATH ".*src"
#endif
// Make sure to include this header if using qInfo()
#if (QT_VERSION < QT_VERSION_CHECK(5, 5, 0))
#if defined(QT_NO_INFO_OUTPUT)
#define qInfo QT_NO_QDEBUG_MACRO
#else
#define qInfo qDebug
#endif
#define QtInfoMsg QtMsgType(4)
#endif
class AppDebugMessageHandler : public QObject
{
Q_OBJECT
public:
// This class implements the singleton design pattern and is therefore publicly accessible only through instance().
static AppDebugMessageHandler * instance();
AppDebugMessageHandler(AppDebugMessageHandler const &) = delete;
void operator = (AppDebugMessageHandler const &) = delete;
void setAppDebugOutputLevel(const quint8 & appDebugOutputLevel);
void setShowSourcePath(bool showSourcePath);
void setShowFunctionDeclarations(bool showFunctionDeclarations);
void addOutputDevice(QIODevice * device);
void removeOutputDevice(QIODevice * device);
void installAppMessageHandler();
void messageHandler(QtMsgType type, const QMessageLogContext & context, const QString & msg);
private:
// This class implements the singleton design pattern and therefore has only a private constructor.
explicit AppDebugMessageHandler(QObject * parent = Q_NULLPTR);
~AppDebugMessageHandler() { }
QtMessageHandler m_defaultHandler;
QRegularExpression m_srcPathFilter;
QRegularExpression m_functionFilter;
quint8 m_appDebugOutputLevel;
QVector<QIODevice *> m_outputDevices;
bool m_showSourcePath;
bool m_showFunctionDeclarations;
signals:
void messageOutput(quint8 level, const QString & msg);
};
// Message handler which is installed using qInstallMessageHandler. This needs to be global.
// Use AppDebugMessageHandler::instance()->installAppMessageHandler();
// instead of installing this function directly (it will verify this handler is enabled, etc).
void g_appDebugMessageHandler(QtMsgType, const QMessageLogContext &, const QString &);
#endif // APPDEBUGMESSAGEHANDLER_H
+161 -82
View File
@@ -1,17 +1,34 @@
/*
* Copyright (C) OpenTX
*
* Based on code named
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include "apppreferencesdialog.h"
#include "ui_apppreferencesdialog.h"
#include "mainwindow.h"
#include "appdata.h"
#include "helpers.h"
#include "flashinterface.h"
#ifdef JOYSTICKS
#if defined(JOYSTICKS)
#include "joystick.h"
#include "joystickdialog.h"
#endif
#include <QDesktopServices>
#include <QtGui>
AppPreferencesDialog::AppPreferencesDialog(QWidget *parent) :
AppPreferencesDialog::AppPreferencesDialog(QWidget * parent) :
QDialog(parent),
ui(new Ui::AppPreferencesDialog)
{
@@ -21,9 +38,11 @@ AppPreferencesDialog::AppPreferencesDialog(QWidget *parent) :
initSettings();
connect(ui->downloadVerCB, SIGNAL(currentIndexChanged(int)), this, SLOT(baseFirmwareChanged()));
connect(ui->opt_appDebugLog, &QCheckBox::toggled, this, &AppPreferencesDialog::toggleAppLogSettings);
connect(ui->opt_fwTraceLog, &QCheckBox::toggled, this, &AppPreferencesDialog::toggleAppLogSettings);
connect(this, SIGNAL(accepted()), this, SLOT(writeValues()));
#ifndef JOYSTICKS
#if !defined(JOYSTICKS)
ui->joystickCB->hide();
ui->joystickCB->setDisabled(true);
ui->joystickcalButton->hide();
@@ -41,20 +60,27 @@ AppPreferencesDialog::~AppPreferencesDialog()
void AppPreferencesDialog::writeValues()
{
g.autoCheckApp(ui->startupCheck_companion9x->isChecked());
g.autoCheckFw(ui->startupCheck_fw->isChecked());
g.autoCheckApp(ui->autoCheckCompanion->isChecked());
g.OpenTxBranch(DownloadBranchType(ui->OpenTxBranch->currentIndex()));
g.autoCheckFw(ui->autoCheckFirmware->isChecked());
g.showSplash(ui->showSplash->isChecked());
g.simuSW(ui->simuSW->isChecked());
g.useWizard(ui->modelWizard_CB->isChecked());
g.removeModelSlots(ui->opt_removeBlankSlots->isChecked());
g.newModelAction(ui->opt_newMdl_useWizard->isChecked() ? 1 : ui->opt_newMdl_useEditor->isChecked() ? 2 : 0);
g.historySize(ui->historySize->value());
g.backLight(ui->backLightColor->currentIndex());
g.profile[g.id()].volumeGain(round(ui->volumeGain->value() * 10.0));
g.libDir(ui->libraryPath->text());
g.gePath(ui->ge_lineedit->text());
g.embedSplashes(ui->splashincludeCB->currentIndex());
g.enableBackup(ui->backupEnable->isChecked());
g.appDebugLog(ui->opt_appDebugLog->isChecked());
g.fwTraceLog(ui->opt_fwTraceLog->isChecked());
g.appLogsDir(ui->appLogsDir->text());
if (ui->joystickChkB ->isChecked() && ui->joystickCB->isEnabled()) {
g.jsSupport(ui->joystickChkB ->isChecked());
g.jsSupport(ui->joystickChkB ->isChecked());
g.jsCtrl(ui->joystickCB ->currentIndex());
}
else {
@@ -66,6 +92,8 @@ void AppPreferencesDialog::writeValues()
g.profile[g.id()].renameFwFiles(ui->renameFirmware->isChecked());
g.profile[g.id()].burnFirmware(ui->burnFirmware->isChecked());
g.profile[g.id()].sdPath(ui->sdPath->text());
g.profile[g.id()].pBackupDir(ui->profilebackupPath->text());
g.profile[g.id()].penableBackup(ui->pbackupEnable->isChecked());
g.profile[g.id()].splashFile(ui->SplashFileName->text());
// The profile name may NEVER be empty
@@ -75,18 +103,19 @@ void AppPreferencesDialog::writeValues()
g.profile[g.id()].name(ui->profileNameLE->text());
// If a new fw type has been choosen, several things need to reset
current_firmware_variant = getFirmwareVariant();
QString id = current_firmware_variant->getId();
Firmware::setCurrentVariant(getFirmwareVariant());
QString id = Firmware::getCurrentVariant()->getId();
if (g.profile[g.id()].fwType() != id) {
g.profile[g.id()].fwName("");
g.profile[g.id()].initFwVariables();
g.profile[g.id()].fwType(id);
emit firmwareProfileChanged(g.id());
}
}
void AppPreferencesDialog::on_snapshotPathButton_clicked()
{
QString fileName = QFileDialog::getExistingDirectory(this,tr("Select your snapshot folder"), g.snapshotDir());
QString fileName = QFileDialog::getExistingDirectory(this, tr("Select your snapshot folder"), g.snapshotDir());
if (!fileName.isEmpty()) {
g.snapshotDir(fileName);
g.snapToClpbrd(false);
@@ -104,18 +133,26 @@ void AppPreferencesDialog::initSettings()
ui->snapshotPath->setDisabled(true);
ui->snapshotPathButton->setDisabled(true);
}
ui->startupCheck_companion9x->setChecked(g.autoCheckApp());
ui->startupCheck_fw->setChecked(g.autoCheckFw());
#if !defined(ALLOW_NIGHTLY_BUILDS)
// TODO should we gray out nightly builds here?
#endif
ui->OpenTxBranch->setCurrentIndex(g.OpenTxBranch());
ui->autoCheckCompanion->setChecked(g.autoCheckApp());
ui->autoCheckFirmware->setChecked(g.autoCheckFw());
ui->showSplash->setChecked(g.showSplash());
ui->historySize->setValue(g.historySize());
ui->backLightColor->setCurrentIndex(g.backLight());
ui->volumeGain->setValue(g.profile[g.id()].volumeGain() / 10.0);
if (IS_TARANIS(GetCurrentFirmware()->getBoard())) {
if (IS_TARANIS(getCurrentBoard())) {
ui->backLightColor->setEnabled(false);
}
ui->simuSW->setChecked(g.simuSW());
ui->modelWizard_CB->setChecked(g.useWizard());
ui->opt_removeBlankSlots->setChecked(g.removeModelSlots());
ui->opt_newMdl_useNone->setChecked(g.newModelAction() == 0);
ui->opt_newMdl_useWizard->setChecked(g.newModelAction() == 1);
ui->opt_newMdl_useEditor->setChecked(g.newModelAction() == 2);
ui->libraryPath->setText(g.libDir());
ui->ge_lineedit->setText(g.gePath());
@@ -124,15 +161,22 @@ void AppPreferencesDialog::initSettings()
ui->backupPath->setText(g.backupDir());
ui->backupEnable->setEnabled(true);
ui->backupEnable->setChecked(g.enableBackup());
} else {
}
else {
ui->backupEnable->setDisabled(true);
}
} else {
ui->backupEnable->setDisabled(true);
}
else {
ui->backupEnable->setDisabled(true);
}
ui->splashincludeCB->setCurrentIndex(g.embedSplashes());
#ifdef JOYSTICKS
ui->opt_appDebugLog->setChecked(g.appDebugLog());
ui->opt_fwTraceLog->setChecked(g.fwTraceLog());
ui->appLogsDir->setText(g.appLogsDir());
toggleAppLogSettings();
#if defined(JOYSTICKS)
ui->joystickChkB->setChecked(g.jsSupport());
if (ui->joystickChkB->isChecked()) {
QStringList joystickNames;
@@ -158,16 +202,26 @@ void AppPreferencesDialog::initSettings()
ui->joystickCB->setDisabled(true);
ui->joystickcalButton->setDisabled(true);
}
#endif
// Profile Tab Inits
#endif
// Profile Tab Inits
ui->channelorderCB->setCurrentIndex(g.profile[g.id()].channelOrder());
ui->stickmodeCB->setCurrentIndex(g.profile[g.id()].defaultMode());
ui->renameFirmware->setChecked(g.profile[g.id()].renameFwFiles());
ui->sdPath->setText(g.profile[g.id()].sdPath());
ui->profileNameLE->setText(g.profile[g.id()].name());
ui->SplashFileName->setText(g.profile[g.id()].splashFile());
if (!g.profile[g.id()].pBackupDir().isEmpty()) {
if (QDir(g.profile[g.id()].pBackupDir()).exists()) {
ui->profilebackupPath->setText(g.profile[g.id()].pBackupDir());
ui->pbackupEnable->setEnabled(true);
ui->pbackupEnable->setChecked(g.profile[g.id()].penableBackup());
} else {
ui->pbackupEnable->setDisabled(true);
}
}
else {
ui->pbackupEnable->setDisabled(true);
}
displayImage( g.profile[g.id()].splashFile() );
ui->profileNameLE->setText(g.profile[g.id()].name());
QString hwSettings;
if (g.profile[g.id()].stickPotCalib() == "" ) {
@@ -182,15 +236,14 @@ void AppPreferencesDialog::initSettings()
}
ui->lblGeneralSettings->setText(hwSettings);
FirmwareInterface * current_firmware = GetCurrentFirmware();
foreach(FirmwareInterface * firmware, firmwares) {
QString currType = QStringList(g.profile[g.id()].fwType().split('-').mid(0, 2)).join('-');
foreach(Firmware * firmware, Firmware::getRegisteredFirmwares()) {
ui->downloadVerCB->addItem(firmware->getName(), firmware->getId());
if (current_firmware->getFirmwareBase() == firmware) {
if (currType == firmware->getId()) {
ui->downloadVerCB->setCurrentIndex(ui->downloadVerCB->count() - 1);
}
}
baseFirmwareChanged();
}
@@ -224,8 +277,26 @@ void AppPreferencesDialog::on_backupPathButton_clicked()
if (!fileName.isEmpty()) {
g.backupDir(fileName);
ui->backupPath->setText(fileName);
ui->backupEnable->setEnabled(true);
}
}
void AppPreferencesDialog::on_ProfilebackupPathButton_clicked()
{
QString fileName = QFileDialog::getExistingDirectory(this,tr("Select your Models and Settings backup folder"), g.backupDir());
if (!fileName.isEmpty()) {
ui->profilebackupPath->setText(fileName);
ui->pbackupEnable->setEnabled(true);
}
}
void AppPreferencesDialog::on_btn_appLogsDir_clicked()
{
QString fileName = QFileDialog::getExistingDirectory(this, tr("Select a folder for application logs"), ui->appLogsDir->text());
if (!fileName.isEmpty()) {
ui->appLogsDir->setText(fileName);
}
ui->backupEnable->setEnabled(true);
}
void AppPreferencesDialog::on_ge_pathButton_clicked()
@@ -235,8 +306,8 @@ void AppPreferencesDialog::on_ge_pathButton_clicked()
ui->ge_lineedit->setText(fileName);
}
}
#ifdef JOYSTICKS
#if defined(JOYSTICKS)
void AppPreferencesDialog::on_joystickChkB_clicked() {
if (ui->joystickChkB->isChecked()) {
QStringList joystickNames;
@@ -279,35 +350,20 @@ void AppPreferencesDialog::on_sdPathButton_clicked()
}
}
void AppPreferencesDialog::on_removeProfileButton_clicked()
bool AppPreferencesDialog::displayImage(const QString & fileName)
{
if ( g.id() == 0 ) {
QMessageBox::information(this, tr("Not possible to remove profile"), tr("The default profile can not be removed."));
}
else {
g.profile[g.id()].remove();
g.id( 0 );
initSettings();
}
}
// Start by clearing the label
ui->imageLabel->clear();
bool AppPreferencesDialog::displayImage( QString fileName )
{
// Start by clearing the pixmap
ui->imageLabel->setPixmap(QPixmap());
QImage image(fileName);
if (image.isNull())
if (fileName.isEmpty())
return false;
// Use the firmware name to determine splash width
int width = SPLASH_WIDTH;
if (g.profile[g.id()].fwType().contains("taranis"))
width = SPLASHX9D_WIDTH;
ui->imageLabel->setPixmap( makePixMap( image, g.profile[g.id()].fwType()));
ui->imageLabel->setFixedSize(width, SPLASH_HEIGHT);
QImage image(fileName);
if (image.isNull())
return false;
ui->imageLabel->setPixmap(makePixMap(image));
ui->imageLabel->setFixedSize(getCurrentFirmware()->getCapability(LcdWidth), getCurrentFirmware()->getCapability(LcdHeight));
return true;
}
@@ -323,7 +379,7 @@ void AppPreferencesDialog::on_SplashSelect_clicked()
if (!fileName.isEmpty()){
g.imagesDir(QFileInfo(fileName).dir().absolutePath());
displayImage(fileName);
ui->SplashFileName->setText(fileName);
}
@@ -340,14 +396,13 @@ void AppPreferencesDialog::showVoice(bool show)
{
ui->voiceLabel->setVisible(show);
ui->voiceCombo->setVisible(show);
QTimer::singleShot(0, this, SLOT(shrink()));
}
void AppPreferencesDialog::baseFirmwareChanged()
{
QVariant selected_firmware = ui->downloadVerCB->itemData(ui->downloadVerCB->currentIndex());
QString selected_firmware = ui->downloadVerCB->currentData().toString();
foreach(FirmwareInterface * firmware, firmwares) {
foreach(Firmware * firmware, Firmware::getRegisteredFirmwares()) {
if (firmware->getId() == selected_firmware) {
populateFirmwareOptions(firmware);
break;
@@ -355,33 +410,33 @@ void AppPreferencesDialog::baseFirmwareChanged()
}
}
FirmwareInterface * AppPreferencesDialog::getFirmwareVariant()
Firmware * AppPreferencesDialog::getFirmwareVariant()
{
QVariant selected_firmware = ui->downloadVerCB->itemData(ui->downloadVerCB->currentIndex());
QString selected_firmware = ui->downloadVerCB->currentData().toString();
foreach(FirmwareInterface * firmware, firmwares) {
foreach(Firmware * firmware, Firmware::getRegisteredFirmwares()) {
QString id = firmware->getId();
if (id == selected_firmware) {
foreach(QCheckBox *cb, optionsCheckBoxes) {
if (cb->isChecked()) {
id += QString("-") + cb->text();
id += "-" + cb->text();
}
}
if (voice && voice->isChecked()) {
id += QString("-tts") + ui->voiceCombo->currentText();
id += "-tts" + ui->voiceCombo->currentText();
}
if (ui->langCombo->count()) {
id += QString("-") + ui->langCombo->currentText();
id += "-" + ui->langCombo->currentText();
}
return GetFirmware(id);
return Firmware::getFirmwareForId(id);
}
}
// Should never occur...
return default_firmware_variant;
return Firmware::getDefaultVariant();
}
void AppPreferencesDialog::firmwareOptionChanged(bool state)
@@ -390,10 +445,10 @@ void AppPreferencesDialog::firmwareOptionChanged(bool state)
if (cb == voice) {
showVoice(voice->isChecked());
}
FirmwareInterface * firmware=NULL;
Firmware * firmware=NULL;
if (cb && state) {
QVariant selected_firmware = ui->downloadVerCB->itemData(ui->downloadVerCB->currentIndex());
foreach(firmware, firmwares) {
QVariant selected_firmware = ui->downloadVerCB->currentData();
foreach(firmware, Firmware::getRegisteredFirmwares()) {
if (firmware->getId() == selected_firmware) {
foreach(QList<Option> opts, firmware->opts) {
foreach(Option opt, opts) {
@@ -413,16 +468,24 @@ void AppPreferencesDialog::firmwareOptionChanged(bool state)
}
}
}
}
}
}
void AppPreferencesDialog::populateFirmwareOptions(const FirmwareInterface * firmware)
void AppPreferencesDialog::toggleAppLogSettings()
{
const FirmwareInterface * parent = firmware->getFirmwareBase();
bool vis = (ui->opt_appDebugLog->isChecked() || ui->opt_fwTraceLog->isChecked());
ui->appLogsDir->setVisible(vis);
ui->lbl_appLogsDir->setVisible(vis);
ui->btn_appLogsDir->setVisible(vis);
}
void AppPreferencesDialog::populateFirmwareOptions(const Firmware * firmware)
{
const Firmware * parent = firmware->getFirmwareBase();
updateLock = true;
QString id = current_firmware_variant->getId();
QString id = Firmware::getCurrentVariant()->getId();
ui->langCombo->clear();
foreach(const char *lang, parent->languages) {
ui->langCombo->addItem(lang);
@@ -434,13 +497,17 @@ void AppPreferencesDialog::populateFirmwareOptions(const FirmwareInterface * fir
voice = NULL; // we will search for a voice checkbox
int index = 0;
QWidget * prevFocus = ui->voiceCombo;
foreach(QList<Option> opts, parent->opts) {
foreach(Option opt, opts) {
if (index >= optionsCheckBoxes.size()) {
QCheckBox * checkbox = new QCheckBox(ui->profileTab);
ui->optionsLayout->addWidget(checkbox, optionsCheckBoxes.count()/5, optionsCheckBoxes.count()%5, 1, 1);
ui->optionsLayout->addWidget(checkbox, optionsCheckBoxes.count()/4, optionsCheckBoxes.count()%4, 1, 1);
optionsCheckBoxes.push_back(checkbox);
connect(checkbox, SIGNAL(toggled(bool)), this, SLOT(firmwareOptionChanged(bool)));
if (prevFocus) {
QWidget::setTabOrder(prevFocus, checkbox);
}
}
QCheckBox *cb = optionsCheckBoxes.at(index++);
@@ -452,6 +519,7 @@ void AppPreferencesDialog::populateFirmwareOptions(const FirmwareInterface * fir
if (opt.name == QString("voice")) {
voice = cb;
}
prevFocus = cb;
}
}
}
@@ -472,12 +540,23 @@ void AppPreferencesDialog::populateFirmwareOptions(const FirmwareInterface * fir
showVoice(voice && voice->isChecked());
// TODO: Remove once splash replacement supported on Horus
// NOTE: 480x272 image causes issues on screens <800px high, needs a solution like scrolling once reinstated
if (IS_HORUS(parent->getBoard())) {
ui->widget_splashImage->hide();
ui->SplashFileName->setText("");
}
else {
ui->widget_splashImage->show();
ui->SplashFileName->setText(g.profile[g.id()].splashFile());
displayImage(g.profile[g.id()].splashFile());
}
updateLock = false;
QTimer::singleShot(0, this, SLOT(shrink()));
QTimer::singleShot(50, this, SLOT(shrink()));
}
void AppPreferencesDialog::shrink()
{
resize(0,0);
adjustSize();
}
+36 -13
View File
@@ -1,5 +1,25 @@
#ifndef APPPREFERENCESDIALOG_H
#define APPPREFERENCESDIALOG_H
/*
* Copyright (C) OpenTX
*
* Based on code named
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef _APPPREFERENCESDIALOG_H_
#define _APPPREFERENCESDIALOG_H_
#include <QDialog>
#include <QCheckBox>
@@ -16,9 +36,12 @@ class AppPreferencesDialog : public QDialog
Q_OBJECT
public:
explicit AppPreferencesDialog(QWidget *parent = 0);
explicit AppPreferencesDialog(QWidget * parent = 0);
~AppPreferencesDialog();
Joystick *joystick;
Joystick * joystick;
signals:
void firmwareProfileChanged(int profId);
private:
QList<QCheckBox *> optionsCheckBoxes;
@@ -27,37 +50,37 @@ class AppPreferencesDialog : public QDialog
void showVoice();
void hideVoice();
void populateLocale();
void populateFirmwareOptions(const FirmwareInterface *);
FirmwareInterface * getFirmwareVariant();
void populateFirmwareOptions(const Firmware *);
Firmware * getFirmwareVariant();
QCheckBox * voice;
Ui::AppPreferencesDialog *ui;
void initSettings();
bool displayImage( QString fileName );
void loadProfileString(QString profile, QString label);
void loadFromProfile();
bool displayImage(const QString & fileName);
protected slots:
void shrink();
void shrink();
void baseFirmwareChanged();
void firmwareOptionChanged(bool state);
void toggleAppLogSettings();
void writeValues();
void on_libraryPathButton_clicked();
void on_snapshotPathButton_clicked();
void on_snapshotClipboardCKB_clicked();
void on_backupPathButton_clicked();
void on_ProfilebackupPathButton_clicked();
void on_ge_pathButton_clicked();
void on_sdPathButton_clicked();
void on_removeProfileButton_clicked();
void on_SplashSelect_clicked();
void on_clearImageButton_clicked();
void on_btn_appLogsDir_clicked();
#ifdef JOYSTICKS
#if defined(JOYSTICKS)
void on_joystickChkB_clicked();
void on_joystickcalButton_clicked();
#endif
};
#endif // APPPREFERENCESDIALOG_H
#endif // _APPPREFERENCESDIALOG_H_
File diff suppressed because it is too large Load Diff
-504
View File
@@ -1,504 +0,0 @@
#include "avroutputdialog.h"
#include "ui_avroutputdialog.h"
#include <QtGui>
#include "eeprominterface.h"
#include "flashinterface.h"
#if defined WIN32 || !defined __GNUC__
#include <Windows.h>
#include <WinBase.h>
#include <tlhelp32.h>
#define sleep(x) Sleep(x*1000)
#else
#include <unistd.h>
#include "mountlist.h"
#endif
avrOutputDialog::avrOutputDialog(QWidget *parent, QString prog, QStringList arg, QString wTitle, int closeBehaviour, bool displayDetails) :
QDialog(parent, Qt::WindowTitleHint | Qt::WindowSystemMenuHint),
ui(new Ui::avrOutputDialog),
kill_timer(NULL),
hasErrors(false)
{
ui->setupUi(this);
#ifdef __APPLE__
QFont newFont("Courier", 13);
ui->plainTextEdit->setFont(newFont);
ui->plainTextEdit->setAttribute(Qt::WA_MacNormalSize);
#endif
#if defined WIN32 || !defined __GNUC__
QFont newFont("Courier", 9);
ui->plainTextEdit->setFont(newFont);
#endif
cmdLine = prog;
closeOpt = closeBehaviour;
if (cmdLine.isEmpty()) {
if (arg.count()<2) {
closeOpt = AVR_DIALOG_FORCE_CLOSE;
QTimer::singleShot(0, this, SLOT(forceClose()));
}
else {
sourceFile=arg.at(0);
destFile=arg.at(1);
if (!displayDetails) {
ui->plainTextEdit->hide();
QTimer::singleShot(0, this, SLOT(shrink()));
} else {
ui->checkBox->setChecked(true);
}
ui->progressBar->setMaximum(127);
QTimer::singleShot(500, this, SLOT(doCopy()));
}
}
else {
if (wTitle.isEmpty())
setWindowTitle(getProgrammer() + " " + tr("result"));
else
setWindowTitle(getProgrammer() + " - " + wTitle);
QFile exec;
winTitle=wTitle;
if (!(exec.exists(prog))) {
QMessageBox::critical(this, "Companion", getProgrammer() + " " + tr("executable not found"));
closeOpt = AVR_DIALOG_FORCE_CLOSE;
QTimer::singleShot(0, this, SLOT(forceClose()));
}
else {
foreach(QString str, arg) cmdLine.append(" " + str);
lfuse = 0;
hfuse = 0;
efuse = 0;
phase=0;
currLine.clear();
if (!displayDetails) {
ui->plainTextEdit->hide();
QTimer::singleShot(0, this, SLOT(shrink()));
}
else {
ui->checkBox->setChecked(true);
}
process = new QProcess(this);
connect(process,SIGNAL(readyReadStandardError()), this, SLOT(doAddTextStdErr()));
connect(process,SIGNAL(started()),this,SLOT(doProcessStarted()));
connect(process,SIGNAL(readyReadStandardOutput()),this,SLOT(doAddTextStdOut()));
connect(process,SIGNAL(finished(int)),this,SLOT(doFinished(int)));
#if !__GNUC__
kill_timer = new QTimer(this);
connect(kill_timer, SIGNAL(timeout()), this, SLOT(killTimerElapsed()));
kill_timer->start(2000);
#endif
process->start(prog,arg);
}
}
}
# if !__GNUC__
BOOL KillProcessByName(char *szProcessToKill){
HANDLE hProcessSnap;
HANDLE hProcess;
PROCESSENTRY32 pe32;
DWORD dwPriorityClass;
hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); // Takes a snapshot of all the processes
if(hProcessSnap == INVALID_HANDLE_VALUE){
return( FALSE );
}
pe32.dwSize = sizeof(PROCESSENTRY32);
if(!Process32First(hProcessSnap, &pe32)){
CloseHandle(hProcessSnap);
return( FALSE );
}
do{
if(!strcmp(pe32.szExeFile,szProcessToKill)){ // checks if process at current position has the name of to be killed app
hProcess = OpenProcess(PROCESS_TERMINATE,0, pe32.th32ProcessID); // gets handle to process
TerminateProcess(hProcess,0); // Terminate process by handle
CloseHandle(hProcess); // close the handle
}
}while(Process32Next(hProcessSnap,&pe32)); // gets next member of snapshot
CloseHandle(hProcessSnap); // closes the snapshot handle
return( TRUE );
}
#endif
void avrOutputDialog::doCopy()
{
char buf[BLKSIZE];
QFile source(sourceFile);
int blocks = (source.size() + BLKSIZE - 1) / BLKSIZE;
ui->progressBar->setMaximum(blocks-1);
if (source.open(QIODevice::ReadOnly)) {
QFile dest(destFile);
if (dest.open(QIODevice::WriteOnly)) {
addText(tr("Writing file: "));
for (int i=0; i<blocks; i++) {
int read = source.read(buf, BLKSIZE);
if (dest.write(buf, read) == read) {
dest.flush();
ui->progressBar->setValue(i);
if ((i%2) != 0)
addText("#");
}
else {
QMessageBox::warning(this, tr("Error"), tr("Write error"));
break;
}
}
dest.close();
}
else {
QMessageBox::warning(this, tr("Error"),tr("Cannot write destination") + ": " + dest.errorString());
}
}
else {
QMessageBox::warning(this, tr("Error"),tr("Cannot open source file") + ": " + source.errorString());
}
source.close();
doFinished(0);
}
void avrOutputDialog::killTimerElapsed()
{
delete kill_timer;
kill_timer = NULL;
# if !__GNUC__
KillProcessByName("tasklist.exe");
#endif
}
avrOutputDialog::~avrOutputDialog()
{
delete ui;
delete kill_timer;
}
void avrOutputDialog::runAgain(QString prog, QStringList arg, int closeBehaviour)
{
cmdLine = prog;
foreach(QString str, arg) cmdLine.append(" " + str);
closeOpt = closeBehaviour;
currLine.clear();
process->start(prog,arg);
}
void avrOutputDialog::waitForFinish()
{
process->waitForFinished();
}
void avrOutputDialog::addText(const QString &text)
{
QTextCursor cursor(ui->plainTextEdit->textCursor());
// is the scrollbar at the end?
bool atEnd = (ui->plainTextEdit->verticalScrollBar()->value() == ui->plainTextEdit->verticalScrollBar()->maximum());
cursor.movePosition(QTextCursor::End, QTextCursor::MoveAnchor, 1);
cursor.insertText(text);
if (atEnd) {
ui->plainTextEdit->verticalScrollBar()->triggerAction(QAbstractSlider::SliderToMaximum);
}
}
void avrOutputDialog::doAddTextStdOut()
{
QByteArray data = process->readAllStandardOutput();
QString text = QString(data);
QString temp;
int nlPos, pos, size;
addText(text);
currStdLine.append(text);
if (currStdLine.contains("size = ")) {
pos = currStdLine.lastIndexOf("size = ");
temp = currStdLine.mid(pos+7);
pos = temp.lastIndexOf("\n");
size = temp.left(pos).toInt();
ui->progressBar->setMaximum(size/2048);
}
if (currStdLine.contains("\n")) {
nlPos = currStdLine.lastIndexOf("\n");
currStdLine = currStdLine.mid(nlPos+1);
}
if (!currStdLine.isEmpty()) {
if (currStdLine.at(0) == QChar('.')) {
pos = currStdLine.lastIndexOf(".");
ui->progressBar->setValue(pos);
}
else if (currStdLine.startsWith("Starting upload: [")) {
pos = (currStdLine.lastIndexOf("#")-19)/(MAX_FSIZE/204800.0);
ui->progressBar->setValue(pos);
}
}
if (text.contains("Complete ")) {
#if !__GNUC__
delete kill_timer;
kill_timer = NULL;
#endif
int start = text.indexOf("Complete ");
int end = text.indexOf("%");
if (start > 0) {
start += 9;
int value = text.mid(start, end-start).toInt();
ui->progressBar->setValue(value);
}
}
if (text.contains(":010000")) {
//contains fuse info
QStringList stl = text.split(":01000000");
foreach (QString t, stl) {
bool ok = false;
if (!lfuse) lfuse = t.left(2).toInt(&ok,16);
if (!hfuse && !ok) hfuse = t.left(2).toInt(&ok,16);
if (!efuse && !ok) efuse = t.left(2).toInt(&ok,16);
}
}
if (text.contains("-E-")) {
hasErrors = true;
}
}
QString avrOutputDialog::getProgrammer()
{
EEPROMInterface *eepromInterface = GetEepromInterface();
if (IS_TARANIS(eepromInterface->getBoard())) {
return "DFU Util";
}
else if IS_SKY9X(eepromInterface->getBoard()) {
return "SAM-BA";
}
else {
return "AVRDUDE";
}
}
void avrOutputDialog::errorWizard()
{
QString output=ui->plainTextEdit->toPlainText();
if (output.contains("avrdude: Expected signature for")) { // wrong signature
int pos=output.indexOf("avrdude: Device signature = ");
bool fwexist=false;
QString DeviceStr="Unknown";
QString FwStr="";
if (pos>0) {
QString DeviceId=output.mid(pos+28,8);
if (DeviceId=="0x1e9602") {
DeviceStr="Atmega 64";
FwStr="\n"+tr("ie: OpenTX for 9X board or OpenTX for 9XR board");
fwexist=true;
}
else if (DeviceId=="0x1e9702") {
DeviceStr="Atmega 128";
FwStr="\n"+tr("ie: OpenTX for M128 / 9X board or OpenTX for 9XR board with M128 chip");
fwexist=true;
}
else if (DeviceId=="0x1e9703") {
DeviceStr="Atmega 1280";
}
else if (DeviceId=="0x1e9704") {
DeviceStr="Atmega 1281";
}
else if (DeviceId=="0x1e9801") {
DeviceStr="Atmega 2560";
FwStr="\n"+tr("ie: OpenTX for Gruvin9X board");
fwexist=true;
}
else if (DeviceId=="0x1e9802") {
DeviceStr="Atmega 2561";
}
}
if (fwexist==false) {
QMessageBox::warning(this, "Companion - Tip of the day", tr("Your radio uses a %1 CPU!!!\n\nPlease check advanced burn options to set the correct cpu type.").arg(DeviceStr));
}
else {
FirmwareInterface *firmware = GetCurrentFirmware();
QMessageBox::warning(this, "Companion - Tip of the day", tr("Your radio uses a %1 CPU!!!\n\nPlease select an appropriate firmware type to program it.").arg(DeviceStr)+FwStr+tr("\nYou are currently using:\n %1").arg(firmware->getName()));
}
}
}
void avrOutputDialog::doAddTextStdErr()
{
int nlPos;
int pbvalue;
QString avrphase;
QByteArray data = process->readAllStandardError();
QString text = QString(data);
currLine.append(text);
if (currLine.contains("#")) {
avrphase = currLine.left(1).toLower();
if (avrphase=="w") {
ui->progressBar->setStyleSheet("QProgressBar {text-align: center;} QProgressBar::chunk { background-color: #ff0000; text-align:center;}:");
phase=1;
if(winTitle.isEmpty())
setWindowTitle(getProgrammer() + " - " + tr("Writing"));
else
setWindowTitle(getProgrammer() + " - " + winTitle + " - " + tr("Writing"));
pbvalue=currLine.count("#")*2;
ui->progressBar->setValue(pbvalue);
}
else if (avrphase=="r") {
if (phase==0) {
ui->progressBar->setStyleSheet("QProgressBar {text-align: center;} QProgressBar::chunk { background-color: #00ff00; text-align:center;}:");
if(winTitle.isEmpty())
setWindowTitle(getProgrammer() + " - " + tr("Reading"));
else
setWindowTitle(getProgrammer() + " - " + winTitle + " - " + tr("Reading"));
}
else {
ui->progressBar->setStyleSheet("QProgressBar {text-align: center;} QProgressBar::chunk { background-color: #0000ff; text-align:center;}:");
phase=2;
if(winTitle.isEmpty())
setWindowTitle(getProgrammer() + " - " + tr("Verifying"));
else
setWindowTitle(getProgrammer() + " - " + winTitle + " - " + tr("Verifying"));
}
pbvalue=currLine.count("#")*2;
ui->progressBar->setValue(pbvalue);
}
}
if (currLine.contains("\n")) {
nlPos = currLine.lastIndexOf("\n");
currLine = currLine.mid(nlPos+1);
}
if (text.contains("-E-") && !text.contains("-E- No receive file name")) {
hasErrors = true;
}
addText(text);
}
#define HLINE_SEPARATOR "================================================================================="
void avrOutputDialog::doFinished(int code=0)
{
addText("\n" HLINE_SEPARATOR);
if (code==1 && getProgrammer()=="SAM-BA")
code=0;
if (code) {
ui->checkBox->setChecked(true);
addText("\n" + getProgrammer() + " " + tr("done - exit code %1").arg(code));
}
else if (hasErrors) {
ui->checkBox->setChecked(true);
addText("\n" + getProgrammer() + " " + tr("done with errors"));
}
else if (!cmdLine.isEmpty()) {
addText("\n" + getProgrammer() + " " + tr("done - SUCCESSFUL"));
}
else {
addText(tr("done - SUCCESSFUL"));
}
addText("\n" HLINE_SEPARATOR "\n");
if(lfuse || hfuse || efuse) {
addReadFuses();
}
switch(closeOpt)
{
case AVR_DIALOG_CLOSE_IF_SUCCESSFUL:
if (!hasErrors && !code) accept();
if (code) {
errorWizard();
}
break;
case AVR_DIALOG_FORCE_CLOSE:
if (hasErrors || code)
reject();
else
accept();
break;
case AVR_DIALOG_SHOW_DONE:
if (hasErrors || code) {
if (!cmdLine.isEmpty()) {
if (getProgrammer()!="AVRDUDE") {
QMessageBox::critical(this, "Companion", getProgrammer() + " " + tr("did not finish correctly"));
}
else {
int res = QMessageBox::question(this, "Companion",getProgrammer() + " " + tr("did not finish correctly!\nDo you want some help ?"),QMessageBox::Yes | QMessageBox::No);
if (res != QMessageBox::No) {
errorWizard();
}
}
}
else {
QMessageBox::critical(this, "Companion", tr("Copy did not finish correctly"));
}
// reject();
}
else {
if (!cmdLine.isEmpty()) {
ui->progressBar->setValue(ui->progressBar->maximum());
QMessageBox::information(this, "Companion", getProgrammer() + " " + tr("finished correctly"));
accept();
}
else {
QMessageBox::information(this, "Companion", tr("Copy finished correctly"));
accept();
}
}
break;
default: //AVR_DIALOG_KEEP_OPEN
break;
}
}
void avrOutputDialog::doProcessStarted()
{
addText(HLINE_SEPARATOR "\n");
addText(tr("Started") + " " + getProgrammer() + "\n");
addText(cmdLine);
addText("\n" HLINE_SEPARATOR "\n");
}
void avrOutputDialog::addReadFuses()
{
addText(HLINE_SEPARATOR "\n");
addText(tr("FUSES: Low=%1 High=%2 Ext=%3").arg(lfuse,2,16,QChar('0')).arg(hfuse,2,16,QChar('0')).arg(efuse,2,16,QChar('0')));
addText("\n" HLINE_SEPARATOR "\n");
}
void avrOutputDialog::on_checkBox_toggled(bool checked)
{
if (checked) {
ui->plainTextEdit->show();
}
else {
ui->plainTextEdit->hide();
QTimer::singleShot(0, this, SLOT(shrink()));
}
}
void avrOutputDialog::shrink()
{
resize(0,0);
}
void avrOutputDialog::forceClose()
{
accept();
}
-65
View File
@@ -1,65 +0,0 @@
#ifndef AVROUTPUTDIALOG_H
#define AVROUTPUTDIALOG_H
#include <QDialog>
#include <QtGui>
#define AVR_DIALOG_CLOSE_IF_SUCCESSFUL 0x00
#define AVR_DIALOG_KEEP_OPEN 0x01
#define AVR_DIALOG_FORCE_CLOSE 0x02
#define AVR_DIALOG_SHOW_DONE 0x04
#define READBUF 65536
#define BLKSIZE 512
namespace Ui {
class avrOutputDialog;
}
class avrOutputDialog : public QDialog
{
Q_OBJECT
public:
explicit avrOutputDialog(QWidget *parent, QString prog, QStringList arg, QString wTitle, int closeBehaviour=AVR_DIALOG_CLOSE_IF_SUCCESSFUL, bool displayDetails=false);
~avrOutputDialog();
void addText(const QString &text);
void runAgain(QString prog, QStringList arg, int closeBehaviour=AVR_DIALOG_CLOSE_IF_SUCCESSFUL);
void waitForFinish();
void addReadFuses();
protected slots:
void doAddTextStdOut();
void doAddTextStdErr();
void doProcessStarted();
void doCopy();
void doFinished(int code);
void on_checkBox_toggled(bool checked);
void shrink();
void forceClose();
void killTimerElapsed();
void errorWizard();
private:
QString getProgrammer();
Ui::avrOutputDialog *ui;
QProcess *process;
QTimer *kill_timer;
QString cmdLine;
int closeOpt;
quint8 lfuse;
quint8 hfuse;
quint8 efuse;
QString currLine;
QString currStdLine;
int phase;
QString winTitle;
bool hasErrors;
QString sourceFile;
QString destFile;
};
#endif // AVROUTPUTDIALOG_H
-115
View File
@@ -1,115 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>avrOutputDialog</class>
<widget class="QDialog" name="avrOutputDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>700</width>
<height>348</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>700</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<property name="windowIcon">
<iconset resource="companion.qrc">
<normaloff>:/icon.png</normaloff>:/icon.png</iconset>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QProgressBar" name="progressBar">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>480</width>
<height>0</height>
</size>
</property>
<property name="value">
<number>0</number>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="checkBox">
<property name="text">
<string>Show Details</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="1" column="0">
<widget class="QPlainTextEdit" name="plainTextEdit">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>312</height>
</size>
</property>
<property name="font">
<font>
<family>Courier</family>
<pointsize>10</pointsize>
</font>
</property>
<property name="verticalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOn</enum>
</property>
<property name="lineWrapMode">
<enum>QPlainTextEdit::WidgetWidth</enum>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
<property name="plainText">
<string/>
</property>
<property name="textInteractionFlags">
<set>Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
</layout>
</widget>
<resources>
<include location="companion.qrc"/>
</resources>
<connections/>
</ui>
+284
View File
@@ -0,0 +1,284 @@
/*
* Copyright (C) OpenTX
*
* Based on code named
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include "boards.h"
#include "macros.h"
// TODO remove all those constants
// Update: These are now all only used within this class.
// External access is only via getEEpromSize() and getFlashSize()
#define EESIZE_STOCK 2048
#define EESIZE_M128 4096
#define EESIZE_GRUVIN9X 4096
#define EESIZE_TARANIS (32*1024)
#define EESIZE_SKY9X (128*4096)
#define EESIZE_9XRPRO (128*4096)
#define EESIZE_MAX EESIZE_9XRPRO
// getFlashSize() (and these macros) is only used by radiointerface::getDfuArgs (perhaps can find a better way?)
#define FSIZE_STOCK (64*1024)
#define FSIZE_M128 (128*1024)
#define FSIZE_GRUVIN9X (256*1024)
#define FSIZE_TARANIS (512*1024)
#define FSIZE_SKY9X (256*1024)
#define FSIZE_9XRPRO (512*1024)
#define FSIZE_HORUS (2048*1024)
#define FSIZE_MAX FSIZE_HORUS
using namespace Board;
void Boards::setBoardType(const Type & board)
{
if (board >= BOARD_UNKNOWN && board < BOARD_ENUM_COUNT)
m_boardType = board;
else
m_boardType = BOARD_UNKNOWN;
}
const int Boards::getEEpromSize(Board::Type board)
{
switch (board) {
case BOARD_STOCK:
return EESIZE_STOCK;
case BOARD_M128:
return EESIZE_M128;
case BOARD_MEGA2560:
case BOARD_GRUVIN9X:
return EESIZE_GRUVIN9X;
case BOARD_SKY9X:
return EESIZE_SKY9X;
case BOARD_9XRPRO:
case BOARD_AR9X:
return EESIZE_9XRPRO;
case BOARD_TARANIS_X7:
case BOARD_TARANIS_X9D:
case BOARD_TARANIS_X9DP:
case BOARD_TARANIS_X9E:
case BOARD_FLAMENCO:
return EESIZE_TARANIS;
case BOARD_UNKNOWN:
return EESIZE_MAX;
default:
return 0; // unlimited
}
}
const int Boards::getFlashSize(Type board)
{
switch (board) {
case BOARD_STOCK:
return FSIZE_STOCK;
case BOARD_M128:
return FSIZE_M128;
case BOARD_MEGA2560:
case BOARD_GRUVIN9X:
return FSIZE_GRUVIN9X;
case BOARD_SKY9X:
return FSIZE_SKY9X;
case BOARD_9XRPRO:
case BOARD_AR9X:
return FSIZE_9XRPRO;
case BOARD_TARANIS_X9D:
case BOARD_TARANIS_X9DP:
case BOARD_TARANIS_X9E:
case BOARD_TARANIS_X7:
case BOARD_FLAMENCO:
return FSIZE_TARANIS;
case BOARD_X12S:
case BOARD_X10:
return FSIZE_HORUS;
case BOARD_UNKNOWN:
return FSIZE_MAX;
default:
return 0;
}
}
const SwitchInfo Boards::getSwitchInfo(Board::Type board, unsigned index)
{
if (IS_TARANIS_X7(board)) {
const Board::SwitchInfo switches[] = {
{SWITCH_3POS, "SA"},
{SWITCH_3POS, "SB"},
{SWITCH_3POS, "SC"},
{SWITCH_3POS, "SD"},
{SWITCH_2POS, "SF"},
{SWITCH_TOGGLE, "SH"}
};
if (index < DIM(switches))
return switches[index];
}
else if (IS_HORUS_OR_TARANIS(board)) {
const Board::SwitchInfo switches[] = {
{SWITCH_3POS, "SA"},
{SWITCH_3POS, "SB"},
{SWITCH_3POS, "SC"},
{SWITCH_3POS, "SD"},
{SWITCH_3POS, "SE"},
{SWITCH_2POS, "SF"},
{SWITCH_3POS, "SG"},
{SWITCH_TOGGLE, "SH"},
{SWITCH_3POS, "SI"},
{SWITCH_3POS, "SJ"},
{SWITCH_3POS, "SK"},
{SWITCH_3POS, "SL"},
{SWITCH_3POS, "SM"},
{SWITCH_3POS, "SN"},
{SWITCH_3POS, "SO"},
{SWITCH_3POS, "SP"},
{SWITCH_3POS, "SQ"},
{SWITCH_3POS, "SR"}
};
if (index < DIM(switches))
return switches[index];
}
else {
const Board::SwitchInfo switches[] = {
{SWITCH_3POS, "3POS"},
{SWITCH_2POS, "THR"},
{SWITCH_2POS, "RUD"},
{SWITCH_2POS, "ELE"},
{SWITCH_2POS, "AIL"},
{SWITCH_2POS, "GEA"},
{SWITCH_TOGGLE, "TRN"}
};
if (index < DIM(switches))
return switches[index];
}
return {SWITCH_NOT_AVAILABLE, "???"};
}
const int Boards::getCapability(Board::Type board, Board::Capability capability)
{
switch (capability) {
case Sticks:
return 4;
case Pots:
if (IS_TARANIS_X7(board))
return 2;
else if (IS_TARANIS_X9E(board))
return 4;
else
return 3;
case Sliders:
if (IS_HORUS_X12S(board) || IS_TARANIS_X9E(board))
return 4;
else if (IS_TARANIS_X9D(board) || IS_HORUS_X10(board))
return 2;
else
return 0;
case MouseAnalogs:
if (IS_HORUS_X12S(board))
return 2;
else
return 0;
case Switches:
if (IS_TARANIS_X9E(board))
return 18;
else if (IS_TARANIS_X7(board))
return 6;
else if (IS_HORUS_OR_TARANIS(board))
return 8;
else
return 7;
case FactoryInstalledSwitches:
if (IS_TARANIS_X9E(board))
return 8;
else
return getCapability(board, Switches);
case SwitchPositions:
if (IS_HORUS_OR_TARANIS(board))
return getCapability(board, Switches) * 3;
else
return 9;
case NumTrims:
if (IS_HORUS(board))
return 6;
else
return 4;
case NumTrimSwitches:
return getCapability(board, NumTrims) * 2;
}
return 0;
}
const QString Boards::getAxisName(int index)
{
const QString axes[] = {
QObject::tr("Left Horizontal"),
QObject::tr("Left Vertical"),
QObject::tr("Right Vertical"),
QObject::tr("Right Horizontal"),
QObject::tr("Aux. 1"),
QObject::tr("Aux. 2"),
};
if (index < (int)DIM(axes))
return axes[index];
else
return QObject::tr("Unknown");
}
/* Currently unused
const QString Boards::getBoardName(Board::Type board)
{
switch (board) {
case BOARD_STOCK:
return "9X";
case BOARD_M128:
return "9X128";
case BOARD_GRUVIN9X:
return "Gruvin9x";
case BOARD_MEGA2560:
return "MEGA2560";
case BOARD_TARANIS_X7:
return "Taranis X7";
case BOARD_TARANIS_X9D:
return "Taranis X9D";
case BOARD_TARANIS_X9DP:
return "Taranis X9D+";
case BOARD_TARANIS_X9E:
return "Taranis X9E";
case BOARD_SKY9X:
return "Sky9x";
case BOARD_9XRPRO:
return "9XR-PRO";
case BOARD_AR9X:
return "AR9X";
case BOARD_X12S:
return "Horus";
case BOARD_X10:
return "X10";
default:
return QObject::tr("Unknown");
}
}
*/
+191
View File
@@ -0,0 +1,191 @@
/*
* Copyright (C) OpenTX
*
* Based on code named
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef _BOARDS_H_
#define _BOARDS_H_
#include <QObject>
#include <QString>
// TODO create a Board class with all these functions
namespace Board {
enum Type
{
BOARD_UNKNOWN = -1,
BOARD_STOCK = 0,
BOARD_M128,
BOARD_MEGA2560,
BOARD_GRUVIN9X,
BOARD_SKY9X,
BOARD_9XRPRO,
BOARD_AR9X,
BOARD_TARANIS_X7,
BOARD_TARANIS_X9D,
BOARD_TARANIS_X9DP,
BOARD_TARANIS_X9E,
BOARD_FLAMENCO,
BOARD_X12S,
BOARD_X10,
BOARD_ENUM_COUNT
};
enum PotType
{
POT_NONE,
POT_WITH_DETENT,
POT_MULTIPOS_SWITCH,
POT_WITHOUT_DETENT
};
enum SliderType
{
SLIDER_NONE,
SLIDER_WITH_DETENT
};
enum SwitchType
{
SWITCH_NOT_AVAILABLE,
SWITCH_TOGGLE,
SWITCH_2POS,
SWITCH_3POS
};
enum StickAxes {
STICK_AXIS_LH = 0,
STICK_AXIS_LV,
STICK_AXIS_RV,
STICK_AXIS_RH,
STICK_AXIS_COUNT
};
enum TrimAxes {
TRIM_AXIS_LH = 0,
TRIM_AXIS_LV,
TRIM_AXIS_RV,
TRIM_AXIS_RH,
TRIM_AXIS_T5,
TRIM_AXIS_T6,
TRIM_AXIS_COUNT
};
enum TrimSwitches
{
TRIM_SW_LH_DEC,
TRIM_SW_LH_INC,
TRIM_SW_LV_DEC,
TRIM_SW_LV_INC,
TRIM_SW_RV_DEC,
TRIM_SW_RV_INC,
TRIM_SW_RH_DEC,
TRIM_SW_RH_INC,
TRIM_SW_T5_DEC,
TRIM_SW_T5_INC,
TRIM_SW_T6_DEC,
TRIM_SW_T6_INC,
TRIM_SW_COUNT
};
enum Capability {
Sticks,
Pots,
Sliders,
MouseAnalogs,
Switches,
SwitchPositions,
FactoryInstalledSwitches,
NumTrims,
NumTrimSwitches
};
struct SwitchInfo
{
SwitchType config;
QString name;
};
struct SwitchPosition {
SwitchPosition(unsigned int index, unsigned int position):
index(index),
position(position)
{
}
unsigned int index;
unsigned int position;
};
}
class Boards
{
public:
Boards(Board::Type board)
{
setBoardType(board);
}
void setBoardType(const Board::Type & board);
Board::Type getBoardType() const { return m_boardType; }
const int getEEpromSize() { return getEEpromSize(m_boardType); }
const int getFlashSize() { return getFlashSize(m_boardType); }
const Board::SwitchInfo getSwitchInfo(unsigned index) { return getSwitchInfo(m_boardType, index); }
const int getCapability(Board::Capability capability) { return getCapability(m_boardType, capability); }
static const int getEEpromSize(Board::Type board);
static const int getFlashSize(Board::Type board);
static const Board::SwitchInfo getSwitchInfo(Board::Type board, unsigned index);
static const int getCapability(Board::Type board, Board::Capability capability);
static const QString getAxisName(int index);
protected:
Board::Type m_boardType;
};
// temporary aliases for transition period, use Boards class instead.
#define getBoardCapability(b__, c__) Boards::getCapability(b__, c__)
#define getEEpromSize(b__) Boards::getEEpromSize(b__)
#define getSwitchInfo(b__, i__) Boards::getSwitchInfo(b__, i__)
#define IS_9X(board) (board==Board::BOARD_STOCK || board==Board::BOARD_M128)
#define IS_STOCK(board) (board==Board::BOARD_STOCK)
#define IS_2560(board) (board==Board::BOARD_GRUVIN9X || board==Board::BOARD_MEGA2560)
#define IS_SKY9X(board) (board==Board::BOARD_SKY9X || board==Board::BOARD_9XRPRO || board==Board::BOARD_AR9X)
#define IS_9XRPRO(board) (board==Board::BOARD_9XRPRO)
#define IS_TARANIS_X7(board) (board==Board::BOARD_TARANIS_X7)
#define IS_TARANIS_X9(board) (board==Board::BOARD_TARANIS_X9D || board==Board::BOARD_TARANIS_X9DP || board==Board::BOARD_TARANIS_X9E)
#define IS_TARANIS_X9D(board) (board==Board::BOARD_TARANIS_X9D || board==Board::BOARD_TARANIS_X9DP)
#define IS_TARANIS_PLUS(board) (board==Board::BOARD_TARANIS_X9DP || board==Board::BOARD_TARANIS_X9E)
#define IS_TARANIS_X9E(board) (board==Board::BOARD_TARANIS_X9E)
#define IS_TARANIS(board) (IS_TARANIS_X9(board) || IS_TARANIS_X7(board))
#define IS_HORUS_X12S(board) (board==Board::BOARD_X12S)
#define IS_HORUS_X10(board) (board==Board::BOARD_X10)
#define IS_HORUS(board) (IS_HORUS_X12S(board) || IS_HORUS_X10(board))
#define IS_HORUS_OR_TARANIS(board) (IS_HORUS(board) || IS_TARANIS(board))
#define IS_FLAMENCO(board) (board==Board::BOARD_FLAMENCO)
#define IS_STM32(board) (IS_TARANIS(board) || IS_HORUS(board) || IS_FLAMENCO(board))
#define IS_ARM(board) (IS_STM32(board) || IS_SKY9X(board))
#define HAS_LARGE_LCD(board) (IS_HORUS(board) || (IS_TARANIS(board) && !IS_TARANIS_X7(board)))
#endif // _BOARDS_H_
+63 -121
View File
@@ -1,12 +1,32 @@
/*
* Copyright (C) OpenTX
*
* Based on code named
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include "burnconfigdialog.h"
#include "ui_burnconfigdialog.h"
#include "avroutputdialog.h"
#include "eeprominterface.h"
#include "helpers.h"
#include "appdata.h"
#include <QtGui>
#include "progressdialog.h"
#include "process_flash.h"
#if !defined WIN32 && defined __GNUC__
#if !defined _MSC_VER && defined __GNUC__
#include <unistd.h>
#endif
@@ -20,8 +40,8 @@ burnConfigDialog::burnConfigDialog(QWidget *parent) :
getSettings();
populateProgrammers();
EEPROMInterface *eepromInterface = GetEepromInterface();
if (IS_TARANIS(eepromInterface->getBoard())) {
Board::Type board = getCurrentBoard();
if (IS_STM32(board)) {
setWindowTitle(tr("DFU-UTIL Configuration"));
ui->avrArgs->hide();
ui->avrdude_location->hide();
@@ -40,7 +60,7 @@ burnConfigDialog::burnConfigDialog(QWidget *parent) :
ui->samba_port->hide();
ui->sb_browse->hide();
}
else if (IS_SKY9X(eepromInterface->getBoard())) {
else if (IS_SKY9X(board)) {
setWindowTitle(tr("SAM-BA Configuration"));
ui->avrArgs->hide();
ui->avrdude_location->hide();
@@ -77,7 +97,7 @@ burnConfigDialog::burnConfigDialog(QWidget *parent) :
ui->dfuArgs->hide();
QTimer::singleShot(0, this, SLOT(shrink()));
connect(this,SIGNAL(accepted()),this,SLOT(putSettings()));
connect(this, SIGNAL(accepted()), this, SLOT(putSettings()));
}
burnConfigDialog::~burnConfigDialog()
@@ -85,6 +105,18 @@ burnConfigDialog::~burnConfigDialog()
delete ui;
}
QStringList burnConfigDialog::getAvrdudeArgs()
{
QStringList args = avrArgs;
if (!avrPort.isEmpty())
args << "-P" << avrPort;
#if defined(__APPLE__)
args << "-C" << QFileInfo(QApplication::applicationDirPath() + "/../Resources/avrdude.conf").absoluteFilePath();
#endif
return args;
}
void burnConfigDialog::getSettings()
{
avrLoc = g.avrdudeLocation();
@@ -100,11 +132,16 @@ void burnConfigDialog::getSettings()
dfuLoc = QFileInfo("dfu-util.exe").absoluteFilePath();
#elif defined __APPLE__
if ( avrLoc.isEmpty())
avrLoc = "/usr/local/bin/avrdude";
avrLoc = QFileInfo(QApplication::applicationDirPath() + "/../Resources/avrdude").absoluteFilePath();
if ( sambaLoc.isEmpty())
sambaLoc = "/usr/local/bin/sam-ba";
if ( dfuLoc.isEmpty())
dfuLoc = QFileInfo("/opt/local/bin/dfu-util").absoluteFilePath();
dfuLoc = QFileInfo(QApplication::applicationDirPath() + "/../Resources/dfu-util").absoluteFilePath();
#elif defined __FreeBSD__
if (avrLoc.isEmpty())
avrLoc = "/usr/local/bin/avrdude";
if (dfuLoc.isEmpty())
dfuLoc = "/usr/local/bin/dfu-util";
#else
if ( avrLoc.isEmpty())
avrLoc = "/usr/bin/avrdude";
@@ -123,7 +160,7 @@ void burnConfigDialog::getSettings()
sambaPort = g.sambaPort();
ui->avrdude_location->setText(getAVRDUDE());
ui->avrArgs->setText(getAVRArgs().join(" "));
ui->avrArgs->setText(avrArgs.join(" "));
ui->samba_location->setText(getSAMBA());
ui->samba_port->setText(getSambaPort());
@@ -285,131 +322,36 @@ void burnConfigDialog::on_dfuArgs_editingFinished()
dfuArgs = ui->dfuArgs->text().split(" ", QString::SkipEmptyParts);
}
void burnConfigDialog::listProgrammers()
void burnConfigDialog::listAvrdudeProgrammers()
{
QStringList arguments;
arguments << "-c?";
avrOutputDialog *ad = new avrOutputDialog(this, ui->avrdude_location->text(), arguments, "List available programmers", AVR_DIALOG_KEEP_OPEN, TRUE);
ad->setWindowIcon(CompanionIcon("list.png"));
ad->show();
delete ad;
ProgressDialog progressDialog(this, tr("List available programmers"), CompanionIcon("list.png"), true);
FlashProcess flashProcess(ui->avrdude_location->text(), QStringList() << "-c?", progressDialog.progress());
flashProcess.run();
}
// TODO choose better name when no merge in progress....
void burnConfigDialog::on_pushButton_3_clicked()
{
listProgrammers();
listAvrdudeProgrammers();
}
// TODO choose better name when no merge in progress....
void burnConfigDialog::on_pushButton_4_clicked()
{
QStringList arguments;
arguments << "-?";
avrOutputDialog *ad = new avrOutputDialog(this, ui->avrdude_location->text(), arguments, "Show help", AVR_DIALOG_KEEP_OPEN,TRUE);
ad->setWindowIcon(CompanionIcon("configure.png"));
ad->show();
delete ad;
}
void burnConfigDialog::readFuses()
{
QStringList args = avrArgs;
if(!avrPort.isEmpty()) args << "-P" << avrPort;
QStringList str;
str << "-U" << "lfuse:r:-:i" << "-U" << "hfuse:r:-:i" << "-U" << "efuse:r:-:i";
QStringList arguments;
arguments << "-c" << avrProgrammer << "-p" << avrMCU << args << str;
avrOutputDialog *ad = new avrOutputDialog(this, avrLoc, arguments, "Read Fuses",AVR_DIALOG_KEEP_OPEN,TRUE);
ad->setWindowIcon(CompanionIcon("fuses.png"));
ad->show();
delete ad;
}
void burnConfigDialog::restFuses(bool eeProtect)
{
//fuses
//avrdude -c usbasp -p m64 -U lfuse:w:<0x0E>:m
//avrdude -c usbasp -p m64 -U hfuse:w:<0x89>:m 0x81 for eeprom protection
//avrdude -c usbasp -p m64 -U efuse:w:<0xFF>:m
QMessageBox::StandardButton ret = QMessageBox::No;
ret = QMessageBox::warning(this, tr("Companion"),
tr("<b><u>WARNING!</u></b><br>This will reset the fuses of %1 to the factory settings.<br>Writing fuses can mess up your radio.<br>Do this only if you are sure they are wrong!<br>Are you sure you want to continue?").arg(avrMCU),
QMessageBox::Yes | QMessageBox::No);
if (ret == QMessageBox::Yes)
{
QStringList args = avrArgs;
if(!avrPort.isEmpty()) args << "-P" << avrPort;
QStringList str;
if (avrMCU=="m2560") {
args << "-B8";
QString erStr = eeProtect ? "hfuse:w:0x11:m" : "hfuse:w:0x19:m";
str << "-U" << "lfuse:w:0xD7:m" << "-U" << erStr << "-U" << "efuse:w:0xFC:m";
//use hfuse = 0x81 to prevent eeprom being erased with every flashing
}
else {
QString tempDir = QDir::tempPath();
QString tempFile;
QString lfuses;
tempFile = tempDir + "/ftemp.bin";
QStringList argread;
argread << "-c" << avrProgrammer << "-p" << avrMCU << args <<"-U" << "lfuse:r:"+tempFile+":r" ;
avrOutputDialog *ad = new avrOutputDialog(this, avrLoc, argread, "Reset Fuses",AVR_DIALOG_CLOSE_IF_SUCCESSFUL,FALSE);
ad->setWindowIcon(CompanionIcon("fuses.png"));
ad->exec();
delete ad;
QFile file(tempFile);
if (file.exists() && file.size()==1) {
file.open(QIODevice::ReadOnly);
char bin_flash[1];
file.read(bin_flash, 1);
if (bin_flash[0]==0x0E) {
lfuses="lfuse:w:0x0E:m";
}
else {
lfuses="lfuse:w:0x3F:m";
}
file.close();
unlink(tempFile.toAscii());
}
else {
lfuses="lfuse:w:0x3F:m";
}
QString erStr = eeProtect ? "hfuse:w:0x81:m" : "hfuse:w:0x89:m";
str << "-U" << lfuses << "-U" << erStr << "-U" << "efuse:w:0xFF:m";
//use hfuse = 0x81 to prevent eeprom being erased with every flashing
}
QStringList arguments;
if (avrMCU=="m2560") {
arguments << "-c" << avrProgrammer << "-p" << avrMCU << args << "-u" << str;
}
else {
arguments << "-c" << avrProgrammer << "-p" << avrMCU << args << "-B" << "100" << "-u" << str;
}
avrOutputDialog *ad = new avrOutputDialog(this, avrLoc, arguments, "Reset Fuses",AVR_DIALOG_KEEP_OPEN,TRUE);
ad->setWindowIcon(CompanionIcon("fuses.png"));
ad->show();
delete ad;
}
ProgressDialog progressDialog(this, tr("Avrdude help"), CompanionIcon("configure.png"), true);
FlashProcess flashProcess(ui->avrdude_location->text(), QStringList() << "-?", progressDialog.progress());
flashProcess.run();
}
void burnConfigDialog::on_advCtrChkB_toggled(bool checked)
{
EEPROMInterface *eepromInterface = GetEepromInterface();
Board::Type board = getCurrentBoard();
if (checked) {
if (IS_TARANIS(eepromInterface->getBoard())) {
if (IS_STM32(board)) {
ui->label_dfu2->show();
ui->dfuArgs->show();
}
else if (IS_SKY9X(eepromInterface->getBoard())) {
else if (IS_SKY9X(board)) {
ui->label_sb2->show();
ui->arm_mcu->show();
}
@@ -422,11 +364,11 @@ void burnConfigDialog::on_advCtrChkB_toggled(bool checked)
}
}
else {
if (IS_TARANIS(eepromInterface->getBoard())) {
if (IS_STM32(board)) {
ui->label_dfu2->hide();
ui->dfuArgs->hide();
}
else if (IS_SKY9X(eepromInterface->getBoard())) {
else if (IS_SKY9X(board)) {
ui->label_sb2->hide();
ui->arm_mcu->hide();
}
@@ -441,7 +383,7 @@ void burnConfigDialog::on_advCtrChkB_toggled(bool checked)
void burnConfigDialog::shrink()
{
resize(0,0);
resize(0, 0);
}
+26 -9
View File
@@ -1,8 +1,27 @@
#ifndef BURNCONFIGDIALOG_H
#define BURNCONFIGDIALOG_H
/*
* Copyright (C) OpenTX
*
* Based on code named
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include <QDialog>
#include <QtGui>
#ifndef _BURNCONFIGDIALOG_H_
#define _BURNCONFIGDIALOG_H_
#include <QtWidgets>
#define MEM_TYPE_EEPROM 1
#define MEM_TYPE_FLASH 2
@@ -23,7 +42,7 @@ public:
QString getAVRDUDE() {return avrLoc;}
QString getSAMBA() {return sambaLoc;}
QString getDFU() {return dfuLoc;}
QStringList getAVRArgs() {return avrArgs;}
QStringList getAvrdudeArgs();
QStringList getDFUArgs() {return dfuArgs;}
QString getProgrammer() {return avrProgrammer;}
QString getMCU() {return avrMCU;}
@@ -31,9 +50,7 @@ public:
QString getPort() {return avrPort;}
QString getSambaPort() {return sambaPort;}
void listProgrammers();
void restFuses(bool eeProtect);
void readFuses();
void listAvrdudeProgrammers();
private:
Ui::burnConfigDialog *ui;
@@ -73,4 +90,4 @@ private slots:
void putSettings();
};
#endif // BURNCONFIGDIALOG_H
#endif // _BURNCONFIGDIALOG_H_
+9 -1
View File
@@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>531</width>
<height>335</height>
<height>422</height>
</rect>
</property>
<property name="sizePolicy">
@@ -817,6 +817,14 @@ Please only use this if you know what you are doing. There are no error checks
<tabstop>avrdude_port</tabstop>
<tabstop>avrArgs</tabstop>
<tabstop>pushButton_4</tabstop>
<tabstop>samba_location</tabstop>
<tabstop>sb_browse</tabstop>
<tabstop>arm_mcu</tabstop>
<tabstop>samba_port</tabstop>
<tabstop>dfu_location</tabstop>
<tabstop>dfu_browse</tabstop>
<tabstop>dfuArgs</tabstop>
<tabstop>advCtrChkB</tabstop>
<tabstop>buttonBox</tabstop>
</tabstops>
<resources>
-617
View File
@@ -1,617 +0,0 @@
#include "burndialog.h"
#include "ui_burndialog.h"
#include <QtGui>
#include "eeprominterface.h"
#include "helpers.h"
#include "splashlibrary.h"
#include "flashinterface.h"
#include "hexinterface.h"
#include "appdata.h"
// Type 1 = Burn EEPROM, Type 2= Burn Flash
burnDialog::burnDialog(QWidget *parent, int Type, QString * fileName, bool * backupEE, QString DocName):
QDialog(parent),
ui(new Ui::burnDialog),
hexfileName(fileName),
backup(backupEE),
hexType(Type)
{
ui->setupUi(this);
setWindowIcon(CompanionIcon("write_flash.png"));
if (!g.profile[g.id()].splashFile().isEmpty()){
imageSource=PROFILE;
imageFile=g.profile[g.id()].splashFile();
}
else {
ui->useProfileImageCB->setDisabled(true);
imageSource=FIRMWARE;
imageFile="";
}
ui->SplashFrame->hide();
ui->FramFWInfo->hide();
ui->EEbackupCB->hide();
ui->EEbackupCB->setCheckState(*backup ? Qt::Checked : Qt::Unchecked);
if (Type == FLASH_FILE_TYPE ) {
ui->EEpromCB->hide();
ui->profile_label->hide();
ui->patchcalib_CB->hide();
ui->patchhw_CB->hide();
setWindowTitle(tr("Write firmware to Radio"));
if (IS_TARANIS(GetEepromInterface()->getBoard())) {
ui->EEbackupCB->hide();
}
}
else {
ui->FlashLoadButton->setText(tr("Browse for file"));
ui->profile_label->hide();
ui->patchcalib_CB->hide();
ui->patchhw_CB->hide();
ui->EEpromCB->hide();
ui->BurnFlashButton->setDisabled(true);
ui->FWFileName->clear();
ui->DateField->clear();
ui->versionField->clear();
ui->ModField->clear();
ui->FramFWInfo->hide();
ui->SplashFrame->hide();
ui->BurnFlashButton->setDisabled(true);
ui->EEbackupCB->hide();
if (DocName.isEmpty()) {
setWindowTitle(tr("Write Backup to Radio"));
}
else {
setWindowTitle(tr("Write Backup from %1 to Radio").arg(DocName));
}
ui->profile_label->setText(tr("Current profile")+QString(": ")+g.profile[g.id()].name());
}
if (!hexfileName->isEmpty()) {
ui->FWFileName->setText(*hexfileName);
if (Type==FLASH_FILE_TYPE) {
checkFw(*hexfileName);
}
else {
burnraw=false;
if (checkeEprom(*hexfileName)) {
QString Name = g.profile[g.id()].name();
QString calib = g.profile[g.id()].stickPotCalib();
QString trainercalib = g.profile[g.id()].trainerCalib();
QString DisplaySet = g.profile[g.id()].display();
QString BeeperSet = g.profile[g.id()].beeper();
QString HapticSet = g.profile[g.id()].haptic();
QString SpeakerSet = g.profile[g.id()].speaker();
if (!Name.isEmpty()) {
ui->profile_label->show();
ui->patchcalib_CB->show();
ui->patchhw_CB->show();
// TODO I hardcode the number of pots here, should be dependant on the board?
if (!((calib.length()==(NUM_STICKS+3)*12) && (trainercalib.length()==16))) {
ui->patchcalib_CB->setDisabled(true);
}
if (!((DisplaySet.length()==6) && (BeeperSet.length()==4) && (HapticSet.length()==6) && (SpeakerSet.length()==6))) {
ui->patchhw_CB->setDisabled(true);
}
}
else {
ui->profile_label->hide();
}
if (!IS_TARANIS(GetEepromInterface()->getBoard())) {
ui->EEpromCB->show();
}
else {
ui->EEpromCB->setChecked(false);
}
ui->BurnFlashButton->setEnabled(true);
}
}
ui->FWFileName->hide();
ui->FlashLoadButton->hide();
hexfileName->clear();
}
else if (Type==FLASH_FILE_TYPE) {
QString FileName = g.profile[g.id()].fwName();
QFile file(FileName);
if (file.exists()) {
checkFw(FileName);
}
}
updateUI();
resize(0, 0);
}
burnDialog::~burnDialog()
{
delete ui;
}
void burnDialog::on_FlashLoadButton_clicked()
{
QString fileName;
ui->BurnFlashButton->setDisabled(true);
ui->FWFileName->clear();
ui->DateField->clear();
ui->versionField->clear();
ui->ModField->clear();
ui->FramFWInfo->hide();
ui->SplashFrame->hide();
ui->BurnFlashButton->setDisabled(true);
ui->EEbackupCB->hide();
QTimer::singleShot(0, this, SLOT(shrink()));
if (hexType==FLASH_FILE_TYPE) {
fileName = QFileDialog::getOpenFileName(this, tr("Open Firmware File"), g.flashDir(), FLASH_FILES_FILTER);
if(fileName.isEmpty())
return;
checkFw(fileName);
}
else {
QString fileName = QFileDialog::getOpenFileName(this,tr("Choose Radio Backup file"), g.eepromDir(), tr(EXTERNAL_EEPROM_FILES_FILTER));
if (checkeEprom(fileName)) {
if (burnraw==false) {
ui->BurnFlashButton->setEnabled(true);
ui->profile_label->show();
ui->patchcalib_CB->show();
ui->patchhw_CB->show();
if (!IS_TARANIS(GetEepromInterface()->getBoard())) {
ui->EEpromCB->show();
}
else {
ui->EEpromCB->setChecked(false);
}
}
else {
ui->BurnFlashButton->setEnabled(true);
ui->profile_label->hide();
ui->patchcalib_CB->setChecked(false);
ui->patchhw_CB->setChecked(false);
ui->patchhw_CB->hide();
ui->patchcalib_CB->hide();
}
QTimer::singleShot(0, this, SLOT(shrink()));
}
}
updateUI();
}
void burnDialog::checkFw(QString fileName)
{
if (fileName.isEmpty()) {
return;
}
if (!IS_TARANIS(GetEepromInterface()->getBoard())) {
ui->EEbackupCB->show();
}
else {
ui->EEbackupCB->setChecked(false);
*backup=false;
}
ui->FWFileName->setText(fileName);
FlashInterface flash(fileName);
if (flash.isValid()) {
ui->FramFWInfo->show();
ui->DateField->setText(flash.getDate() + " " + flash.getTime());
ui->versionField->setText(flash.getVersion());
ui->ModField->setText(flash.getEEpromId());
ui->SplashFrame->hide();
if (flash.hasSplash()) {
ui->SplashFrame->show();
ui->imageLabel->setFixedSize(flash.getSplashWidth(), flash.getSplashHeight());
}
}
else {
QMessageBox::warning(this, tr("Warning"), tr("%1 may not be a valid firmware file").arg(fileName));
}
ui->BurnFlashButton->setEnabled(true);
QTimer::singleShot(0, this, SLOT(shrink()));
g.flashDir( QFileInfo(fileName).dir().absolutePath() );
}
bool burnDialog::checkeEprom(QString fileName)
{
if (fileName.isEmpty()) {
return false;
}
QFile file(fileName);
if (!file.exists()) {
QMessageBox::critical(this, tr("Error"), tr("Unable to find file %1!").arg(fileName));
return false;
}
burnraw=false;
int fileType = getFileType(fileName);
#if 0
if (fileType==FILE_TYPE_XML) {
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { //reading HEX TEXT file
QMessageBox::critical(this, tr("Error"),tr("Error opening file %1:\n%2.").arg(fileName).arg(file.errorString()));
return false;
}
QTextStream inputStream(&file);
XmlInterface(inputStream).load(radioData);
}
else
#endif
if (fileType==FILE_TYPE_HEX || fileType==FILE_TYPE_EEPE) { //read HEX file
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { //reading HEX TEXT file
QMessageBox::critical(this, tr("Error"),tr("Error opening file %1:\n%2.").arg(fileName).arg(file.errorString()));
return false;
}
QDomDocument doc(ER9X_EEPROM_FILE_TYPE);
bool xmlOK = doc.setContent(&file);
if(xmlOK) {
if (!LoadEepromXml(radioData, doc)){
return false;
}
}
file.reset();
QTextStream inputStream(&file);
if (fileType==FILE_TYPE_EEPE) { // read EEPE file header
QString hline = inputStream.readLine();
if (hline!=EEPE_EEPROM_FILE_HEADER) {
file.close();
return false;
}
}
uint8_t eeprom[EESIZE_RLC_MAX];
int eeprom_size = HexInterface(inputStream).load(eeprom, EESIZE_RLC_MAX);
if (!eeprom_size) {
int res = QMessageBox::question(this, "Companion",tr("Invalid binary Models and Settings File %1, Proceed anyway ?").arg(fileName),QMessageBox::Yes | QMessageBox::No);
if (res == QMessageBox::No) {
return false;
}
burnraw=true;
ui->FWFileName->setText(fileName);
return true;
}
file.close();
if (!LoadEeprom(radioData, eeprom, eeprom_size)) {
int res = QMessageBox::question(this, "Companion",tr("Invalid binary Models and Settings File %1, Proceed anyway ?").arg(fileName),QMessageBox::Yes | QMessageBox::No);
if (res == QMessageBox::No) {
return false;
}
burnraw=true;
ui->FWFileName->setText(fileName);
return true;
}
}
else if (fileType==FILE_TYPE_BIN) { //read binary
int eeprom_size = file.size();
if (!file.open(QFile::ReadOnly)) { //reading binary file - TODO HEX support
QMessageBox::critical(this, tr("Error"),tr("Error opening file %1:\n%2.").arg(fileName).arg(file.errorString()));
return false;
}
uint8_t *eeprom = (uint8_t *)malloc(eeprom_size);
memset(eeprom, 0, eeprom_size);
long result = file.read((char*)eeprom, eeprom_size);
file.close();
if (result != eeprom_size) {
QMessageBox::critical(this, tr("Error"),tr("Error reading file %1:\n%2.").arg(fileName).arg(file.errorString()));
return false;
}
if (!LoadEeprom(radioData, eeprom, eeprom_size)) {
int res = QMessageBox::question(this, "Companion",tr("Invalid binary Models and Settings File %1, Proceed anyway ?").arg(fileName),QMessageBox::Yes | QMessageBox::No);
if (res == QMessageBox::No) {
return false;
}
burnraw=true;
}
}
ui->FWFileName->setText(fileName);
return true;
}
void burnDialog::displaySplash()
{
QImage image;
if (imageSource == FIRMWARE){
FlashInterface flash(ui->FWFileName->text());
image = flash.getSplash();
}
else {
image.load(imageFile);
}
if (image.isNull()) {
return;
}
ui->imageLabel->setPixmap( makePixMap( image, g.profile[g.id()].fwType()));
}
void burnDialog::updateUI()
{
if (hexType==EEPROM_FILE_TYPE)
return;
ui->useProfileImageCB->setChecked( imageSource == PROFILE );
ui->useFwImageCB->setChecked( imageSource == FIRMWARE );
ui->useLibraryImageCB->setChecked( imageSource == LIBRARY );
ui->useAnotherImageCB->setChecked( imageSource == ANOTHER );
displaySplash();
}
void burnDialog::on_useFwImageCB_clicked()
{
QString fileName = ui->FWFileName->text();
FlashInterface flash(fileName);
if (!flash.isValid()) {
QMessageBox::critical(this, tr("Error"), tr( "The firmware file is not valid." ));
}
else {
if (!flash.hasSplash()) {
QMessageBox::critical(this, tr("Error"), tr( "There is no start screen image in the firmware file." ));
}
else{
imageSource = FIRMWARE;
imageFile = fileName;
}
}
updateUI();
}
void burnDialog::on_useProfileImageCB_clicked()
{
QString fileName = g.profile[g.id()].splashFile();
if (!fileName.isEmpty()){
QImage image(fileName);
if (image.isNull()) {
QMessageBox::critical(this, tr("Error"), tr("Profile image %1 is invalid.").arg(fileName));
}
else {
imageSource = PROFILE;
imageFile = fileName;
}
}
updateUI();
}
void burnDialog::on_useAnotherImageCB_clicked()
{
QString supportedImageFormats;
for (int formatIndex = 0; formatIndex < QImageReader::supportedImageFormats().count(); formatIndex++) {
supportedImageFormats += QLatin1String(" *.") + QImageReader::supportedImageFormats()[formatIndex];
}
QString fileName = QFileDialog::getOpenFileName(this, tr("Open image file to use as radio start screen"), g.imagesDir(), tr("Images (%1)").arg(supportedImageFormats));
if (!fileName.isEmpty()){
g.imagesDir( QFileInfo(fileName).dir().absolutePath() );
QImage image(fileName);
if (image.isNull()) {
QMessageBox::critical(this, tr("Error"), tr("Image could not be loaded from %1").arg(fileName));
}
else{
imageSource = ANOTHER;
imageFile = fileName;
}
}
updateUI();
}
void burnDialog::on_useLibraryImageCB_clicked()
{
QString fileName;
splashLibrary *ld = new splashLibrary(this,&fileName);
ld->exec();
if (!fileName.isEmpty()) {
QImage image(fileName);
if (image.isNull()) {
QMessageBox::critical(this, tr("Error"), tr("The library image could not be loaded"));
}
else{
imageSource = LIBRARY;
imageFile = fileName;
}
}
updateUI();
}
void burnDialog::on_BurnFlashButton_clicked()
{
if (hexType==FLASH_FILE_TYPE) {
QString fileName=ui->FWFileName->text();
if (!fileName.isEmpty()) {
g.flashDir( QFileInfo(fileName).dir().absolutePath() );
if (!ui->useFwImageCB->isChecked()) {
const QPixmap * pixmap = ui->imageLabel->pixmap();
QImage image;
if (pixmap) {
image = pixmap->toImage().scaled(ui->imageLabel->width(), ui->imageLabel->height());
}
if (!image.isNull()) {
QString tempDir = QDir::tempPath();
QString tempFile;
if (getFileType(fileName) == FILE_TYPE_HEX)
tempFile = tempDir + "/flash.hex";
else
tempFile = tempDir + "/flash.bin";
FlashInterface flash(fileName);
flash.setSplash(image);
if (flash.saveFlash(tempFile) > 0) {
hexfileName->clear();
hexfileName->append(tempFile);
}
else {
hexfileName->clear();
QMessageBox::critical(this, tr("Warning"), tr("Cannot save customized firmware"));
}
}
else {
hexfileName->clear();
QMessageBox::critical(this, tr("Warning"), tr("Custom image not found"));
}
}
else {
hexfileName->clear();
hexfileName->append(fileName);
}
}
else {
QMessageBox::critical(this, tr("Warning"), tr("No firmware selected"));
hexfileName->clear();
}
}
if (hexType==EEPROM_FILE_TYPE) {
QString calib = g.profile[g.id()].stickPotCalib();
QString trainercalib = g.profile[g.id()].trainerCalib();
int potsnum=GetCurrentFirmware()->getCapability(Pots);
int8_t vBatCalib=(int8_t) g.profile[g.id()].vBatCalib();
int8_t currentCalib=(int8_t) g.profile[g.id()].currentCalib();
int8_t PPM_Multiplier=(int8_t) g.profile[g.id()].ppmMultiplier();
uint8_t GSStickMode=(uint8_t) g.profile[g.id()].gsStickMode();
uint8_t vBatWarn=(uint8_t) g.profile[g.id()].vBatWarn();
QString DisplaySet= g.profile[g.id()].display();
QString BeeperSet= g.profile[g.id()].beeper();
QString HapticSet= g.profile[g.id()].haptic();
QString SpeakerSet= g.profile[g.id()].speaker();
bool patch=false;
if (ui->patchcalib_CB->isChecked()) {
if ((calib.length()==(NUM_STICKS+potsnum)*12) && (trainercalib.length()==16)) {
QString Byte;
int16_t byte16;
bool ok;
for (int i=0; i<(NUM_STICKS+potsnum); i++) {
Byte=calib.mid(i*12,4);
byte16=(int16_t)Byte.toInt(&ok,16);
if (ok)
radioData.generalSettings.calibMid[i]=byte16;
Byte=calib.mid(4+i*12,4);
byte16=(int16_t)Byte.toInt(&ok,16);
if (ok)
radioData.generalSettings.calibSpanNeg[i]=byte16;
Byte=calib.mid(8+i*12,4);
byte16=(int16_t)Byte.toInt(&ok,16);
if (ok)
radioData.generalSettings.calibSpanPos[i]=byte16;
}
for (int i=0; i<4; i++) {
Byte=trainercalib.mid(i*4,4);
byte16=(int16_t)Byte.toInt(&ok,16);
if (ok)
radioData.generalSettings.trainer.calib[i]=byte16;
}
radioData.generalSettings.currentCalib=currentCalib;
radioData.generalSettings.vBatCalib=vBatCalib;
radioData.generalSettings.PPM_Multiplier=PPM_Multiplier;
patch=true;
}
else {
QMessageBox::critical(this, tr("Warning"), tr("Wrong radio calibration data in profile, Settings not patched"));
}
}
if (ui->patchhw_CB->isChecked()) {
if ((DisplaySet.length()==6) && (BeeperSet.length()==4) && (HapticSet.length()==6) && (SpeakerSet.length()==6)) {
radioData.generalSettings.vBatWarn=vBatWarn;
radioData.generalSettings.stickMode=GSStickMode;
uint8_t byte8u;
int8_t byte8;
bool ok;
byte8=(int8_t)DisplaySet.mid(0,2).toInt(&ok,16);
if (ok)
radioData.generalSettings.optrexDisplay=(byte8==1 ? true : false);
byte8u=(uint8_t)DisplaySet.mid(2,2).toUInt(&ok,16);
if (ok)
radioData.generalSettings.contrast=byte8u;
byte8u=(uint8_t)DisplaySet.mid(4,2).toUInt(&ok,16);
if (ok)
radioData.generalSettings.backlightBright=byte8u;
byte8u=(uint8_t)BeeperSet.mid(0,2).toUInt(&ok,16);
if (ok)
radioData.generalSettings.beeperMode=(BeeperMode)byte8u;
byte8=(int8_t)BeeperSet.mid(2,2).toInt(&ok,16);
if (ok)
radioData.generalSettings.beeperLength=byte8;
byte8u=(uint8_t)HapticSet.mid(0,2).toUInt(&ok,16);
if (ok)
radioData.generalSettings.hapticMode=(BeeperMode)byte8u;
byte8u=(uint8_t)HapticSet.mid(2,2).toUInt(&ok,16);
if (ok)
radioData.generalSettings.hapticStrength=byte8u;
byte8=(int8_t)HapticSet.mid(4,2).toInt(&ok,16);
if (ok)
radioData.generalSettings.hapticLength=byte8;
byte8u=(uint8_t)SpeakerSet.mid(0,2).toUInt(&ok,16);
if (ok)
radioData.generalSettings.speakerMode=byte8u;
byte8u=(uint8_t)SpeakerSet.mid(2,2).toUInt(&ok,16);
if (ok)
radioData.generalSettings.speakerPitch=byte8u;
byte8u=(uint8_t)SpeakerSet.mid(4,2).toUInt(&ok,16);
if (ok)
radioData.generalSettings.speakerVolume=byte8u;
patch=true;
}
else {
QMessageBox::critical(this, tr("Warning"), tr("Wrong radio setting data in profile, Settings not patched"));
}
if (patch) {
QString tempDir = QDir::tempPath();
QString fileName = tempDir + "/temp.bin";
QFile file(fileName);
uint8_t *eeprom = (uint8_t*)malloc(GetEepromInterface()->getEEpromSize());
int eeprom_size = GetEepromInterface()->save(eeprom, radioData, GetCurrentFirmware()->getVariantNumber());
if (!eeprom_size) {
QMessageBox::warning(this, tr("Error"),tr("Cannot write file %1:\n%2.").arg(fileName).arg(file.errorString()));
hexfileName->clear();
}
if (!file.open(QIODevice::WriteOnly)) {
QMessageBox::warning(this, tr("Error"),tr("Cannot write file %1:\n%2.").arg(fileName).arg(file.errorString()));
hexfileName->clear();
}
QTextStream outputStream(&file);
long result = file.write((char*)eeprom, eeprom_size);
if (result != eeprom_size) {
QMessageBox::warning(this, tr("Error"),tr("Error writing file %1:\n%2.").arg(fileName).arg(file.errorString()));
}
hexfileName->clear();
hexfileName->append(fileName);
}
else {
hexfileName->clear();
hexfileName->append(ui->FWFileName->text());
}
}
else {
hexfileName->clear();
hexfileName->append(ui->FWFileName->text());
}
}
this->close();
}
void burnDialog::on_cancelButton_clicked()
{
hexfileName->clear();
this->close();
}
void burnDialog::on_EEpromCB_toggled(bool checked)
{
*backup = ui->EEpromCB->isChecked();
}
void burnDialog::shrink()
{
resize(0,0);
}
void burnDialog::on_EEbackupCB_clicked()
{
*backup = ui->EEbackupCB->isChecked();
}
-66
View File
@@ -1,66 +0,0 @@
#ifndef BURNDIALOG_H
#define BURNDIALOG_H
#include <QtGui>
#include <QDialog>
#include "eeprominterface.h"
#include "flashinterface.h"
#include "xmlinterface.h"
#define HEX_FILES_FILTER "HEX files (*.hex);;"
#define BIN_FILES_FILTER "BIN files (*.bin);;"
#define EEPE_FILES_FILTER "EEPE EEPROM files (*.eepe);;"
#define EEPROM_FILES_FILTER "EEPE files (*.eepe *.bin *.hex);;" EEPE_FILES_FILTER BIN_FILES_FILTER HEX_FILES_FILTER
#define FLASH_FILES_FILTER "FLASH files (*.bin *.hex);;" BIN_FILES_FILTER HEX_FILES_FILTER
#define EXTERNAL_EEPROM_FILES_FILTER "EEPROM files (*.bin *.hex);;" BIN_FILES_FILTER HEX_FILES_FILTER
#define ER9X_EEPROM_FILE_TYPE "ER9X_EEPROM_FILE"
#define EEPE_EEPROM_FILE_HEADER "EEPE EEPROM FILE"
#define EEPE_MODEL_FILE_HEADER "EEPE MODEL FILE"
#define EEPROM_FILE_TYPE 1
#define FLASH_FILE_TYPE 2
namespace Ui
{
class burnDialog;
}
class burnDialog : public QDialog
{
Q_OBJECT
public:
explicit burnDialog(QWidget *parent = 0, int Type = 2, QString * fileName = NULL, bool * backupEE=NULL, QString docname="");
~burnDialog();
private slots:
void on_FlashLoadButton_clicked();
void on_BurnFlashButton_clicked();
void on_cancelButton_clicked();
void on_EEbackupCB_clicked();
void on_EEpromCB_toggled(bool checked);
bool checkeEprom(QString fileName);
void on_useProfileImageCB_clicked();
void on_useFwImageCB_clicked();
void on_useLibraryImageCB_clicked();
void on_useAnotherImageCB_clicked();
void checkFw(QString fileName);
void displaySplash();
void updateUI();
void shrink();
private:
Ui::burnDialog *ui;
QString * hexfileName;
bool * backup;
int hexType;
RadioData radioData;
bool burnraw;
enum ImageSource {FIRMWARE, PROFILE, LIBRARY, ANOTHER};
ImageSource imageSource;
QString imageFile;
};
#endif // BURNDIALOG_H
-379
View File
@@ -1,379 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>burnDialog</class>
<widget class="QDialog" name="burnDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>399</width>
<height>564</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="windowTitle">
<string>Customize Splash</string>
</property>
<property name="windowIcon">
<iconset resource="companion.qrc">
<normaloff>:/icon.png</normaloff>:/icon.png</iconset>
</property>
<layout class="QGridLayout" name="gridLayout_7">
<item row="2" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<spacer name="hs2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="cancelButton">
<property name="minimumSize">
<size>
<width>90</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Cancel</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="BurnFlashButton">
<property name="enabled">
<bool>false</bool>
</property>
<property name="minimumSize">
<size>
<width>90</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Write to TX</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="0" column="0">
<layout class="QGridLayout" name="gridLayout_4">
<item row="5" column="0">
<widget class="QCheckBox" name="patchcalib_CB">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Modify calibration parameters using settings from current profile&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Patch calibration setting from profile</string>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QCheckBox" name="patchhw_CB">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Modify HW parameters using settings from current profile&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Patch HW setting from profile</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QFrame" name="FramFWInfo">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QGridLayout" name="gridLayout_5">
<item row="3" column="0">
<widget class="QLabel" name="dateLabel">
<property name="text">
<string>Date &amp; Time</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="versionField">
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="buildLabel">
<property name="text">
<string>Variant</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="ModField">
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="versionLabel">
<property name="text">
<string>Version</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLineEdit" name="DateField">
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="0" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLineEdit" name="FWFileName">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>250</width>
<height>0</height>
</size>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="FlashLoadButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Browse for file</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="7" column="0">
<widget class="QCheckBox" name="EEpromCB">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="toolTip">
<string>Allows Companion to write to older version of the firmware</string>
</property>
<property name="text">
<string>Check Firmware compatibility</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QCheckBox" name="EEbackupCB">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>Backup and restore Models and Settings</string>
</property>
<property name="tristate">
<bool>false</bool>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="profile_label">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Current Profile</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QFrame" name="SplashFrame">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<layout class="QGridLayout" name="SplashLayout" rowstretch="0,0,0,0,0,0,0">
<item row="0" column="1" rowspan="7">
<layout class="QGridLayout" name="gridLayout_2" rowstretch="0">
<item row="0" column="0">
<widget class="QLabel" name="imageLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>128</width>
<height>64</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>214</width>
<height>66</height>
</size>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="lineWidth">
<number>0</number>
</property>
<property name="text">
<string/>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</item>
<item row="2" column="0">
<widget class="QCheckBox" name="useFwImageCB">
<property name="text">
<string>Use firmware start screen</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QCheckBox" name="useAnotherImageCB">
<property name="text">
<string>Use another start screen</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QCheckBox" name="useProfileImageCB">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Use profile start screen</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QCheckBox" name="useLibraryImageCB">
<property name="text">
<string>Use library start screen</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
</layout>
</item>
<item row="1" column="0">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<tabstops>
<tabstop>BurnFlashButton</tabstop>
<tabstop>FWFileName</tabstop>
<tabstop>FlashLoadButton</tabstop>
<tabstop>versionField</tabstop>
<tabstop>ModField</tabstop>
<tabstop>useProfileImageCB</tabstop>
<tabstop>useFwImageCB</tabstop>
<tabstop>useLibraryImageCB</tabstop>
<tabstop>useAnotherImageCB</tabstop>
<tabstop>EEbackupCB</tabstop>
<tabstop>patchcalib_CB</tabstop>
<tabstop>patchhw_CB</tabstop>
<tabstop>EEpromCB</tabstop>
<tabstop>cancelButton</tabstop>
</tabstops>
<resources>
<include location="companion.qrc"/>
</resources>
<connections/>
</ui>
-165
View File
@@ -1,165 +0,0 @@
# - Locate the SDL library
# This module defines
# SDL_LIBRARY, the library to link against
# SDL_FOUND, if false, do not try to link to SDL
# SDL_INCLUDE_DIR, where to find SDL.h
#
# Don't forget to include SDLmain.h and SDLmain.m your project for the
# OS X framework based version. (Other versions link to -lSDLmain which
# this module will try to find on your behalf.) Also for OS X, this
# module will automatically add the -framework Cocoa on your behalf.
# $SDLDIR is an environment variable that would
# correspond to the ./configure --prefix=$SDLDIR
# used in building SDL.
# l.e.galup 9-20-02
#
# Modified by Eric Wing.
# Added new modifications to recognize OS X frameworks and
# additional Unix paths (FreeBSD, etc).
# Also corrected the header search path to follow "proper" SDL guidelines.
# Added a search for SDLmain which is needed by some platforms.
# Added a search for threads which is needed by some platforms.
# Added needed compile switches for MinGW.
#
# On OSX, this will prefer the Framework version (if found) over others.
# People will have to manually change the cache values of
# SDL_LIBRARY to override this selection.
#
# Note that the header path has changed from SDL/SDL.h to just SDL.h
# This needed to change because "proper" SDL convention
# is #include "SDL.h", not <SDL/SDL.h>. This is done for portability
# reasons because not all systems place things in SDL/ (see FreeBSD).
FIND_PATH(SDL_INCLUDE_DIR SDL.h
$ENV{SDLDIR}/include
~/Library/Frameworks/SDL.framework/Headers
/Library/Frameworks/SDL.framework/Headers
/usr/local/include/SDL
/usr/include/SDL
/usr/local/include/SDL12
/usr/local/include/SDL11 # FreeBSD ports
/usr/include/SDL12
/usr/include/SDL11
/usr/local/include
/usr/include
/sw/include/SDL # Fink
/sw/include
/opt/local/include/SDL # DarwinPorts
/opt/local/include
/opt/csw/include/SDL # Blastwave
/opt/csw/include
/opt/include/SDL
/opt/include
C:/Programs/SDL/include
)
# I'm not sure if I should do a special casing for Apple. It is
# unlikely that other Unix systems will find the framework path.
# But if they do ([Next|Open|GNU]Step?),
# do they want the -framework option also?
IF(${SDL_INCLUDE_DIR} MATCHES ".framework")
# The Cocoa framework must be linked into SDL because SDL is Cocoa based.
# Remember that the OS X framework version expects you to drop in
# SDLmain.h and SDLmain.m directly into your project.
# (Cocoa link moved to bottom of this script.)
# SET (SDL_LIBRARY "-framework SDL -framework Cocoa" CACHE STRING "SDL framework for OSX")
# SET(SDL_LIBRARY "-framework SDL" CACHE STRING "SDL framework for OSX")
# Extract the path the framework resides in so we can use it for the -F flag
STRING(REGEX REPLACE "(.*)/.*\\.framework/.*" "\\1" SDL_FRAMEWORK_PATH_TEMP ${SDL_INCLUDE_DIR})
IF("${SDL_FRAMEWORK_PATH_TEMP}" STREQUAL "/Library/Frameworks"
OR "${SDL_FRAMEWORK_PATH_TEMP}" STREQUAL "/System/Library/Frameworks"
)
# String is in default search path, don't need to use -F
SET(SDL_LIBRARY_TEMP "-framework SDL")
ELSE("${SDL_FRAMEWORK_PATH_TEMP}" STREQUAL "/Library/Frameworks"
OR "${SDL_FRAMEWORK_PATH_TEMP}" STREQUAL "/System/Library/Frameworks"
)
# String is not /Library/Frameworks, need to use -F
SET(SDL_LIBRARY_TEMP "-F${SDL_FRAMEWORK_PATH_TEMP} -framework SDL")
ENDIF("${SDL_FRAMEWORK_PATH_TEMP}" STREQUAL "/Library/Frameworks"
OR "${SDL_FRAMEWORK_PATH_TEMP}" STREQUAL "/System/Library/Frameworks"
)
# Clear the temp variable so nobody can see it
SET(SDL_FRAMEWORK_PATH_TEMP "" CACHE INTERNAL "")
ELSE(${SDL_INCLUDE_DIR} MATCHES ".framework")
# SDL-1.1 is the name used by FreeBSD ports...
# don't confuse it for the version number.
FIND_LIBRARY(SDL_LIBRARY_TEMP
NAMES SDL SDL-1.1
PATHS
$ENV{SDLDIR}/lib
/usr/local/lib
/usr/lib
/sw/lib
/opt/local/lib
/opt/csw/lib
/opt/lib
C:/Programs/SDL/lib
)
# Non-OS X framework versions expect you to also dynamically link to
# SDLmain. This is mainly for Windows and OS X. Other platforms
# seem to provide SDLmain for compatibility even though they don't
# necessarily need it.
FIND_LIBRARY(SDLMAIN_LIBRARY
NAMES SDLmain SDLmain-1.1
PATHS
$ENV{SDLDIR}/lib
/usr/local/lib
/usr/lib
/sw/lib
/opt/local/lib
/opt/csw/lib
/opt/lib
C:/Programs/SDL/lib
)
ENDIF(${SDL_INCLUDE_DIR} MATCHES ".framework")
# SDL may require threads on your system.
# The Apple build may not need an explicit flag because one of the
# frameworks may already provide it.
# But for non-OSX systems, I will use the CMake Threads package.
IF(NOT APPLE)
FIND_PACKAGE(Threads)
ENDIF(NOT APPLE)
# MinGW needs an additional library, mwindows
# It's total link flags should look like -lmingw32 -lSDLmain -lSDL -lmwindows
# (Actually on second look, I think it only needs one of the m* libraries.)
IF(MINGW)
SET(MINGW32_LIBRARY mingw32 CACHE STRING "mwindows for MinGW")
ENDIF(MINGW)
SET(SDL_FOUND "NO")
IF(SDL_LIBRARY_TEMP)
# For SDLmain
IF(SDLMAIN_LIBRARY)
SET(SDL_LIBRARY_TEMP ${SDLMAIN_LIBRARY} ${SDL_LIBRARY_TEMP})
ENDIF(SDLMAIN_LIBRARY)
# For OS X, SDL uses Cocoa as a backend so it must link to Cocoa.
# CMake doesn't display the -framework Cocoa string in the UI even
# though it actually is there. I think it has something to do
# with the CACHE STRING. Maybe somebody else knows how to fix this.
# The problem is mainly cosmetic, and not a functional issue.
IF(APPLE)
SET(SDL_LIBRARY_TEMP ${SDL_LIBRARY_TEMP} "-framework Cocoa")
ENDIF(APPLE)
# For threads, as mentioned Apple doesn't need this.
# In fact, there seems to be a problem if Find the threads package
# and try using this line, so I'm just skipping it entirely for OS X.
IF(NOT APPLE)
SET(SDL_LIBRARY_TEMP ${SDL_LIBRARY_TEMP} ${CMAKE_THREAD_LIBS_INIT})
ENDIF(NOT APPLE)
# For MinGW library
IF(MINGW)
SET(SDL_LIBRARY_TEMP ${MINGW32_LIBRARY} ${SDL_LIBRARY_TEMP})
ENDIF(MINGW)
# Set the final string here so the GUI reflects the final state.
SET(SDL_LIBRARY ${SDL_LIBRARY_TEMP} CACHE STRING "Where the SDL Library can be found")
SET(SDL_FOUND "YES")
ENDIF(SDL_LIBRARY_TEMP)
MARK_AS_ADVANCED(SDL_LIBRARY_TEMP)
+173 -137
View File
@@ -1,137 +1,173 @@
/****************************************************************************
**
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the examples of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial Usage
** Licensees holding valid Qt Commercial licenses may use this file in
** accordance with the Qt Commercial License Agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and Nokia.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 2.1 requirements
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
** If you have questions regarding the use of this file, please contact
** Nokia at qt-info@nokia.com.
** $QT_END_LICENSE$
**
****************************************************************************/
#include <QApplication>
#include <QTranslator>
#include <QLocale>
#include <QString>
#include <QDir>
#include <QFileInfo>
#include <QSplashScreen>
#include <QThread>
#include <iostream>
#include "mainwindow.h"
#include "eeprominterface.h"
#include "appdata.h"
#if defined WIN32 || !defined __GNUC__
#include <windows.h>
#define sleep(x) Sleep(x*1000)
#else
#include <unistd.h>
#endif
#ifdef __APPLE__
#include <QProxyStyle>
class MyProxyStyle : public QProxyStyle
{
public:
void polish ( QWidget * w ) {
QMenu* mn = dynamic_cast<QMenu*>(w);
QPushButton* pb = dynamic_cast<QPushButton*>(w);
if(!(mn || pb) && !w->testAttribute(Qt::WA_MacNormalSize))
w->setAttribute(Qt::WA_MacSmallSize);
}
};
#endif
int main(int argc, char *argv[])
{
Q_INIT_RESOURCE(companion);
QApplication app(argc, argv);
app.setApplicationName("OpenTX Companion");
app.setOrganizationName("OpenTX");
app.setOrganizationDomain("open-tx.org");
app.setAttribute(Qt::AA_DontShowIconsInMenus, false);
#ifdef __APPLE__
app.setStyle(new MyProxyStyle);
#endif
QTranslator companionTranslator;
companionTranslator.load(":/companion_" + g.locale());
QTranslator qtTranslator;
qtTranslator.load((QString)"qt_" + g.locale().left(2), QLibraryInfo::location(QLibraryInfo::TranslationsPath));
app.installTranslator(&companionTranslator);
app.installTranslator(&qtTranslator);
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
if (g.profile[g.id()].fwType().isEmpty()){
g.profile[g.id()].fwType(default_firmware_variant->getId());
g.profile[g.id()].fwName("");
}
QString splashScreen;
if ( g.profile[g.id()].fwType().contains("taranis")) splashScreen = ":/images/splasht.png";
else if ( g.profile[g.id()].fwType().contains("9xrpro")) splashScreen = ":/images/splashp.png";
else if ( g.profile[g.id()].fwType().contains("9xr")) splashScreen = ":/images/splashr.png";
else splashScreen = ":/images/splash.png";
QPixmap pixmap = QPixmap(splashScreen);
QSplashScreen *splash = new QSplashScreen(pixmap);
RegisterEepromInterfaces();
registerOpenTxFirmwares();
current_firmware_variant = GetFirmware(g.profile[g.id()].fwType());
MainWindow *mainWin = new MainWindow();
if (g.showSplash()) {
splash->show();
QTimer::singleShot(1000*SPLASH_TIME, splash, SLOT(close()));
QTimer::singleShot(1000*SPLASH_TIME, mainWin, SLOT(show()));
}
else {
mainWin->show();
}
int result = app.exec();
delete splash;
delete mainWin;
UnregisterFirmwares();
UnregisterEepromInterfaces();
return result;
}
/*
* Copyright (C) OpenTX
*
* Based on code named
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include <QApplication>
#include <QDateTime>
#include <QDir>
#include <QFile>
#include <QSplashScreen>
#if defined(JOYSTICKS) || defined(SIMU_AUDIO)
#include <SDL.h>
#undef main
#endif
#include "appdebugmessagehandler.h"
#include "customdebug.h"
#include "mainwindow.h"
#include "version.h"
#include "appdata.h"
#include "storage.h"
#include "translations.h"
#ifdef __APPLE__
#include <QProxyStyle>
class MyProxyStyle : public QProxyStyle
{
public:
void polish ( QWidget * w ) {
QMenu* mn = dynamic_cast<QMenu*>(w);
QPushButton* pb = dynamic_cast<QPushButton*>(w);
if(!(mn || pb) && !w->testAttribute(Qt::WA_MacNormalSize))
w->setAttribute(Qt::WA_MacSmallSize);
}
};
#endif
int main(int argc, char *argv[])
{
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
/* From doc: This attribute must be set before Q(Gui)Application is constructed. */
QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
#endif
QApplication app(argc, argv);
app.setApplicationName(APP_COMPANION);
app.setOrganizationName(COMPANY);
app.setOrganizationDomain(COMPANY_DOMAIN);
app.setAttribute(Qt::AA_DontShowIconsInMenus, false);
Q_INIT_RESOURCE(companion);
if (AppDebugMessageHandler::instance())
AppDebugMessageHandler::instance()->installAppMessageHandler();
CustomDebug::setFilterRules();
if (!g.hasCurrentSettings()) {
QString previousVersion;
if (g.findPreviousVersionSettings(&previousVersion)) {
QMessageBox msgBox;
msgBox.setText(QObject::tr("We have found existing settings for Companion version: %1.\nDo you want to import them?").arg(previousVersion));
msgBox.setIcon(QMessageBox::Information);
msgBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No);
msgBox.setDefaultButton(QMessageBox::Yes);
int ret = msgBox.exec();
if (ret == QMessageBox::Yes)
g.importSettings(previousVersion);
}
}
g.init();
QStringList strl = QApplication::arguments();
if (strl.contains("--version")) {
printf("%s\n", VERSION);
fflush(stdout);
exit(0);
}
QFile dbgLog;
if (AppDebugMessageHandler::instance() && g.appDebugLog() && !g.appLogsDir().isEmpty() && QDir().mkpath(g.appLogsDir())) {
QString fn = g.appLogsDir() % "/CompanionDebug_" % QDateTime::currentDateTime().toString("yy-MM-dd_HH-mm-ss") % ".log";
dbgLog.setFileName(fn);
if (dbgLog.open(QIODevice::WriteOnly | QIODevice::Text)) {
AppDebugMessageHandler::instance()->addOutputDevice(&dbgLog);
}
}
#ifdef __APPLE__
app.setStyle(new MyProxyStyle);
#endif
Translations::installTranslators();
#if defined(JOYSTICKS) || defined(SIMU_AUDIO)
uint32_t sdlFlags = 0;
#ifdef JOYSTICKS
sdlFlags |= SDL_INIT_JOYSTICK;
#endif
#ifdef SIMU_AUDIO
sdlFlags |= SDL_INIT_AUDIO;
#endif
if (SDL_Init(sdlFlags) < 0) {
fprintf(stderr, "ERROR: couldn't initialize SDL: %s\n", SDL_GetError());
}
#endif
registerStorageFactories();
registerOpenTxFirmwares();
SimulatorLoader::registerSimulators();
if (g.profile[g.id()].fwType().isEmpty()){
g.profile[g.id()].fwType(Firmware::getDefaultVariant()->getId());
g.profile[g.id()].fwName("");
}
QString splashScreen;
splashScreen = ":/images/splash.png";
QPixmap pixmap = QPixmap(splashScreen);
QSplashScreen *splash = new QSplashScreen(pixmap);
Firmware::setCurrentVariant(Firmware::getFirmwareForId(g.profile[g.id()].fwType()));
MainWindow *mainWin = new MainWindow();
if (g.showSplash()) {
splash->show();
QTimer::singleShot(1000*SPLASH_TIME, splash, SLOT(close()));
QTimer::singleShot(1000*SPLASH_TIME, mainWin, SLOT(show()));
}
else {
mainWin->show();
}
int result = app.exec();
delete splash;
delete mainWin;
SimulatorLoader::unregisterSimulators();
unregisterOpenTxFirmwares();
unregisterStorageFactories();
#if defined(JOYSTICKS) || defined(SIMU_AUDIO)
SDL_Quit();
#endif
qDebug() << "COMPANION EXIT" << result;
if (dbgLog.isOpen()) {
AppDebugMessageHandler::instance()->removeOutputDevice(&dbgLog);
dbgLog.close();
}
return result;
}
@@ -1,11 +1,11 @@
[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=Companion
Name=Companion @VERSION@
GenericName=Transmitter Companion App
Comment=The Ultimate Transmitter Companion
Icon=companion
Exec='companion'
Icon=@COMPANION_NAME@
Exec='@COMPANION_NAME@'
Terminal=false
StartupNotify=false
Categories=Application
+151 -51
View File
@@ -1,65 +1,141 @@
<RCC>
<!DOCTYPE RCC><RCC version="1.0">
<qresource prefix="/">
<file>images/customize.png</file>
<file>icon.png</file>
<file>../../CREDITS.txt</file>
<file>../../DONATIONS.txt</file>
<file>../releasenotes.txt</file>
<file>images/9xdb.png</file>
<file>images/9xdl.png</file>
<file>images/9xdr.png</file>
<file>images/9xdt.png</file>
<file>images/9xdb-bl.png</file>
<file>images/9xdl-bl.png</file>
<file>images/9xdr-bl.png</file>
<file>images/9xdt-bl.png</file>
<file>images/9xdb-gr.png</file>
<file>images/9xdl-gr.png</file>
<file>images/9xdr-gr.png</file>
<file>images/9xdt-gr.png</file>
<file>images/9xdb-or.png</file>
<file>images/9xdl-or.png</file>
<file>images/9xdr-or.png</file>
<file>images/9xdt-or.png</file>
<file>images/9xdb-yl.png</file>
<file>images/9xdl-yl.png</file>
<file>images/9xdr-yl.png</file>
<file>images/9xdt-yl.png</file>
<file>images/9xdb-rd.png</file>
<file>images/9xdl-rd.png</file>
<file>images/9xdr-rd.png</file>
<file>images/9xdt-rd.png</file>
<file>images/9xmenu.png</file>
<file>images/9xmenumenu.png</file>
<file>images/9xmenuexit.png</file>
<file>images/9xcurs.png</file>
<file>images/9xcursup.png</file>
<file>images/9xcursplus.png</file>
<file>images/9xcursmin.png</file>
<file>images/9xcursdown.png</file>
<file>images/9xcursphoto.png</file>
<file>images/screenshot.png</file>
<file>images/splash.png</file>
<file>images/splashp.png</file>
<file>images/splashr.png</file>
<file>images/splasht.png</file>
<file>images/companion-title.png</file>
<file>images/maps.png</file>
<file>images/track.png</file>
<file>images/track0.png</file>
<file>images/x9b0.png</file>
<file>images/x9l0.png</file>
<file>images/x9l1.png</file>
<file>images/x9l2.png</file>
<file>images/x9l3.png</file>
<file>images/x9l4.png</file>
<file>images/x9r0.png</file>
<file>images/x9r1.png</file>
<file>images/x9r2.png</file>
<file>images/x9r3.png</file>
<file>images/x9s0.png</file>
<file>images/x9t0.png</file>
<file>images/taranison.png</file>
<file>images/taranison.png</file>
<file>images/simulator/icons/svg/arrow_click.svg</file>
<file>images/simulator/icons/svg/camera.svg</file>
<file>images/simulator/icons/svg/camera-active.svg</file>
<file>images/simulator/icons/svg/console.svg</file>
<file>images/simulator/icons/svg/console-active.svg</file>
<file>images/simulator/icons/svg/eraser.svg</file>
<file>images/simulator/icons/svg/eraser-active.svg</file>
<file>images/simulator/icons/svg/fixed_x.svg</file>
<file>images/simulator/icons/svg/fixed_x-on.svg</file>
<file>images/simulator/icons/svg/fixed_y.svg</file>
<file>images/simulator/icons/svg/fixed_y-on.svg</file>
<file>images/simulator/icons/svg/folder_open.svg</file>
<file>images/simulator/icons/svg/hold_x.svg</file>
<file>images/simulator/icons/svg/hold_x-on.svg</file>
<file>images/simulator/icons/svg/hold_y.svg</file>
<file>images/simulator/icons/svg/hold_y-on.svg</file>
<file>images/simulator/icons/svg/info.svg</file>
<file>images/simulator/icons/svg/info-active.svg</file>
<file>images/simulator/icons/svg/joystick_settings.svg</file>
<file>images/simulator/icons/svg/joystick_settings-active.svg</file>
<file>images/simulator/icons/svg/line_horiz.svg</file>
<file>images/simulator/icons/svg/mouse.svg</file>
<file>images/simulator/icons/svg/toggle_lock.svg</file>
<file>images/simulator/icons/svg/toggle_lock-on.svg</file>
<file>images/simulator/icons/svg/radio_outputs.svg</file>
<file>images/simulator/icons/svg/radio_outputs-active.svg</file>
<file>images/simulator/icons/svg/reload_script.svg</file>
<file>images/simulator/icons/svg/reload_script-active.svg</file>
<file>images/simulator/icons/svg/restart.svg</file>
<file>images/simulator/icons/svg/restart-active.svg</file>
<file>images/simulator/icons/svg/telemetry.svg</file>
<file>images/simulator/icons/svg/telemetry-active.svg</file>
<file>images/simulator/icons/svg/trainer.svg</file>
<file>images/simulator/icons/svg/trainer-active.svg</file>
<file>images/simulator/icons/svg/word_wrap.svg</file>
<file>images/simulator/icons/svg/word_wrap-on.svg</file>
<file>images/simulator/X12/middle.png</file>
<file>images/simulator/X12/left.png</file>
<file>images/simulator/X12/right.png</file>
<file>images/simulator/X12/top.png</file>
<file>images/simulator/X12/bottom.png</file>
<file>images/simulator/X12/led.png</file>
<file>images/simulator/X12/border-right.png</file>
<file>images/simulator/X12/left_btn1.png</file>
<file>images/simulator/X12/left_btn2.png</file>
<file>images/simulator/X12/left_scrnsht.png</file>
<file>images/simulator/X12/right_btnU.png</file>
<file>images/simulator/X12/right_btnL.png</file>
<file>images/simulator/X12/right_btnD.png</file>
<file>images/simulator/X12/right_btnR.png</file>
<file>images/simulator/X12/right_ent.png</file>
<file>images/simulator/X10/left.png</file>
<file>images/simulator/X10/right.png</file>
<file>images/simulator/X10/top.png</file>
<file>images/simulator/X10/bottom.png</file>
<file>images/simulator/X10/left_mdl.png</file>
<file>images/simulator/X10/left_page.png</file>
<file>images/simulator/X10/left_scrnsht.png</file>
<file>images/simulator/X10/left_rtn.png</file>
<file>images/simulator/X10/left_sys.png</file>
<file>images/simulator/X10/left_tele.png</file>
<file>images/simulator/X10/right_ent.png</file>
<file>images/simulator/9X/9xdb.png</file>
<file>images/simulator/9X/9xdl.png</file>
<file>images/simulator/9X/9xdr.png</file>
<file>images/simulator/9X/9xdt.png</file>
<file>images/simulator/9X/9xdb-bl.png</file>
<file>images/simulator/9X/9xdl-bl.png</file>
<file>images/simulator/9X/9xdr-bl.png</file>
<file>images/simulator/9X/9xdt-bl.png</file>
<file>images/simulator/9X/9xdb-gr.png</file>
<file>images/simulator/9X/9xdl-gr.png</file>
<file>images/simulator/9X/9xdr-gr.png</file>
<file>images/simulator/9X/9xdt-gr.png</file>
<file>images/simulator/9X/9xdb-or.png</file>
<file>images/simulator/9X/9xdl-or.png</file>
<file>images/simulator/9X/9xdr-or.png</file>
<file>images/simulator/9X/9xdt-or.png</file>
<file>images/simulator/9X/9xdb-yl.png</file>
<file>images/simulator/9X/9xdl-yl.png</file>
<file>images/simulator/9X/9xdr-yl.png</file>
<file>images/simulator/9X/9xdt-yl.png</file>
<file>images/simulator/9X/9xdb-rd.png</file>
<file>images/simulator/9X/9xdl-rd.png</file>
<file>images/simulator/9X/9xdr-rd.png</file>
<file>images/simulator/9X/9xdt-rd.png</file>
<file>images/simulator/9X/9xmenu.png</file>
<file>images/simulator/9X/9xmenumenu.png</file>
<file>images/simulator/9X/9xmenuexit.png</file>
<file>images/simulator/9X/9xcurs.png</file>
<file>images/simulator/9X/9xcursup.png</file>
<file>images/simulator/9X/9xcursplus.png</file>
<file>images/simulator/9X/9xcursmin.png</file>
<file>images/simulator/9X/9xcursdown.png</file>
<file>images/simulator/9X/9xcursphoto.png</file>
<file>images/simulator/Taranis/x9b0.png</file>
<file>images/simulator/Taranis/x9l0.png</file>
<file>images/simulator/Taranis/x9l1.png</file>
<file>images/simulator/Taranis/x9l2.png</file>
<file>images/simulator/Taranis/x9l3.png</file>
<file>images/simulator/Taranis/x9l4.png</file>
<file>images/simulator/Taranis/x9r0.png</file>
<file>images/simulator/Taranis/x9r1.png</file>
<file>images/simulator/Taranis/x9r2.png</file>
<file>images/simulator/Taranis/x9r3.png</file>
<file>images/simulator/Taranis/x9s0.png</file>
<file>images/simulator/Taranis/x9t0.png</file>
<file>images/simulator/X7/bottom.png</file>
<file>images/simulator/X7/left.png</file>
<file>images/simulator/X7/left_exit.png</file>
<file>images/simulator/X7/left_menu.png</file>
<file>images/simulator/X7/left_page.png</file>
<file>images/simulator/X7/left_scrnshot.png</file>
<file>images/simulator/X7/right.png</file>
<file>images/simulator/X7/right_ent.png</file>
<file>images/simulator/X7/top.png</file>
<file>images/simulator/X9E/bottom.png</file>
<file>images/simulator/X9E/left.png</file>
<file>images/simulator/X9E/left_exit.png</file>
<file>images/simulator/X9E/left_menu.png</file>
<file>images/simulator/X9E/left_page.png</file>
<file>images/simulator/X9E/left_scrnshot.png</file>
<file>images/simulator/X9E/right.png</file>
<file>images/simulator/X9E/right_enter.png</file>
<file>images/simulator/X9E/top.png</file>
<file>images/wizard/ailerons.png</file>
<file>images/wizard/airbrakes.png</file>
<file>images/wizard/elevons.png</file>
@@ -100,6 +176,8 @@
<file>images/library/00018.png</file>
<file>images/library/00019.png</file>
<file>images/library/00020.png</file>
<file>images/library/00021.png</file>
<file>images/library/00022.png</file>
<file>images/library/00050.png</file>
<file>images/library/00051.png</file>
<file>images/library/00052.png</file>
@@ -155,6 +233,8 @@
<file>images/library/10702.png</file>
<file>images/library/10801.png</file>
<file>images/library/10802.png</file>
<file>themes/default/style.css</file>
<file>themes/default/style-osx.css</file>
<file>themes/monochrome/16/paintbrush.png</file>
<file>themes/monochrome/16/open.png</file>
<file>themes/monochrome/16/edit.png</file>
@@ -198,6 +278,7 @@
<file>themes/monochrome/16/contributors.png</file>
<file>themes/monochrome/16/stop.png</file>
<file>themes/monochrome/16/write_eeprom.png</file>
<file>themes/monochrome/16/sdsync.png</file>
<file>themes/monochrome/24/paintbrush.png</file>
<file>themes/monochrome/24/open.png</file>
<file>themes/monochrome/24/edit.png</file>
@@ -241,6 +322,7 @@
<file>themes/monochrome/24/contributors.png</file>
<file>themes/monochrome/24/stop.png</file>
<file>themes/monochrome/24/write_eeprom.png</file>
<file>themes/monochrome/24/sdsync.png</file>
<file>themes/monochrome/32/paintbrush.png</file>
<file>themes/monochrome/32/open.png</file>
<file>themes/monochrome/32/edit.png</file>
@@ -284,6 +366,7 @@
<file>themes/monochrome/32/contributors.png</file>
<file>themes/monochrome/32/stop.png</file>
<file>themes/monochrome/32/write_eeprom.png</file>
<file>themes/monochrome/32/sdsync.png</file>
<file>themes/monochrome/48/paintbrush.png</file>
<file>themes/monochrome/48/open.png</file>
<file>themes/monochrome/48/edit.png</file>
@@ -327,6 +410,7 @@
<file>themes/monochrome/48/contributors.png</file>
<file>themes/monochrome/48/stop.png</file>
<file>themes/monochrome/48/write_eeprom.png</file>
<file>themes/monochrome/48/sdsync.png</file>
<file>themes/classic/16/paintbrush.png</file>
<file>themes/classic/16/open.png</file>
<file>themes/classic/16/edit.png</file>
@@ -370,6 +454,7 @@
<file>themes/classic/16/contributors.png</file>
<file>themes/classic/16/stop.png</file>
<file>themes/classic/16/write_eeprom.png</file>
<file>themes/classic/16/sdsync.png</file>
<file>themes/classic/24/paintbrush.png</file>
<file>themes/classic/24/open.png</file>
<file>themes/classic/24/edit.png</file>
@@ -413,6 +498,7 @@
<file>themes/classic/24/contributors.png</file>
<file>themes/classic/24/stop.png</file>
<file>themes/classic/24/write_eeprom.png</file>
<file>themes/classic/24/sdsync.png</file>
<file>themes/classic/32/paintbrush.png</file>
<file>themes/classic/32/open.png</file>
<file>themes/classic/32/edit.png</file>
@@ -456,6 +542,7 @@
<file>themes/classic/32/contributors.png</file>
<file>themes/classic/32/stop.png</file>
<file>themes/classic/32/write_eeprom.png</file>
<file>themes/classic/32/sdsync.png</file>
<file>themes/classic/48/paintbrush.png</file>
<file>themes/classic/48/open.png</file>
<file>themes/classic/48/edit.png</file>
@@ -499,6 +586,7 @@
<file>themes/classic/48/contributors.png</file>
<file>themes/classic/48/stop.png</file>
<file>themes/classic/48/write_eeprom.png</file>
<file>themes/classic/48/sdsync.png</file>
<file>themes/monoblue/16/paintbrush.png</file>
<file>themes/monoblue/16/open.png</file>
<file>themes/monoblue/16/edit.png</file>
@@ -542,6 +630,7 @@
<file>themes/monoblue/16/contributors.png</file>
<file>themes/monoblue/16/stop.png</file>
<file>themes/monoblue/16/write_eeprom.png</file>
<file>themes/monoblue/16/sdsync.png</file>
<file>themes/monoblue/24/paintbrush.png</file>
<file>themes/monoblue/24/open.png</file>
<file>themes/monoblue/24/edit.png</file>
@@ -585,6 +674,7 @@
<file>themes/monoblue/24/contributors.png</file>
<file>themes/monoblue/24/stop.png</file>
<file>themes/monoblue/24/write_eeprom.png</file>
<file>themes/monoblue/24/sdsync.png</file>
<file>themes/monoblue/32/paintbrush.png</file>
<file>themes/monoblue/32/open.png</file>
<file>themes/monoblue/32/edit.png</file>
@@ -628,6 +718,7 @@
<file>themes/monoblue/32/contributors.png</file>
<file>themes/monoblue/32/stop.png</file>
<file>themes/monoblue/32/write_eeprom.png</file>
<file>themes/monoblue/32/sdsync.png</file>
<file>themes/monoblue/48/paintbrush.png</file>
<file>themes/monoblue/48/open.png</file>
<file>themes/monoblue/48/edit.png</file>
@@ -671,6 +762,7 @@
<file>themes/monoblue/48/contributors.png</file>
<file>themes/monoblue/48/stop.png</file>
<file>themes/monoblue/48/write_eeprom.png</file>
<file>themes/monoblue/48/sdsync.png</file>
<file>themes/monowhite/16/paintbrush.png</file>
<file>themes/monowhite/16/open.png</file>
<file>themes/monowhite/16/edit.png</file>
@@ -714,6 +806,7 @@
<file>themes/monowhite/16/contributors.png</file>
<file>themes/monowhite/16/stop.png</file>
<file>themes/monowhite/16/write_eeprom.png</file>
<file>themes/monowhite/16/sdsync.png</file>
<file>themes/monowhite/24/paintbrush.png</file>
<file>themes/monowhite/24/open.png</file>
<file>themes/monowhite/24/edit.png</file>
@@ -757,6 +850,7 @@
<file>themes/monowhite/24/contributors.png</file>
<file>themes/monowhite/24/stop.png</file>
<file>themes/monowhite/24/write_eeprom.png</file>
<file>themes/monowhite/24/sdsync.png</file>
<file>themes/monowhite/32/paintbrush.png</file>
<file>themes/monowhite/32/open.png</file>
<file>themes/monowhite/32/edit.png</file>
@@ -800,6 +894,7 @@
<file>themes/monowhite/32/contributors.png</file>
<file>themes/monowhite/32/stop.png</file>
<file>themes/monowhite/32/write_eeprom.png</file>
<file>themes/monowhite/32/sdsync.png</file>
<file>themes/monowhite/48/paintbrush.png</file>
<file>themes/monowhite/48/open.png</file>
<file>themes/monowhite/48/edit.png</file>
@@ -843,6 +938,7 @@
<file>themes/monowhite/48/contributors.png</file>
<file>themes/monowhite/48/stop.png</file>
<file>themes/monowhite/48/write_eeprom.png</file>
<file>themes/monowhite/48/sdsync.png</file>
<file>themes/yerico/16/paintbrush.png</file>
<file>themes/yerico/16/open.png</file>
<file>themes/yerico/16/edit.png</file>
@@ -886,6 +982,7 @@
<file>themes/yerico/16/contributors.png</file>
<file>themes/yerico/16/stop.png</file>
<file>themes/yerico/16/write_eeprom.png</file>
<file>themes/yerico/16/sdsync.png</file>
<file>themes/yerico/24/paintbrush.png</file>
<file>themes/yerico/24/open.png</file>
<file>themes/yerico/24/edit.png</file>
@@ -929,6 +1026,7 @@
<file>themes/yerico/24/contributors.png</file>
<file>themes/yerico/24/stop.png</file>
<file>themes/yerico/24/write_eeprom.png</file>
<file>themes/yerico/24/sdsync.png</file>
<file>themes/yerico/32/paintbrush.png</file>
<file>themes/yerico/32/open.png</file>
<file>themes/yerico/32/edit.png</file>
@@ -972,6 +1070,7 @@
<file>themes/yerico/32/contributors.png</file>
<file>themes/yerico/32/stop.png</file>
<file>themes/yerico/32/write_eeprom.png</file>
<file>themes/yerico/32/sdsync.png</file>
<file>themes/yerico/48/paintbrush.png</file>
<file>themes/yerico/48/open.png</file>
<file>themes/yerico/48/edit.png</file>
@@ -1015,5 +1114,6 @@
<file>themes/yerico/48/contributors.png</file>
<file>themes/yerico/48/stop.png</file>
<file>themes/yerico/48/write_eeprom.png</file>
<file>themes/yerico/48/sdsync.png</file>
</qresource>
</RCC>
File diff suppressed because it is too large Load Diff
+66 -94
View File
@@ -1,94 +1,66 @@
#ifndef COMPAREDIALOG_H
#define COMPAREDIALOG_H
#include <QDialog>
#include <QtGui>
#include <QDir>
#include "eeprominterface.h"
namespace Ui {
class CompareDialog;
}
class CompareDialog : public QDialog
{
Q_OBJECT
public:
CompareDialog(QWidget *parent);
~CompareDialog();
protected:
GeneralSettings * settings;
ModelData * g_model1;
ModelData * g_model2;
ModelData * modeltemp;
int model1;
int model2;
private:
void closeEvent(QCloseEvent *event);
Ui::CompareDialog *ui;
QString doTC(const QString s, const QString color, bool bold);
QString doTR(const QString s, const QString color, bool bold);
QString doTL(const QString s, const QString color, bool bold);
QString fv(const QString name, const QString value,const QString color);
template<class T> QString getColor1(T val1, T val2) {
if (val1!=val2)
return "green";
else
return "grey";
}
template<class T> QString getColor2(T val1, T val2) {
if (val1!=val2)
return "red";
else
return "grey";
}
QString getColor1(char * val1, char * val2) {
if (strcmp(val1,val2)!=0)
return "green";
else
return "grey";
}
QString getColor2(char * val1, char * val2) {
if (strcmp(val1,val2)!=0)
return "red";
else
return "grey";
}
int ModelHasExpo(ExpoData * ExpoArray, ExpoData expo, bool * expoused);
bool ChannelHasExpo(ExpoData * expoArray, uint8_t destCh);
int ModelHasMix(MixData * mixArray, MixData mix, bool * mixused);
bool ChannelHasMix(MixData * mixArray, uint8_t destCh);
QTextEdit * te;
QString curvefile5;
QString curvefile9;
QDir *qd;
private slots:
void on_printButton_clicked();
void on_printFileButton_clicked();
protected:
void dropEvent(QDropEvent *event);
void dragMoveEvent(QDragMoveEvent *event);
void dragEnterEvent(QDragEnterEvent *event);
void dragLeaveEvent(QDragLeaveEvent *event);
void printDiff();
void printSetup();
void printPhases();
void printLimits();
void printExpos();
void printMixers();
void printCurves();
void printGvars();
void printSwitches();
void printSafetySwitches();
void printFSwitches();
void printFrSky();
};
#endif // COMPAREDIALOG_H
/*
* Copyright (C) OpenTX
*
* Based on code named
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef _COMPAREDIALOG_H_
#define _COMPAREDIALOG_H_
#include <QtWidgets>
#include "multimodelprinter.h"
namespace Ui {
class CompareDialog;
}
class CompareDialog : public QDialog
{
Q_OBJECT
public:
CompareDialog(QWidget *parent, Firmware * firmware);
~CompareDialog();
protected:
struct GMData {
ModelData model;
GeneralSettings gs;
};
MultiModelPrinter * multimodelprinter;
QVector<GMData> modelsList;
QMap<int, GMData> modelsMap;
Ui::CompareDialog * ui;
protected slots:
void removeModelBtnClicked();
void on_printButton_clicked();
void on_printFileButton_clicked();
protected:
virtual void closeEvent(QCloseEvent * event);
virtual void dragMoveEvent(QDragMoveEvent *event);
virtual void dragEnterEvent(QDragEnterEvent *event);
virtual void dragLeaveEvent(QDragLeaveEvent *event);
virtual void dropEvent(QDropEvent *event);
bool handleMimeData(const QMimeData * mimeData);
void compare();
void removeModel(int idx);
};
#endif // _COMPAREDIALOG_H_
+29 -53
View File
@@ -29,63 +29,22 @@
<string>Compare Models</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="label_1">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="acceptDrops">
<bool>true</bool>
</property>
<property name="styleSheet">
<string notr="true">color:green;</string>
</property>
<property name="text">
<string>Drag first model here</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_2">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="acceptDrops">
<bool>true</bool>
</property>
<property name="styleSheet">
<string notr="true">color:red;</string>
</property>
<property name="text">
<string>Drag second model here</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
</layout>
</item>
<item row="1" column="0">
<item row="2" column="0">
<widget class="QTextEdit" name="textEdit">
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
<item row="2" column="0">
<item row="3" column="0">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>To compare models, drag and drop them anywhere in this window.</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
@@ -122,11 +81,28 @@
</item>
</layout>
</item>
<item row="1" column="0">
<layout class="QHBoxLayout" name="layout_modelNames">
<property name="spacing">
<number>6</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
</layout>
</item>
</layout>
</widget>
<resources>
<include location="companion.qrc"/>
</resources>
<resources/>
<connections>
<connection>
<sender>closeButton</sender>
+79
View File
@@ -0,0 +1,79 @@
/*
* Copyright (C) OpenTX
*
* Based on code named
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef _CONSTANTS_H_
#define _CONSTANTS_H_
#include <QCoreApplication>
#define CPN_MAX_MODELS 60
#define CPN_MAX_TIMERS 3
#define CPN_MAX_FLIGHT_MODES 9
#define CPN_MAX_MIXERS 64
#define CPN_MAX_INPUTS 32
#define CPN_MAX_EXPOS 64
#define CPN_MAX_CURVES 32
#define CPN_MAX_POINTS 17
#define CPN_MAX_GVARS 9
#define CPN_MAX_ENCODERS 2 // rotary encoders
#define CPN_MAX_CHNOUT 32 // number of real output channels
#define CPN_MAX_LOGICAL_SWITCHES 64 // number of custom switches
#define CPN_MAX_SPECIAL_FUNCTIONS 64 // number of functions assigned to switches
#define CPN_MAX_MODULES 2
#define CPN_MAX_STICKS Board::STICK_AXIS_COUNT
#define CPN_MAX_TRIMS Board::TRIM_AXIS_COUNT
#define CPN_MAX_TRIM_SW Board::TRIM_SW_COUNT
#define CPN_MAX_KNOBS 4
#define CPN_MAX_SLIDERS 4
#define CPN_MAX_POTS (CPN_MAX_KNOBS + CPN_MAX_SLIDERS)
#define CPN_MAX_CYC 3
#define CPN_MAX_SWITCHES 32
#define CPN_MAX_KEYS 32
#define CPN_MAX_MOUSE_ANALOGS 2
#define CPN_MAX_ANALOGS (CPN_MAX_STICKS + CPN_MAX_POTS + CPN_MAX_MOUSE_ANALOGS)
#define CPN_STR_FILES QCoreApplication::translate("Companion", "files")
#define CPN_STR_RAD_MOD_SETTINGS QCoreApplication::translate("Companion", "Radio and Models settings")
#define HEX_FILES_FILTER "HEX " % CPN_STR_FILES % " (*.hex);;"
#define BIN_FILES_FILTER "BIN " % CPN_STR_FILES % " (*.bin);;"
#define DFU_FILES_FILTER "DFU " % CPN_STR_FILES % " (*.dfu);;"
#define EEPE_FILES_FILTER "EEPE " % CPN_STR_FILES % " (*.eepe);;"
#define OTX_FILES_FILTER "OpenTX " % CPN_STR_FILES % " (*.otx);;"
#define EEPROM_FILES_FILTER CPN_STR_RAD_MOD_SETTINGS % " " % CPN_STR_FILES % " (*.otx *.eepe *.bin *.hex);;" % OTX_FILES_FILTER % EEPE_FILES_FILTER % BIN_FILES_FILTER % HEX_FILES_FILTER
#define FLASH_FILES_FILTER "FLASH " % CPN_STR_FILES % " (*.bin *.hex *.dfu);;" % BIN_FILES_FILTER % HEX_FILES_FILTER % DFU_FILES_FILTER
#define EXTERNAL_EEPROM_FILES_FILTER "EEPROM " % CPN_STR_FILES % " (*.bin *.hex);;" % BIN_FILES_FILTER % HEX_FILES_FILTER
#define ER9X_EEPROM_FILE_TYPE "ER9X_EEPROM_FILE"
#define EEPE_EEPROM_FILE_HEADER "EEPE EEPROM FILE"
#define EEPE_MODEL_FILE_HEADER "EEPE MODEL FILE"
#define CPN_STR_SW_INDICATOR_UP QCoreApplication::translate("RawSwitch", "\xE2\x86\x91") // Switch up position indicator: Up arrow, or similar.
#define CPN_STR_SW_INDICATOR_DN QCoreApplication::translate("RawSwitch", "\xE2\x86\x93") // Switch down position indicator: Down arrow, or similar.
#define CPN_STR_SW_INDICATOR_NEUT QCoreApplication::translate("RawSwitch", "-") // Switch neutral (middle) position indicator.
#define CPN_STR_SW_INDICATOR_REV QCoreApplication::translate("RawSwitch", "!") // Switch reversed logic (NOT) indicator.
enum DownloadBranchType {
BRANCH_RELEASE_STABLE,
BRANCH_RC_TESTING,
BRANCH_NIGHTLY_UNSTABLE
};
Q_DECLARE_METATYPE(DownloadBranchType)
#endif // _CONSTANTS_H_
-132
View File
@@ -1,132 +0,0 @@
#include "contributorsdialog.h"
#include "ui_contributorsdialog.h"
#include <QtGui>
#include "helpers.h"
contributorsDialog::contributorsDialog(QWidget *parent, int contest, QString rnurl) :
QDialog(parent, Qt::WindowTitleHint | Qt::WindowSystemMenuHint),
ui(new Ui::contributorsDialog)
{
ui->setupUi(this);
switch (contest) {
case 0:
{
this->setWindowIcon(CompanionIcon("contributors.png"));
QFile file(":/DONATIONS.txt");
QString str;
str.append("<html><head>");
str.append("<style type=\"text/css\">\n");
str.append(".mycss\n{\nfont-weight:normal;\ncolor:#000000;vertical-align: top;font-size:10px;text-align:left;font-family:arial, helvetica, sans-serif;\n}\n");
str.append(".mycssb\n{\nfont-weight:bold;\ncolor:#C00000;vertical-align: top;font-size:10px;text-align:left;font-family:arial, helvetica, sans-serif;\n}\n");
str.append(".myhead\n{\nfont-weight:bold;\ncolor:#000000;font-size:14px;text-align:left;font-family:arial, helvetica, sans-serif;\n}\n");
str.append("</style>\n</head><body class=\"mycss\"><table width=\"100%\" border=0 cellspacing=0 cellpadding=2>");
str.append("<tr><td class=\"myhead\">"+tr("People who have contributed to this project")+"</td></tr>");
str.append("</table>");
str.append("<table width=\"100%\" border=0 cellspacing=0 cellpadding=2>");
if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
int columns=6;
float cwidth=100.0/columns;
while (!file.atEnd()) {
str.append("<tr>");
for (int i=0; i<columns; i++) {
str.append(QString("<td width=\"%1%\" ").arg(cwidth));
if (!file.atEnd()) {
QByteArray line = file.readLine();
if (line.contains("monthly") || line.contains("mensual")) {
str.append("class=\"mycssb\">");
} else {
str.append("class=\"mycss\">");
}
str.append(line.trimmed()+"</td>");
} else {
str.append("class=\"mycss\">&nbsp;</td>");
}
}
str.append("</tr>");
}
}
str.append("</table>");
QFile file2(":/CREDITS.txt");
str.append("<table width=\"100%\" border=0 cellspacing=0 cellpadding=2>");
str.append("<tr><td class=\"mycss\">&nbsp;</td></tr>");
str.append("<tr><td class=\"myhead\">"+tr("Coders")+"</td></tr>");
str.append("</table>");
str.append("<table width=\"100%\" border=0 cellspacing=0 cellpadding=2>");
if(file2.open( QIODevice::ReadOnly | QIODevice::Text ) ) {
while (!file2.atEnd()) {
str.append("<tr>");
for (int i=0; i<3; i++) {
str.append("<td width=\"33.33%\" class=\"mycss\">");
if (!file2.atEnd()) {
QByteArray line = file2.readLine();
str.append(line.trimmed());
} else {
str.append("&nbsp;");
}
str.append("</td>");
}
str.append("</tr>");
}
}
str.append("<tr><td class=\"mycss\">&nbsp;</td></tr>");
str.append("<tr><td colspan=3 class=\"mycss\">" + tr("Honors go to Rafal Tomczak (RadioClone), Thomas Husterer (th9x) and Erez Raviv (er9x and eePe)") + "<br/></td></tr>");
str.append("<tr><td colspan=3 class=\"mycss\">" + tr("Thank you all !!!") + "</td></tr>");
str.append("</table>");
str.append("</body></html>");
ui->textEditor->setHtml(str);
ui->textEditor->scroll(0, 0);
setWindowTitle(tr("Contributors"));
break;
}
case 1:
{
this->setWindowIcon(CompanionIcon("changelog.png"));
QFile file(":/releasenotes.txt");
if(file.open( QIODevice::ReadOnly | QIODevice::Text ) ) {
ui->textEditor->setHtml(file.readAll());
}
ui->textEditor->scroll(0,0);
setWindowTitle(tr("Companion Release Notes"));
break;
}
case 2:
{
if (!rnurl.isEmpty()) {
this->setWindowIcon(CompanionIcon("changelog.png"));
this->setWindowTitle(tr("OpenTX Release Notes"));
manager = new QNetworkAccessManager(this);
connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));
QUrl url(rnurl);
QNetworkRequest request(url);
request.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::AlwaysNetwork);
manager->get(request);
}
else {
QTimer::singleShot(0, this, SLOT(forceClose()));
}
break;
}
}
}
void contributorsDialog::showEvent ( QShowEvent * )
{
ui->textEditor->scroll(0, 0);
}
contributorsDialog::~contributorsDialog()
{
delete ui;
}
void contributorsDialog::replyFinished(QNetworkReply * reply)
{
ui->textEditor->setHtml(reply->readAll());
}
void contributorsDialog::forceClose()
{
accept();;
}
-31
View File
@@ -1,31 +0,0 @@
#ifndef CONTRIBUTORSDIALOG_H
#define CONTRIBUTORSDIALOG_H
#include <QDialog>
#include "eeprominterface.h"
#include "downloaddialog.h"
namespace Ui {
class contributorsDialog;
}
class contributorsDialog : public QDialog
{
Q_OBJECT
public:
explicit contributorsDialog(QWidget *parent = 0, int contest = 0, QString rnurl = QString() );
~contributorsDialog();
private:
Ui::contributorsDialog *ui;
QNetworkAccessManager *manager;
void showEvent ( QShowEvent * );
private slots:
void forceClose();
void replyFinished(QNetworkReply * reply);
};
#endif // CONTRIBUTORSDIALOG_H
+135
View File
@@ -0,0 +1,135 @@
/*
* Copyright (C) OpenTX
*
* Based on code named
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include "creditsdialog.h"
#include "ui_htmldialog.h"
#include "helpers.h"
#include <QFile>
CreditsDialog::CreditsDialog(QWidget * parent):
QDialog(parent),
ui(new Ui::HtmlDialog)
{
ui->setupUi(this);
setWindowTitle(tr("OpenTX Contributors"));
setWindowIcon(CompanionIcon("contributors.png"));
QString str = "<html>" \
"<head>" \
" <style type=\"text/css\">" \
" .normal { font-weight:normal;color:#000000;vertical-align:top;font-size:10px;text-align:left;font-family:arial,helvetica,sans-serif; }" \
" .bold { font-weight:bold;color:#C00000;vertical-align:top;font-size:10px;text-align:left;font-family:arial,helvetica,sans-serif; }" \
" .title { font-weight:bold;color:#000000;font-size:14px;text-align:left;font-family:arial,helvetica,sans-serif; }" \
" </style>" \
"</head>"
"<body class=\"normal\">";
foreach(CreditsSection section, readCredits()) {
str.append(formatTable(sectionTitle(section.title), section.names, 3));
}
str.append("<table><tr><td class=\"normal\">&nbsp;</td></tr>" \
" <tr><td class=\"normal\">" + tr("Honors go to Rafal Tomczak (RadioClone), Thomas Husterer (th9x) and Erez Raviv (er9x and eePe)") + "<br/></td></tr>" \
"</table>");
#if 0
QFile blacklist(":/BLACKLIST.txt");
if (blacklist.open(QIODevice::ReadOnly | QIODevice::Text)) {
QStringList names;
names << blacklist.readAll();
str.append(formatTable(tr("OpenTX Blacklist"), names, 1));
}
#endif
str.append("</body></html>");
ui->textEditor->setHtml(str);
ui->textEditor->scroll(0, 0);
ui->textEditor->setOpenExternalLinks(true);
}
CreditsDialog::~CreditsDialog()
{
delete ui;
}
QList<CreditsDialog::CreditsSection> CreditsDialog::readCredits()
{
QFile credits(":/CREDITS.txt");
QList<CreditsSection> result;
if (credits.open(QIODevice::ReadOnly | QIODevice::Text)) {
while (!credits.atEnd()) {
QByteArray line = credits.readLine().trimmed();
if (line.size() >= 2) {
if (line.startsWith("[") && line.endsWith("]")) {
result.push_back(CreditsSection(line.mid(1, line.size() - 2)));
} else {
result.back().addName(line);
}
}
}
}
return result;
}
QString CreditsDialog::sectionTitle(const QString & title)
{
if (title == "Main developers")
return tr("Main developers");
else if (title == "Translators")
return tr("Translators");
else if (title == "Companies and projects who have donated to OpenTX")
return tr("Companies and projects who have donated to OpenTX");
else if (title == "People who have donated to OpenTX")
return tr("People who have donated to OpenTX");
else
return tr("Other contributors");
}
QString CreditsDialog::formatTable(const QString & title, const QStringList & names, int columns)
{
const float cwidth = 100.0 / columns;
QString str = "<table width=\"100%\" border=0 cellspacing=0 cellpadding=2>" \
" <tr><td class=\"normal\">&nbsp;</td></tr>" \
" <tr><td class=\"title\">" + title + "</td></tr>" \
"</table>";
str.append("<table width=\"100%\" border=0 cellspacing=0 cellpadding=2>");
int column = 0;
foreach(QString name, names) {
if (column == 0) {
str.append("<tr>");
}
QString trclass = name.contains("monthly") ? "bold" : "normal";
str.append(QString("<td width=\"%1%\" class=\"%2\">%3</td>").arg(cwidth).arg(trclass).arg(name.trimmed().replace("monthly", tr("monthly"))));
if (++column == columns) {
str.append("</tr>");
column = 0;
}
}
if (column != 0) {
str.append("</tr>");
}
str.append("</table>");
return str;
}
+62
View File
@@ -0,0 +1,62 @@
/*
* Copyright (C) OpenTX
*
* Based on code named
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef _CREDITSDIALOG_H_
#define _CREDITSDIALOG_H_
#include <QDialog>
namespace Ui {
class HtmlDialog;
}
class CreditsDialog : public QDialog
{
Q_OBJECT
class CreditsSection
{
public:
CreditsSection(const QString & title):
title(title)
{
}
void addName(const QString & name)
{
names.push_back(name);
}
QString title;
QStringList names;
};
public:
explicit CreditsDialog(QWidget * parent = 0);
~CreditsDialog();
private:
Ui::HtmlDialog * ui;
QList<CreditsSection> readCredits();
QString sectionTitle(const QString & title);
QString formatTable(const QString & title, const QStringList & names, int colums);
};
#endif // _CREDITSDIALOG_H_
+40
View File
@@ -0,0 +1,40 @@
/*
* Copyright (C) OpenTX
*
* Based on code named
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include "customdebug.h"
Q_LOGGING_CATEGORY(eepromImport, "eeprom.import")
Q_LOGGING_CATEGORY(simulatorInterfaceLoader, "simulator.interface.loader")
void CustomDebug::setFilterRules()
{
QString rules;
rules.append("eeprom.import=");
#if defined(DEBUG_STORAGE_IMPORT)
rules.append("true\n");
#else
rules.append("false\n");
#endif
rules.append("simulator.interface.*=true\n");
QLoggingCategory::setFilterRules(rules);
}
+38
View File
@@ -0,0 +1,38 @@
/*
* Copyright (C) OpenTX
*
* Based on code named
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef _CUSTOMDEBUG_H_
#define _CUSTOMDEBUG_H_
#include <QLoggingCategory>
// Controls the generation of debug output for EEPROM import
Q_DECLARE_LOGGING_CATEGORY(eepromImport) // "eeprom.import"
// Controls the generation of debug output of SimulatorLoader class
Q_DECLARE_LOGGING_CATEGORY(simulatorInterfaceLoader) // "simulator.interface.loader"
class CustomDebug
{
public:
static void setFilterRules();
};
#endif // _CUSTOMDEBUG_H_
+83 -70
View File
@@ -1,12 +1,30 @@
/*
* Copyright (C) OpenTX
*
* Based on code named
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include "customizesplashdialog.h"
#include "ui_customizesplashdialog.h"
#include <QtGui>
#include "flashfirmwaredialog.h"
#include "appdata.h"
#include "helpers.h"
#include "burndialog.h"
#include "splashlibrary.h"
#include "flashinterface.h"
#include "firmwareinterface.h"
#include "splashlibrarydialog.h"
//*** Side Class ***
@@ -31,11 +49,11 @@ void Side::markSourceButton()
void Side::copyImage( Side side )
{
if ((*source!=UNDEFINED) && (*side.source!=UNDEFINED))
if ((*source!=UNDEFINED) && (*side.source!=UNDEFINED))
imageLabel->setPixmap(*side.imageLabel->pixmap());
}
bool Side::displayImage( QString fileName, Source pictSource )
bool Side::displayImage(QString fileName, Source pictSource)
{
QImage image;
@@ -43,52 +61,49 @@ bool Side::displayImage( QString fileName, Source pictSource )
return false;
// Determine which picture format to use
if (pictSource == FW ){
FlashInterface flash(fileName);
if (!flash.hasSplash())
if (pictSource == FW) {
FirmwareInterface firmware(fileName);
if (!firmware.hasSplash())
return false;
else
image = flash.getSplash();
*format = (flash.getSplashWidth()==WIDTH_TARANIS ? LCDTARANIS : LCD9X);
image = firmware.getSplash();
*format = (firmware.getSplashWidth()==WIDTH_TARANIS ? LCDTARANIS : LCD9X);
}
else {
image.load(fileName);
if (pictSource== PICT)
*format = image.width()>WIDTH_9X ? LCDTARANIS : LCD9X;
else if (pictSource == PROFILE)
*format = (g.profile[g.id()].fwType().contains("taranis")) ? LCDTARANIS : LCD9X;
*format = (g.profile[g.id()].fwType().contains("x9")) ? LCDTARANIS : LCD9X;
}
if (image.isNull()) {
return false;
}
// Load image
if (*format==LCDTARANIS) {
imageLabel->setPixmap( makePixMap( image, "taranis" ));
imageLabel->setFixedSize(WIDTH_TARANIS*2, HEIGHT_TARANIS*2);
}
else {
imageLabel->setPixmap( makePixMap( image, "9x" ));
imageLabel->setFixedSize(WIDTH_9X*2, HEIGHT_9X*2);
}
switch (pictSource){
case FW:
fileNameEdit->setText(QObject::tr("FW: %1").arg(fileName));
*saveToFileName = fileName;
*source=FW;
break;
case PICT:
fileNameEdit->setText(QObject::tr("Pict: %1").arg(fileName));
*saveToFileName = fileName;
*source=PICT;
break;
case PROFILE:
fileNameEdit->setText(QObject::tr("Profile image"));
*saveToFileName = fileName;
*source=PROFILE;
break;
default:
break;
// Load image
QPixmap pixmap = makePixMap(image);
imageLabel->setPixmap(pixmap);
imageLabel->setFixedSize(pixmap.width()*2, pixmap.height()*2);
switch (pictSource) {
case FW:
fileNameEdit->setText(QObject::tr("FW: %1").arg(fileName));
*saveToFileName = fileName;
*source = FW;
break;
case PICT:
fileNameEdit->setText(QObject::tr("Pict: %1").arg(fileName));
*saveToFileName = fileName;
*source = PICT;
break;
case PROFILE:
fileNameEdit->setText(QObject::tr("Profile image"));
*saveToFileName = fileName;
*source = PROFILE;
break;
default:
break;
}
saveButton->setEnabled(true);
libraryButton->setEnabled(true);
@@ -105,12 +120,12 @@ bool Side::saveImage()
{
if (*source == FW )
{
FlashInterface flash(*saveToFileName);
if (!flash.hasSplash()) {
FirmwareInterface firmware(*saveToFileName);
if (!firmware.hasSplash()) {
return false;
}
QImage image = imageLabel->pixmap()->toImage().scaled(flash.getSplashWidth(), flash.getSplashHeight());
if (flash.setSplash(image) && (flash.saveFlash(*saveToFileName) > 0)) {
QImage image = imageLabel->pixmap()->toImage().scaled(firmware.getSplashWidth(), firmware.getSplashHeight());
if (firmware.setSplash(image) && (firmware.save(*saveToFileName) > 0)) {
g.flashDir( QFileInfo(*saveToFileName).dir().absolutePath() );
}
else {
@@ -135,11 +150,9 @@ bool Side::saveImage()
return true;
}
//*** customizeSplashDialog Class ***
customizeSplashDialog::customizeSplashDialog(QWidget *parent) :
CustomizeSplashDialog::CustomizeSplashDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::customizeSplashDialog)
ui(new Ui::CustomizeSplashDialog)
{
ui->setupUi(this);
setWindowIcon(CompanionIcon("paintbrush.png"));
@@ -170,22 +183,22 @@ customizeSplashDialog::customizeSplashDialog(QWidget *parent) :
resize(0,0);
}
customizeSplashDialog::~customizeSplashDialog()
CustomizeSplashDialog::~CustomizeSplashDialog()
{
delete ui;
}
void customizeSplashDialog::on_copyRightToLeftButton_clicked() {
void CustomizeSplashDialog::on_copyRightToLeftButton_clicked() {
left.copyImage(right);
}
void customizeSplashDialog::on_copyLeftToRightButton_clicked() {
void CustomizeSplashDialog::on_copyLeftToRightButton_clicked() {
right.copyImage(left);
}
void customizeSplashDialog::on_leftLoadFwButton_clicked() {loadFirmware(left);}
void customizeSplashDialog::on_rightLoadFwButton_clicked() {loadFirmware(right);}
void customizeSplashDialog::loadFirmware(Side side)
void CustomizeSplashDialog::on_leftLoadFwButton_clicked() {loadFirmware(left);}
void CustomizeSplashDialog::on_rightLoadFwButton_clicked() {loadFirmware(right);}
void CustomizeSplashDialog::loadFirmware(Side side)
{
QString fileName = QFileDialog::getOpenFileName(this, tr("Open Firmware File"), g.flashDir(), FLASH_FILES_FILTER);
if (!fileName.isEmpty()) {
@@ -197,9 +210,9 @@ void customizeSplashDialog::loadFirmware(Side side)
side.markSourceButton();
}
void customizeSplashDialog::on_leftLoadPictButton_clicked() {loadPicture(left);}
void customizeSplashDialog::on_rightLoadPictButton_clicked() {loadPicture(right);}
void customizeSplashDialog::loadPicture(Side side)
void CustomizeSplashDialog::on_leftLoadPictButton_clicked() {loadPicture(left);}
void CustomizeSplashDialog::on_rightLoadPictButton_clicked() {loadPicture(right);}
void CustomizeSplashDialog::loadPicture(Side side)
{
QString supportedImageFormats;
for (int formatIndex = 0; formatIndex < QImageReader::supportedImageFormats().count(); formatIndex++) {
@@ -217,9 +230,9 @@ void customizeSplashDialog::loadPicture(Side side)
side.markSourceButton();
}
void customizeSplashDialog::on_leftLoadProfileButton_clicked() {loadProfile(left);}
void customizeSplashDialog::on_rightLoadProfileButton_clicked() {loadProfile(right);}
void customizeSplashDialog::loadProfile(Side side)
void CustomizeSplashDialog::on_leftLoadProfileButton_clicked() {loadProfile(left);}
void CustomizeSplashDialog::on_rightLoadProfileButton_clicked() {loadProfile(right);}
void CustomizeSplashDialog::loadProfile(Side side)
{
QString fileName=g.profile[g.id()].splashFile();
@@ -230,12 +243,12 @@ void customizeSplashDialog::loadProfile(Side side)
side.markSourceButton();
}
void customizeSplashDialog::on_leftLibraryButton_clicked(){libraryButton_clicked(left);}
void customizeSplashDialog::on_rightLibraryButton_clicked(){libraryButton_clicked(right);}
void customizeSplashDialog::libraryButton_clicked( Side side )
void CustomizeSplashDialog::on_leftLibraryButton_clicked(){libraryButton_clicked(left);}
void CustomizeSplashDialog::on_rightLibraryButton_clicked(){libraryButton_clicked(right);}
void CustomizeSplashDialog::libraryButton_clicked( Side side )
{
QString fileName;
splashLibrary *ld = new splashLibrary(this,&fileName);
SplashLibraryDialog *ld = new SplashLibraryDialog(this,&fileName);
ld->exec();
if (!fileName.isEmpty()) {
if (!side.displayImage( fileName, UNDEFINED ))
@@ -243,9 +256,9 @@ void customizeSplashDialog::libraryButton_clicked( Side side )
}
}
void customizeSplashDialog::on_leftSaveButton_clicked(){saveButton_clicked(left);}
void customizeSplashDialog::on_rightSaveButton_clicked(){saveButton_clicked(right);}
void customizeSplashDialog::saveButton_clicked( Side side )
void CustomizeSplashDialog::on_leftSaveButton_clicked(){saveButton_clicked(left);}
void CustomizeSplashDialog::on_rightSaveButton_clicked(){saveButton_clicked(right);}
void CustomizeSplashDialog::saveButton_clicked( Side side )
{
if (side.saveImage()){
QMessageBox::information(this, tr("File Saved"), tr("The image was saved to the file %1").arg(*side.saveToFileName));
@@ -257,9 +270,9 @@ void customizeSplashDialog::saveButton_clicked( Side side )
QMessageBox::critical(this, tr("File Save Error"), tr("Failed to write image to %1").arg(*side.saveToFileName));
}
void customizeSplashDialog::on_leftInvertButton_clicked(){invertButton_clicked(left);}
void customizeSplashDialog::on_rightInvertButton_clicked(){invertButton_clicked(right);}
void customizeSplashDialog::invertButton_clicked(Side side)
void CustomizeSplashDialog::on_leftInvertButton_clicked(){invertButton_clicked(left);}
void CustomizeSplashDialog::on_rightInvertButton_clicked(){invertButton_clicked(right);}
void CustomizeSplashDialog::invertButton_clicked(Side side)
{
QImage image = side.imageLabel->pixmap()->toImage();
image.invertPixels();
+30 -11
View File
@@ -1,13 +1,32 @@
#ifndef CUSTOMIZESPLASHDIALOG_H
#define CUSTOMIZESPLASHDIALOG_H
/*
* Copyright (C) OpenTX
*
* Based on code named
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include <QtGui>
#include <QDialog>
#include "flashinterface.h"
#ifndef _CUSTOMIZESPLASHDIALOG_H_
#define _CUSTOMIZESPLASHDIALOG_H_
#include <QtWidgets>
#include "firmwareinterface.h"
namespace Ui
{
class customizeSplashDialog;
class CustomizeSplashDialog;
}
const int WIDTH_TARANIS = 212;
@@ -44,15 +63,15 @@ private:
LCDFormat *format;
};
class customizeSplashDialog : public QDialog
class CustomizeSplashDialog : public QDialog
{
Q_OBJECT
Side left;
Side right;
public:
explicit customizeSplashDialog(QWidget *parent = 0);
~customizeSplashDialog();
explicit CustomizeSplashDialog(QWidget *parent = 0);
~CustomizeSplashDialog();
private slots:
void on_leftLoadFwButton_clicked();
@@ -80,8 +99,8 @@ private:
void saveButton_clicked( Side );
void invertButton_clicked( Side );
Ui::customizeSplashDialog *ui;
Ui::CustomizeSplashDialog *ui;
enum sideEnum { LEFT, RIGHT };
};
#endif // CUSTOMIZESPLASHDIALOG_H
#endif // _CUSTOMIZESPLASHDIALOG_H_
+2 -2
View File
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>customizeSplashDialog</class>
<widget class="QDialog" name="customizeSplashDialog">
<class>CustomizeSplashDialog</class>
<widget class="QDialog" name="CustomizeSplashDialog">
<property name="enabled">
<bool>true</bool>
</property>
+20 -2
View File
@@ -1,7 +1,25 @@
/*
* Copyright (C) OpenTX
*
* Based on code named
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include "downloaddialog.h"
#include "ui_downloaddialog.h"
#include <QMessageBox>
#include <QtGui>
#include <QTime>
#include "helpers.h"
+24 -5
View File
@@ -1,13 +1,32 @@
#ifndef DOWNLOADDIALOG_H
#define DOWNLOADDIALOG_H
/*
* Copyright (C) OpenTX
*
* Based on code named
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include <QDialog>
#ifndef _DOWNLOADDIALOG_H_
#define _DOWNLOADDIALOG_H_
#include <QtWidgets>
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QNetworkRequest>
#include <QFile>
namespace Ui {
class downloadDialog;
}
@@ -38,4 +57,4 @@ private:
};
#endif // DOWNLOADDIALOG_H
#endif // _DOWNLOADDIALOG_H_
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+46 -39
View File
@@ -1,3 +1,23 @@
/*
* Copyright (C) OpenTX
*
* Based on code named
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include <algorithm>
#include "er9xeeprom.h"
#include "helpers.h"
@@ -45,7 +65,7 @@ t_Er9xTrainerData::t_Er9xTrainerData()
t_Er9xTrainerData::operator TrainerData ()
{
TrainerData c9x;
for (int i=0; i<NUM_STICKS; i++) {
for (int i=0; i<CPN_MAX_STICKS; i++) {
c9x.calib[i] = calib[i];
c9x.mix[i] = mix[i];
}
@@ -61,37 +81,31 @@ Er9xGeneral::operator GeneralSettings ()
{
GeneralSettings result;
result.version = myVers;
for (int i=0; i<NUM_STICKSnPOTS; i++) {
for (int i=0; i<CPN_MAX_STICKSnPOTS; i++) {
result.calibMid[i] = calibMid[i];
result.calibSpanNeg[i] = calibSpanNeg[i];
result.calibSpanPos[i] = calibSpanPos[i];
}
result.currModel = currModel;
result.currModelIndex = currModel;
result.contrast = contrast;
result.vBatWarn = vBatWarn;
result.vBatCalib = vBatCalib;
result.txVoltageCalibration = txVoltageCalibration;
result.trainer = trainer;
result.blightinv=blightinv;
result.stickScroll=stickScroll;
result.crosstrim=crosstrim;
result.hideNameOnSplash=hideNameOnSplash;
result.enablePpmsim=enablePpmsim;
result.view = std::min((uint8_t)4, view);
result.disableThrottleWarning = disableThrottleWarning;
result.switchWarning = disableSwitchWarning ? 0 : -1;
result.disableMemoryWarning = disableMemoryWarning;
switch (beeperVal) {
case 0:
result.beeperMode = e_quiet;
result.beeperMode = GeneralSettings::BEEPER_QUIET;
break;
case 1:
result.beeperMode = e_no_keys;
result.beeperMode = GeneralSettings::BEEPER_NOKEYS;
break;
default:
result.beeperMode = e_all;
result.beeperMode = GeneralSettings::BEEPER_ALL;
result.beeperLength = beeperVal - 4;
break;
}
@@ -103,9 +117,6 @@ Er9xGeneral::operator GeneralSettings ()
result.preBeep = preBeep;
result.flashBeep = flashBeep;
result.splashMode = disableSplashScreen;
result.disablePotScroll=(disablePotScroll==1);
result.disableBG=(disableBG==1);
result.frskyinternalalarm = frskyinternalalarm;
result.backlightMode = 0;
if (lightSw == 22) {
@@ -126,7 +137,6 @@ Er9xGeneral::operator GeneralSettings ()
result.speakerPitch = speakerPitch;
result.hapticStrength = hapticStrength - 3;
result.speakerMode = speakerMode;
result.switchWarningStates =switchWarningStates;
return result;
}
@@ -138,8 +148,8 @@ t_Er9xLimitData::t_Er9xLimitData()
t_Er9xLimitData::operator LimitData ()
{
LimitData c9x;
c9x.min = min-100;
c9x.max = max+100;
c9x.min = 10*(min-100);
c9x.max = 10*(max+100);
c9x.revert = revert;
c9x.offset = offset;
return c9x;
@@ -358,38 +368,36 @@ t_Er9xModelData::operator ModelData ()
c9x.used = true;
getEEPROMString(c9x.name, name, sizeof(name));
c9x.timers[0].mode = getEr9xTimerMode(tmrMode);
c9x.timers[0].dir = tmrDir;
c9x.timers[0].val = tmrVal;
switch(protocol) {
case 1:
c9x.moduleData[0].protocol = PXX_DJT;
c9x.moduleData[0].protocol = PULSES_PXX_DJT;
break;
case 2:
c9x.moduleData[0].protocol = DSM2;
c9x.moduleData[0].protocol = PULSES_DSM2;
break;
case 3:
c9x.moduleData[0].protocol = PPM16;
c9x.moduleData[0].protocol = PULSES_PPM16;
break;
default:
c9x.moduleData[0].protocol = PPM;
c9x.moduleData[0].protocol = PULSES_PPM;
break;
}
c9x.moduleData[0].ppmFrameLength=ppmFrameLength;
c9x.moduleData[0].ppm.frameLength=ppmFrameLength;
c9x.moduleData[0].channelsCount = 8 + 2 * ppmNCH;
c9x.thrTrim = thrTrim;
c9x.thrExpo = thrExpo;
c9x.trimInc = trimInc-2;
c9x.moduleData[0].ppmDelay = 300 + 50 * ppmDelay;
c9x.funcSw[0].func = FuncInstantTrim;
c9x.moduleData[0].ppm.delay = 300 + 50 * ppmDelay;
c9x.customFn[0].func = FuncInstantTrim;
if (trimSw) {
c9x.funcSw[0].swtch = er9xToSwitch(trimSw);
c9x.customFn[0].swtch = er9xToSwitch(trimSw);
}
c9x.beepANACenter = beepANACenter;
c9x.moduleData[0].ppmPulsePol = pulsePol;
c9x.moduleData[0].ppm.pulsePol = pulsePol;
c9x.extendedLimits = extendedLimits;
c9x.swashRingData.invertELE = swashInvertELE;
c9x.swashRingData.invertAIL = swashInvertAIL;
c9x.swashRingData.invertCOL = swashInvertCOL;
c9x.swashRingData.elevatorWeight = swashInvertELE ? -100 : 100;
c9x.swashRingData.aileronWeight = swashInvertAIL ? -100 : 100;
c9x.swashRingData.collectiveWeight = swashInvertCOL ? -100 : 100;
c9x.swashRingData.type = swashType;
c9x.swashRingData.collectiveSource = er9xToSource(swashCollectiveSource);
c9x.swashRingData.value = swashRingValue;
@@ -404,8 +412,8 @@ t_Er9xModelData::operator ModelData ()
// expoData
int e = 0;
for (int ch = 0; ch < 4 && e < C9X_MAX_EXPOS; ch++) {
for (int dr = 0, pos = 0; dr < 3 && e < C9X_MAX_EXPOS; dr++, pos++) {
for (int ch = 0; ch < 4 && e < CPN_MAX_EXPOS; ch++) {
for (int dr = 0, pos = 0; dr < 3 && e < CPN_MAX_EXPOS; dr++, pos++) {
if ((dr == 0 && !expoData[ch].drSw1) || (dr == 1 && !expoData[ch].drSw2))
dr = 2;
if (dr == 2 && !expoData[ch].expo[0][0][0] && !expoData[ch].expo[0][0][1] && !expoData[ch].expo[0][1][0] && !expoData[ch].expo[0][1][1])
@@ -428,7 +436,7 @@ t_Er9xModelData::operator ModelData ()
}
else {
c9x.expoData[e].mode = 2;
if (e < C9X_MAX_EXPOS - 1) {
if (e < CPN_MAX_EXPOS - 1) {
c9x.expoData[e + 1].swtch = c9x.expoData[e].swtch;
c9x.expoData[++e].chn = ch;
c9x.expoData[e].mode = 1;
@@ -442,7 +450,7 @@ t_Er9xModelData::operator ModelData ()
}
}
for (int i=0; i<NUM_STICKS; i++)
for (int i=0; i<CPN_MAX_STICKS; i++)
c9x.flightModeData[0].trim[i] = trim[i];
for (int i=0; i<ER9X_MAX_CURVE5; i++) {
@@ -461,14 +469,13 @@ t_Er9xModelData::operator ModelData ()
}
for (int i=0; i<ER9X_NUM_CSW; i++)
c9x.customSw[i] = customSw[i];
c9x.logicalSw[i] = logicalSw[i];
// for (int i=0; i<ER9X_NUM_CHNOUT; i++)
// c9x.safetySw[i] = safetySw[i];
c9x.frsky = frsky;
c9x.frsky.usrProto=FrSkyUsrProto;
c9x.frsky.FrSkyGpsAlt=FrSkyGpsAlt;
return c9x;
}
+18 -13
View File
@@ -1,7 +1,12 @@
/*
* Author - Bertrand Songis <bsongis@gmail.com>
* Copyright (C) OpenTX
*
* Based on th9x -> http://code.google.com/p/th9x/
* Based on code named
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
@@ -11,10 +16,10 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#ifndef er9xeeprom_h
#define er9xeeprom_h
#ifndef _ER9XEEPROM_H_
#define _ER9XEEPROM_H_
#include <inttypes.h>
#include "eeprominterface.h"
@@ -29,7 +34,7 @@
#define ER9X_NUM_CHNOUT 16 //number of real outputchannels CH1-CH8
#define ER9X_NUM_CSW 12 //number of custom switches
#define NUM_STICKSnPOTS 7 //number of sticks and pots
#define CPN_MAX_STICKSnPOTS 7 //number of sticks and pots
#define ER9X_MAX_GVARS 7
#define ER9X_MAX_MODES 4
@@ -54,14 +59,14 @@ PACK(typedef struct t_Er9xTrainerData {
PACK(typedef struct t_Er9xGeneral {
uint8_t myVers;
int16_t calibMid[NUM_STICKSnPOTS];
int16_t calibSpanNeg[NUM_STICKSnPOTS];
int16_t calibSpanPos[NUM_STICKSnPOTS];
int16_t calibMid[CPN_MAX_STICKSnPOTS];
int16_t calibSpanNeg[CPN_MAX_STICKSnPOTS];
int16_t calibSpanPos[CPN_MAX_STICKSnPOTS];
uint16_t chkSum;
uint8_t currModel; //0..15
uint8_t contrast;
uint8_t vBatWarn;
int8_t vBatCalib;
int8_t txVoltageCalibration;
int8_t lightSw;
Er9xTrainerData trainer;
uint8_t view;
@@ -131,7 +136,7 @@ PACK(typedef struct t_Er9xLimitData {
#define MLTPX_REP 2
PACK(typedef struct t_Er9xMixData {
uint8_t destCh; // 1..C9X_NUM_CHNOUT
uint8_t destCh; // 1..CPN_MAX_CHNOUT
uint8_t srcRaw; //
int8_t weight;
int8_t swtch;
@@ -241,7 +246,7 @@ PACK(typedef struct t_Er9xModelData {
int8_t trim[4];
int8_t curves5[ER9X_MAX_CURVE5][5];
int8_t curves9[ER9X_MAX_CURVE9][9];
Er9xLogicalSwitchData customSw[ER9X_NUM_CSW];
Er9xLogicalSwitchData logicalSw[ER9X_NUM_CSW];
uint8_t frSkyVoltThreshold ;
int8_t tmrModeB;
uint8_t numVoice;
@@ -257,4 +262,4 @@ PACK(typedef struct t_Er9xModelData {
t_Er9xModelData() { memset(this, 0, sizeof(t_Er9xModelData)); }
}) Er9xModelData;
#endif
#endif // _ER9XEEPROM_H_
+109 -96
View File
@@ -1,7 +1,12 @@
/*
* Author - Bertrand Songis <bsongis@gmail.com>
*
* Based on th9x -> http://code.google.com/p/th9x/
* Copyright (C) OpenTX
*
* Based on code named
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
@@ -11,15 +16,14 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#include <iostream>
#include "er9xinterface.h"
#include "er9xeeprom.h"
#include "er9xsimulator.h"
#include "file.h"
#include "appdata.h"
#include "rlefile.h"
// #include "appdata.h"
// #include <iostream>
#include <bitset>
#define FILE_TYP_GENERAL 1
#define FILE_TYP_MODEL 2
@@ -28,8 +32,8 @@
#define FILE_MODEL(n) (1+n)
Er9xInterface::Er9xInterface():
EEPROMInterface(BOARD_STOCK),
efile(new RleFile())
EEPROMInterface(Board::BOARD_STOCK),
efile(new RleFile())
{
}
@@ -43,20 +47,6 @@ const char * Er9xInterface::getName()
return "Er9x";
}
const int Er9xInterface::getEEpromSize()
{
QString avrMCU = g.mcu();
if (avrMCU==QString("m128")) {
return 2*EESIZE_STOCK;
}
return EESIZE_STOCK;
}
const int Er9xInterface::getMaxModels()
{
return 16;
}
inline void applyStickModeToModel(Er9xModelData & model, unsigned int mode)
{
for (int i=0; i<2; i++) {
@@ -75,12 +65,12 @@ inline void applyStickModeToModel(Er9xModelData & model, unsigned int mode)
for (int i=0; i<ER9X_MAX_MIXERS; i++)
model.mixData[i].srcRaw = applyStickMode(model.mixData[i].srcRaw, mode);
for (int i=0; i<ER9X_NUM_CSW; i++) {
switch (LogicalSwitchData(model.customSw[i].func).getFunctionFamily()) {
switch (LogicalSwitchData(model.logicalSw[i].func).getFunctionFamily()) {
case LS_FAMILY_VCOMP:
model.customSw[i].v2 = applyStickMode(model.customSw[i].v2, mode);
model.logicalSw[i].v2 = applyStickMode(model.logicalSw[i].v2, mode);
// no break
case LS_FAMILY_VOFS:
model.customSw[i].v1 = applyStickMode(model.customSw[i].v1, mode);
model.logicalSw[i].v1 = applyStickMode(model.logicalSw[i].v1, mode);
break;
default:
break;
@@ -89,20 +79,26 @@ inline void applyStickModeToModel(Er9xModelData & model, unsigned int mode)
model.swashCollectiveSource = applyStickMode(model.swashCollectiveSource, mode);
}
bool Er9xInterface::loadxml(RadioData &radioData, QDomDocument &doc)
#if 0
unsigned long Er9xInterface::loadxml(RadioData &radioData, QDomDocument &doc)
{
std::cout << "trying er9x xml import... ";
QDebug dbg = qDebug();
dbg.setAutoInsertSpaces(false);
dbg << "trying er9x xml import... ";
std::bitset<NUM_ERRORS> errors;
Er9xGeneral er9xGeneral;
memset(&er9xGeneral,0,sizeof(er9xGeneral));
if(!loadGeneralDataXML(&doc, &er9xGeneral)) {
return false;
} else {
radioData.generalSettings=er9xGeneral;
std::cout << "version " << (unsigned int)er9xGeneral.myVers << " ";
if (!loadRadioSettingsDataXML(&doc, &er9xGeneral)) {
errors.set(UNKNOWN_ERROR);
return errors.to_ulong();
}
for(int i=0; i<getMaxModels(); i++)
{
else {
radioData.generalSettings=er9xGeneral;
dbg << "version " << (unsigned int)er9xGeneral.myVers << " ";
}
for (int i=0; i<getCapability(Models); i++) {
Er9xModelData er9xModel;
memset(&er9xModel,0,sizeof(er9xModel));
if(loadModelDataXML(&doc, &er9xModel, i)) {
@@ -110,37 +106,46 @@ bool Er9xInterface::loadxml(RadioData &radioData, QDomDocument &doc)
radioData.models[i] = er9xModel;
}
}
std::cout << "ok\n";
return true;
dbg << "ok";
errors.set(ALL_OK);
return errors.to_ulong();
}
#endif
bool Er9xInterface::load(RadioData &radioData, const uint8_t *eeprom, int size)
unsigned long Er9xInterface::load(RadioData &radioData, const uint8_t *eeprom, int size)
{
std::cout << "trying er9x import... ";
QDebug dbg = qDebug();
dbg.setAutoInsertSpaces(false);
dbg << "trying er9x import... ";
if (size != getEEpromSize()) {
std::cout << "wrong size\n";
return false;
std::bitset<NUM_ERRORS> errors;
if (size != Boards::getEEpromSize(Board::BOARD_STOCK)) {
dbg << "wrong size";
errors.set(WRONG_SIZE);
return errors.to_ulong();
}
if (!efile->EeFsOpen((uint8_t *)eeprom, size, BOARD_STOCK)) {
std::cout << "wrong file system\n";
return false;
if (!efile->EeFsOpen((uint8_t *)eeprom, size, Board::BOARD_STOCK)) {
dbg << "wrong file system";
errors.set(WRONG_FILE_SYSTEM);
return errors.to_ulong();
}
efile->openRd(FILE_GENERAL);
Er9xGeneral er9xGeneral;
if (efile->readRlc1((uint8_t*)&er9xGeneral, 1) != 1) {
std::cout << "no\n";
return false;
dbg << "no";
errors.set(UNKNOWN_ERROR);
return errors.to_ulong();
}
std::cout << "version " << (unsigned int)er9xGeneral.myVers << " ";
dbg << "version " << (unsigned int)er9xGeneral.myVers << " ";
switch(er9xGeneral.myVers) {
case 3:
std::cout << "(old gruvin9x) ";
dbg << "(old gruvin9x) ";
case 4:
// case 5:
case 6:
@@ -150,18 +155,21 @@ bool Er9xInterface::load(RadioData &radioData, const uint8_t *eeprom, int size)
case 10:
break;
default:
std::cout << "not er9x\n";
return false;
dbg << "not er9x";
errors.set(NOT_ER9X);
return errors.to_ulong();
}
efile->openRd(FILE_GENERAL);
if (!efile->readRlc1((uint8_t*)&er9xGeneral, sizeof(Er9xGeneral))) {
std::cout << "ko\n";
return false;
dbg << "ko";
errors.set(UNKNOWN_ERROR);
return errors.to_ulong();
}
radioData.generalSettings = er9xGeneral;
for (int i=0; i<getMaxModels(); i++) {
for (int i=0; i<getCapability(Models); i++) {
Er9xModelData er9xModel;
efile->openRd(FILE_MODEL(i));
if (!efile->readRlc1((uint8_t*)&er9xModel, sizeof(Er9xModelData))) {
@@ -170,43 +178,38 @@ bool Er9xInterface::load(RadioData &radioData, const uint8_t *eeprom, int size)
else {
applyStickModeToModel(er9xModel, radioData.generalSettings.stickMode+1);
radioData.models[i] = er9xModel;
}
}
}
std::cout << "ok\n";
return true;
dbg << "ok";
errors.set(ALL_OK);
return errors.to_ulong();
}
bool Er9xInterface::loadBackup(RadioData &radioData, uint8_t *eeprom, int esize, int index)
unsigned long Er9xInterface::loadBackup(RadioData &radioData, const uint8_t *eeprom, int esize, int index)
{
return false;
std::bitset<NUM_ERRORS> errors;
errors.set(UNKNOWN_ERROR);
return errors.to_ulong();
}
int Er9xInterface::save(uint8_t *eeprom, RadioData &radioData, uint32_t variant, uint8_t version)
{
std::cout << "NO!\n";
// TODO an error
return 0;
}
int Er9xInterface::getSize(ModelData &model)
int Er9xInterface::getSize(const ModelData &model)
{
return 0;
}
int Er9xInterface::getSize(GeneralSettings &settings)
int Er9xInterface::getSize(const GeneralSettings &settings)
{
return 0;
}
int Er9xInterface::isAvailable(Protocol prot, int port)
int Er9xInterface::isAvailable(PulsesProtocol prot, int port)
{
switch (prot) {
case PPM:
case DSM2:
case PXX_DJT:
case PPM16:
case PULSES_PPM:
case PULSES_DSM2:
case PULSES_PXX_DJT:
case PULSES_PPM16:
return 1;
default:
return 0;
@@ -215,11 +218,11 @@ int Er9xInterface::isAvailable(Protocol prot, int port)
void Er9xInterface::appendTextElement(QDomDocument * qdoc, QDomElement * pe, QString name, QString value)
{
QDomElement e = qdoc->createElement(name);
QDomText t = qdoc->createTextNode(name);
t.setNodeValue(value);
e.appendChild(t);
pe->appendChild(e);
QDomElement e = qdoc->createElement(name);
QDomText t = qdoc->createTextNode(name);
t.setNodeValue(value);
e.appendChild(t);
pe->appendChild(e);
}
void Er9xInterface::appendNumberElement(QDomDocument * qdoc, QDomElement * pe,QString name, int value, bool forceZeroWrite)
@@ -246,7 +249,7 @@ QDomElement Er9xInterface::getGeneralDataXML(QDomDocument * qdoc, Er9xGeneral *
{
QDomElement gd = qdoc->createElement("GENERAL_DATA");
appendNumberElement(qdoc, &gd, "Version", tgen->myVers, true); // have to write value here
appendTextElement(qdoc, &gd, "Owner", QString::fromAscii(tgen->ownerName,sizeof(tgen->ownerName)).trimmed());
appendTextElement(qdoc, &gd, "Owner", QString::fromLatin1(tgen->ownerName,sizeof(tgen->ownerName)).trimmed());
appendCDATAElement(qdoc, &gd, "Data", (const char *)tgen,sizeof(Er9xGeneral));
return gd;
}
@@ -256,42 +259,42 @@ QDomElement Er9xInterface::getModelDataXML(QDomDocument * qdoc, Er9xModelData *
QDomElement md = qdoc->createElement("MODEL_DATA");
md.setAttribute("number", modelNum);
appendNumberElement(qdoc, &md, "Version", mdver, true); // have to write value here
appendTextElement(qdoc, &md, "Name", QString::fromAscii(tmod->name,sizeof(tmod->name)).trimmed());
appendTextElement(qdoc, &md, "Name", QString::fromLatin1(tmod->name,sizeof(tmod->name)).trimmed());
appendCDATAElement(qdoc, &md, "Data", (const char *)tmod,sizeof(Er9xModelData));
return md;
}
bool Er9xInterface::loadGeneralDataXML(QDomDocument * qdoc, Er9xGeneral * tgen)
bool Er9xInterface::loadRadioSettingsDataXML(QDomDocument * qdoc, Er9xGeneral * tgen)
{
//look for "GENERAL_DATA" tag
// look for "GENERAL_DATA" tag
QDomElement gde = qdoc->elementsByTagName("GENERAL_DATA").at(0).toElement();
if(gde.isNull()) // couldn't find
return false;
//load cdata into tgen
// load cdata into tgen
QDomNode n = gde.elementsByTagName("Data").at(0).firstChild();// get all children in Data
while (!n.isNull()) {
if (n.isCDATASection()) {
QString ds = n.toCDATASection().data();
QByteArray ba = QByteArray::fromBase64(ds.toAscii());
QByteArray ba = QByteArray::fromBase64(ds.toLatin1());
const char * data = ba.data();
memcpy(tgen, data, sizeof(Er9xGeneral));
break;
}
n = n.nextSibling();
}
//check version?
// check version?
return true;
}
bool Er9xInterface::loadModelDataXML(QDomDocument * qdoc, Er9xModelData * tmod, int modelNum)
{
//look for MODEL_DATA with modelNum attribute.
//if modelNum = -1 then just pick the first one
// look for MODEL_DATA with modelNum attribute.
// if modelNum = -1 then just pick the first one
QDomNodeList ndl = qdoc->elementsByTagName("MODEL_DATA");
//cycle through nodes to find correct model number
// cycle through nodes to find correct model number
QDomNode k = ndl.at(0);
if(modelNum>=0) {
while(!k.isNull()) {
@@ -302,22 +305,32 @@ bool Er9xInterface::loadModelDataXML(QDomDocument * qdoc, Er9xModelData * tmod,
}
}
if(k.isNull()) // couldn't find
if (k.isNull()) // couldn't find
return false;
//load cdata into tgen
// load cdata into tgen
QDomNode n = k.toElement().elementsByTagName("Data").at(0).firstChild();// get all children in Data
while (!n.isNull()) {
if (n.isCDATASection()) {
QString ds = n.toCDATASection().data();
QByteArray ba = QByteArray::fromBase64(ds.toAscii());
QByteArray ba = QByteArray::fromBase64(ds.toLatin1());
const char * data = ba.data();
memcpy(tmod, data, sizeof(Er9xModelData));
break;
}
n = n.nextSibling();
}
//check version?
// check version?
return true;
}
int Er9xInterface::getCapability(Capability capability)
{
switch (capability) {
case Models:
return 16;
default:
return 0;
}
}
+40 -32
View File
@@ -1,7 +1,12 @@
/*
* Author - Bertrand Songis <bsongis@gmail.com>
*
* Based on th9x -> http://code.google.com/p/th9x/
* Copyright (C) OpenTX
*
* Based on code named
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
@@ -11,13 +16,15 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#ifndef er9x_interface_h
#define er9x_interface_h
#ifndef _ER9XINTERFACE_H_
#define _ER9XINTERFACE_H_
#include <QtXml>
#include "eeprominterface.h"
#include "er9xeeprom.h"
class RleFile;
class Er9xInterface : public EEPROMInterface
@@ -29,44 +36,45 @@ class Er9xInterface : public EEPROMInterface
virtual ~Er9xInterface();
virtual const char * getName();
virtual unsigned long load(RadioData &, const uint8_t * eeprom, int size);
virtual unsigned long loadBackup(RadioData &, const uint8_t * eeprom, int esize, int index);
virtual unsigned long loadxml(RadioData &radioData, QDomDocument &doc);
virtual int save(uint8_t * eeprom, const RadioData & radioData, uint8_t version=0, uint32_t variant=0)
{
return 0;
}
virtual int getSize(const ModelData &);
virtual int getSize(const GeneralSettings &settings);
virtual int isAvailable(PulsesProtocol proto, int port=0);
virtual const int getEEpromSize();
virtual const int getMaxModels();
virtual bool load(RadioData &, const uint8_t * eeprom, int size);
virtual bool loadBackup(RadioData &, uint8_t * eeprom, int esize, int index);
virtual bool loadxml(RadioData &radioData, QDomDocument &doc);
virtual int save(uint8_t * eeprom, RadioData & radioData, uint32_t variant=0, uint8_t version=0);
virtual int getSize(ModelData &);
virtual int getSize(GeneralSettings &settings);
virtual int isAvailable(Protocol proto, int port=0);
virtual int getCapability(Capability capability);
protected:
RleFile *efile;
RleFile * efile;
private:
void appendTextElement(QDomDocument * qdoc, QDomElement * pe, QString name, QString value);
void appendNumberElement(QDomDocument * qdoc, QDomElement * pe,QString name, int value, bool forceZeroWrite = false);
void appendCDATAElement(QDomDocument * qdoc, QDomElement * pe,QString name, const char * data, int size);
QDomElement getGeneralDataXML(QDomDocument * qdoc, Er9xGeneral * tgen); //parse out data to XML format
QDomElement getModelDataXML(QDomDocument * qdoc, Er9xModelData * tmod, int modelNum, int mdver); //parse out data to XML format
bool loadGeneralDataXML(QDomDocument * qdoc, Er9xGeneral * tgen); // get data from XML
bool loadRadioSettingsDataXML(QDomDocument * qdoc, Er9xGeneral * tgen); // get data from XML
bool loadModelDataXML(QDomDocument * qdoc, Er9xModelData * tmod, int modelNum = -1); // get data from XML
};
#endif
#endif // _ER9XINTERFACE_H_
@@ -1,224 +0,0 @@
/*
* Author - Bertrand Songis <bsongis@gmail.com>
*
* Based on th9x -> http://code.google.com/p/th9x/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#include "firmwares/er9x/er9xsimulator.h"
#include "firmwares/er9x/er9xinterface.h"
#define SIMU
#define SIMU_EXCEPTIONS
#define FRSKY
#define PHASES
#undef min
#undef max
#define NUM_POTS 3
#define SWSRC_SW1 DSW_SW1
#include <exception>
namespace Er9x {
#include "simpgmspace.h"
#include "er9x.cpp"
#include "stamp.cpp"
#include "menus.cpp"
#include "pers.cpp"
#include "file.cpp"
#include "lcd.cpp"
#include "drivers.cpp"
#include "simpgmspace.cpp"
#include "templates.cpp"
#include "frsky.cpp"
#include "audio.cpp"
uint8_t pxxFlag = 0;
int16_t g_anas[7];
#define IS_BACKLIGHT_ON() (PORTB & (1<<OUT_B_LIGHT))
uint16_t anaIn(uint8_t chan)
{
if (chan == 7)
return 1500;
else
return g_anas[chan];
}
bool hasExtendedTrims()
{
return false;
}
void setTrim(uint8_t idx, int8_t value)
{
g_model.trim[idx] = value;
}
void getTrims(int16_t values[4])
{
for (int i=0; i<4; i++)
values[i] = g_model.trim[i];
}
#define GPIO_TRIM_LH_L pind
#define GPIO_TRIM_LV_DN pind
#define GPIO_TRIM_RV_UP pind
#define GPIO_TRIM_RH_L pind
#define GPIO_TRIM_LH_R pind
#define GPIO_TRIM_LV_UP pind
#define GPIO_TRIM_RV_DN pind
#define GPIO_TRIM_RH_R pind
#define PIN_TRIM_LH_L (1<<INP_D_TRM_LH_DWN)
#define PIN_TRIM_LV_DN (1<<INP_D_TRM_LV_DWN)
#define PIN_TRIM_RV_UP (1<<INP_D_TRM_RV_UP)
#define PIN_TRIM_RH_L (1<<INP_D_TRM_RH_DWN)
#define PIN_TRIM_LH_R (1<<INP_D_TRM_LH_UP)
#define PIN_TRIM_LV_UP (1<<INP_D_TRM_LV_UP)
#define PIN_TRIM_RV_DN (1<<INP_D_TRM_RV_DWN)
#define PIN_TRIM_RH_R (1<<INP_D_TRM_RH_UP)
#define TRIM_CASE(key, pin, mask) \
case key: \
if (state) pin |= mask; else pin &= ~mask;\
break;
void simuSetTrim(uint8_t trim, bool state)
{
switch (trim) {
TRIM_CASE(0, GPIO_TRIM_LH_L, PIN_TRIM_LH_L)
TRIM_CASE(1, GPIO_TRIM_LH_R, PIN_TRIM_LH_R)
TRIM_CASE(2, GPIO_TRIM_LV_DN, PIN_TRIM_LV_DN)
TRIM_CASE(3, GPIO_TRIM_LV_UP, PIN_TRIM_LV_UP)
TRIM_CASE(4, GPIO_TRIM_RV_DN, PIN_TRIM_RV_DN)
TRIM_CASE(5, GPIO_TRIM_RV_UP, PIN_TRIM_RV_UP)
TRIM_CASE(6, GPIO_TRIM_RH_L, PIN_TRIM_RH_L)
TRIM_CASE(7, GPIO_TRIM_RH_R, PIN_TRIM_RH_R)
}
}
#define SWITCH_CASE(swtch, pin, mask) \
case swtch: \
if (state) pin &= ~(mask); else pin |= (mask); \
break;
#define SWITCH_3_CASE(swtch, pin1, pin2, mask1, mask2) \
case swtch: \
if (state >= 0) pin1 &= ~(mask1); else pin1 |= (mask1); \
if (state <= 0) pin2 &= ~(mask2); else pin2 |= (mask2); \
break;
void simuSetSwitch(uint8_t swtch, int8_t state)
{
switch (swtch) {
SWITCH_CASE(0, pinc, 1<<INP_C_ThrCt)
SWITCH_CASE(4, pinc, 1<<INP_C_AileDR)
SWITCH_3_CASE(3, ping, pine, (1<<INP_G_ID1), (1<<INP_E_ID2))
SWITCH_CASE(1, ping, 1<<INP_G_RuddDR)
SWITCH_CASE(2, pine, 1<<INP_E_ElevDR)
SWITCH_CASE(5, pine, 1<<INP_E_Gear)
SWITCH_CASE(6, pine, 1<<INP_E_Trainer)
default:
break;
}
}
#define KEY_CASE(key, pin, mask) \
case key: \
if (state) pin |= mask; else pin &= ~mask;\
break;
void simuSetKey(uint8_t key, bool state)
{
switch (key) {
KEY_CASE(KEY_MENU, pinb, (1<<INP_B_KEY_MEN))
KEY_CASE(KEY_EXIT, pinb, (1<<INP_B_KEY_EXT))
KEY_CASE(KEY_RIGHT, pinb, (1<<INP_B_KEY_RGT))
KEY_CASE(KEY_LEFT, pinb, (1<<INP_B_KEY_LFT))
KEY_CASE(KEY_UP, pinb, (1<<INP_B_KEY_UP))
KEY_CASE(KEY_DOWN, pinb, (1<<INP_B_KEY_DWN))
}
}
#define IS_BACKLIGHT_ON() (PORTB & (1<<OUT_B_LIGHT))
}
using namespace Er9x;
Er9xSimulator::Er9xSimulator(Er9xInterface * er9xInterface):
er9xInterface(er9xInterface)
{
}
bool Er9xSimulator::timer10ms()
{
AUDIO_DRIVER(); // the tone generator
AUDIO_HEARTBEAT(); // the queue processing
#define TIMER10MS_IMPORT
#include "simulatorimport.h"
}
uint8_t * Er9xSimulator::getLcd()
{
#define GETLCD_IMPORT
#include "simulatorimport.h"
}
bool Er9xSimulator::lcdChanged(bool & lightEnable)
{
#define LCDCHANGED_IMPORT
#include "simulatorimport.h"
}
void Er9xSimulator::start(RadioData &radioData, bool tests)
{
er9xInterface->save(&eeprom[0], radioData);
StartMainThread(tests);
}
void Er9xSimulator::stop()
{
StopMainThread();
}
void Er9xSimulator::getValues(TxOutputs &outputs)
{
#define GETVALUES_IMPORT
#include "simulatorimport.h"
outputs.beep = audio.busy();
}
void Er9xSimulator::setValues(TxInputs &inputs)
{
#define SETVALUES_IMPORT
#include "simulatorimport.h"
}
void Er9xSimulator::setTrim(unsigned int idx, int value)
{
Er9x::setTrim(idx, value);
}
void Er9xSimulator::getTrims(Trims & trims)
{
trims.extended = false;
Er9x::getTrims(trims.values);
}
const char * Er9xSimulator::getError()
{
#define GETERROR_IMPORT
#include "simulatorimport.h"
}
@@ -1,62 +0,0 @@
/*
* Author - Bertrand Songis <bsongis@gmail.com>
*
* Based on th9x -> http://code.google.com/p/th9x/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#ifndef er9x_simulator_h
#define er9x_simulator_h
#include "simulatorinterface.h"
class RadioData;
class Er9xInterface;
class Er9xSimulator : public SimulatorInterface {
public:
Er9xSimulator(Er9xInterface *);
virtual void start(RadioData & radioData, bool tests);
virtual void stop();
virtual bool timer10ms();
virtual uint8_t * getLcd();
virtual bool lcdChanged(bool & lightEnable);
virtual void setValues(TxInputs &inputs);
virtual void getValues(TxOutputs &outputs);
virtual void setTrim(unsigned int idx, int value);
virtual void getTrims(Trims & trims);
virtual unsigned int getPhase() { return 0; }
virtual const char * getPhaseName(unsigned int phase) { return 0; }
virtual void wheelEvent(uint8_t steps) { }
virtual const char * getError();
protected:
Er9xInterface * er9xInterface;
};
#endif
@@ -1,3 +1,23 @@
/*
* Copyright (C) OpenTX
*
* Based on code named
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include <algorithm>
#include "helpers.h"
#include "ersky9xeeprom.h"
@@ -55,7 +75,7 @@ t_Ersky9xTrainerData::t_Ersky9xTrainerData()
t_Ersky9xTrainerData::operator TrainerData ()
{
TrainerData c9x;
for (int i=0; i<NUM_STICKS; i++) {
for (int i=0; i<CPN_MAX_STICKS; i++) {
c9x.calib[i] = calib[i];
c9x.mix[i] = mix[i];
}
@@ -73,16 +93,16 @@ Ersky9xGeneral::operator GeneralSettings ()
result.version = myVers;
for (int i=0; i<NUM_STICKSnPOTS; i++) {
for (int i=0; i<CPN_MAX_STICKSnPOTS; i++) {
result.calibMid[i] = calibMid[i];
result.calibSpanNeg[i] = calibSpanNeg[i];
result.calibSpanPos[i] = calibSpanPos[i];
}
result.currModel = currModel;
result.currModelIndex = currModel;
result.contrast = contrast;
result.vBatWarn = vBatWarn;
result.vBatCalib = vBatCalib;
result.txVoltageCalibration = txVoltageCalibration;
result.backlightMode = 0;
if (lightSw == 22) {
@@ -100,18 +120,17 @@ Ersky9xGeneral::operator GeneralSettings ()
result.trainer = trainer;
result.view = std::min((uint8_t)4, view);
result.disableThrottleWarning = disableThrottleWarning;
result.switchWarning = disableSwitchWarning ? 0 : -1;
result.disableMemoryWarning = disableMemoryWarning;
switch (beeperVal) {
case 0:
result.beeperMode = e_quiet;
result.beeperMode = GeneralSettings::BEEPER_QUIET;
break;
case 1:
result.beeperMode = e_no_keys;
result.beeperMode = GeneralSettings::BEEPER_NOKEYS;
break;
default:
result.beeperMode = e_all;
result.beeperMode = GeneralSettings::BEEPER_ALL;
result.beeperLength = beeperVal - 4;
break;
}
@@ -123,8 +142,6 @@ Ersky9xGeneral::operator GeneralSettings ()
result.preBeep = preBeep;
result.flashBeep = flashBeep;
result.splashMode = disableSplashScreen;
result.disablePotScroll=(disablePotScroll==1);
result.disableBG=(disableBG==1);
result.templateSetup = templateSetup;
result.PPM_Multiplier = PPM_Multiplier;
getEEPROMString(result.ownerName, ownerName, sizeof(ownerName));
@@ -132,10 +149,9 @@ Ersky9xGeneral::operator GeneralSettings ()
result.speakerPitch = speakerPitch;
result.hapticStrength = hapticStrength - 3;
result.speakerMode = speakerMode;
result.switchWarningStates = switchWarningStates;
result.speakerVolume = volume;
result.backlightBright = bright ;
result.currentCalib = current_calib;
result.txCurrentCalibration = current_calib;
return result;
}
@@ -147,8 +163,8 @@ t_Ersky9xLimitData::t_Ersky9xLimitData()
t_Ersky9xLimitData::operator LimitData ()
{
LimitData c9x;
c9x.min = min-100;
c9x.max = max+100;
c9x.min = 10*(min-100);
c9x.max = 10*(max+100);
c9x.revert = revert;
c9x.offset = offset;
return c9x;
@@ -489,39 +505,37 @@ t_Ersky9xModelData_v10::operator ModelData ()
getEEPROMString(c9x.name, name, sizeof(name));
for (int i=0; i<2; i++) {
c9x.timers[i].mode = getErSky9xTimerMode(timer[i].tmrModeA);
c9x.timers[i].dir = timer[i].tmrDir;
c9x.timers[i].val = timer[i].tmrVal;
}
switch(protocol) {
case 1:
c9x.moduleData[0].protocol = PXX_DJT;
c9x.moduleData[0].protocol = PULSES_PXX_DJT;
break;
case 2:
c9x.moduleData[0].protocol = DSM2;
c9x.moduleData[0].protocol = PULSES_DSM2;
break;
case 3:
c9x.moduleData[0].protocol = PPM16;
c9x.moduleData[0].protocol = PULSES_PPM16;
break;
default:
c9x.moduleData[0].protocol = PPM;
c9x.moduleData[0].protocol = PULSES_PPM;
break;
}
c9x.moduleData[0].ppmFrameLength=ppmFrameLength;
c9x.moduleData[0].ppm.frameLength=ppmFrameLength;
c9x.moduleData[0].channelsCount = 8 + 2 * ppmNCH;
c9x.thrTrim = thrTrim;
c9x.thrExpo = thrExpo;
c9x.trimInc = trimInc-2;
c9x.moduleData[0].ppmDelay = 300 + 50 * ppmDelay;
c9x.funcSw[0].func = FuncInstantTrim;
c9x.moduleData[0].ppm.delay = 300 + 50 * ppmDelay;
c9x.customFn[0].func = FuncInstantTrim;
if (trimSw) {
c9x.funcSw[0].swtch = er9xToSwitch(trimSw);
c9x.customFn[0].swtch = er9xToSwitch(trimSw);
}
c9x.beepANACenter = beepANACenter;
c9x.moduleData[0].ppmPulsePol = pulsePol;
c9x.moduleData[0].ppm.pulsePol = pulsePol;
c9x.extendedLimits = extendedLimits;
c9x.swashRingData.invertELE = swashInvertELE;
c9x.swashRingData.invertAIL = swashInvertAIL;
c9x.swashRingData.invertCOL = swashInvertCOL;
c9x.swashRingData.elevatorWeight = swashInvertELE ? -100 : 100;
c9x.swashRingData.aileronWeight = swashInvertAIL ? -100 : 100;
c9x.swashRingData.collectiveWeight = swashInvertCOL ? -100 : 100;
c9x.swashRingData.type = swashType;
c9x.swashRingData.collectiveSource = ersky9xToSource_v10(swashCollectiveSource);
c9x.swashRingData.value = swashRingValue;
@@ -532,8 +546,8 @@ t_Ersky9xModelData_v10::operator ModelData ()
// expoData
int e = 0;
for (int ch = 0; ch < 4 && e < C9X_MAX_EXPOS; ch++) {
for (int dr = 0, pos = 0; dr < 3 && e < C9X_MAX_EXPOS; dr++, pos++) {
for (int ch = 0; ch < 4 && e < CPN_MAX_EXPOS; ch++) {
for (int dr = 0, pos = 0; dr < 3 && e < CPN_MAX_EXPOS; dr++, pos++) {
if ((dr == 0 && !expoData[ch].drSw1) || (dr == 1 && !expoData[ch].drSw2))
dr = 2;
if (dr == 2 && !expoData[ch].expo[0][0][0] && !expoData[ch].expo[0][0][1] && !expoData[ch].expo[0][1][0] && !expoData[ch].expo[0][1][1])
@@ -556,7 +570,7 @@ t_Ersky9xModelData_v10::operator ModelData ()
}
else {
c9x.expoData[e].mode = 2;
if (e < C9X_MAX_EXPOS - 1) {
if (e < CPN_MAX_EXPOS - 1) {
c9x.expoData[e + 1].swtch = c9x.expoData[e].swtch;
c9x.expoData[++e].chn = ch;
c9x.expoData[e].mode = 1;
@@ -570,7 +584,7 @@ t_Ersky9xModelData_v10::operator ModelData ()
}
}
for (int i=0; i<NUM_STICKS; i++)
for (int i=0; i<CPN_MAX_STICKS; i++)
c9x.flightModeData[0].trim[i] = trim[i];
for (int i=0; i<ERSKY9X_MAX_CURVE5; i++) {
@@ -589,14 +603,13 @@ t_Ersky9xModelData_v10::operator ModelData ()
}
for (int i=0; i<ERSKY9X_NUM_CSW_V10; i++)
c9x.customSw[i] = customSw[i];
c9x.logicalSw[i] = logicalSw[i];
// for (int i=0; i<ERSKY9X_NUM_CHNOUT_V10; i++)
// c9x.safetySw[i] = safetySw[i];
c9x.frsky = frsky;
c9x.frsky.usrProto=FrSkyUsrProto;
c9x.frsky.FrSkyGpsAlt=FrSkyGpsAlt;
return c9x;
}
@@ -607,39 +620,37 @@ t_Ersky9xModelData_v11::operator ModelData ()
getEEPROMString(c9x.name, name, sizeof(name));
for (int i=0; i<2; i++) {
c9x.timers[i].mode = getErSky9xTimerMode(timer[i].tmrModeA);
c9x.timers[i].dir = timer[i].tmrDir;
c9x.timers[i].val = timer[i].tmrVal;
}
switch(protocol) {
case 1:
c9x.moduleData[0].protocol = PXX_DJT;
c9x.moduleData[0].protocol = PULSES_PXX_DJT;
break;
case 2:
c9x.moduleData[0].protocol = DSM2;
c9x.moduleData[0].protocol = PULSES_DSM2;
break;
case 3:
c9x.moduleData[0].protocol = PPM16;
c9x.moduleData[0].protocol = PULSES_PPM16;
break;
default:
c9x.moduleData[0].protocol = PPM;
c9x.moduleData[0].protocol = PULSES_PPM;
break;
}
c9x.moduleData[0].ppmFrameLength=ppmFrameLength;
c9x.moduleData[0].ppm.frameLength=ppmFrameLength;
c9x.moduleData[0].channelsCount = 8 + 2 * ppmNCH;
c9x.thrTrim = thrTrim;
c9x.thrExpo = thrExpo;
c9x.trimInc = trimInc-2;
c9x.moduleData[0].ppmDelay = 300 + 50 * ppmDelay;
c9x.funcSw[0].func = FuncInstantTrim;
c9x.moduleData[0].ppm.delay = 300 + 50 * ppmDelay;
c9x.customFn[0].func = FuncInstantTrim;
if (trimSw) {
c9x.funcSw[0].swtch = er9xToSwitch(trimSw);
c9x.customFn[0].swtch = er9xToSwitch(trimSw);
}
c9x.beepANACenter = beepANACenter;
c9x.moduleData[0].ppmPulsePol = pulsePol;
c9x.moduleData[0].ppm.pulsePol = pulsePol;
c9x.extendedLimits = extendedLimits;
c9x.swashRingData.invertELE = swashInvertELE;
c9x.swashRingData.invertAIL = swashInvertAIL;
c9x.swashRingData.invertCOL = swashInvertCOL;
c9x.swashRingData.elevatorWeight = swashInvertELE ? -100 : 100;
c9x.swashRingData.aileronWeight = swashInvertAIL ? -100 : 100;
c9x.swashRingData.collectiveWeight = swashInvertCOL ? -100 : 100;
c9x.swashRingData.type = swashType;
c9x.swashRingData.collectiveSource = ersky9xToSource_v11(swashCollectiveSource);
c9x.swashRingData.value = swashRingValue;
@@ -650,8 +661,8 @@ t_Ersky9xModelData_v11::operator ModelData ()
// expoData
int e = 0;
for (int ch = 0; ch < 4 && e < C9X_MAX_EXPOS; ch++) {
for (int dr = 0, pos = 0; dr < 3 && e < C9X_MAX_EXPOS; dr++, pos++) {
for (int ch = 0; ch < 4 && e < CPN_MAX_EXPOS; ch++) {
for (int dr = 0, pos = 0; dr < 3 && e < CPN_MAX_EXPOS; dr++, pos++) {
if ((dr == 0 && !expoData[ch].drSw1) || (dr == 1 && !expoData[ch].drSw2))
dr = 2;
if (dr == 2 && !expoData[ch].expo[0][0][0] && !expoData[ch].expo[0][0][1] && !expoData[ch].expo[0][1][0] && !expoData[ch].expo[0][1][1])
@@ -674,7 +685,7 @@ t_Ersky9xModelData_v11::operator ModelData ()
}
else {
c9x.expoData[e].mode = 2;
if (e < C9X_MAX_EXPOS - 1) {
if (e < CPN_MAX_EXPOS - 1) {
c9x.expoData[e + 1].swtch = c9x.expoData[e].swtch;
c9x.expoData[++e].chn = ch;
c9x.expoData[e].mode = 1;
@@ -688,7 +699,7 @@ t_Ersky9xModelData_v11::operator ModelData ()
}
}
for (int i=0; i<NUM_STICKS; i++)
for (int i=0; i<CPN_MAX_STICKS; i++)
c9x.flightModeData[0].trim[i] = trim[i];
for (int i=0; i<ERSKY9X_MAX_CURVE5; i++) {
@@ -707,25 +718,12 @@ t_Ersky9xModelData_v11::operator ModelData ()
}
for (int i=0; i<ERSKY9X_NUM_CSW_V11; i++)
c9x.customSw[i] = customSw[i];
// for (int i=0; i<ERSKY9X_NUM_CHNOUT_V11; i++)
// c9x.safetySw[i] = safetySw[i];
c9x.logicalSw[i] = logicalSw[i];
c9x.frsky = frsky;
c9x.frsky.usrProto=FrSkyUsrProto;
c9x.frsky.FrSkyGpsAlt=FrSkyGpsAlt;
// for (int i=0; i<8; i++) {
// c9x.frskyalarms[i].frskyAlarmLimit=frskyAlarms.alarmData[i].frskyAlarmLimit;
// c9x.frskyalarms[i].frskyAlarmSound=frskyAlarms.alarmData[i].frskyAlarmSound;
// c9x.frskyalarms[i].frskyAlarmType=frskyAlarms.alarmData[i].frskyAlarmType;
// }
// for (int i=0; i<8; i++) {
// c9x.customdisplay[i]=customDisplayIndex[i];
// }
for (int i=0; i<5;i++) {
c9x.flightModeData[0].gvars[i]=gvars[i].gvar;
// c9x.gvsource[i]=gvars[i].gvsource;
}
return c9x;
}
+23 -18
View File
@@ -1,7 +1,12 @@
/*
* Author - Bertrand Songis <bsongis@gmail.com>
* Copyright (C) OpenTX
*
* Based on th9x -> http://code.google.com/p/th9x/
* Based on code named
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
@@ -11,10 +16,10 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#ifndef ersky9xeeprom_h
#define ersky9xeeprom_h
#ifndef _ERSKY9XEEPROM_H_
#define _ERSKY9XEEPROM_H_
#include <inttypes.h>
#include "eeprominterface.h"
@@ -40,7 +45,7 @@ extern RawSwitch getEr9xTimerMode(int mode);
#define ERSKY9X_NUM_VOICE 8
#define ERSKY9X_MAX_GVARS 7
#define NUM_STICKSnPOTS 7 //number of sticks and pots
#define CPN_MAX_STICKSnPOTS 7 //number of sticks and pots
PACK(typedef struct t_Ersky9xTrainerMix {
uint8_t srcChn:3; //0-7 = ch1-8
@@ -62,14 +67,14 @@ PACK(typedef struct t_Ersky9xTrainerData {
PACK(typedef struct t_Ersky9xGeneral {
uint8_t myVers;
int16_t calibMid[NUM_STICKSnPOTS];
int16_t calibSpanNeg[NUM_STICKSnPOTS];
int16_t calibSpanPos[NUM_STICKSnPOTS];
int16_t calibMid[CPN_MAX_STICKSnPOTS];
int16_t calibSpanNeg[CPN_MAX_STICKSnPOTS];
int16_t calibSpanPos[CPN_MAX_STICKSnPOTS];
uint16_t chkSum;
uint8_t currModel; //0..15
uint8_t contrast;
uint8_t vBatWarn;
int8_t vBatCalib;
int8_t txVoltageCalibration;
int8_t lightSw;
Ersky9xTrainerData trainer;
uint8_t view;
@@ -143,7 +148,7 @@ PACK(typedef struct t_Ersky9xLimitData {
#define MLTPX_REP 2
PACK(typedef struct t_Ersky9xMixData_v10 {
uint8_t destCh; // 1..C9X_NUM_CHNOUT
uint8_t destCh; // 1..CPN_MAX_CHNOUT
uint8_t srcRaw; //
int8_t weight;
int8_t swtch;
@@ -165,7 +170,7 @@ PACK(typedef struct t_Ersky9xMixData_v10 {
}) Ersky9xMixData_v10;
PACK(typedef struct t_Ersky9xMixData_v11 {
uint8_t destCh; // 1..C9X_NUM_CHNOUT
uint8_t destCh; // 1..CPN_MAX_CHNOUT
uint8_t srcRaw; //
int8_t weight;
int8_t swtch;
@@ -246,13 +251,13 @@ PACK(typedef struct t_Ersky9xFlightModeData {
uint16_t spare ; // Future expansion
}) Ersky9xFlightModeData;
PACK(typedef struct t_Ersky9xFuncSwData { // Function Switches data
PACK(typedef struct t_Ersky9xCustomFunctionData { // Function Switches data
int8_t swtch; //input
uint8_t func;
char param[6];
uint8_t delay;
uint8_t spare;
}) Ersky9xFuncSwData;
}) Ersky9xCustomFunctionData;
PACK(typedef struct t_Ersky9xFrSkyChannelData_v10 {
uint8_t ratio; // 0.0 means not used, 0.1V steps EG. 6.6 Volts = 66. 25.1V = 251, etc.
@@ -360,7 +365,7 @@ PACK(typedef struct t_Ersky9xModelData_v10 {
int8_t trim[4];
int8_t curves5[ERSKY9X_MAX_CURVE5][5];
int8_t curves9[ERSKY9X_MAX_CURVE9][9];
Ersky9xLogicalSwitchData_v10 customSw[ERSKY9X_NUM_CSW_V10];
Ersky9xLogicalSwitchData_v10 logicalSw[ERSKY9X_NUM_CSW_V10];
uint8_t frSkyVoltThreshold ;
uint8_t res3[2];
Ersky9xSafetySwData_v10 safetySw[ERSKY9X_NUM_CHNOUT_V10];
@@ -409,7 +414,7 @@ PACK(typedef struct t_Ersky9xModelData_v11 {
int8_t curves5[ERSKY9X_MAX_CURVE5][5];
int8_t curves9[ERSKY9X_MAX_CURVE9][9];
int8_t curvexy[18];
Ersky9xLogicalSwitchData_v11 customSw[ERSKY9X_NUM_CSW_V11];
Ersky9xLogicalSwitchData_v11 logicalSw[ERSKY9X_NUM_CSW_V11];
uint8_t frSkyVoltThreshold ;
uint8_t bt_telemetry;
uint8_t numVoice; // 0-16, rest are Safety switches
@@ -420,7 +425,7 @@ PACK(typedef struct t_Ersky9xModelData_v11 {
Ersky9xFrSkyAlarmData_v11 frskyAlarms ;
// Add 6 bytes for custom telemetry screen
uint8_t customDisplayIndex[6] ;
Ersky9xFuncSwData funcSw[ERSKY9X_NUM_FSW];
Ersky9xCustomFunctionData customFn[ERSKY9X_NUM_FSW];
Ersky9xFlightModeData flightModeData[6] ;
Ersky9xGvarData gvars[ERSKY9X_MAX_GVARS] ;
@@ -428,4 +433,4 @@ PACK(typedef struct t_Ersky9xModelData_v11 {
t_Ersky9xModelData_v11() { memset(this, 0, sizeof(t_Ersky9xModelData_v11)); }
}) Ersky9xModelData_v11;
#endif
#endif // _ERSKY9XEEPROM_H_
@@ -1,7 +1,12 @@
/*
* Author - Bertrand Songis <bsongis@gmail.com>
*
* Based on th9x -> http://code.google.com/p/th9x/
* Copyright (C) OpenTX
*
* Based on code named
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
@@ -11,15 +16,13 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#include <iostream>
#include <QMessageBox>
#include "ersky9xinterface.h"
#include "ersky9xeeprom.h"
#include "ersky9xsimulator.h"
#include "file.h"
#include "rlefile.h"
#include <iostream>
#include <bitset>
#define FILE_TYP_GENERAL 1
#define FILE_TYP_MODEL 2
@@ -31,7 +34,7 @@
#define FILE_TMP (1+16)
Ersky9xInterface::Ersky9xInterface():
EEPROMInterface(BOARD_SKY9X),
EEPROMInterface(Board::BOARD_SKY9X),
efile(new RleFile())
{
}
@@ -46,16 +49,6 @@ const char * Ersky9xInterface::getName()
return "Ersky9x";
}
const int Ersky9xInterface::getEEpromSize()
{
return EESIZE_SKY9X;
}
const int Ersky9xInterface::getMaxModels()
{
return 20;
}
inline void applyStickModeToModel(Ersky9xModelData_v10 & model, unsigned int mode)
{
for (int i=0; i<2; i++) {
@@ -74,12 +67,12 @@ inline void applyStickModeToModel(Ersky9xModelData_v10 & model, unsigned int mod
for (int i=0; i<ERSKY9X_MAX_MIXERS_V10; i++)
model.mixData[i].srcRaw = applyStickMode(model.mixData[i].srcRaw, mode);
for (int i=0; i<ERSKY9X_NUM_CSW_V10; i++) {
switch (LogicalSwitchData(model.customSw[i].func).getFunctionFamily()) {
switch (LogicalSwitchData(model.logicalSw[i].func).getFunctionFamily()) {
case LS_FAMILY_VCOMP:
model.customSw[i].v2 = applyStickMode(model.customSw[i].v2, mode);
model.logicalSw[i].v2 = applyStickMode(model.logicalSw[i].v2, mode);
// no break
case LS_FAMILY_VOFS:
model.customSw[i].v1 = applyStickMode(model.customSw[i].v1, mode);
model.logicalSw[i].v1 = applyStickMode(model.logicalSw[i].v1, mode);
break;
default:
break;
@@ -106,12 +99,12 @@ inline void applyStickModeToModel(Ersky9xModelData_v11 & model, unsigned int mod
for (int i=0; i<ERSKY9X_MAX_MIXERS_V11; i++)
model.mixData[i].srcRaw = applyStickMode(model.mixData[i].srcRaw, mode);
for (int i=0; i<ERSKY9X_NUM_CSW_V11; i++) {
switch (LogicalSwitchData(model.customSw[i].func).getFunctionFamily()) {
switch (LogicalSwitchData(model.logicalSw[i].func).getFunctionFamily()) {
case LS_FAMILY_VCOMP:
model.customSw[i].v2 = applyStickMode(model.customSw[i].v2, mode);
model.logicalSw[i].v2 = applyStickMode(model.logicalSw[i].v2, mode);
// no break
case LS_FAMILY_VOFS:
model.customSw[i].v1 = applyStickMode(model.customSw[i].v1, mode);
model.logicalSw[i].v1 = applyStickMode(model.logicalSw[i].v1, mode);
break;
default:
break;
@@ -120,60 +113,77 @@ inline void applyStickModeToModel(Ersky9xModelData_v11 & model, unsigned int mod
model.swashCollectiveSource = applyStickMode(model.swashCollectiveSource, mode);
}
bool Ersky9xInterface::loadxml(RadioData &radioData, QDomDocument &doc)
#if 0
unsigned long Ersky9xInterface::loadxml(RadioData &radioData, QDomDocument &doc)
{
std::cout << "trying ersky9x xml import... ";
QDebug dbg = qDebug();
dbg.setAutoInsertSpaces(false);
dbg << "trying ersky9x xml import... ";
std::bitset<NUM_ERRORS> errors;
Ersky9xGeneral ersky9xGeneral;
memset(&ersky9xGeneral,0,sizeof(ersky9xGeneral));
if(!loadGeneralDataXML(&doc, &ersky9xGeneral)) {
return false;
if(!loadRadioSettingsDataXML(&doc, &ersky9xGeneral)) {
errors.set(UNKNOWN_ERROR);
return errors.to_ulong();
}
else {
radioData.generalSettings=ersky9xGeneral;
std::cout << "version " << (unsigned int)ersky9xGeneral.myVers << " ";
dbg << "version " << (unsigned int)ersky9xGeneral.myVers << " ";
}
for(int i=0; i<getMaxModels(); i++) {
for(int i=0; i<getCapability(Models); i++) {
if (ersky9xGeneral.myVers == 10) {
if (!loadModelDataXML<Ersky9xModelData_v10>(&doc, &radioData.models[i], i, radioData.generalSettings.stickMode+1)) {
std::cout << "ko\n";
return false;
dbg << "ko";
errors.set(UNKNOWN_ERROR);
return errors.to_ulong();
}
}
else {
if (!loadModelDataXML<Ersky9xModelData_v11>(&doc, &radioData.models[i], i, radioData.generalSettings.stickMode+1)) {
std::cout << "ko\n";
return false;
dbg << "ko";
errors.set(UNKNOWN_ERROR);
return errors.to_ulong();
}
}
}
std::cout << "ok\n";
return true;
dbg << "ok";
errors.set(ALL_OK);
return errors.to_ulong();
}
#endif
bool Ersky9xInterface::load(RadioData &radioData, const uint8_t *eeprom, int size)
unsigned long Ersky9xInterface::load(RadioData &radioData, const uint8_t *eeprom, int size)
{
std::cout << "trying ersky9x import... ";
QDebug dbg = qDebug();
dbg.setAutoInsertSpaces(false);
dbg << "trying ersky9x import... ";
if (size != EESIZE_SKY9X) {
std::cout << "wrong size\n";
return false;
std::bitset<NUM_ERRORS> errors;
if (size != Boards::getEEpromSize(Board::BOARD_SKY9X)) {
dbg << "wrong size";
errors.set(WRONG_SIZE);
return errors.to_ulong();
}
if (!efile->EeFsOpen((uint8_t *)eeprom, size, BOARD_SKY9X)) {
std::cout << "wrong file system\n";
return false;
if (!efile->EeFsOpen((uint8_t *)eeprom, size, Board::BOARD_SKY9X)) {
dbg << "wrong file system";
errors.set(WRONG_FILE_SYSTEM);
return errors.to_ulong();
}
efile->openRd(FILE_GENERAL);
Ersky9xGeneral ersky9xGeneral;
if (efile->readRlc2((uint8_t*)&ersky9xGeneral, 1) != 1) {
std::cout << "no\n";
return false;
dbg << "no";
errors.set(UNKNOWN_ERROR);
return errors.to_ulong();
}
std::cout << "version " << (unsigned int)ersky9xGeneral.myVers << " ";
dbg << "version " << (unsigned int)ersky9xGeneral.myVers << " ";
switch(ersky9xGeneral.myVers) {
case 10:
@@ -181,24 +191,26 @@ bool Ersky9xInterface::load(RadioData &radioData, const uint8_t *eeprom, int siz
case 11:
break;
default:
std::cout << "not ersky9x\n";
return false;
dbg << "not ersky9x";
errors.set(NOT_ERSKY9X);
return errors.to_ulong();
}
efile->openRd(FILE_GENERAL);
if (!efile->readRlc2((uint8_t*)&ersky9xGeneral, sizeof(Ersky9xGeneral))) {
std::cout << "ko\n";
return false;
dbg << "ko";
errors.set(UNKNOWN_ERROR);
return errors.to_ulong();
}
radioData.generalSettings = ersky9xGeneral;
for (int i=0; i<getMaxModels(); i++) {
for (int i=0; i<getCapability(Models); i++) {
uint8_t buffer[4096];
uint size;
memset(buffer,0,sizeof(buffer));
efile->openRd(FILE_MODEL(i));
// if (!efile->readRlc2((uint8_t*)&ersky9xModel, sizeof(Ersky9xModelData))) {
size=efile->readRlc2(buffer, 4096);
size = efile->readRlc2(buffer, 4096);
if (!size) {
radioData.models[i].clear();
}
@@ -214,43 +226,38 @@ bool Ersky9xInterface::load(RadioData &radioData, const uint8_t *eeprom, int siz
applyStickModeToModel(ersky9xModel, radioData.generalSettings.stickMode+1);
radioData.models[i] = ersky9xModel;
}
}
}
}
std::cout << "ok\n";
return true;
dbg << "ok";
errors.set(ALL_OK);
return errors.to_ulong();
}
bool Ersky9xInterface::loadBackup(RadioData &radioData, uint8_t *eeprom, int esize, int index)
unsigned long Ersky9xInterface::loadBackup(RadioData &radioData, const uint8_t *eeprom, int esize, int index)
{
return false;
std::bitset<NUM_ERRORS> errors;
errors.set(UNKNOWN_ERROR);
return errors.to_ulong();
}
int Ersky9xInterface::save(uint8_t *eeprom, RadioData &radioData, uint32_t variant, uint8_t version)
{
std::cout << "NO!\n";
// TODO an error
return 0;
}
int Ersky9xInterface::getSize(ModelData &model)
int Ersky9xInterface::getSize(const ModelData & model)
{
return 0;
}
int Ersky9xInterface::getSize(GeneralSettings &settings)
int Ersky9xInterface::getSize(const GeneralSettings & settings)
{
return 0;
}
int Ersky9xInterface::isAvailable(Protocol prot, int port)
int Ersky9xInterface::isAvailable(PulsesProtocol prot, int port)
{
switch (prot) {
case PPM:
case DSM2:
case PXX_DJT:
case PPM16:
case PULSES_PPM:
case PULSES_DSM2:
case PULSES_PXX_DJT:
case PULSES_PPM16:
return 1;
default:
return 0;
@@ -290,7 +297,7 @@ QDomElement Ersky9xInterface::getGeneralDataXML(QDomDocument * qdoc, Ersky9xGene
{
QDomElement gd = qdoc->createElement("GENERAL_DATA");
appendNumberElement(qdoc, &gd, "Version", tgen->myVers, true); // have to write value here
appendTextElement(qdoc, &gd, "Owner", QString::fromAscii(tgen->ownerName,sizeof(tgen->ownerName)).trimmed());
appendTextElement(qdoc, &gd, "Owner", QString::fromLatin1(tgen->ownerName,sizeof(tgen->ownerName)).trimmed());
appendCDATAElement(qdoc, &gd, "Data", (const char *)tgen,sizeof(Ersky9xGeneral));
return gd;
}
@@ -300,32 +307,32 @@ QDomElement Ersky9xInterface::getModelDataXML(QDomDocument * qdoc, Ersky9xModelD
QDomElement md = qdoc->createElement("MODEL_DATA");
md.setAttribute("number", modelNum);
appendNumberElement(qdoc, &md, "Version", mdver, true); // have to write value here
appendTextElement(qdoc, &md, "Name", QString::fromAscii(tmod->name,sizeof(tmod->name)).trimmed());
appendTextElement(qdoc, &md, "Name", QString::fromLatin1(tmod->name,sizeof(tmod->name)).trimmed());
appendCDATAElement(qdoc, &md, "Data", (const char *)tmod,sizeof(Ersky9xModelData_v11));
return md;
}
bool Ersky9xInterface::loadGeneralDataXML(QDomDocument * qdoc, Ersky9xGeneral * tgen)
bool Ersky9xInterface::loadRadioSettingsDataXML(QDomDocument * qdoc, Ersky9xGeneral * tgen)
{
//look for "GENERAL_DATA" tag
// look for "GENERAL_DATA" tag
QDomElement gde = qdoc->elementsByTagName("GENERAL_DATA").at(0).toElement();
if(gde.isNull()) // couldn't find
return false;
//load cdata into tgen
// load cdata into tgen
QDomNode n = gde.elementsByTagName("Data").at(0).firstChild();// get all children in Data
while (!n.isNull()) {
if (n.isCDATASection()) {
QString ds = n.toCDATASection().data();
QByteArray ba = QByteArray::fromBase64(ds.toAscii());
QByteArray ba = QByteArray::fromBase64(ds.toLatin1());
const char * data = ba.data();
memcpy(tgen, data, std::min((unsigned int)ba.size(), (unsigned int)sizeof(Ersky9xGeneral)));
break;
}
n = n.nextSibling();
}
//check version?
// check version?
return true;
}
@@ -335,11 +342,11 @@ bool Ersky9xInterface::loadModelDataXML(QDomDocument * qdoc, ModelData *model, i
T ersky9xModel;
memset(&ersky9xModel, 0, sizeof(ersky9xModel));
//look for MODEL_DATA with modelNum attribute.
// look for MODEL_DATA with modelNum attribute.
//if modelNum = -1 then just pick the first one
QDomNodeList ndl = qdoc->elementsByTagName("MODEL_DATA");
//cycle through nodes to find correct model number
// cycle through nodes to find correct model number
QDomNode k = ndl.at(0);
if (modelNum>=0) {
while(!k.isNull()) {
@@ -353,12 +360,12 @@ bool Ersky9xInterface::loadModelDataXML(QDomDocument * qdoc, ModelData *model, i
if (k.isNull()) // couldn't find
return false;
//load cdata into tgen
// load cdata into tgen
QDomNode n = k.toElement().elementsByTagName("Data").at(0).firstChild();// get all children in Data
while (!n.isNull()) {
if (n.isCDATASection()) {
QString ds = n.toCDATASection().data();
QByteArray ba = QByteArray::fromBase64(ds.toAscii());
QByteArray ba = QByteArray::fromBase64(ds.toLatin1());
const char * data = ba.data();
memcpy(&ersky9xModel, data, std::min(ba.size(), (int)sizeof(ersky9xModel)));
break;
@@ -370,3 +377,13 @@ bool Ersky9xInterface::loadModelDataXML(QDomDocument * qdoc, ModelData *model, i
*model = ersky9xModel;
return true;
}
int Ersky9xInterface::getCapability(Capability capability)
{
switch (capability) {
case Models:
return 20;
default:
return 0;
}
}
@@ -1,7 +1,12 @@
/*
* Author - Bertrand Songis <bsongis@gmail.com>
*
* Based on th9x -> http://code.google.com/p/th9x/
* Copyright (C) OpenTX
*
* Based on code named
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
@@ -11,13 +16,15 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#ifndef ersky9x_interface_h
#define ersky9x_interface_h
#ifndef _ERSKY9XINTERFACE_H_
#define _ERSKY9XINTERFACE_H_
#include <QtXml>
#include "eeprominterface.h"
#include "ersky9xeeprom.h"
class RleFile;
class Ersky9xInterface : public EEPROMInterface
@@ -30,27 +37,27 @@ class Ersky9xInterface : public EEPROMInterface
virtual const char * getName();
virtual const int getEEpromSize();
virtual const int getMaxModels();
virtual bool load(RadioData &, const uint8_t * eeprom, int size);
virtual bool loadBackup(RadioData &, uint8_t * eeprom, int esize, int index);
virtual bool loadxml(RadioData &radioData, QDomDocument &doc);
virtual int save(uint8_t * eeprom, RadioData & radioData, uint32_t variant=0, uint8_t version=0);
virtual int getSize(ModelData &);
virtual int getSize(GeneralSettings &settings);
virtual unsigned long load(RadioData &, const uint8_t * eeprom, int size);
virtual int isAvailable(Protocol proto, int port=0);
virtual unsigned long loadBackup(RadioData &, const uint8_t * eeprom, int esize, int index);
virtual int save(uint8_t * eeprom, const RadioData & radioData, uint8_t version=0, uint32_t variant=0)
{
return 0;
}
virtual int getSize(const ModelData &);
virtual int getSize(const GeneralSettings & settings);
virtual int isAvailable(PulsesProtocol proto, int port=0);
virtual int getCapability(Capability capability);
protected:
RleFile *efile;
RleFile * efile;
private:
void appendTextElement(QDomDocument * qdoc, QDomElement * pe, QString name, QString value);
@@ -63,11 +70,11 @@ class Ersky9xInterface : public EEPROMInterface
QDomElement getModelDataXML(QDomDocument * qdoc, Ersky9xModelData_v11 * tmod, int modelNum, int mdver); //parse out data to XML format
bool loadGeneralDataXML(QDomDocument * qdoc, Ersky9xGeneral * tgen); // get data from XML
bool loadRadioSettingsDataXML(QDomDocument * qdoc, Ersky9xGeneral * tgen); // get data from XML
template <class T>
bool loadModelDataXML(QDomDocument * qdoc, ModelData * model, int modelNum, int stickMode); // get data from XML
};
#endif
#endif // _ERSKY9XINTERFACE_H_
@@ -1,247 +0,0 @@
/*
* Author - Bertrand Songis <bsongis@gmail.com>
*
* Based on th9x -> http://code.google.com/p/th9x/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#include "firmwares/ersky9x/ersky9xsimulator.h"
#include "firmwares/ersky9x/ersky9xinterface.h"
#define SIMU
#define SIMU_EXCEPTIONS
#define PCBSKY9X
#define PCBSKY
#define STAMP
#define FRSKY
#define FRSKY_HUB
#define WS_HOW_HIGH
#define TEMPLATES
#define HELI
#define HAPTIC
#define AUDIO
#define REVB
#define NUM_POTS 3
#define SWSRC_SW1 DSW_SW1
#undef min
#undef max
#include <exception>
namespace Ersky9x {
#include "../ersky9x/timers.h"
#include "../ersky9x/ersky9x.cpp"
#include "../ersky9x/stamp.cpp"
#include "../ersky9x/menus.cpp"
#include "../ersky9x/pers.cpp"
#include "../ersky9x/file.cpp"
#include "../ersky9x/lcd.cpp"
#include "../ersky9x/drivers.cpp"
#include "../ersky9x/logicio.cpp"
#include "../ersky9x/timers.cpp"
#include "../ersky9x/simpgmspace.cpp"
#include "../ersky9x/templates.cpp"
#include "../ersky9x/frsky.cpp"
#include "../ersky9x/audio.cpp"
#include "../ersky9x/sound.cpp"
#include "../ersky9x/diskio.cpp"
#define IS_BACKLIGHT_ON() (PWM->PWM_CH_NUM[0].PWM_CDTY != 100)
//uint8_t pxxFlag = 0;
int16_t g_anas[7];
uint16_t anaIn(uint8_t chan)
{
if (chan == 7)
return 1500;
else
return g_anas[chan];
}
bool hasExtendedTrims()
{
return false;
}
void setTrim(uint8_t idx, int8_t value)
{
g_model.trim[idx] = value;
}
void getTrims(int16_t values[4])
{
for (int i=0; i<4; i++)
values[i] = g_model.trim[i];
}
#define SWITCH_CASE(swtch, pin, mask) \
case swtch: \
if (state) pin |= (mask); else pin &= ~(mask); \
break;
#define SWITCH_3_CASE(swtch, pin1, pin2, mask1, mask2) \
case swtch: \
if (state < 0) pin1 &= ~(mask1); else pin1 |= (mask1); \
if (state > 0) pin2 &= ~(mask2); else pin2 |= (mask2); \
break;
void simuSetSwitch(uint8_t swtch, int8_t state)
{
// printf("swtch=%d state=%d\n", swtch, state); fflush(stdout);
switch (swtch) {
SWITCH_CASE(0, PIOC->PIO_PDSR, 1<<20)
SWITCH_CASE(1, PIOA->PIO_PDSR, 1<<15)
SWITCH_CASE(2, PIOC->PIO_PDSR, 1<<31)
SWITCH_3_CASE(3, PIOC->PIO_PDSR, PIOC->PIO_PDSR, 0x00004000, 0x00000800)
SWITCH_CASE(4, PIOA->PIO_PDSR, 1<<2)
SWITCH_CASE(5, PIOC->PIO_PDSR, 1<<16)
SWITCH_CASE(6, PIOC->PIO_PDSR, 1<<8)
default:
break;
}
}
#define GPIO_BUTTON_MENU PIOB->PIO_PDSR
#define GPIO_BUTTON_EXIT PIOC->PIO_PDSR
#define GPIO_BUTTON_UP PIOC->PIO_PDSR
#define GPIO_BUTTON_DOWN PIOC->PIO_PDSR
#define GPIO_BUTTON_RIGHT PIOC->PIO_PDSR
#define GPIO_BUTTON_LEFT PIOC->PIO_PDSR
#define PIN_BUTTON_MENU 0x00000020
#define PIN_BUTTON_EXIT 0x01000000
#define PIN_BUTTON_UP 0x00000002
#define PIN_BUTTON_DOWN 0x00000020
#define PIN_BUTTON_RIGHT 0x00000010
#define PIN_BUTTON_LEFT 0x00000008
#define KEY_CASE(key, pin, mask) \
case key: \
if (state) pin &= ~mask; else pin |= mask;\
break;
void simuSetKey(uint8_t key, bool state)
{
switch (key) {
KEY_CASE(KEY_MENU, GPIO_BUTTON_MENU, PIN_BUTTON_MENU)
KEY_CASE(KEY_EXIT, GPIO_BUTTON_EXIT, PIN_BUTTON_EXIT)
KEY_CASE(KEY_RIGHT, GPIO_BUTTON_RIGHT, PIN_BUTTON_RIGHT)
KEY_CASE(KEY_LEFT, GPIO_BUTTON_LEFT, PIN_BUTTON_LEFT)
KEY_CASE(KEY_UP, GPIO_BUTTON_UP, PIN_BUTTON_UP)
KEY_CASE(KEY_DOWN, GPIO_BUTTON_DOWN, PIN_BUTTON_DOWN)
}
}
#define GPIO_TRIM_LH_L PIOA->PIO_PDSR
#define GPIO_TRIM_LV_DN PIOA->PIO_PDSR
#define GPIO_TRIM_RV_UP PIOA->PIO_PDSR
#define GPIO_TRIM_RH_L PIOA->PIO_PDSR
#define GPIO_TRIM_LH_R PIOB->PIO_PDSR
#define GPIO_TRIM_LV_UP PIOC->PIO_PDSR
#define GPIO_TRIM_RV_DN PIOC->PIO_PDSR
#define GPIO_TRIM_RH_R PIOC->PIO_PDSR
#define PIN_TRIM_LH_L 0x00800000
#define PIN_TRIM_LV_DN 0x01000000
#define PIN_TRIM_RV_UP 0x00000002
#define PIN_TRIM_RH_L 0x00000001
#define PIN_TRIM_LH_R 0x00000010
#define PIN_TRIM_LV_UP 0x10000000
#define PIN_TRIM_RV_DN 0x00000400
#define PIN_TRIM_RH_R 0x00000200
#define TRIM_CASE KEY_CASE
void simuSetTrim(uint8_t trim, bool state)
{
switch (trim) {
TRIM_CASE(0, GPIO_TRIM_LH_L, PIN_TRIM_LH_L)
TRIM_CASE(1, GPIO_TRIM_LH_R, PIN_TRIM_LH_R)
TRIM_CASE(2, GPIO_TRIM_LV_DN, PIN_TRIM_LV_DN)
TRIM_CASE(3, GPIO_TRIM_LV_UP, PIN_TRIM_LV_UP)
TRIM_CASE(4, GPIO_TRIM_RV_DN, PIN_TRIM_RV_DN)
TRIM_CASE(5, GPIO_TRIM_RV_UP, PIN_TRIM_RV_UP)
TRIM_CASE(6, GPIO_TRIM_RH_L, PIN_TRIM_RH_L)
TRIM_CASE(7, GPIO_TRIM_RH_R, PIN_TRIM_RH_R)
}
}
}
using namespace Ersky9x;
Ersky9xSimulator::Ersky9xSimulator(Ersky9xInterface * ersky9xInterface):
ersky9xInterface(ersky9xInterface)
{
}
bool Ersky9xSimulator::timer10ms()
{
#define TIMER10MS_IMPORT
#include "simulatorimport.h"
}
uint8_t * Ersky9xSimulator::getLcd()
{
#define GETLCD_IMPORT
#include "simulatorimport.h"
}
bool Ersky9xSimulator::lcdChanged(bool & lightEnable)
{
#define LCDCHANGED_IMPORT
#include "simulatorimport.h"
}
void Ersky9xSimulator::start(RadioData &radioData, bool tests)
{
ersky9xInterface->save(Ersky9x::eeprom, radioData);
StartEepromThread(NULL);
StartMainThread(tests);
}
void Ersky9xSimulator::stop()
{
StopMainThread();
StopEepromThread();
}
void Ersky9xSimulator::getValues(TxOutputs &outputs)
{
#define GETVALUES_IMPORT
#include "simulatorimport.h"
}
void Ersky9xSimulator::setValues(TxInputs &inputs)
{
#define SETVALUES_IMPORT
#include "simulatorimport.h"
}
void Ersky9xSimulator::setTrim(unsigned int idx, int value)
{
Ersky9x::setTrim(idx, value);
}
void Ersky9xSimulator::getTrims(Trims & trims)
{
trims.extended = false;
Ersky9x::getTrims(trims.values);
}
const char * Ersky9xSimulator::getError()
{
#define GETERROR_IMPORT
#include "simulatorimport.h"
}
@@ -1,62 +0,0 @@
/*
* Author - Bertrand Songis <bsongis@gmail.com>
*
* Based on th9x -> http://code.google.com/p/th9x/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#ifndef ersky9x_simulator_h
#define ersky9x_simulator_h
#include "simulatorinterface.h"
class RadioData;
class Ersky9xInterface;
class Ersky9xSimulator : public SimulatorInterface {
public:
Ersky9xSimulator(Ersky9xInterface *);
virtual void start(RadioData & radioData, bool tests);
virtual void stop();
virtual bool timer10ms();
virtual uint8_t * getLcd();
virtual bool lcdChanged(bool & lightEnable);
virtual void setValues(TxInputs &inputs);
virtual void getValues(TxOutputs &outputs);
virtual void setTrim(unsigned int idx, int value);
virtual void getTrims(Trims & trims);
virtual unsigned int getPhase() { return 0; }
virtual const char * getPhaseName(unsigned int phase) { return 0; }
virtual void wheelEvent(uint8_t steps) { }
virtual const char * getError();
protected:
Ersky9xInterface * ersky9xInterface;
};
#endif
@@ -1,734 +0,0 @@
#include <stdlib.h>
#include <algorithm>
#include "helpers.h"
#include "gruvin9xeeprom.h"
#include <QObject>
#define EEPROM_VER 106
extern void getEEPROMZString(char *dst, const char *src, int size);
RawSwitch gruvin9xToSwitch(int8_t sw)
{
if (sw == 0)
return RawSwitch(SWITCH_TYPE_NONE);
else if (sw <= 9)
return RawSwitch(SWITCH_TYPE_SWITCH, sw);
else
return RawSwitch(SWITCH_TYPE_VIRTUAL, sw > 0 ? sw-9 : sw+9);
}
t_Gruvin9xTrainerMix_v103::operator TrainerMix()
{
TrainerMix c9x;
c9x.src = srcChn;
c9x.swtch = gruvin9xToSwitch(swtch);
c9x.weight = (25 * studWeight) / 8;
c9x.mode = mode;
return c9x;
}
t_Gruvin9xTrainerMix_v104::operator TrainerMix()
{
TrainerMix c9x;
c9x.src = srcChn;
c9x.weight = studWeight;
c9x.mode = mode;
return c9x;
}
t_Gruvin9xTrainerData_v103::operator TrainerData ()
{
TrainerData c9x;
for (int i=0; i<NUM_STICKS; i++) {
c9x.calib[i] = calib[i];
c9x.mix[i] = mix[i];
}
return c9x;
}
t_Gruvin9xTrainerData_v104::operator TrainerData ()
{
TrainerData c9x;
for (int i=0; i<NUM_STICKS; i++) {
c9x.calib[i] = calib[i];
c9x.mix[i] = mix[i];
}
return c9x;
}
Gruvin9xGeneral_v103::operator GeneralSettings ()
{
GeneralSettings result;
for (int i=0; i<NUM_STICKS+BOARD_9X_NUM_POTS; i++) {
result.calibMid[i] = calibMid[i];
result.calibSpanNeg[i] = calibSpanNeg[i];
result.calibSpanPos[i] = calibSpanPos[i];
}
result.currModel = currModel;
result.contrast = contrast;
result.vBatWarn = vBatWarn;
result.vBatCalib = vBatCalib;
result.backlightMode = 0;
if (lightSw == 22) {
result.backlightMode = 4;
}
else if (lightAutoOff) {
result.backlightMode |= 1;
result.backlightDelay = lightAutoOff;
}
result.trainer = trainer;
result.view = view;
result.disableThrottleWarning = disableThrottleWarning;
result.switchWarning = switchWarning;
switch (beeperVal) {
case 0:
result.beeperMode = e_quiet;
break;
case 1:
result.beeperMode = e_no_keys;
break;
default:
result.beeperMode = e_all;
result.beeperLength = beeperVal - 4;
break;
}
result.disableMemoryWarning = disableMemoryWarning;
result.disableAlarmWarning = disableAlarmWarning;
result.stickMode = stickMode;
result.inactivityTimer = inactivityTimer;
result.minuteBeep = minuteBeep;
result.preBeep = preBeep;
result.flashBeep = flashBeep;
result.splashMode = disableSplashScreen;
result.enableTelemetryAlarm = enableTelemetryAlarm;
result.templateSetup = templateSetup;
result.PPM_Multiplier = PPM_Multiplier;
// TODO frskyRssiAlarms[2];
return result;
}
Gruvin9xGeneral_v104::operator GeneralSettings ()
{
GeneralSettings result;
for (int i=0; i<NUM_STICKS+BOARD_9X_NUM_POTS; i++) {
result.calibMid[i] = calibMid[i];
result.calibSpanNeg[i] = calibSpanNeg[i];
result.calibSpanPos[i] = calibSpanPos[i];
}
result.currModel = currModel;
result.contrast = contrast;
result.vBatWarn = vBatWarn;
result.vBatCalib = vBatCalib;
result.backlightMode = 0;
if (lightSw == 22) {
result.backlightMode = 4;
}
else if (lightAutoOff) {
result.backlightMode |= 1;
result.backlightDelay = lightAutoOff;
}
result.trainer = trainer;
result.view = view;
result.disableThrottleWarning = disableThrottleWarning;
result.switchWarning = switchWarning;
result.beeperMode = (BeeperMode)beeperVal;
result.disableMemoryWarning = disableMemoryWarning;
result.disableAlarmWarning = disableAlarmWarning;
result.stickMode = stickMode;
result.inactivityTimer = inactivityTimer;
result.minuteBeep = minuteBeep;
result.preBeep = preBeep;
result.flashBeep = flashBeep;
result.splashMode = disableSplashScreen;
result.enableTelemetryAlarm = enableTelemetryAlarm;
result.templateSetup = templateSetup;
result.PPM_Multiplier = PPM_Multiplier;
// TODO frskyRssiAlarms[2];
return result;
}
t_Gruvin9xExpoData::t_Gruvin9xExpoData()
{
memset(this, 0, sizeof(t_Gruvin9xExpoData));
}
t_Gruvin9xExpoData::operator ExpoData ()
{
ExpoData c9x;
c9x.mode = mode;
c9x.chn = chn;
c9x.swtch = gruvin9xToSwitch(swtch);
if (negPhase) {
c9x.phases= 1 << (phase -1);
} else if (phase==0) {
c9x.phases=0;
} else {
c9x.phases=63;
c9x.phases &= ~(1 << (phase -1));
}
c9x.weight = weight;
if (expo) {
c9x.curve.type = CurveReference::CURVE_REF_EXPO;
c9x.curve.value = expo;
}
else if (curve > 6) {
c9x.curve.type = CurveReference::CURVE_REF_CUSTOM;
c9x.curve.value = curve - 6;
}
else if (curve > 0) {
c9x.curve.type = CurveReference::CURVE_REF_FUNC;
c9x.curve.value = curve;
}
return c9x;
}
t_Gruvin9xLimitData::t_Gruvin9xLimitData()
{
memset(this, 0, sizeof(t_Gruvin9xLimitData));
}
t_Gruvin9xLimitData::operator LimitData ()
{
LimitData c9x;
c9x.min = min-100;
c9x.max = max+100;
c9x.revert = revert;
c9x.offset = offset;
return c9x;
}
t_Gruvin9xMixData::t_Gruvin9xMixData()
{
memset(this, 0, sizeof(t_Gruvin9xMixData));
}
t_Gruvin9xMixData::operator MixData ()
{
MixData c9x;
c9x.destCh = destCh;
c9x.weight = weight;
c9x.swtch = gruvin9xToSwitch(swtch);
if (srcRaw == 0) {
c9x.srcRaw = RawSource(SOURCE_TYPE_NONE);
}
else if (srcRaw <= 7) {
c9x.srcRaw = RawSource(SOURCE_TYPE_STICK, srcRaw-1);
}
else if (srcRaw == 8) {
c9x.srcRaw = RawSource(SOURCE_TYPE_MAX);
}
else if (srcRaw == 9) {
if (swtch < 0) {
c9x.srcRaw = RawSource(SOURCE_TYPE_SWITCH, -swtch - 1);
c9x.weight = -weight;
}
else {
c9x.srcRaw = RawSource(SOURCE_TYPE_SWITCH, swtch - 1);
}
if (mltpx != MLTPX_REP)
c9x.swtch = RawSwitch(SWITCH_TYPE_NONE);
}
else if (srcRaw <= 12) {
c9x.srcRaw = RawSource(SOURCE_TYPE_CYC, srcRaw-10);
}
else if (srcRaw <= 20) {
c9x.srcRaw = RawSource(SOURCE_TYPE_PPM, srcRaw-13);
}
else {
c9x.srcRaw = RawSource(SOURCE_TYPE_CH, srcRaw-21);
}
c9x.delayUp = delayUp;
c9x.delayDown = delayDown;
c9x.speedUp = speedUp;
c9x.speedDown = speedDown;
c9x.carryTrim = carryTrim;
c9x.mltpx = (MltpxValue)mltpx;
c9x.mixWarn = mixWarn;
c9x.sOffset = sOffset;
if (curve > 6) {
c9x.curve.type = CurveReference::CURVE_REF_CUSTOM;
c9x.curve.value = curve - 6;
}
else if (curve > 0) {
c9x.curve.type = CurveReference::CURVE_REF_FUNC;
c9x.curve.value = curve;
}
return c9x;
}
RawSource gruvin9xToSource(int8_t value)
{
if (value == 0) {
return RawSource(SOURCE_TYPE_NONE);
}
else if (value <= 7) {
return RawSource(SOURCE_TYPE_STICK, value - 1);
}
else if (value == 8) {
return RawSource(SOURCE_TYPE_MAX);
}
else if (value == 9) {
return RawSource(SOURCE_TYPE_MAX);
}
else if (value <= 12) {
return RawSource(SOURCE_TYPE_CYC, value-10);
}
else if (value <= 20) {
return RawSource(SOURCE_TYPE_PPM, value-13);
}
else if (value <= 36) {
return RawSource(SOURCE_TYPE_CH, value-21);
}
else {
return RawSource(SOURCE_TYPE_TELEMETRY, value-36);
}
}
Gruvin9xLogicalSwitchData::operator LogicalSwitchData ()
{
LogicalSwitchData c9x;
c9x.func = func;
c9x.val1 = v1;
c9x.val2 = v2;
if ((c9x.func >= LS_FN_VPOS && c9x.func <= LS_FN_ANEG) || c9x.func >= LS_FN_EQUAL) {
c9x.val1 = gruvin9xToSource(v1).toValue();
}
if (c9x.func >= LS_FN_EQUAL) {
c9x.val2 = gruvin9xToSource(v2).toValue();
}
if (c9x.func >= LS_FN_AND && c9x.func <= LS_FN_XOR) {
c9x.val1 = gruvin9xToSwitch(v1).toValue();
c9x.val2 = gruvin9xToSwitch(v2).toValue();
}
return c9x;
}
Gruvin9xFuncSwData::operator FuncSwData ()
{
FuncSwData c9x;
c9x.swtch = gruvin9xToSwitch(swtch);
c9x.func = (AssignFunc)(func + G9X_NUM_CHNOUT);
return c9x;
}
t_Gruvin9xSwashRingData::t_Gruvin9xSwashRingData()
{
memset(this, 0, sizeof(t_Gruvin9xSwashRingData));
}
t_Gruvin9xSwashRingData::operator SwashRingData ()
{
SwashRingData c9x;
c9x.invertELE = invertELE;
c9x.invertAIL = invertAIL;
c9x.invertCOL = invertCOL;
c9x.type = type;
c9x.collectiveSource = gruvin9xToSource(collectiveSource);
c9x.value = value;
return c9x;
}
t_Gruvin9xFlightModeData_v102::operator FlightModeData ()
{
FlightModeData c9x;
for (int i=0; i<NUM_STICKS; i++)
c9x.trim[i] = trim[i];
c9x.swtch = gruvin9xToSwitch(swtch);
getEEPROMZString(c9x.name, name, sizeof(name));
c9x.fadeIn = fadeIn;
c9x.fadeOut = fadeOut;
return c9x;
}
t_Gruvin9xFlightModeData_v106::operator FlightModeData ()
{
FlightModeData c9x;
for (int i=0; i<NUM_STICKS; i++)
c9x.trim[i] = (((int16_t)trim[i]) << 2) + ((trim_ext >> (2*i)) & 0x03);
c9x.swtch = gruvin9xToSwitch(swtch);
getEEPROMZString(c9x.name, name, sizeof(name));
c9x.fadeIn = fadeIn;
c9x.fadeOut = fadeOut;
return c9x;
}
extern RawSwitch getEr9xTimerMode(int mode);
t_Gruvin9xTimerData::operator TimerData ()
{
TimerData c9x;
c9x.mode = getEr9xTimerMode(mode);
c9x.val = val;
c9x.dir = dir;
return c9x;
}
t_Gruvin9xFrSkyChannelData::t_Gruvin9xFrSkyChannelData()
{
memset(this, 0, sizeof(t_Gruvin9xFrSkyChannelData));
}
t_Gruvin9xFrSkyChannelData::operator FrSkyChannelData ()
{
FrSkyChannelData c9x;
c9x.ratio = ratio;
c9x.alarms[0].value = alarms_value[0];
c9x.alarms[0].level = alarms_level & 3;
c9x.alarms[0].greater = alarms_greater & 1;
c9x.alarms[1].value = alarms_value[1];
c9x.alarms[1].level = (alarms_level >> 2) & 3;
c9x.alarms[1].greater = (alarms_greater >> 1) & 1;
c9x.type = type;
return c9x;
}
t_Gruvin9xFrSkyData::t_Gruvin9xFrSkyData()
{
memset(this, 0, sizeof(t_Gruvin9xFrSkyData));
}
t_Gruvin9xFrSkyData::operator FrSkyData ()
{
FrSkyData c9x;
c9x.channels[0] = channels[0];
c9x.channels[1] = channels[1];
return c9x;
}
t_Gruvin9xModelData_v102::operator ModelData ()
{
ModelData c9x;
c9x.used = true;
getEEPROMString(c9x.name, name, sizeof(name));
c9x.timers[0] = timer1;
c9x.timers[1] = timer2;
switch(protocol) {
case 1:
c9x.moduleData[0].protocol = PXX_DJT;
break;
case 2:
c9x.moduleData[0].protocol = DSM2;
break;
case 3:
c9x.moduleData[0].protocol = SILV_A;
break;
case 4:
c9x.moduleData[0].protocol = SILV_B;
break;
case 5:
c9x.moduleData[0].protocol = SILV_C;
break;
case 6:
c9x.moduleData[0].protocol = CTP1009;
break;
default:
c9x.moduleData[0].protocol = PPM;
break;
}
c9x.moduleData[0].channelsCount = 8 + (2 * ppmNCH);
c9x.thrTrim = thrTrim;
c9x.thrExpo = thrExpo;
c9x.trimInc = trimInc-2;
c9x.moduleData[0].ppmDelay = 300 + 50 * ppmDelay;
c9x.beepANACenter = beepANACenter;
c9x.moduleData[0].ppmPulsePol = pulsePol;
c9x.extendedLimits = extendedLimits;
for (int i=0; i<G9X_MAX_FLIGHT_MODES; i++)
c9x.flightModeData[i] = flightModeData[i];
for (int i=0; i<G9X_MAX_MIXERS; i++)
c9x.mixData[i] = mixData[i];
for (int i=0; i<G9X_NUM_CHNOUT; i++)
c9x.limitData[i] = limitData[i];
for (int i=0; i<G9X_MAX_EXPOS; i++)
c9x.expoData[i] = expoData[i];
for (int i=0; i<G9X_MAX_CURVE5; i++) {
c9x.curves[i].count = 5;
for (int j = 0; j < 5; j++) {
c9x.curves[i].points[j].x = -100 + 50 * i;
c9x.curves[i].points[j].y = curves5[i][j];
}
}
for (int i=0; i<G9X_MAX_CURVE9; i++) {
c9x.curves[G9X_MAX_CURVE5 + i].count = 9;
for (int j = 0; j < 9; j++) {
c9x.curves[G9X_MAX_CURVE5 + i].points[j].x = -100 + 25 * i;
c9x.curves[G9X_MAX_CURVE5 + i].points[j].y = curves9[i][j];
}
}
for (int i=0; i<G9X_NUM_CSW; i++)
c9x.customSw[i] = customSw[i];
// for (int i=0; i<G9X_NUM_CHNOUT; i++)
// c9x.safetySw[i] = safetySw[i];
c9x.swashRingData = swashR;
c9x.frsky = frsky;
return c9x;
}
t_Gruvin9xModelData_v103::operator ModelData ()
{
ModelData c9x;
c9x.used = true;
getEEPROMZString(c9x.name, name, sizeof(name));
c9x.timers[0] = timer1;
c9x.timers[1] = timer2;
switch(protocol) {
case 1:
c9x.moduleData[0].protocol = PXX_DJT;
break;
case 2:
c9x.moduleData[0].protocol = DSM2;
break;
case 3:
c9x.moduleData[0].protocol = SILV_A;
break;
case 4:
c9x.moduleData[0].protocol = SILV_B;
break;
case 5:
c9x.moduleData[0].protocol = SILV_C;
break;
case 6:
c9x.moduleData[0].protocol = CTP1009;
break;
default:
c9x.moduleData[0].protocol = PPM;
break;
}
c9x.moduleData[0].channelsCount = 8 + (2 * ppmNCH);
c9x.thrTrim = thrTrim;
c9x.thrExpo = thrExpo;
c9x.trimInc = trimInc-2;
c9x.moduleData[0].ppmDelay = 300 + 50 * ppmDelay;
c9x.beepANACenter = beepANACenter;
c9x.moduleData[0].ppmPulsePol = pulsePol;
c9x.extendedLimits = extendedLimits;
for (int i=0; i<G9X_MAX_FLIGHT_MODES; i++)
c9x.flightModeData[i] = flightModeData[i];
for (int i=0; i<G9X_MAX_MIXERS; i++)
c9x.mixData[i] = mixData[i];
for (int i=0; i<G9X_NUM_CHNOUT; i++)
c9x.limitData[i] = limitData[i];
for (int i=0; i<G9X_MAX_EXPOS; i++)
c9x.expoData[i] = expoData[i];
for (int i=0; i<G9X_MAX_CURVE5; i++) {
c9x.curves[i].count = 5;
for (int j = 0; j < 5; j++) {
c9x.curves[i].points[j].x = -100 + 50 * i;
c9x.curves[i].points[j].y = curves5[i][j];
}
}
for (int i=0; i<G9X_MAX_CURVE9; i++) {
c9x.curves[G9X_MAX_CURVE5 + i].count = 9;
for (int j = 0; j < 9; j++) {
c9x.curves[G9X_MAX_CURVE5 + i].points[j].x = -100 + 25 * i;
c9x.curves[G9X_MAX_CURVE5 + i].points[j].y = curves9[i][j];
}
}
for (int i=0; i<G9X_NUM_CSW; i++)
c9x.customSw[i] = customSw[i];
// for (int i=0; i<G9X_NUM_CHNOUT; i++)
// c9x.safetySw[i] = safetySw[i];
c9x.swashRingData = swashR;
c9x.frsky = frsky;
return c9x;
}
t_Gruvin9xModelData_v105::operator ModelData ()
{
ModelData c9x;
c9x.used = true;
getEEPROMZString(c9x.name, name, sizeof(name));
c9x.timers[0] = timer1;
c9x.timers[1] = timer2;
switch(protocol) {
case 1:
c9x.moduleData[0].protocol = PXX_DJT;
break;
case 2:
c9x.moduleData[0].protocol = DSM2;
break;
case 3:
c9x.moduleData[0].protocol = SILV_A;
break;
case 4:
c9x.moduleData[0].protocol = SILV_B;
break;
case 5:
c9x.moduleData[0].protocol = SILV_C;
break;
case 6:
c9x.moduleData[0].protocol = CTP1009;
break;
default:
c9x.moduleData[0].protocol = PPM;
break;
}
c9x.moduleData[0].channelsCount = 8 + (2 * ppmNCH);
c9x.thrTrim = thrTrim;
c9x.thrExpo = thrExpo;
c9x.trimInc = trimInc-2;
c9x.moduleData[0].ppmDelay = 300 + 50 * ppmDelay;
c9x.beepANACenter = beepANACenter;
c9x.moduleData[0].ppmPulsePol = pulsePol;
c9x.extendedLimits = extendedLimits;
c9x.extendedTrims = extendedTrims;
for (int i=0; i<G9X_MAX_FLIGHT_MODES; i++) {
c9x.flightModeData[i] = flightModeData[i];
for (int j=0; j<NUM_STICKS; j++) {
if (flightModeData[i].trim[j] > 125) {
c9x.flightModeData[i].trimRef[j] = 0;
c9x.flightModeData[i].trim[j] = 0;
}
else if (flightModeData[i].trim[j] < -125) {
c9x.flightModeData[i].trimRef[j] = 129 + flightModeData[i].trim[j];
if (c9x.flightModeData[i].trimRef[j] >= i)
c9x.flightModeData[i].trimRef[j] += 1;
c9x.flightModeData[i].trim[j] = 0;
}
else {
c9x.flightModeData[i].trim[j] += subtrim[j];
}
}
}
for (int i=0; i<G9X_MAX_MIXERS; i++)
c9x.mixData[i] = mixData[i];
for (int i=0; i<G9X_NUM_CHNOUT; i++)
c9x.limitData[i] = limitData[i];
for (int i=0; i<G9X_MAX_EXPOS; i++)
c9x.expoData[i] = expoData[i];
for (int i=0; i<G9X_MAX_CURVE5; i++) {
c9x.curves[i].count = 5;
for (int j = 0; j < 5; j++) {
c9x.curves[i].points[j].x = -100 + 50 * i;
c9x.curves[i].points[j].y = curves5[i][j];
}
}
for (int i=0; i<G9X_MAX_CURVE9; i++) {
c9x.curves[G9X_MAX_CURVE5 + i].count = 9;
for (int j = 0; j < 9; j++) {
c9x.curves[G9X_MAX_CURVE5 + i].points[j].x = -100 + 25 * i;
c9x.curves[G9X_MAX_CURVE5 + i].points[j].y = curves9[i][j];
}
}
for (int i=0; i<G9X_NUM_CSW; i++)
c9x.customSw[i] = customSw[i];
for (int i=0; i<G9X_NUM_FSW; i++)
c9x.funcSw[i] = funcSw[i];
// for (int i=0; i<G9X_NUM_CHNOUT; i++)
// c9x.safetySw[i] = safetySw[i];
c9x.swashRingData = swashR;
c9x.frsky = frsky;
return c9x;
}
t_Gruvin9xModelData_v106::operator ModelData ()
{
ModelData c9x;
c9x.used = true;
getEEPROMZString(c9x.name, name, sizeof(name));
c9x.timers[0] = timer1;
c9x.timers[1] = timer2;
switch(protocol) {
case 1:
c9x.moduleData[0].protocol = PXX_DJT;
break;
case 2:
c9x.moduleData[0].protocol = DSM2;
break;
case 3:
c9x.moduleData[0].protocol = SILV_A;
break;
case 4:
c9x.moduleData[0].protocol = SILV_B;
break;
case 5:
c9x.moduleData[0].protocol = SILV_C;
break;
case 6:
c9x.moduleData[0].protocol = CTP1009;
break;
default:
c9x.moduleData[0].protocol = PPM;
break;
}
c9x.moduleData[0].channelsCount = 8 + (2 * ppmNCH);
c9x.thrTrim = thrTrim;
c9x.thrExpo = thrExpo;
c9x.trimInc = trimInc-2;
c9x.moduleData[0].ppmDelay = 300 + 50 * ppmDelay;
c9x.beepANACenter = beepANACenter;
c9x.moduleData[0].ppmPulsePol = pulsePol;
c9x.extendedLimits = extendedLimits;
c9x.extendedTrims = extendedTrims;
for (int i=0; i<G9X_MAX_FLIGHT_MODES; i++) {
c9x.flightModeData[i] = flightModeData[i];
for (int j=0; j<NUM_STICKS; j++) {
if (c9x.flightModeData[i].trim[j] > 500) {
c9x.flightModeData[i].trimRef[j] = c9x.flightModeData[i].trim[j] - 501;
if (c9x.flightModeData[i].trimRef[j] >= i)
c9x.flightModeData[i].trimRef[j] += 1;
c9x.flightModeData[i].trim[j] = 0;
}
}
}
for (int i=0; i<G9X_MAX_MIXERS; i++)
c9x.mixData[i] = mixData[i];
for (int i=0; i<G9X_NUM_CHNOUT; i++)
c9x.limitData[i] = limitData[i];
for (int i=0; i<G9X_MAX_EXPOS; i++)
c9x.expoData[i] = expoData[i];
for (int i=0; i<G9X_MAX_CURVE5; i++) {
c9x.curves[i].count = 5;
for (int j = 0; j < 5; j++) {
c9x.curves[i].points[j].x = -100 + 50 * i;
c9x.curves[i].points[j].y = curves5[i][j];
}
}
for (int i=0; i<G9X_MAX_CURVE9; i++) {
c9x.curves[G9X_MAX_CURVE5 + i].count = 9;
for (int j = 0; j < 9; j++) {
c9x.curves[G9X_MAX_CURVE5 + i].points[j].x = -100 + 25 * i;
c9x.curves[G9X_MAX_CURVE5 + i].points[j].y = curves9[i][j];
}
}
for (int i=0; i<G9X_NUM_CSW; i++)
c9x.customSw[i] = customSw[i];
for (int i=0; i<G9X_NUM_FSW; i++)
c9x.funcSw[i] = funcSw[i];
// for (int i=0; i<G9X_NUM_CHNOUT; i++)
// c9x.safetySw[i] = safetySw[i];
c9x.swashRingData = swashR;
c9x.frsky = frsky;
return c9x;
}
@@ -1,421 +0,0 @@
/*
* Author - Bertrand Songis <bsongis@gmail.com>
*
* Based on th9x -> http://code.google.com/p/th9x/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#ifndef gruvin9xeeprom_h
#define gruvin9xeeprom_h
#include <inttypes.h>
#include "eeprominterface.h"
#define GR9X_MAX_CSFUNC 13
PACK(typedef struct t_Gruvin9xTrainerMix_v103 {
uint8_t srcChn:3; //0-7 = ch1-8
int8_t swtch:5;
int8_t studWeight:6;
uint8_t mode:2; //off,add-mode,subst-mode
operator TrainerMix();
t_Gruvin9xTrainerMix_v103() { memset(this, 0, sizeof(t_Gruvin9xTrainerMix_v103)); }
}) Gruvin9xTrainerMix_v103; //
PACK(typedef struct t_Gruvin9xTrainerMix_v104 {
uint8_t srcChn:6; // 0-7 = ch1-8
uint8_t mode:2; // off,add-mode,subst-mode
int8_t studWeight;
operator TrainerMix();
t_Gruvin9xTrainerMix_v104() { memset(this, 0, sizeof(t_Gruvin9xTrainerMix_v104)); }
}) Gruvin9xTrainerMix_v104; //
PACK(typedef struct t_Gruvin9xTrainerData_v103 {
int16_t calib[4];
Gruvin9xTrainerMix_v103 mix[4];
operator TrainerData();
}) Gruvin9xTrainerData_v103;
PACK(typedef struct t_Gruvin9xTrainerData_v104 {
int16_t calib[4];
Gruvin9xTrainerMix_v104 mix[4];
operator TrainerData();
t_Gruvin9xTrainerData_v104() { memset(this, 0, sizeof(t_Gruvin9xTrainerData_v104)); }
}) Gruvin9xTrainerData_v104;
PACK(typedef struct t_Gruvin9xFrSkyRSSIAlarm {
uint8_t level:2;
int8_t value:6;
}) Gruvin9xFrSkyRSSIAlarm;
PACK(typedef struct t_Gruvin9xGeneral_v103 {
uint8_t myVers;
int16_t calibMid[7];
int16_t calibSpanNeg[7];
int16_t calibSpanPos[7];
uint16_t chkSum;
uint8_t currModel; //0..15
uint8_t contrast;
uint8_t vBatWarn;
int8_t vBatCalib;
int8_t lightSw;
Gruvin9xTrainerData_v103 trainer;
uint8_t view; //index of subview in main scrren
uint8_t disableThrottleWarning:1;
int8_t switchWarning:2; // -1=down, 0=off, 1=up
uint8_t beeperVal:3;
uint8_t disableMemoryWarning:1;
uint8_t disableAlarmWarning:1;
uint8_t stickMode;
uint8_t inactivityTimer;
uint8_t throttleReversed:1;
uint8_t minuteBeep:1;
uint8_t preBeep:1;
uint8_t flashBeep:1;
uint8_t disableSplashScreen:1;
uint8_t enableTelemetryAlarm:1; // 0=no, 1=yes (Sound alarm when there's no telem. data coming in)
uint8_t spare:2;
uint8_t filterInput;
uint8_t lightAutoOff;
uint8_t templateSetup; //RETA order according to chout_ar array
int8_t PPM_Multiplier;
Gruvin9xFrSkyRSSIAlarm frskyRssiAlarms[2];
operator GeneralSettings();
t_Gruvin9xGeneral_v103() { memset(this, 0, sizeof(t_Gruvin9xGeneral_v103)); }
}) Gruvin9xGeneral_v103;
PACK(typedef struct t_Gruvin9xGeneral_v104 {
uint8_t myVers;
int16_t calibMid[7];
int16_t calibSpanNeg[7];
int16_t calibSpanPos[7];
uint16_t chkSum;
uint8_t currModel; //0..15
uint8_t contrast;
uint8_t vBatWarn;
int8_t vBatCalib;
int8_t lightSw;
Gruvin9xTrainerData_v104 trainer;
uint8_t view; //index of subview in main scrren
uint8_t disableThrottleWarning:1;
int8_t switchWarning:2; // -1=down, 0=off, 1=up
uint8_t beeperVal:3;
uint8_t disableMemoryWarning:1;
uint8_t disableAlarmWarning:1;
uint8_t stickMode;
uint8_t inactivityTimer;
uint8_t throttleReversed:1;
uint8_t minuteBeep:1;
uint8_t preBeep:1;
uint8_t flashBeep:1;
uint8_t disableSplashScreen:1;
uint8_t enableTelemetryAlarm:1; // 0=no, 1=yes (Sound alarm when there's no telem. data coming in)
uint8_t spare:2;
uint8_t filterInput;
uint8_t lightAutoOff;
uint8_t templateSetup; //RETA order according to chout_ar array
int8_t PPM_Multiplier;
Gruvin9xFrSkyRSSIAlarm frskyRssiAlarms[2];
operator GeneralSettings();
t_Gruvin9xGeneral_v104() { memset(this, 0, sizeof(t_Gruvin9xGeneral_v104)); }
}) Gruvin9xGeneral_v104;
typedef Gruvin9xGeneral_v104 Gruvin9xGeneral;
// eeprom modelspec
PACK(typedef struct t_Gruvin9xExpoData {
uint8_t mode:2; // 0=end, 1=pos, 2=neg, 3=both
uint8_t chn:2;
uint8_t curve:4; // 0=no curve, 1-6=std curves, 7-10=CV1-CV4, 11-15=CV9-CV13
int8_t swtch:5;
uint8_t phase:3; // if negPhase is 0: 0=normal, 5=FP4 if negPhase is 1: 5=!FP4
uint8_t negPhase:1;
uint8_t weight:7;
int8_t expo;
operator ExpoData();
t_Gruvin9xExpoData();
}) Gruvin9xExpoData;
PACK(typedef struct t_Gruvin9xLimitData {
int8_t min;
int8_t max;
bool revert;
int16_t offset;
operator LimitData();
t_Gruvin9xLimitData();
}) Gruvin9xLimitData;
#define MLTPX_ADD 0
#define MLTPX_MUL 1
#define MLTPX_REP 2
PACK(typedef struct t_Gruvin9xMixData {
uint8_t destCh:5; // 0, 1..C9X_NUM_CHNOUT
uint8_t mixWarn:3; // mixer warning
uint8_t srcRaw; //
int8_t weight;
int8_t swtch;
uint8_t curve; // 0=symmetrisch, 1=no neg, 2=no pos
uint8_t delayUp:4;
uint8_t delayDown:4;
uint8_t speedUp:4; // Servogeschwindigkeit aus Tabelle (10ms Cycle)
uint8_t speedDown:4; // 0 nichts
uint8_t carryTrim:1;
uint8_t mltpx:3; // multiplex method 0=+ 1=* 2=replace
int8_t phase:4; // -5=!FP4, 0=normal, 5=FP4
int8_t sOffset;
operator MixData();
t_Gruvin9xMixData();
}) Gruvin9xMixData;
PACK(typedef struct t_Gruvin9xLogicalSwitchData { // Custom Switches data
int8_t v1; //input
int8_t v2; //offset
uint8_t func;
operator LogicalSwitchData();
t_Gruvin9xLogicalSwitchData() { memset(this, 0, sizeof(t_Gruvin9xLogicalSwitchData)); }
}) Gruvin9xLogicalSwitchData;
PACK(typedef struct t_Gruvin9xSafetySwData { // Safety Switches data
int8_t swtch;
int8_t val;
t_Gruvin9xSafetySwData() { memset(this, 0, sizeof(t_Gruvin9xSafetySwData)); }
}) Gruvin9xSafetySwData;
PACK(typedef struct t_Gruvin9xFuncSwData { // Function Switches data
int8_t swtch; // input
uint8_t func;
operator FuncSwData();
t_Gruvin9xFuncSwData() { memset(this, 0, sizeof(t_Gruvin9xFuncSwData)); }
}) Gruvin9xFuncSwData;
PACK(typedef struct t_Gruvin9xFrSkyChannelData {
uint16_t ratio:12; // (Maximum resistor divider input volts +/- calibration. 0 means channel not used.
// 0.01v steps from 0 to 40.95V. Ex. 6.60 Volts = 660. 40.95V = 4095
uint16_t type:4; // channel display unit (0=volts, 1=raw, 2-15=reserverd.)
uint8_t alarms_value[2]; // raw sample values 0..255
uint8_t alarms_level:4; // two pairs of 2bits. none=0, yel=1, org=2, red=3
uint8_t alarms_greater:2; // two alarms, 1 bit each. 0=LT(<), 1=GT(>)
uint8_t spare:2;
uint8_t barMin; // minimum for bar display (raw ADC value)
uint8_t barMax; // ditto for max display (would G:NOT usually = ratio)
operator FrSkyChannelData();
t_Gruvin9xFrSkyChannelData();
}) Gruvin9xFrSkyChannelData;
PACK(typedef struct t_Gruvin9xFrSkyData {
Gruvin9xFrSkyChannelData channels[2];
operator FrSkyData();
t_Gruvin9xFrSkyData();
}) Gruvin9xFrSkyData;
PACK(typedef struct t_Gruvin9xSwashRingData { // Swash Ring data
uint8_t invertELE:1;
uint8_t invertAIL:1;
uint8_t invertCOL:1;
uint8_t type:5;
uint8_t collectiveSource;
uint8_t value;
operator SwashRingData();
t_Gruvin9xSwashRingData();
}) Gruvin9xSwashRingData;
PACK(typedef struct t_Gruvin9xFlightModeData_v102 {
int8_t trim[4]; // -125..125 => trim value, 127 => use trim of phase 0, -128, -127, -126 => use trim of phases 1|2|3|4 instead
int8_t swtch; // swtch of phase[0] is not used
char name[6];
uint8_t fadeIn:4;
uint8_t fadeOut:4;
operator FlightModeData();
t_Gruvin9xFlightModeData_v102() { memset(this, 0, sizeof(t_Gruvin9xFlightModeData_v102)); }
}) Gruvin9xFlightModeData_v102;
PACK(typedef struct t_Gruvin9xFlightModeData_v106 {
int8_t trim[4]; // -500..500 => trim value, 501 => use trim of phase 0, 502, 503, 504 => use trim of phases 1|2|3|4 instead
int8_t trim_ext:8; // 2 less significant extra bits per trim (10bits trims)
int8_t swtch; // swtch of phase[0] is not used
char name[6];
uint8_t fadeIn:4;
uint8_t fadeOut:4;
operator FlightModeData();
t_Gruvin9xFlightModeData_v106() { memset(this, 0, sizeof(t_Gruvin9xFlightModeData_v106)); }
}) Gruvin9xFlightModeData_v106;
PACK(typedef struct t_Gruvin9xTimerData {
int8_t mode:7; // timer trigger source -> off, abs, stk, stk%, sw/!sw, !m_sw/!m_sw
uint8_t dir:1; // 0=>Count Down, 1=>Count Up
uint16_t val;
operator TimerData();
t_Gruvin9xTimerData() { memset(this, 0, sizeof(t_Gruvin9xTimerData)); }
}) Gruvin9xTimerData;
#define G9X_MAX_FLIGHT_MODES 5
#define G9X_MAX_MIXERS 32
#define G9X_MAX_EXPOS 14
#define G9X_MAX_CURVE5 8
#define G9X_MAX_CURVE9 8
#define G9X_NUM_CHNOUT 16 // number of real output channels CH1-CH16
#define G9X_NUM_CSW 12 // number of custom switches
#define G9X_NUM_FSW 12 // number of functions assigned to switches
// TODO
PACK(typedef struct t_Gruvin9xModelData_v102 {
char name[10]; // 10 must be first for eeLoadModelName
Gruvin9xTimerData timer1;
uint8_t protocol:3;
int8_t ppmNCH:3;
uint8_t thrTrim:1; // Enable Throttle Trim
uint8_t thrExpo:1; // Enable Throttle Expo
uint8_t trimInc:3; // Trim Increments
uint8_t spare1:1;
uint8_t pulsePol:1;
uint8_t extendedLimits:1;
uint8_t extendedTrims:1;
uint8_t spare2:1;
int8_t ppmDelay;
uint8_t beepANACenter; // 1<<0->A1.. 1<<6->A7
Gruvin9xTimerData timer2;
Gruvin9xMixData mixData[G9X_MAX_MIXERS];
Gruvin9xLimitData limitData[G9X_NUM_CHNOUT];
Gruvin9xExpoData expoData[G9X_MAX_EXPOS];
int8_t curves5[G9X_MAX_CURVE5][5];
int8_t curves9[G9X_MAX_CURVE9][9];
Gruvin9xLogicalSwitchData customSw[G9X_NUM_CSW];
Gruvin9xSafetySwData safetySw[G9X_NUM_CHNOUT];
Gruvin9xSwashRingData swashR;
Gruvin9xFlightModeData_v102 flightModeData[G9X_MAX_FLIGHT_MODES];
Gruvin9xFrSkyData frsky;
operator ModelData();
t_Gruvin9xModelData_v102() { memset(this, 0, sizeof(t_Gruvin9xModelData_v102)); }
}) Gruvin9xModelData_v102;
PACK(typedef struct t_Gruvin9xModelData_v103 {
char name[10]; // 10 must be first for eeLoadModelName
Gruvin9xTimerData timer1;
uint8_t protocol:3;
int8_t ppmNCH:3;
uint8_t thrTrim:1; // Enable Throttle Trim
uint8_t thrExpo:1; // Enable Throttle Expo
uint8_t trimInc:3; // Trim Increments
uint8_t spare1:1;
uint8_t pulsePol:1;
uint8_t extendedLimits:1;
uint8_t extendedTrims:1;
uint8_t spare2:1;
int8_t ppmDelay;
uint8_t beepANACenter; // 1<<0->A1.. 1<<6->A7
Gruvin9xTimerData timer2;
Gruvin9xMixData mixData[G9X_MAX_MIXERS];
Gruvin9xLimitData limitData[G9X_NUM_CHNOUT];
Gruvin9xExpoData expoData[G9X_MAX_EXPOS];
int8_t curves5[G9X_MAX_CURVE5][5];
int8_t curves9[G9X_MAX_CURVE9][9];
Gruvin9xLogicalSwitchData customSw[G9X_NUM_CSW];
Gruvin9xSafetySwData safetySw[G9X_NUM_CHNOUT];
Gruvin9xSwashRingData swashR;
Gruvin9xFlightModeData_v102 flightModeData[G9X_MAX_FLIGHT_MODES];
Gruvin9xFrSkyData frsky;
operator ModelData();
t_Gruvin9xModelData_v103() { memset(this, 0, sizeof(t_Gruvin9xModelData_v103)); }
}) Gruvin9xModelData_v103;
PACK(typedef struct t_Gruvin9xModelData_v105 {
char name[10]; // 10 must be first for eeLoadModelName
Gruvin9xTimerData timer1;
uint8_t protocol:3;
int8_t ppmNCH:3;
uint8_t thrTrim:1; // Enable Throttle Trim
uint8_t thrExpo:1; // Enable Throttle Expo
uint8_t trimInc:3; // Trim Increments
uint8_t spare1:1;
uint8_t pulsePol:1;
uint8_t extendedLimits:1;
uint8_t extendedTrims:1;
uint8_t spare2:1;
int8_t ppmDelay;
uint8_t beepANACenter; // 1<<0->A1.. 1<<6->A7
Gruvin9xTimerData timer2;
Gruvin9xMixData mixData[G9X_MAX_MIXERS];
Gruvin9xLimitData limitData[G9X_NUM_CHNOUT];
Gruvin9xExpoData expoData[G9X_MAX_EXPOS];
int8_t curves5[G9X_MAX_CURVE5][5];
int8_t curves9[G9X_MAX_CURVE9][9];
Gruvin9xLogicalSwitchData customSw[G9X_NUM_CSW];
Gruvin9xSafetySwData safetySw[G9X_NUM_CHNOUT];
Gruvin9xFuncSwData funcSw[G9X_NUM_FSW];
Gruvin9xSwashRingData swashR;
Gruvin9xFlightModeData_v102 flightModeData[G9X_MAX_FLIGHT_MODES];
int16_t subtrim[NUM_STICKS];
Gruvin9xFrSkyData frsky;
operator ModelData();
t_Gruvin9xModelData_v105() { memset(this, 0, sizeof(t_Gruvin9xModelData_v105)); }
}) Gruvin9xModelData_v105;
PACK(typedef struct t_Gruvin9xModelData_v106 {
char name[10]; // 10 must be first for eeLoadModelName
Gruvin9xTimerData timer1;
uint8_t protocol:3;
uint8_t thrTrim:1; // Enable Throttle Trim
int8_t ppmNCH:4;
uint8_t trimInc:3; // Trim Increments
uint8_t thrExpo:1; // Enable Throttle Expo
uint8_t pulsePol:1;
uint8_t extendedLimits:1;
uint8_t extendedTrims:1;
uint8_t spare2:1;
int8_t ppmDelay;
uint8_t beepANACenter; // 1<<0->A1.. 1<<6->A7
Gruvin9xTimerData timer2;
Gruvin9xMixData mixData[G9X_MAX_MIXERS];
Gruvin9xLimitData limitData[G9X_NUM_CHNOUT];
Gruvin9xExpoData expoData[G9X_MAX_EXPOS];
int8_t curves5[G9X_MAX_CURVE5][5];
int8_t curves9[G9X_MAX_CURVE9][9];
Gruvin9xLogicalSwitchData customSw[G9X_NUM_CSW];
Gruvin9xSafetySwData safetySw[G9X_NUM_CHNOUT];
Gruvin9xFuncSwData funcSw[G9X_NUM_FSW];
Gruvin9xSwashRingData swashR;
Gruvin9xFlightModeData_v106 flightModeData[G9X_MAX_FLIGHT_MODES];
Gruvin9xFrSkyData frsky;
operator ModelData();
t_Gruvin9xModelData_v106() { memset(this, 0, sizeof(t_Gruvin9xModelData_v106)); }
}) Gruvin9xModelData_v106;
typedef Gruvin9xModelData_v106 Gruvin9xModelData;
#endif
@@ -1,232 +0,0 @@
/*
* Author - Bertrand Songis <bsongis@gmail.com>
*
* Based on th9x -> http://code.google.com/p/th9x/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#include <iostream>
#include "gruvin9xinterface.h"
#include "gruvin9xeeprom.h"
#include "file.h"
#include "appdata.h"
#define FILE_TYP_GENERAL 1
#define FILE_TYP_MODEL 2
#define FILE_GENERAL 0
#define FILE_MODEL(n) (1+n)
Gruvin9xInterface::Gruvin9xInterface(BoardEnum board):
EEPROMInterface(board),
efile(new RleFile())
{
}
Gruvin9xInterface::~Gruvin9xInterface()
{
delete efile;
}
const char * Gruvin9xInterface::getName()
{
if (board == BOARD_STOCK)
return "Gruvin9x";
else
return "Gruvin9x v4";
}
const int Gruvin9xInterface::getEEpromSize()
{
if (board == BOARD_STOCK) {
QString avrMCU = g.mcu();
if (avrMCU==QString("m128")) {
return EESIZE_STOCK*2;
}
return EESIZE_STOCK;
} else {
return EESIZE_GRUVIN9X;
}
}
const int Gruvin9xInterface::getMaxModels()
{
return 16;
}
template <class T>
void Gruvin9xInterface::loadModel(ModelData &model, unsigned int stickMode, int version)
{
T _model;
if ((version == 2 && efile->readRlc2((uint8_t*)&_model, sizeof(T))) ||
(version == 1 && efile->readRlc1((uint8_t*)&_model, sizeof(T)))) {
model = _model;
if (stickMode) {
applyStickModeToModel(model, stickMode);
}
}
else {
model.clear();
}
}
template <class T>
bool Gruvin9xInterface::loadGeneral(GeneralSettings &settings, int version)
{
T _settings;
if ((version == 2 && efile->readRlc2((uint8_t*)&_settings, sizeof(T))) ||
(version == 1 && efile->readRlc1((uint8_t*)&_settings, sizeof(T)))) {
settings = _settings;
return true;
}
std::cerr << "error when loading general settings";
return false;
}
bool Gruvin9xInterface::loadxml(RadioData &radioData, QDomDocument &doc)
{
return false;
}
bool Gruvin9xInterface::load(RadioData &radioData, const uint8_t *eeprom, int size)
{
std::cout << "trying " << getName() << " import... ";
if (size != this->getEEpromSize()) {
std::cout << "wrong size\n";
return false;
}
if (!efile->EeFsOpen((uint8_t *)eeprom, size, BOARD_STOCK)) {
std::cout << "wrong file system\n";
return false;
}
efile->openRd(FILE_GENERAL);
uint8_t version;
if (efile->readRlc2(&version, 1) != 1) {
std::cout << "no\n";
return false;
}
if (version == 0) {
efile->openRd(FILE_GENERAL);
if (efile->readRlc1(&version, 1) != 1) {
std::cout << "no\n";
return false;
}
}
std::cout << "version " << (unsigned int)version << " ";
switch(version) {
case 5:
case 100:
case 101:
case 102:
case 103:
case 104:
case 105:
// subtrims(16bits) + function switches added
case 106:
// trims(10bits), no subtrims
break;
default:
std::cout << "not gruvin9x\n";
return false;
}
efile->openRd(FILE_GENERAL);
if (version == 5) {
if (!loadGeneral<Gruvin9xGeneral_v103>(radioData.generalSettings, 1))
return false;
}
else if (version < 104) {
if (!loadGeneral<Gruvin9xGeneral_v103>(radioData.generalSettings))
return false;
}
else if (version <= 106) {
if (!loadGeneral<Gruvin9xGeneral_v104>(radioData.generalSettings))
return false;
}
else {
std::cout << "ko\n";
return false;
}
for (int i=0; i<getMaxModels(); i++) {
efile->openRd(FILE_MODEL(i));
if (version == 5) {
loadModel<Gruvin9xModelData_v102>(radioData.models[i], radioData.generalSettings.stickMode+1, 1);
}
else if (version < 103) {
loadModel<Gruvin9xModelData_v102>(radioData.models[i], radioData.generalSettings.stickMode+1);
}
else if (version == 103) {
loadModel<Gruvin9xModelData_v103>(radioData.models[i], radioData.generalSettings.stickMode+1);
}
else if (version == 105) {
loadModel<Gruvin9xModelData_v105>(radioData.models[i], radioData.generalSettings.stickMode+1);
}
else if (version == 106) {
loadModel<Gruvin9xModelData_v106>(radioData.models[i], radioData.generalSettings.stickMode+1);
}
else {
std::cout << "ko\n";
return false;
}
}
std::cout << "ok\n";
return true;
}
bool Gruvin9xInterface::loadBackup(RadioData &radioData, uint8_t *eeprom, int esize, int index)
{
return false;
}
int Gruvin9xInterface::save(uint8_t *eeprom, RadioData &radioData, uint32_t variant, uint8_t version)
{
std::cout << "NO!\n";
// TODO an error
return 0;
}
int Gruvin9xInterface::getSize(ModelData &model)
{
return 0;
}
int Gruvin9xInterface::getSize(GeneralSettings &settings)
{
return 0;
}
int Gruvin9xInterface::isAvailable(Protocol proto, int port)
{
switch (proto) {
case PPM:
case SILV_A:
case SILV_B:
case SILV_C:
case CTP1009:
case DSM2:
return 1;
default:
return 0;
}
}
@@ -1,64 +0,0 @@
/*
* Author - Bertrand Songis <bsongis@gmail.com>
*
* Based on th9x -> http://code.google.com/p/th9x/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#ifndef gruvin9x_interface_h
#define gruvin9x_interface_h
#include "eeprominterface.h"
class RleFile;
class Gruvin9xInterface : public EEPROMInterface
{
public:
Gruvin9xInterface(BoardEnum board);
virtual ~Gruvin9xInterface();
virtual const char * getName();
virtual const int getEEpromSize();
virtual const int getMaxModels();
virtual bool load(RadioData &, const uint8_t *eeprom, int size);
virtual bool loadBackup(RadioData &, uint8_t *eeprom,int esize, int index);
virtual bool loadxml(RadioData &radioData, QDomDocument &doc);
virtual int save(uint8_t *eeprom, RadioData &radioData, uint32_t variant=0, uint8_t version=0);
virtual int getSize(ModelData &);
virtual int getSize(GeneralSettings &settings);
virtual int isAvailable(Protocol proto, int port=0);
protected:
template <class T>
void loadModel(ModelData &model, unsigned int stickMode=0, int version=2);
template <class T>
bool loadGeneral(GeneralSettings &settings, int version=2);
RleFile *efile;
};
#endif
@@ -1,859 +0,0 @@
#include <stdlib.h>
#include <algorithm>
#include "helpers.h"
#include "open9xGruvin9xeeprom.h"
#include <QObject>
#include <QMessageBox>
extern void getEEPROMZString(char *dst, const char *src, int size);
extern RawSwitch open9xStockToSwitch(int8_t sw);
t_Open9xGruvin9xFlightModeData_v207::operator FlightModeData ()
{
FlightModeData c9x;
for (int i=0; i<NUM_STICKS; i++)
c9x.trim[i] = (((int16_t)trim[i]) << 2) + ((trim_ext >> (2*i)) & 0x03);
c9x.swtch = open9xStockToSwitch(swtch);
getEEPROMZString(c9x.name, name, sizeof(name));
c9x.fadeIn = fadeIn;
c9x.fadeOut = fadeOut;
for (int i=0; i<2; i++)
c9x.rotaryEncoders[i] = rotaryEncoders[i];
return c9x;
}
t_Open9xGruvin9xFlightModeData_v208::operator FlightModeData ()
{
FlightModeData c9x;
for (int i=0; i<NUM_STICKS; i++)
c9x.trim[i] = trim[i];
c9x.swtch = open9xStockToSwitch(swtch);
getEEPROMZString(c9x.name, name, sizeof(name));
c9x.fadeIn = fadeIn;
c9x.fadeOut = fadeOut;
for (int i=0; i<2; i++)
c9x.rotaryEncoders[i] = rotaryEncoders[i];
return c9x;
}
t_Open9xGruvin9xMixData_v207::operator MixData ()
{
MixData c9x;
if (srcRaw) {
c9x.destCh = destCh+1;
if (srcRaw == 0) {
c9x.srcRaw = RawSource(SOURCE_TYPE_NONE);
}
else if (srcRaw <= 7) {
c9x.srcRaw = RawSource(SOURCE_TYPE_STICK, srcRaw-1);
}
else if (srcRaw <= 9) {
c9x.srcRaw = RawSource(SOURCE_TYPE_ROTARY_ENCODER, srcRaw-8);
}
else if (srcRaw == 10) {
c9x.srcRaw = RawSource(SOURCE_TYPE_MAX);
}
/* else if (srcRaw == 11) {
c9x.srcRaw = RawSource(SOURCE_TYPE_3POS);
} */
else if (srcRaw <= 32) {
c9x.srcRaw = RawSource(SOURCE_TYPE_SWITCH, srcRaw-11);
}
else if (srcRaw <= 35) {
c9x.srcRaw = RawSource(SOURCE_TYPE_CYC, srcRaw-33);
}
else if (srcRaw <= 43) {
c9x.srcRaw = RawSource(SOURCE_TYPE_PPM, srcRaw-36);
}
else {
c9x.srcRaw = RawSource(SOURCE_TYPE_CH, srcRaw-44);
}
c9x.weight = weight;
if (differential) {
c9x.curve = CurveReference(CurveReference::CURVE_REF_DIFF, differential*2);
}
else {
// TODO c9x.curve = curve;
}
c9x.swtch = open9xStockToSwitch(swtch);
c9x.delayUp = delayUp;
c9x.delayDown = delayDown;
c9x.speedUp = speedUp;
c9x.speedDown = speedDown;
c9x.carryTrim = carryTrim;
c9x.mltpx = (MltpxValue)mltpx;
c9x.mixWarn = mixWarn;
if (phase<0) {
c9x.phases= 1 << (-phase -1);
}
else if (phase==0) {
c9x.phases=0;
}
else {
c9x.phases=63;
c9x.phases &= ~(1 << (phase -1));
}
c9x.sOffset = sOffset;
}
return c9x;
}
t_Open9xGruvin9xMixData_v209::operator MixData ()
{
MixData c9x;
if (srcRaw) {
c9x.destCh = destCh+1;
if (srcRaw == 0) {
c9x.srcRaw = RawSource(SOURCE_TYPE_NONE);
}
else if (srcRaw <= 7) {
c9x.srcRaw = RawSource(SOURCE_TYPE_STICK, srcRaw-1);
}
else if (srcRaw <= 9) {
c9x.srcRaw = RawSource(SOURCE_TYPE_ROTARY_ENCODER, srcRaw-8);
}
else if (srcRaw <= 13) {
c9x.srcRaw = RawSource(SOURCE_TYPE_TRIM, srcRaw-10);
}
else if (srcRaw == 14) {
c9x.srcRaw = RawSource(SOURCE_TYPE_MAX);
}
else if (srcRaw == 15) {
c9x.srcRaw = RawSource(SOURCE_TYPE_SWITCH, 0);
}
else if (srcRaw <= 36) {
c9x.srcRaw = RawSource(SOURCE_TYPE_SWITCH, srcRaw-15);
}
else if (srcRaw <= 39) {
c9x.srcRaw = RawSource(SOURCE_TYPE_CYC, srcRaw-37);
}
else if (srcRaw <= 47) {
c9x.srcRaw = RawSource(SOURCE_TYPE_PPM, srcRaw-40);
}
else {
c9x.srcRaw = RawSource(SOURCE_TYPE_CH, srcRaw-48);
}
c9x.weight = weight;
if (differential) {
c9x.curve = CurveReference(CurveReference::CURVE_REF_DIFF, differential*2);
}
else {
// TODO c9x.curve = curve;
}
c9x.swtch = open9xStockToSwitch(swtch);
c9x.delayUp = delayUp;
c9x.delayDown = delayDown;
c9x.speedUp = speedUp;
c9x.speedDown = speedDown;
c9x.carryTrim = carryTrim;
c9x.mltpx = (MltpxValue)mltpx;
c9x.mixWarn = mixWarn;
if (phase<0) {
c9x.phases= 1 << (-phase -1);
}
else if (phase==0) {
c9x.phases=0;
}
else {
c9x.phases=63;
c9x.phases &= ~(1 << (phase -1));
}
c9x.sOffset = sOffset;
}
return c9x;
}
t_Open9xGruvin9xMixData_v211::operator MixData ()
{
MixData c9x;
if (srcRaw) {
c9x.destCh = destCh+1;
if (srcRaw == 0) {
c9x.srcRaw = RawSource(SOURCE_TYPE_NONE);
}
else if (srcRaw <= 7) {
c9x.srcRaw = RawSource(SOURCE_TYPE_STICK, srcRaw-1);
}
else if (srcRaw <= 9) {
c9x.srcRaw = RawSource(SOURCE_TYPE_ROTARY_ENCODER, srcRaw-8);
}
else if (srcRaw <= 13) {
c9x.srcRaw = RawSource(SOURCE_TYPE_TRIM, srcRaw-10);
}
else if (srcRaw == 14) {
c9x.srcRaw = RawSource(SOURCE_TYPE_MAX);
}
else if (srcRaw == 15) {
c9x.srcRaw = RawSource(SOURCE_TYPE_SWITCH, 0);
}
else if (srcRaw <= 36) {
c9x.srcRaw = RawSource(SOURCE_TYPE_SWITCH, srcRaw-15);
}
else if (srcRaw <= 39) {
c9x.srcRaw = RawSource(SOURCE_TYPE_CYC, srcRaw-37);
}
else if (srcRaw <= 47) {
c9x.srcRaw = RawSource(SOURCE_TYPE_PPM, srcRaw-40);
}
else {
c9x.srcRaw = RawSource(SOURCE_TYPE_CH, srcRaw-48);
}
c9x.weight = weight;
c9x.swtch = open9xStockToSwitch(swtch);
if (curveMode==0) {
c9x.curve = CurveReference(CurveReference::CURVE_REF_DIFF, curveParam);
}
else {
// TODO c9x.curve = curve;
}
c9x.delayUp = delayUp;
c9x.delayDown = delayDown;
c9x.speedUp = speedUp;
c9x.speedDown = speedDown;
c9x.carryTrim = carryTrim;
c9x.noExpo = noExpo;
c9x.mltpx = (MltpxValue)mltpx;
c9x.mixWarn = mixWarn;
c9x.phases = phases;
c9x.sOffset = sOffset;
}
return c9x;
}
RawSource open9xV4207ToSource(int8_t value)
{
if (value == 0) {
return RawSource(SOURCE_TYPE_NONE);
}
else if (value <= 7) {
return RawSource(SOURCE_TYPE_STICK, value - 1);
}
else if (value <= 9) {
return RawSource(SOURCE_TYPE_ROTARY_ENCODER, value - 8);
}
else if (value == 10) {
return RawSource(SOURCE_TYPE_MAX);
}
/* else if (value == 11) {
return RawSource(SOURCE_TYPE_3POS);
} */
else if (value <= 14) {
return RawSource(SOURCE_TYPE_CYC, value-12);
}
else if (value <= 22) {
return RawSource(SOURCE_TYPE_PPM, value-15);
}
else if (value <= 38) {
return RawSource(SOURCE_TYPE_CH, value-23);
}
else {
return RawSource(SOURCE_TYPE_TELEMETRY, value-38);
}
}
RawSource open9xV4209ToSource(int8_t value)
{
if (value == 0) {
return RawSource(SOURCE_TYPE_NONE);
}
else if (value <= 7) {
return RawSource(SOURCE_TYPE_STICK, value - 1);
}
else if (value <= 9) {
return RawSource(SOURCE_TYPE_ROTARY_ENCODER, value - 8);
}
else if (value <= 13) {
return RawSource(SOURCE_TYPE_STICK, value - 10);
}
else if (value == 14) {
return RawSource(SOURCE_TYPE_MAX);
}
/* else if (value == 15) {
return RawSource(SOURCE_TYPE_3POS);
} */
else if (value <= 18) {
return RawSource(SOURCE_TYPE_CYC, value-16);
}
else if (value <= 26) {
return RawSource(SOURCE_TYPE_PPM, value-19);
}
else if (value <= 42) {
return RawSource(SOURCE_TYPE_CH, value-27);
}
else {
return RawSource(SOURCE_TYPE_TELEMETRY, value-42);
}
}
Open9xGruvin9xLogicalSwitchData_v207::operator LogicalSwitchData ()
{
LogicalSwitchData c9x;
c9x.func = func;
c9x.val1 = v1;
c9x.val2 = v2;
if ((c9x.func >= LS_FN_VPOS && c9x.func <= LS_FN_ANEG) || c9x.func >= LS_FN_EQUAL) {
c9x.val1 = open9xV4207ToSource(v1).toValue();
}
if (c9x.func >= LS_FN_EQUAL) {
c9x.val2 = open9xV4207ToSource(v2).toValue();
}
if (c9x.func >= LS_FN_AND && c9x.func <= LS_FN_XOR) {
c9x.val1 = open9xStockToSwitch(v1).toValue();
c9x.val2 = open9xStockToSwitch(v2).toValue();
}
return c9x;
}
Open9xGruvin9xLogicalSwitchData_v209::operator LogicalSwitchData ()
{
LogicalSwitchData c9x;
c9x.func = func;
c9x.val1 = v1;
c9x.val2 = v2;
if ((c9x.func >= LS_FN_VPOS && c9x.func <= LS_FN_ANEG) || c9x.func >= LS_FN_EQUAL) {
c9x.val1 = open9xV4209ToSource(v1).toValue();
}
if (c9x.func >= LS_FN_EQUAL && c9x.func <= LS_FN_ELESS) {
c9x.val2 = open9xV4209ToSource(v2).toValue();
}
if (c9x.func >= LS_FN_AND && c9x.func <= LS_FN_XOR) {
c9x.val1 = open9xStockToSwitch(v1).toValue();
c9x.val2 = open9xStockToSwitch(v2).toValue();
}
return c9x;
}
t_Open9xGruvin9xFuncSwData_v203::operator FuncSwData ()
{
FuncSwData c9x;
c9x.swtch = open9xStockToSwitch(swtch);
if (func < 16) {
c9x.func = (AssignFunc)(func);
c9x.enabled=param & 0x01;
c9x.param = (param>>1)<<1;
}
else {
c9x.param = param;
if (func <= 20)
c9x.func = (AssignFunc)(func);
else if (func == 21)
c9x.func = FuncInstantTrim;
else if (func == 22)
c9x.func = FuncPlaySound;
else if (func == 23)
c9x.func = FuncPlayHaptic;
else if (func == 24)
c9x.func = FuncReset;
else if (func == 25)
c9x.func = FuncVario;
else if (func == 26)
c9x.func = FuncPlayPrompt;
else if (func == 27)
c9x.func = FuncPlayValue;
else if (func == 28)
c9x.func = FuncLogs;
else if (func == 29)
c9x.func = FuncBacklight;
else if (func >= 30 && func <= 34)
c9x.func = AssignFunc(FuncAdjustGV1 + func - 30);
else
c9x.clear();
}
return c9x;
}
t_Open9xGruvin9xFuncSwData_v210::operator FuncSwData ()
{
FuncSwData c9x;
c9x.swtch = open9xStockToSwitch(swtch);
c9x.param = param;
if (func < 22) {
c9x.func = (AssignFunc)(func);
c9x.enabled = delay;
} else {
if (func == 22)
c9x.func = FuncPlaySound;
else if (func == 23)
c9x.func = FuncPlayHaptic;
else if (func == 24)
c9x.func = FuncReset;
else if (func == 25)
c9x.func = FuncVario;
else if (func == 26)
c9x.func = FuncPlayPrompt;
else if (func == 27)
c9x.func = FuncPlayValue;
else if (func == 28)
c9x.func = FuncLogs;
else
c9x.clear();
}
return c9x;
}
t_Open9xGruvin9xSwashRingData_v208::operator SwashRingData ()
{
SwashRingData c9x;
c9x.invertELE = invertELE;
c9x.invertAIL = invertAIL;
c9x.invertCOL = invertCOL;
c9x.type = type;
c9x.collectiveSource = open9xV4207ToSource(collectiveSource);
c9x.value = value;
return c9x;
}
t_Open9xGruvin9xSwashRingData_v209::operator SwashRingData ()
{
SwashRingData c9x;
c9x.invertELE = invertELE;
c9x.invertAIL = invertAIL;
c9x.invertCOL = invertCOL;
c9x.type = type;
c9x.collectiveSource = open9xV4209ToSource(collectiveSource);
c9x.value = value;
return c9x;
}
t_Open9xGruvin9xModelData_v207::operator ModelData ()
{
ModelData c9x;
c9x.used = true;
getEEPROMZString(c9x.name, name, sizeof(name));
for (int i=0; i<O9X_MAX_TIMERS; i++)
c9x.timers[i] = timers[i];
switch(protocol) {
case 1:
c9x.moduleData[0].protocol = PXX_DJT;
break;
case 2:
c9x.moduleData[0].protocol = DSM2;
break;
case 3:
c9x.moduleData[0].protocol = PPM16;
break;
default:
c9x.moduleData[0].protocol = PPM;
break;
}
c9x.moduleData[0].channelsCount = 8 + (2 * ppmNCH);
c9x.thrTrim = thrTrim;
c9x.trimInc = trimInc - 2;
c9x.moduleData[0].ppmDelay = 300 + 50 * ppmDelay;
c9x.beepANACenter = beepANACenter;
c9x.moduleData[0].ppmPulsePol = pulsePol;
c9x.extendedLimits = extendedLimits;
c9x.extendedTrims = extendedTrims;
for (int i=0; i<O9X_MAX_FLIGHT_MODES; i++) {
c9x.flightModeData[i] = flightModeData[i];
for (int j=0; j<NUM_STICKS; j++) {
if (c9x.flightModeData[i].trim[j] > 500) {
c9x.flightModeData[i].trimRef[j] = c9x.flightModeData[i].trim[j] - 501;
if (c9x.flightModeData[i].trimRef[j] >= i)
c9x.flightModeData[i].trimRef[j] += 1;
c9x.flightModeData[i].trim[j] = 0;
}
}
}
for (int i=0; i<O9X_MAX_MIXERS; i++)
c9x.mixData[i] = mixData[i];
for (int i=0; i<O9X_NUM_CHNOUT; i++)
c9x.limitData[i] = limitData[i];
for (int i=0; i<O9X_MAX_EXPOS; i++)
c9x.expoData[i] = expoData[i];
for (int i=0; i<O9X_209_MAX_CURVE5; i++) {
c9x.curves[i].count = 5;
for (int j = 0; j < 5; j++) {
c9x.curves[i].points[j].x = -100 + 50 * i;
c9x.curves[i].points[j].y = curves5[i][j];
}
}
for (int i=0; i<O9X_209_MAX_CURVE9; i++) {
c9x.curves[O9X_209_MAX_CURVE5 + i].count = 9;
for (int j = 0; j < 9; j++) {
c9x.curves[O9X_209_MAX_CURVE5 + i].points[j].x = -100 + 25 * i;
c9x.curves[O9X_209_MAX_CURVE5 + i].points[j].y = curves9[i][j];
}
}
for (int i=0; i<O9X_NUM_CSW; i++)
c9x.customSw[i] = customSw[i];
for (int i=0; i<O9X_NUM_FSW; i++)
c9x.funcSw[i] = funcSw[i];
c9x.swashRingData = swashR;
c9x.frsky = frsky;
c9x.moduleData[0].ppmFrameLength = ppmFrameLength;
c9x.thrTraceSrc = thrTraceSrc;
c9x.modelId = modelId;
for (int line=0; line<4; line++) {
for (int col=0; col<2; col++) {
c9x.frsky.screens[1].body.lines[line].source[col] = (col==0 ? (frskyLines[line] & 0x0f) : ((frskyLines[line] & 0xf0) / 16));
c9x.frsky.screens[1].body.lines[line].source[col] += (((frskyLinesXtra >> (4*line+2*col)) & 0x03) * 16);
}
}
return c9x;
}
t_Open9xGruvin9xModelData_v208::operator ModelData ()
{
ModelData c9x;
c9x.used = true;
getEEPROMZString(c9x.name, name, sizeof(name));
for (int i=0; i<O9X_MAX_TIMERS; i++)
c9x.timers[i] = timers[i];
switch(protocol) {
case 1:
c9x.moduleData[0].protocol = PPM16;
break;
case 2:
c9x.moduleData[0].protocol = PPMSIM;
break;
case 3:
c9x.moduleData[0].protocol = PXX_DJT;
break;
case 4:
c9x.moduleData[0].protocol = DSM2;
break;
default:
c9x.moduleData[0].protocol = PPM;
break;
}
c9x.moduleData[0].channelsCount = 8 + (2 * ppmNCH);
c9x.thrTrim = thrTrim;
c9x.trimInc = trimInc - 2;
c9x.disableThrottleWarning=disableThrottleWarning;
c9x.moduleData[0].ppmDelay = 300 + 50 * ppmDelay;
c9x.beepANACenter = beepANACenter;
c9x.moduleData[0].ppmPulsePol = pulsePol;
c9x.extendedLimits = extendedLimits;
c9x.extendedTrims = extendedTrims;
for (int i=0; i<O9X_MAX_FLIGHT_MODES; i++) {
c9x.flightModeData[i] = flightModeData[i];
for (int j=0; j<NUM_STICKS; j++) {
if (c9x.flightModeData[i].trim[j] > 500) {
c9x.flightModeData[i].trimRef[j] = c9x.flightModeData[i].trim[j] - 501;
if (c9x.flightModeData[i].trimRef[j] >= i)
c9x.flightModeData[i].trimRef[j] += 1;
c9x.flightModeData[i].trim[j] = 0;
}
}
}
for (int i=0; i<O9X_MAX_MIXERS; i++)
c9x.mixData[i] = mixData[i];
for (int i=0; i<O9X_NUM_CHNOUT; i++)
c9x.limitData[i] = limitData[i];
for (int i=0; i<O9X_MAX_EXPOS; i++)
c9x.expoData[i] = expoData[i];
for (int i=0; i<O9X_209_MAX_CURVE5; i++) {
c9x.curves[i].count = 5;
for (int j = 0; j < 5; j++) {
c9x.curves[i].points[j].x = -100 + 50 * i;
c9x.curves[i].points[j].y = curves5[i][j];
}
}
for (int i=0; i<O9X_209_MAX_CURVE9; i++) {
c9x.curves[O9X_209_MAX_CURVE5 + i].count = 9;
for (int j = 0; j < 9; j++) {
c9x.curves[O9X_209_MAX_CURVE5 + i].points[j].x = -100 + 25 * i;
c9x.curves[O9X_209_MAX_CURVE5 + i].points[j].y = curves9[i][j];
}
}
for (int i=0; i<O9X_NUM_CSW; i++)
c9x.customSw[i] = customSw[i];
for (int i=0; i<O9X_NUM_FSW; i++)
c9x.funcSw[i] = funcSw[i];
c9x.swashRingData = swashR;
c9x.frsky = frsky;
c9x.frsky.varioSource = varioSource;
c9x.frsky.varioCenterMax = varioSpeedUpMin;
c9x.frsky.varioCenterMin = varioSpeedDownMin;
c9x.moduleData[0].ppmFrameLength = ppmFrameLength;
c9x.thrTraceSrc = thrTraceSrc;
c9x.modelId = modelId;
for (int line=0; line<4; line++) {
for (int col=0; col<2; col++) {
c9x.frsky.screens[1].body.lines[line].source[col] = (col==0 ? (frskyLines[line] & 0x0f) : ((frskyLines[line] & 0xf0) / 16));
c9x.frsky.screens[1].body.lines[line].source[col] += (((frskyLinesXtra >> (4*line+2*col)) & 0x03) * 16);
}
}
for (int i=0; i<O9X_NUM_CHNOUT; i++) {
c9x.limitData[i].ppmCenter = servoCenter[i];
}
return c9x;
}
t_Open9xGruvin9xModelData_v209::operator ModelData ()
{
ModelData c9x;
c9x.used = true;
getEEPROMZString(c9x.name, name, sizeof(name));
for (int i=0; i<O9X_MAX_TIMERS; i++)
c9x.timers[i] = timers[i];
switch(protocol) {
case 1:
c9x.moduleData[0].protocol = PPM16;
break;
case 2:
c9x.moduleData[0].protocol = PPMSIM;
break;
case 3:
c9x.moduleData[0].protocol = PXX_DJT;
break;
case 4:
c9x.moduleData[0].protocol = DSM2;
break;
default:
c9x.moduleData[0].protocol = PPM;
break;
}
c9x.moduleData[0].channelsCount = 8 + (2 * ppmNCH);
c9x.thrTrim = thrTrim;
c9x.trimInc = trimInc - 2;
c9x.disableThrottleWarning=disableThrottleWarning;
c9x.moduleData[0].ppmDelay = 300 + 50 * ppmDelay;
c9x.beepANACenter = beepANACenter;
c9x.moduleData[0].ppmPulsePol = pulsePol;
c9x.extendedLimits = extendedLimits;
c9x.extendedTrims = extendedTrims;
for (int i=0; i<O9X_MAX_FLIGHT_MODES; i++) {
c9x.flightModeData[i] = flightModeData[i];
for (int j=0; j<NUM_STICKS; j++) {
if (c9x.flightModeData[i].trim[j] > 500) {
c9x.flightModeData[i].trimRef[j] = c9x.flightModeData[i].trim[j] - 501;
if (c9x.flightModeData[i].trimRef[j] >= i)
c9x.flightModeData[i].trimRef[j] += 1;
c9x.flightModeData[i].trim[j] = 0;
}
}
}
for (int i=0; i<O9X_MAX_MIXERS; i++)
c9x.mixData[i] = mixData[i];
for (int i=0; i<O9X_NUM_CHNOUT; i++)
c9x.limitData[i] = limitData[i];
for (int i=0; i<O9X_MAX_EXPOS; i++)
c9x.expoData[i] = expoData[i];
for (int i=0; i<O9X_209_MAX_CURVE5; i++) {
c9x.curves[i].count = 5;
for (int j = 0; j < 5; j++) {
c9x.curves[i].points[j].x = -100 + 50 * i;
c9x.curves[i].points[j].y = curves5[i][j];
}
}
for (int i=0; i<O9X_209_MAX_CURVE9; i++) {
c9x.curves[O9X_209_MAX_CURVE5 + i].count = 9;
for (int j = 0; j < 9; j++) {
c9x.curves[O9X_209_MAX_CURVE5 + i].points[j].x = -100 + 25 * i;
c9x.curves[O9X_209_MAX_CURVE5 + i].points[j].y = curves9[i][j];
}
}
for (int i=0; i<O9X_NUM_CSW; i++)
c9x.customSw[i] = customSw[i];
for (int i=0; i<O9X_NUM_FSW; i++)
c9x.funcSw[i] = funcSw[i];
c9x.swashRingData = swashR;
c9x.frsky = frsky;
c9x.frsky.varioSource = varioSource;
c9x.frsky.varioCenterMax = varioSpeedUpMin;
c9x.frsky.varioCenterMin = varioSpeedDownMin;
c9x.switchWarningStates = switchWarningStates;
c9x.moduleData[0].ppmFrameLength = ppmFrameLength;
c9x.thrTraceSrc = thrTraceSrc;
c9x.modelId = modelId;
for (int line=0; line<4; line++) {
for (int col=0; col<2; col++) {
c9x.frsky.screens[1].body.lines[line].source[col] = (col==0 ? (frskyLines[line] & 0x0f) : ((frskyLines[line] & 0xf0) / 16));
c9x.frsky.screens[1].body.lines[line].source[col] += (((frskyLinesXtra >> (4*line+2*col)) & 0x03) * 16);
}
}
for (int i=0; i<O9X_NUM_CHNOUT; i++) {
c9x.limitData[i].ppmCenter = servoCenter[i];
}
return c9x;
}
t_Open9xGruvin9xModelData_v210::operator ModelData ()
{
ModelData c9x;
c9x.used = true;
getEEPROMZString(c9x.name, name, sizeof(name));
for (int i=0; i<O9X_MAX_TIMERS; i++)
c9x.timers[i] = timers[i];
switch(protocol) {
case 1:
c9x.moduleData[0].protocol = PPM16;
break;
case 2:
c9x.moduleData[0].protocol = PPMSIM;
break;
case 3:
c9x.moduleData[0].protocol = PXX_DJT;
break;
case 4:
c9x.moduleData[0].protocol = DSM2;
break;
default:
c9x.moduleData[0].protocol = PPM;
break;
}
c9x.moduleData[0].channelsCount = 8 + (2 * ppmNCH);
c9x.thrTrim = thrTrim;
c9x.trimInc = trimInc - 2;
c9x.disableThrottleWarning=disableThrottleWarning;
c9x.moduleData[0].ppmDelay = 300 + 50 * ppmDelay;
c9x.beepANACenter = beepANACenter;
c9x.moduleData[0].ppmPulsePol = pulsePol;
c9x.extendedLimits = extendedLimits;
c9x.extendedTrims = extendedTrims;
for (int i=0; i<O9X_MAX_FLIGHT_MODES; i++) {
c9x.flightModeData[i] = flightModeData[i];
for (int j=0; j<NUM_STICKS; j++) {
if (c9x.flightModeData[i].trim[j] > 500) {
c9x.flightModeData[i].trimRef[j] = c9x.flightModeData[i].trim[j] - 501;
if (c9x.flightModeData[i].trimRef[j] >= i)
c9x.flightModeData[i].trimRef[j] += 1;
c9x.flightModeData[i].trim[j] = 0;
}
}
}
for (int i=0; i<O9X_MAX_MIXERS; i++)
c9x.mixData[i] = mixData[i];
for (int i=0; i<O9X_NUM_CHNOUT; i++)
c9x.limitData[i] = limitData[i];
for (int i=0; i<O9X_MAX_EXPOS; i++)
c9x.expoData[i] = expoData[i];
for (int i=0; i<O9X_MAX_CURVES; i++) {
CurveInfo crvinfo = curveinfo(this, i);
c9x.curves[i].type = (crvinfo.custom ? CurveData::CURVE_TYPE_CUSTOM : CurveData::CURVE_TYPE_STANDARD);
c9x.curves[i].count = crvinfo.points;
for (int j=0; j<crvinfo.points; j++)
c9x.curves[i].points[j].y = crvinfo.crv[j];
if (crvinfo.custom) {
c9x.curves[i].points[0].x = -100;
for (int j=1; j<crvinfo.points-1; j++)
c9x.curves[i].points[j].x = crvinfo.crv[crvinfo.points+j-1];
c9x.curves[i].points[crvinfo.points-1].x = +100;
}
else {
for (int j=0; j<crvinfo.points; j++)
c9x.curves[i].points[j].x = -100 + (200*i) / (crvinfo.points-1);
}
}
for (int i=0; i<O9X_NUM_CSW; i++)
c9x.customSw[i] = customSw[i];
for (int i=0; i<O9X_NUM_FSW; i++)
c9x.funcSw[i] = funcSw[i];
c9x.swashRingData = swashR;
c9x.frsky = frsky;
c9x.switchWarningStates = switchWarningStates;
c9x.moduleData[0].ppmFrameLength = ppmFrameLength;
c9x.thrTraceSrc = thrTraceSrc;
c9x.modelId = modelId;
for (int i=0; i<O9X_NUM_CHNOUT; i++) {
c9x.limitData[i].ppmCenter = servoCenter[i];
}
return c9x;
}
t_Open9xGruvin9xModelData_v211::operator ModelData ()
{
ModelData c9x;
c9x.used = true;
getEEPROMZString(c9x.name, name, sizeof(name));
for (int i=0; i<O9X_MAX_TIMERS; i++) {
c9x.timers[i] = timers[i];
c9x.timers[i].persistent = timersXtra[i].remanent;
c9x.timers[i].val = timersXtra[i].value;
}
switch(protocol) {
case 1:
c9x.moduleData[0].protocol = PPM16;
break;
case 2:
c9x.moduleData[0].protocol = PPMSIM;
break;
case 3:
c9x.moduleData[0].protocol = PXX_DJT;
break;
case 4:
c9x.moduleData[0].protocol = DSM2;
break;
default:
c9x.moduleData[0].protocol = PPM;
break;
}
c9x.moduleData[0].channelsCount = 8 + (2 * ppmNCH);
c9x.thrTrim = thrTrim;
c9x.trimInc = trimInc - 2;
c9x.disableThrottleWarning=disableThrottleWarning;
c9x.moduleData[0].ppmDelay = 300 + 50 * ppmDelay;
c9x.beepANACenter = beepANACenter;
c9x.moduleData[0].ppmPulsePol = pulsePol;
c9x.extendedLimits = extendedLimits;
c9x.extendedTrims = extendedTrims;
for (int i=0; i<O9X_MAX_FLIGHT_MODES; i++) {
c9x.flightModeData[i] = flightModeData[i];
for (int j=0; j<NUM_STICKS; j++) {
if (c9x.flightModeData[i].trim[j] > 500) {
c9x.flightModeData[i].trimRef[j] = c9x.flightModeData[i].trim[j] - 501;
if (c9x.flightModeData[i].trimRef[j] >= i)
c9x.flightModeData[i].trimRef[j] += 1;
c9x.flightModeData[i].trim[j] = 0;
}
}
}
for (int i=0; i<O9X_MAX_MIXERS; i++)
c9x.mixData[i] = mixData[i];
for (int i=0; i<O9X_NUM_CHNOUT; i++)
c9x.limitData[i] = limitData[i];
for (int i=0; i<O9X_MAX_EXPOS; i++)
c9x.expoData[i] = expoData[i];
for (int i=0; i<O9X_MAX_CURVES; i++) {
CurveInfo crvinfo = curveinfo(this, i);
c9x.curves[i].type = (crvinfo.custom ? CurveData::CURVE_TYPE_CUSTOM : CurveData::CURVE_TYPE_STANDARD);
c9x.curves[i].count = crvinfo.points;
for (int j=0; j<crvinfo.points; j++)
c9x.curves[i].points[j].y = crvinfo.crv[j];
if (crvinfo.custom) {
c9x.curves[i].points[0].x = -100;
for (int j=1; j<crvinfo.points-1; j++)
c9x.curves[i].points[j].x = crvinfo.crv[crvinfo.points+j-1];
c9x.curves[i].points[crvinfo.points-1].x = +100;
}
else {
for (int j=0; j<crvinfo.points; j++)
c9x.curves[i].points[j].x = -100 + (200*i) / (crvinfo.points-1);
}
}
for (int i=0; i<O9X_NUM_CSW; i++)
c9x.customSw[i] = customSw[i];
for (int i=0; i<O9X_NUM_FSW; i++)
c9x.funcSw[i] = funcSw[i];
c9x.swashRingData = swashR;
c9x.frsky = frsky;
c9x.switchWarningStates = switchWarningStates;
c9x.moduleData[0].ppmFrameLength = ppmFrameLength;
c9x.thrTraceSrc = thrTraceSrc;
c9x.modelId = modelId;
return c9x;
}
@@ -1,365 +0,0 @@
/*
* Author - Bertrand Songis <bsongis@gmail.com>
*
* Based on th9x -> http://code.google.com/p/th9x/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#ifndef open9xGruvin9xeeprom_h
#define open9xGruvin9xeeprom_h
#define O9X_V4_MAX_CSFUNCOLD 13
#define O9X_V4_MAX_CSFUNC 15
#include "open9xStockeeprom.h"
PACK(typedef struct t_Open9xGruvin9xFlightModeData_v207 {
int8_t trim[4]; // -500..500 => trim value, 501 => use trim of phase 0, 502, 503, 504 => use trim of phases 1|2|3|4 instead
int8_t trim_ext:8; // 2 less significant extra bits per trim (10bits trims)
int8_t swtch; // swtch of phase[0] is not used
char name[6];
uint8_t fadeIn:4;
uint8_t fadeOut:4;
int16_t rotaryEncoders[2];
operator FlightModeData();
t_Open9xGruvin9xFlightModeData_v207() { memset(this, 0, sizeof(t_Open9xGruvin9xFlightModeData_v207)); }
}) Open9xGruvin9xFlightModeData_v207;
PACK(typedef struct t_Open9xGruvin9xFlightModeData_v208 {
int16_t trim[4]; // -500..500 => trim value, 501 => use trim of phase 0, 502, 503, 504 => use trim of phases 1|2|3|4 instead
int8_t swtch; // swtch of phase[0] is not used
char name[6];
uint8_t fadeIn:4;
uint8_t fadeOut:4;
int16_t rotaryEncoders[2];
operator FlightModeData();
t_Open9xGruvin9xFlightModeData_v208() { memset(this, 0, sizeof(t_Open9xGruvin9xFlightModeData_v208)); }
}) Open9xGruvin9xFlightModeData_v208;
PACK(typedef struct t_Open9xGruvin9xMixData_v207 {
uint8_t destCh:4; // 0, 1..C9X_NUM_CHNOUT
int8_t phase:4; // -5=!FP4, 0=normal, 5=FP4
int8_t weight;
int8_t swtch:6;
uint8_t mltpx:2; // multiplex method: 0 means +=, 1 means *=, 2 means :=
int8_t curve:6;
uint8_t mixWarn:2; // mixer warning
uint8_t delayUp:4;
uint8_t delayDown:4;
uint8_t speedUp:4; // Servogeschwindigkeit aus Tabelle (10ms Cycle)
uint8_t speedDown:4; // 0 nichts
uint16_t srcRaw:7; //
uint16_t differential:7;
uint16_t carryTrim:2;
int8_t sOffset;
operator MixData();
t_Open9xGruvin9xMixData_v207() { memset(this, 0, sizeof(t_Open9xGruvin9xMixData_v207)); }
}) Open9xGruvin9xMixData_v207;
PACK(typedef struct t_Open9xGruvin9xMixData_v209 {
uint8_t destCh:4; // 0, 1..C9X_NUM_CHNOUT
int8_t phase:4; // -5=!FP4, 0=normal, 5=FP4
int8_t weight;
int8_t swtch:6;
uint8_t mltpx:2; // multiplex method: 0 means +=, 1 means *=, 2 means :=
int8_t curve:6;
uint8_t mixWarn:2; // mixer warning
uint8_t delayUp:4;
uint8_t delayDown:4;
uint8_t speedUp:4; // Servogeschwindigkeit aus Tabelle (10ms Cycle)
uint8_t speedDown:4; // 0 nichts
uint16_t srcRaw:6; //
int16_t differential:7;
int16_t carryTrim:3;
int8_t sOffset;
operator MixData();
t_Open9xGruvin9xMixData_v209() { memset(this, 0, sizeof(t_Open9xGruvin9xMixData_v209)); }
}) Open9xGruvin9xMixData_v209;
PACK(typedef struct t_Open9xGruvin9xMixData_v211 {
uint8_t destCh:4; // 0, 1..C9X_NUM_CHNOUT
uint8_t curveMode:1; // O=curve, 1=differential
uint8_t noExpo:1;
uint8_t spare:2;
int8_t weight;
int8_t swtch:6;
uint8_t mltpx:2; // multiplex method: 0 means +=, 1 means *=, 2 means :=
uint8_t phases:5;
int8_t carryTrim:3;
uint8_t srcRaw:6;
uint8_t mixWarn:2; // mixer warning
uint8_t delayUp:4;
uint8_t delayDown:4;
uint8_t speedUp:4;
uint8_t speedDown:4;
int8_t curveParam;
int8_t sOffset;
operator MixData();
t_Open9xGruvin9xMixData_v211() { memset(this, 0, sizeof(t_Open9xGruvin9xMixData_v211)); }
}) Open9xGruvin9xMixData_v211;
PACK(typedef struct t_Open9xGruvin9xLogicalSwitchData_v207 { // Custom Switches data
int8_t v1; //input
int8_t v2; //offset
uint8_t func;
operator LogicalSwitchData();
t_Open9xGruvin9xLogicalSwitchData_v207() { memset(this, 0, sizeof(t_Open9xGruvin9xLogicalSwitchData_v207)); }
int8_t fromSource(RawSource source);
RawSource toSource(int8_t value);
}) Open9xGruvin9xLogicalSwitchData_v207;
PACK(typedef struct t_Open9xGruvin9xLogicalSwitchData_v209 { // Custom Switches data
int8_t v1; //input
int8_t v2; //offset
uint8_t func;
operator LogicalSwitchData();
t_Open9xGruvin9xLogicalSwitchData_v209() { memset(this, 0, sizeof(t_Open9xGruvin9xLogicalSwitchData_v209)); }
int8_t fromSource(RawSource source);
RawSource toSource(int8_t value);
}) Open9xGruvin9xLogicalSwitchData_v209;
PACK(typedef struct t_Open9xGruvin9xFuncSwData_v203 { // Function Switches data
int8_t swtch; // input
uint8_t func;
uint8_t param;
operator FuncSwData();
t_Open9xGruvin9xFuncSwData_v203() { memset(this, 0, sizeof(t_Open9xGruvin9xFuncSwData_v203)); }
}) Open9xGruvin9xFuncSwData_v203;
PACK(typedef struct t_Open9xGruvin9xFuncSwData_v210 { // Function Switches data
int8_t swtch; // input
uint8_t func:5;
uint8_t delay:3;
uint8_t param;
operator FuncSwData();
t_Open9xGruvin9xFuncSwData_v210() { memset(this, 0, sizeof(t_Open9xGruvin9xFuncSwData_v210)); }
}) Open9xGruvin9xFuncSwData_v210;
PACK(typedef struct t_Open9xGruvin9xSwashRingData_v208 { // Swash Ring data
uint8_t invertELE:1;
uint8_t invertAIL:1;
uint8_t invertCOL:1;
uint8_t type:5;
uint8_t collectiveSource;
uint8_t value;
operator SwashRingData();
t_Open9xGruvin9xSwashRingData_v208() { memset(this, 0, sizeof(t_Open9xGruvin9xSwashRingData_v208)); }
}) Open9xGruvin9xSwashRingData_v208;
PACK(typedef struct t_Open9xGruvin9xSwashRingData_v209 { // Swash Ring data
uint8_t invertELE:1;
uint8_t invertAIL:1;
uint8_t invertCOL:1;
uint8_t type:5;
uint8_t collectiveSource;
uint8_t value;
operator SwashRingData();
t_Open9xGruvin9xSwashRingData_v209() { memset(this, 0, sizeof(t_Open9xGruvin9xSwashRingData_v209)); }
}) Open9xGruvin9xSwashRingData_v209;
PACK(typedef struct t_Open9xGruvin9xModelData_v207 {
char name[10]; // 10 must be first for eeLoadModelName
Open9xTimerData_v202 timers[O9X_MAX_TIMERS];
uint8_t protocol:3;
uint8_t thrTrim:1; // Enable Throttle Trim
int8_t ppmNCH:4;
uint8_t trimInc:3; // Trim Increments
uint8_t spare1:1;
uint8_t pulsePol:1;
uint8_t extendedLimits:1;
uint8_t extendedTrims:1;
uint8_t spare2:1;
int8_t ppmDelay;
uint16_t beepANACenter; // 1<<0->A1.. 1<<6->A7
Open9xGruvin9xMixData_v207 mixData[O9X_MAX_MIXERS];
Open9xLimitData_v201 limitData[O9X_NUM_CHNOUT];
Open9xExpoData_v201 expoData[O9X_MAX_EXPOS];
int8_t curves5[O9X_209_MAX_CURVE5][5];
int8_t curves9[O9X_209_MAX_CURVE9][9];
Open9xGruvin9xLogicalSwitchData_v207 customSw[O9X_NUM_CSW];
Open9xFuncSwData_v203 funcSw[O9X_NUM_FSW];
Open9xGruvin9xSwashRingData_v208 swashR;
Open9xGruvin9xFlightModeData_v207 flightModeData[O9X_MAX_FLIGHT_MODES];
Open9xFrSkyData_v205 frsky;
int8_t ppmFrameLength; // 0=22.5ms (10ms-30ms) 0.5msec increments
uint8_t thrTraceSrc;
uint8_t modelId;
uint8_t frskyLines[4];
uint16_t frskyLinesXtra;
operator ModelData();
t_Open9xGruvin9xModelData_v207() { memset(this, 0, sizeof(t_Open9xGruvin9xModelData_v207)); }
}) Open9xGruvin9xModelData_v207;
PACK(typedef struct t_Open9xGruvin9xModelData_v208 {
char name[10]; // 10 must be first for eeLoadModelName
Open9xTimerData_v202 timers[O9X_MAX_TIMERS];
uint8_t protocol:3;
uint8_t thrTrim:1; // Enable Throttle Trim
int8_t ppmNCH:4;
uint8_t trimInc:3; // Trim Increments
uint8_t disableThrottleWarning:1;
uint8_t pulsePol:1;
uint8_t extendedLimits:1;
uint8_t extendedTrims:1;
uint8_t spare2:1;
int8_t ppmDelay;
uint16_t beepANACenter; // 1<<0->A1.. 1<<6->A7
Open9xGruvin9xMixData_v207 mixData[O9X_MAX_MIXERS];
Open9xLimitData_v201 limitData[O9X_NUM_CHNOUT];
Open9xExpoData_v201 expoData[O9X_MAX_EXPOS];
int8_t curves5[O9X_209_MAX_CURVE5][5];
int8_t curves9[O9X_209_MAX_CURVE9][9];
Open9xGruvin9xLogicalSwitchData_v207 customSw[O9X_NUM_CSW];
Open9xGruvin9xFuncSwData_v203 funcSw[O9X_NUM_FSW];
Open9xGruvin9xSwashRingData_v208 swashR;
Open9xGruvin9xFlightModeData_v208 flightModeData[O9X_MAX_FLIGHT_MODES];
Open9xFrSkyData_v208 frsky;
int8_t ppmFrameLength; // 0=22.5ms (10ms-30ms) 0.5msec increments
uint8_t thrTraceSrc;
uint8_t modelId;
uint8_t frskyLines[4];
uint16_t frskyLinesXtra;
int8_t servoCenter[O9X_NUM_CHNOUT];
uint8_t varioSource:3;
uint8_t varioSpeedUpMin:5; // if increment in 0.2m/s = 3.0m/s max
uint8_t varioSpeedDownMin;
operator ModelData();
t_Open9xGruvin9xModelData_v208() { memset(this, 0, sizeof(t_Open9xGruvin9xModelData_v208)); }
}) Open9xGruvin9xModelData_v208;
PACK(typedef struct t_Open9xGruvin9xModelData_v209 {
char name[10]; // 10 must be first for eeLoadModelName
Open9xTimerData_v202 timers[O9X_MAX_TIMERS];
uint8_t protocol:3;
uint8_t thrTrim:1; // Enable Throttle Trim
int8_t ppmNCH:4;
uint8_t trimInc:3; // Trim Increments
uint8_t disableThrottleWarning:1;
uint8_t pulsePol:1;
uint8_t extendedLimits:1;
uint8_t extendedTrims:1;
uint8_t spare2:1;
int8_t ppmDelay;
uint16_t beepANACenter; // 1<<0->A1.. 1<<6->A7
Open9xGruvin9xMixData_v209 mixData[O9X_MAX_MIXERS];
Open9xLimitData_v201 limitData[O9X_NUM_CHNOUT];
Open9xExpoData_v201 expoData[O9X_MAX_EXPOS];
int8_t curves5[O9X_209_MAX_CURVE5][5];
int8_t curves9[O9X_209_MAX_CURVE9][9];
Open9xGruvin9xLogicalSwitchData_v209 customSw[O9X_NUM_CSW];
Open9xGruvin9xFuncSwData_v203 funcSw[O9X_NUM_FSW];
Open9xGruvin9xSwashRingData_v209 swashR;
Open9xGruvin9xFlightModeData_v208 flightModeData[O9X_MAX_FLIGHT_MODES];
Open9xFrSkyData_v208 frsky;
int8_t ppmFrameLength; // 0=22.5ms (10ms-30ms) 0.5msec increments
uint8_t thrTraceSrc;
uint8_t modelId;
uint8_t frskyLines[4];
uint16_t frskyLinesXtra;
int8_t servoCenter[O9X_NUM_CHNOUT];
uint8_t varioSource:3;
uint8_t varioSpeedUpMin:5; // if increment in 0.2m/s = 3.0m/s max
uint8_t varioSpeedDownMin;
uint8_t switchWarningStates;
operator ModelData();
t_Open9xGruvin9xModelData_v209() { memset(this, 0, sizeof(t_Open9xGruvin9xModelData_v209)); }
}) Open9xGruvin9xModelData_v209;
PACK(typedef struct t_Open9xGruvin9xModelData_v210 {
char name[10]; // 10 must be first for eeLoadModelName
Open9xTimerData_v202 timers[O9X_MAX_TIMERS];
uint8_t protocol:3;
uint8_t thrTrim:1; // Enable Throttle Trim
int8_t ppmNCH:4;
uint8_t trimInc:3; // Trim Increments
uint8_t disableThrottleWarning:1;
uint8_t pulsePol:1;
uint8_t extendedLimits:1;
uint8_t extendedTrims:1;
uint8_t spare2:1;
int8_t ppmDelay;
uint16_t beepANACenter; // 1<<0->A1.. 1<<6->A7
Open9xGruvin9xMixData_v209 mixData[O9X_MAX_MIXERS];
Open9xLimitData_v201 limitData[O9X_NUM_CHNOUT];
Open9xExpoData_v201 expoData[O9X_MAX_EXPOS];
int8_t curves[O9X_MAX_CURVES];
int8_t points[O9X_NUM_POINTS];
Open9xGruvin9xLogicalSwitchData_v209 customSw[O9X_NUM_CSW];
Open9xGruvin9xFuncSwData_v210 funcSw[O9X_NUM_FSW];
Open9xGruvin9xSwashRingData_v209 swashR;
Open9xGruvin9xFlightModeData_v208 flightModeData[O9X_MAX_FLIGHT_MODES];
int8_t ppmFrameLength; // 0=22.5ms (10ms-30ms) 0.5msec increments
uint8_t thrTraceSrc;
uint8_t modelId;
int8_t servoCenter[O9X_NUM_CHNOUT];
uint8_t switchWarningStates;
Open9xFrSkyData_v210 frsky;
operator ModelData();
t_Open9xGruvin9xModelData_v210() { memset(this, 0, sizeof(t_Open9xGruvin9xModelData_v210)); }
}) Open9xGruvin9xModelData_v210;
PACK(typedef struct t_Open9xGruvin9xModelData_v211 {
char name[10]; // 10 must be first for eeLoadModelName
Open9xTimerData_v202 timers[O9X_MAX_TIMERS];
uint8_t protocol:3;
uint8_t thrTrim:1; // Enable Throttle Trim
int8_t ppmNCH:4;
uint8_t trimInc:3; // Trim Increments
uint8_t disableThrottleWarning:1;
uint8_t pulsePol:1;
uint8_t extendedLimits:1;
uint8_t extendedTrims:1;
uint8_t spare1:1;
int8_t ppmDelay;
uint16_t beepANACenter; // 1<<0->A1.. 1<<6->A7
Open9xGruvin9xMixData_v211 mixData[O9X_MAX_MIXERS];
Open9xLimitData_v211 limitData[O9X_NUM_CHNOUT];
Open9xExpoData_v211 expoData[O9X_MAX_EXPOS];
int8_t curves[O9X_MAX_CURVES];
int8_t points[O9X_NUM_POINTS];
Open9xGruvin9xLogicalSwitchData_v209 customSw[O9X_NUM_CSW];
Open9xGruvin9xFuncSwData_v210 funcSw[O9X_NUM_FSW];
Open9xGruvin9xSwashRingData_v209 swashR;
Open9xGruvin9xFlightModeData_v208 flightModeData[O9X_MAX_FLIGHT_MODES];
int8_t ppmFrameLength; // 0=22.5ms (10ms-30ms) 0.5msec increments
uint8_t thrTraceSrc;
uint8_t modelId;
uint8_t switchWarningStates;
Open9xFrSkyData_v210 frsky;
Open9xTimerDataExtra timersXtra[O9X_MAX_TIMERS];
operator ModelData();
t_Open9xGruvin9xModelData_v211() { memset(this, 0, sizeof(t_Open9xGruvin9xModelData_v211)); }
}) Open9xGruvin9xModelData_v211;
#endif
File diff suppressed because it is too large Load Diff
@@ -1,519 +0,0 @@
/*
* Author - Bertrand Songis <bsongis@gmail.com>
*
* Based on th9x -> http://code.google.com/p/th9x/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#ifndef open9xSky9xeeprom_h
#define open9xSky9xeeprom_h
#include "open9xStockeeprom.h"
#define O9X_ARM_MAX_FLIGHT_MODES 9
#define O9X_ARM_MAX_MIXERS 64
#define O9X_ARM_MAX_EXPOS 32
#define O9X_ARM_NUM_CHNOUT 32 // number of real output channels CH1-CH16
#define O9X_ARM_NUM_CSW 32 // number of custom switches
#define O9X_ARM_NUM_FSW 32 // number of functions assigned to switches
#define O9X_ARM_MAX_CURVES 16
#define O9X_ARM_NUM_POINTS 512
#define O9X_ARM_MAX_CSFUNCOLD 13
#define O9X_ARM_MAX_CSFUNC 15
PACK(typedef struct t_Open9xArmTimerData_v202 {
int8_t mode; // timer trigger source -> off, abs, stk, stk%, sw/!sw, !m_sw/!m_sw
uint16_t val;
operator TimerData();
t_Open9xArmTimerData_v202() { memset(this, 0, sizeof(t_Open9xArmTimerData_v202)); }
}) Open9xArmTimerData_v202;
PACK(typedef struct t_Open9xArmExpoData_v208 {
uint8_t mode; // 0=end, 1=pos, 2=neg, 3=both
uint8_t chn;
int8_t curve; // 0=no curve, 1-6=std curves, 7-10=CV1-CV4, 11-15=CV9-CV13
int8_t swtch;
int8_t phase; // if negPhase is 0: 0=normal, 5=FP4 if negPhase is 1: 5=!FP4
uint8_t weight;
int8_t expo;
operator ExpoData();
t_Open9xArmExpoData_v208() { memset(this, 0, sizeof(t_Open9xArmExpoData_v208)); }
}) Open9xArmExpoData_v208;
PACK(typedef struct t_Open9xArmExpoData_v210 {
uint8_t mode; // 0=end, 1=pos, 2=neg, 3=both
uint8_t chn;
int8_t curve; // 0=no curve, 1-6=std curves, 7-10=CV1-CV4, 11-15=CV9-CV13
int8_t swtch;
int8_t phase; // if negPhase is 0: 0=normal, 5=FP4 if negPhase is 1: 5=!FP4
uint8_t weight;
int8_t expo;
char name[6];
uint8_t spare[4];
operator ExpoData();
t_Open9xArmExpoData_v210() { memset(this, 0, sizeof(t_Open9xArmExpoData_v210)); }
}) Open9xArmExpoData_v210;
PACK(typedef struct t_Open9xArmExpoData_v212 {
uint8_t mode; // 0=end, 1=pos, 2=neg, 3=both
uint8_t chn;
int8_t swtch;
uint16_t phases;
int8_t weight;
uint8_t curveMode;
char name[6];
int8_t curveParam;
operator ExpoData();
t_Open9xArmExpoData_v212() { memset(this, 0, sizeof(t_Open9xArmExpoData_v212)); }
}) Open9xArmExpoData_v212;
PACK(typedef struct t_Open9xArmMixData_v208 {
uint8_t destCh; // 0, 1..C9X_NUM_CHNOUT
int8_t phase; // -5=!FP4, 0=normal, 5=FP4
int8_t weight;
int8_t swtch;
uint8_t mltpx; // multiplex method: 0 means +=, 1 means *=, 2 means :=
int8_t curve;
uint8_t mixWarn; // mixer warning
uint8_t delayUp;
uint8_t delayDown;
uint8_t speedUp; // Servogeschwindigkeit aus Tabelle (10ms Cycle)
uint8_t speedDown; // 0 nichts
uint8_t srcRaw; //
int8_t differential;
uint8_t carryTrim;
int8_t sOffset;
operator MixData();
t_Open9xArmMixData_v208() { memset(this, 0, sizeof(t_Open9xArmMixData_v208)); }
}) Open9xArmMixData_v208;
PACK(typedef struct t_Open9xArmMixData_v209 {
uint8_t destCh; // 0, 1..C9X_NUM_CHNOUT
int8_t phase; // -5=!FP4, 0=normal, 5=FP4
int8_t weight;
int8_t swtch;
uint8_t mltpx; // multiplex method: 0 means +=, 1 means *=, 2 means :=
int8_t curve;
uint8_t mixWarn; // mixer warning
uint8_t delayUp;
uint8_t delayDown;
uint8_t speedUp; // Servogeschwindigkeit aus Tabelle (10ms Cycle)
uint8_t speedDown; // 0 nichts
uint8_t srcRaw; //
int8_t differential;
int8_t carryTrim;
int8_t sOffset;
operator MixData();
t_Open9xArmMixData_v209() { memset(this, 0, sizeof(t_Open9xArmMixData_v209)); }
}) Open9xArmMixData_v209;
PACK(typedef struct t_Open9xArmMixData_v210 {
uint8_t destCh; // 0, 1..C9X_NUM_CHNOUT
int8_t phase; // -5=!FP4, 0=normal, 5=FP4
int8_t weight;
int8_t swtch;
uint8_t mltpx; // multiplex method: 0 means +=, 1 means *=, 2 means :=
int8_t curve;
uint8_t mixWarn; // mixer warning
uint8_t delayUp;
uint8_t delayDown;
uint8_t speedUp; // Servogeschwindigkeit aus Tabelle (10ms Cycle)
uint8_t speedDown; // 0 nichts
uint8_t srcRaw; //
int8_t differential;
int8_t carryTrim;
int8_t sOffset;
char name[6];
uint8_t spare[4];
operator MixData();
t_Open9xArmMixData_v210() { memset(this, 0, sizeof(t_Open9xArmMixData_v210)); }
}) Open9xArmMixData_v210;
PACK(typedef struct t_Open9xArmMixData_v212 {
uint8_t destCh;
uint16_t phases;
uint8_t curveMode:1; // O=curve, 1=differential
uint8_t noExpo:1;
int8_t carryTrim:3;
uint8_t mltpx:2; // multiplex method: 0 means +=, 1 means *=, 2 means :=
uint8_t spare:1;
int8_t weight;
int8_t swtch;
int8_t curveParam;
uint8_t mixWarn; // mixer warning
uint8_t delayUp;
uint8_t delayDown;
uint8_t speedUp;
uint8_t speedDown;
uint8_t srcRaw;
int8_t sOffset;
char name[6];
operator MixData();
t_Open9xArmMixData_v212() { memset(this, 0, sizeof(t_Open9xArmMixData_v212)); }
}) Open9xArmMixData_v212;
PACK(typedef struct t_Open9xArmFlightModeData_v208 {
int16_t trim[4]; // -500..500 => trim value, 501 => use trim of phase 0, 502, 503, 504 => use trim of phases 1|2|3|4 instead
int8_t swtch; // swtch of phase[0] is not used
char name[6];
uint8_t fadeIn:4;
uint8_t fadeOut:4;
operator FlightModeData();
t_Open9xArmFlightModeData_v208() { memset(this, 0, sizeof(t_Open9xArmFlightModeData_v208)); }
}) Open9xArmFlightModeData_v208;
PACK(typedef struct t_Open9xArmFlightModeData_v212 {
int16_t trim[4]; // -500..500 => trim value, 501 => use trim of phase 0, 502, 503, 504 => use trim of phases 1|2|3|4 instead
int8_t swtch; // swtch of phase[0] is not used
char name[6];
uint8_t fadeIn:4;
uint8_t fadeOut:4;
int16_t rotaryEncoders[1];
operator FlightModeData();
t_Open9xArmFlightModeData_v212() { memset(this, 0, sizeof(t_Open9xArmFlightModeData_v212)); }
}) Open9xArmFlightModeData_v212;
PACK(typedef struct t_Open9xArmLogicalSwitchData_v208 { // Custom Switches data
int8_t v1; //input
int8_t v2; //offset
uint8_t func;
operator LogicalSwitchData();
t_Open9xArmLogicalSwitchData_v208() { memset(this, 0, sizeof(t_Open9xArmLogicalSwitchData_v208)); }
}) Open9xArmLogicalSwitchData_v208;
PACK(typedef struct t_Open9xArmLogicalSwitchData_v209 { // Custom Switches data
int8_t v1; //input
int8_t v2; //offset
uint8_t func;
operator LogicalSwitchData();
t_Open9xArmLogicalSwitchData_v209() { memset(this, 0, sizeof(t_Open9xArmLogicalSwitchData_v209)); }
}) Open9xArmLogicalSwitchData_v209;
PACK(typedef struct t_Open9xArmLogicalSwitchData_v210 { // Custom Switches data
int8_t v1; //input
int8_t v2; //offset
uint8_t func;
uint8_t delay;
uint8_t duration;
operator LogicalSwitchData();
t_Open9xArmLogicalSwitchData_v210() { memset(this, 0, sizeof(t_Open9xArmLogicalSwitchData_v210)); }
}) Open9xArmLogicalSwitchData_v210;
PACK(typedef struct t_Open9xArmFuncSwData_v208 { // Function Switches data
int8_t swtch; // input
uint8_t func;
uint8_t param;
operator FuncSwData();
t_Open9xArmFuncSwData_v208() { memset(this, 0, sizeof(t_Open9xArmFuncSwData_v208)); }
}) Open9xArmFuncSwData_v208;
PACK(typedef struct t_Open9xArmFuncSwData_v210 { // Function Switches data
int8_t swtch; // input
uint8_t func;
char param[6];
operator FuncSwData();
t_Open9xArmFuncSwData_v210() { memset(this, 0, sizeof(t_Open9xArmFuncSwData_v210)); }
}) Open9xArmFuncSwData_v210;
PACK(typedef struct t_Open9xArmFuncSwData_v211 { // Function Switches data
int8_t swtch; // input
uint8_t func;
char param[6];
uint8_t delay;
uint8_t spare;
operator FuncSwData();
t_Open9xArmFuncSwData_v211() { memset(this, 0, sizeof(t_Open9xArmFuncSwData_v211)); }
}) Open9xArmFuncSwData_v211;
PACK(typedef struct t_Open9xArmSwashRingData_v208 { // Swash Ring data
uint8_t invertELE:1;
uint8_t invertAIL:1;
uint8_t invertCOL:1;
uint8_t type:5;
uint8_t collectiveSource;
uint8_t value;
operator SwashRingData();
t_Open9xArmSwashRingData_v208() { memset(this, 0, sizeof(t_Open9xArmSwashRingData_v208)); }
}) Open9xArmSwashRingData_v208;
PACK(typedef struct t_Open9xArmSwashRingData_v209 { // Swash Ring data
uint8_t invertELE:1;
uint8_t invertAIL:1;
uint8_t invertCOL:1;
uint8_t type:5;
uint8_t collectiveSource;
uint8_t value;
operator SwashRingData();
t_Open9xArmSwashRingData_v209() { memset(this, 0, sizeof(t_Open9xArmSwashRingData_v209)); }
}) Open9xArmSwashRingData_v209;
PACK(typedef struct t_Open9xArmSwashRingData_v210 { // Swash Ring data
uint8_t invertELE:1;
uint8_t invertAIL:1;
uint8_t invertCOL:1;
uint8_t type:5;
uint8_t collectiveSource;
uint8_t value;
operator SwashRingData();
t_Open9xArmSwashRingData_v210() { memset(this, 0, sizeof(t_Open9xArmSwashRingData_v210)); }
}) Open9xArmSwashRingData_v210;
PACK(typedef struct t_Open9xArmFrSkyBarData_v210 {
uint8_t source;
uint8_t barMin; // minimum for bar display
uint8_t barMax; // ditto for max display (would usually = ratio)
}) Open9xArmFrSkyBarData_v210;
PACK(typedef struct t_Open9xArmFrSkyData_v210 {
Open9xFrSkyChannelData_v208 channels[2];
uint8_t usrProto:2; // Protocol in FrSky user data, 0=None, 1=FrSky hub, 2=WS HowHigh
uint8_t voltsSource:2;
uint8_t blades:2;
uint8_t currentSource:2;
Open9xArmFrSkyBarData_v210 bars[4];
Open9xFrSkyRSSIAlarm rssiAlarms[2];
uint8_t lines[4*2*2];
uint8_t spare[4];
operator FrSkyData();
t_Open9xArmFrSkyData_v210() { memset(this, 0, sizeof(t_Open9xArmFrSkyData_v210)); }
}) Open9xArmFrSkyData_v210;
PACK(typedef struct t_Open9xArmFrSkyData_v211 {
Open9xFrSkyChannelData_v208 channels[2];
Open9xFrSkyRSSIAlarm rssiAlarms[2];
uint8_t usrProto; // Protocol in FrSky user data, 0=None, 1=FrSky hub, 2=WS HowHigh
uint8_t voltsSource;
uint8_t blades; // How many blades for RPMs, 0=2 blades, 1=3 blades
uint8_t currentSource;
Open9xArmFrSkyBarData_v210 bars[4];
uint8_t lines[4*2*2];
uint8_t varioSource;
uint8_t varioSpeedUpMin; // if increment in 0.2m/s = 3.0m/s max
uint8_t varioSpeedDownMin;
uint8_t spare[4];
operator FrSkyData();
t_Open9xArmFrSkyData_v211() { memset(this, 0, sizeof(t_Open9xArmFrSkyData_v211)); }
}) Open9xArmFrSkyData_v211;
PACK(typedef struct t_Open9xArmModelData_v208 {
char name[10]; // 10 must be first for eeLoadModelName
Open9xArmTimerData_v202 timers[O9X_MAX_TIMERS];
uint8_t protocol:3;
uint8_t thrTrim:1; // Enable Throttle Trim
int8_t ppmNCH:4;
uint8_t trimInc:3; // Trim Increments
uint8_t disableThrottleWarning:1;
uint8_t pulsePol:1;
uint8_t extendedLimits:1;
uint8_t extendedTrims:1;
uint8_t spare2:1;
int8_t ppmDelay;
uint16_t beepANACenter; // 1<<0->A1.. 1<<6->A7
Open9xArmMixData_v208 mixData[O9X_ARM_MAX_MIXERS];
Open9xLimitData_v201 limitData[O9X_ARM_NUM_CHNOUT];
Open9xArmExpoData_v208 expoData[O9X_ARM_MAX_EXPOS];
int8_t curves5[O9X_209_MAX_CURVE5][5];
int8_t curves9[O9X_209_MAX_CURVE9][9];
Open9xArmLogicalSwitchData_v208 customSw[O9X_ARM_NUM_CSW];
Open9xArmFuncSwData_v208 funcSw[O9X_ARM_NUM_FSW];
Open9xArmSwashRingData_v208 swashR;
Open9xArmFlightModeData_v208 flightModeData[O9X_ARM_MAX_FLIGHT_MODES];
Open9xFrSkyData_v208 frsky;
int8_t ppmFrameLength; // 0=22.5ms (10ms-30ms) 0.5msec increments
uint8_t thrTraceSrc;
uint8_t modelId;
uint8_t frskyLines[4];
uint16_t frskyLinesXtra;
int8_t servoCenter[O9X_ARM_NUM_CHNOUT];
uint8_t varioSource:3;
uint8_t varioSpeedUpMin:5; // if increment in 0.2m/s = 3.0m/s max
uint8_t varioSpeedDownMin;
operator ModelData();
t_Open9xArmModelData_v208() { memset(this, 0, sizeof(t_Open9xArmModelData_v208)); }
}) Open9xArmModelData_v208;
PACK(typedef struct t_Open9xArmModelData_v209 {
char name[10]; // 10 must be first for eeLoadModelName
Open9xArmTimerData_v202 timers[O9X_MAX_TIMERS];
uint8_t protocol:3;
uint8_t thrTrim:1; // Enable Throttle Trim
int8_t ppmNCH:4;
uint8_t trimInc:3; // Trim Increments
uint8_t disableThrottleWarning:1;
uint8_t pulsePol:1;
uint8_t extendedLimits:1;
uint8_t extendedTrims:1;
uint8_t spare2:1;
int8_t ppmDelay;
uint16_t beepANACenter; // 1<<0->A1.. 1<<6->A7
Open9xArmMixData_v209 mixData[O9X_ARM_MAX_MIXERS];
Open9xLimitData_v201 limitData[O9X_ARM_NUM_CHNOUT];
Open9xArmExpoData_v208 expoData[O9X_ARM_MAX_EXPOS];
int8_t curves5[O9X_209_MAX_CURVE5][5];
int8_t curves9[O9X_209_MAX_CURVE9][9];
Open9xArmLogicalSwitchData_v209 customSw[O9X_ARM_NUM_CSW];
Open9xArmFuncSwData_v208 funcSw[O9X_ARM_NUM_FSW];
Open9xArmSwashRingData_v209 swashR;
Open9xArmFlightModeData_v208 flightModeData[O9X_ARM_MAX_FLIGHT_MODES];
Open9xFrSkyData_v208 frsky;
int8_t ppmFrameLength; // 0=22.5ms (10ms-30ms) 0.5msec increments
uint8_t thrTraceSrc;
uint8_t modelId;
uint8_t frskyLines[4];
uint16_t frskyLinesXtra;
int8_t servoCenter[O9X_ARM_NUM_CHNOUT];
uint8_t varioSource:3;
uint8_t varioSpeedUpMin:5; // if increment in 0.2m/s = 3.0m/s max
uint8_t varioSpeedDownMin;
uint8_t switchWarningStates;
operator ModelData();
t_Open9xArmModelData_v209() { memset(this, 0, sizeof(t_Open9xArmModelData_v209)); }
}) Open9xArmModelData_v209;
PACK(typedef struct t_Open9xArmModelData_v210 {
char name[10]; // 10 must be first for eeLoadModelName
Open9xArmTimerData_v202 timers[O9X_MAX_TIMERS];
uint8_t protocol:3;
uint8_t thrTrim:1; // Enable Throttle Trim
int8_t ppmNCH:4;
uint8_t trimInc:3; // Trim Increments
uint8_t disableThrottleWarning:1;
uint8_t pulsePol:1;
uint8_t extendedLimits:1;
uint8_t extendedTrims:1;
uint8_t spare2:1;
int8_t ppmDelay;
uint16_t beepANACenter; // 1<<0->A1.. 1<<6->A7
Open9xArmMixData_v210 mixData[O9X_ARM_MAX_MIXERS];
Open9xLimitData_v201 limitData[O9X_ARM_NUM_CHNOUT];
Open9xArmExpoData_v210 expoData[O9X_ARM_MAX_EXPOS];
int8_t curves5[O9X_209_MAX_CURVE5][5];
int8_t curves9[O9X_209_MAX_CURVE9][9];
Open9xArmLogicalSwitchData_v210 customSw[O9X_ARM_NUM_CSW];
Open9xArmFuncSwData_v210 funcSw[O9X_ARM_NUM_FSW];
Open9xArmSwashRingData_v209 swashR;
Open9xArmFlightModeData_v208 flightModeData[O9X_ARM_MAX_FLIGHT_MODES];
Open9xArmFrSkyData_v210 frsky;
int8_t ppmFrameLength; // 0=22.5ms (10ms-30ms) 0.5msec increments
uint8_t thrTraceSrc;
uint8_t modelId;
int8_t servoCenter[O9X_ARM_NUM_CHNOUT];
uint8_t varioSource:3;
uint8_t varioSpeedUpMin:5; // if increment in 0.2m/s = 3.0m/s max
uint8_t varioSpeedDownMin;
uint8_t switchWarningStates;
operator ModelData();
t_Open9xArmModelData_v210() { memset(this, 0, sizeof(t_Open9xArmModelData_v210)); }
}) Open9xArmModelData_v210;
PACK(typedef struct t_Open9xArmModelData_v211 {
char name[10]; // 10 must be first for eeLoadModelName
Open9xArmTimerData_v202 timers[O9X_MAX_TIMERS];
uint8_t protocol:3;
uint8_t thrTrim:1; // Enable Throttle Trim
int8_t ppmNCH:4;
uint8_t trimInc:3; // Trim Increments
uint8_t disableThrottleWarning:1;
uint8_t pulsePol:1;
uint8_t extendedLimits:1;
uint8_t extendedTrims:1;
uint8_t spare2:1;
int8_t ppmDelay;
uint16_t beepANACenter; // 1<<0->A1.. 1<<6->A7
Open9xArmMixData_v210 mixData[O9X_ARM_MAX_MIXERS];
Open9xLimitData_v201 limitData[O9X_ARM_NUM_CHNOUT];
Open9xArmExpoData_v210 expoData[O9X_ARM_MAX_EXPOS];
int16_t curves[O9X_ARM_MAX_CURVES];
int8_t points[O9X_ARM_NUM_POINTS];
Open9xArmLogicalSwitchData_v210 customSw[O9X_ARM_NUM_CSW];
Open9xArmFuncSwData_v211 funcSw[O9X_ARM_NUM_FSW];
Open9xArmSwashRingData_v209 swashR;
Open9xArmFlightModeData_v208 flightModeData[O9X_ARM_MAX_FLIGHT_MODES];
int8_t ppmFrameLength; // 0=22.5ms (10ms-30ms) 0.5msec increments
uint8_t thrTraceSrc;
uint8_t modelId;
int8_t servoCenter[O9X_ARM_NUM_CHNOUT];
uint8_t switchWarningStates;
Open9xArmFrSkyData_v211 frsky;
operator ModelData();
t_Open9xArmModelData_v211() { memset(this, 0, sizeof(t_Open9xArmModelData_v211)); }
}) Open9xArmModelData_v211;
PACK(typedef struct t_Open9xArmModelData_v212 {
char name[10]; // 10 must be first for eeLoadModelName
Open9xArmTimerData_v202 timers[O9X_MAX_TIMERS];
uint8_t protocol:3;
uint8_t thrTrim:1; // Enable Throttle Trim
int8_t ppmNCH:4;
uint8_t trimInc:3; // Trim Increments
uint8_t disableThrottleWarning:1;
uint8_t pulsePol:1;
uint8_t extendedLimits:1;
uint8_t extendedTrims:1;
uint8_t spare1:1;
int8_t ppmDelay;
uint16_t beepANACenter; // 1<<0->A1.. 1<<6->A7
Open9xArmMixData_v212 mixData[O9X_ARM_MAX_MIXERS];
Open9xLimitData_v211 limitData[O9X_ARM_NUM_CHNOUT];
Open9xArmExpoData_v212 expoData[O9X_ARM_MAX_EXPOS];
int16_t curves[O9X_ARM_MAX_CURVES];
int8_t points[O9X_ARM_NUM_POINTS];
Open9xArmLogicalSwitchData_v210 customSw[O9X_ARM_NUM_CSW];
Open9xArmFuncSwData_v211 funcSw[O9X_ARM_NUM_FSW];
Open9xArmSwashRingData_v210 swashR;
Open9xArmFlightModeData_v212 flightModeData[O9X_ARM_MAX_FLIGHT_MODES];
int8_t ppmFrameLength; // 0=22.5ms (10ms-30ms) 0.5msec increments
uint8_t thrTraceSrc;
uint8_t modelId;
uint8_t switchWarningStates;
Open9xArmFrSkyData_v211 frsky;
Open9xTimerDataExtra timersXtra[O9X_MAX_TIMERS];
operator ModelData();
t_Open9xArmModelData_v212() { memset(this, 0, sizeof(t_Open9xArmModelData_v212)); }
}) Open9xArmModelData_v212;
#endif
File diff suppressed because it is too large Load Diff
@@ -1,819 +0,0 @@
/*
* Author - Bertrand Songis <bsongis@gmail.com>
*
* Based on th9x -> http://code.google.com/p/th9x/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#ifndef open9xstockeeprom_h
#define open9xstockeeprom_h
#define O9X_MAX_CSFUNCOLD 13
#define O9X_MAX_CSFUNC 15
#include <inttypes.h>
#include "eeprominterface.h"
#include <qbytearray.h>
int8_t open9xV4209FromSource(RawSource source);
int8_t open9xStock209FromSource(RawSource source);
RawSource open9xV4209ToSource(int8_t value);
RawSource open9xStock209ToSource(int8_t value);
int8_t open9xStockFromSwitch(const RawSwitch & sw);
RawSwitch open9xStockToSwitch(int8_t sw);
struct CurveInfo {
int8_t *crv;
uint8_t points;
bool custom;
};
template <class T>
int8_t *curveaddress(T * model, uint8_t idx)
{
return &model->points[idx==0 ? 0 : 5*idx+model->curves[idx-1]];
}
template <class T>
extern CurveInfo curveinfo(T * model, uint8_t idx)
{
CurveInfo result;
result.crv = curveaddress(model, idx);
int8_t *next = curveaddress(model, idx+1);
uint8_t size = next - result.crv;
if (size % 2 == 0) {
result.points = (size / 2) + 1;
result.custom = true;
}
else {
result.points = size;
result.custom = false;
}
return result;
}
PACK(typedef struct t_Open9xFrSkyRSSIAlarm {
uint8_t level:2;
int8_t value:6;
FrSkyRSSIAlarm get(int index);
t_Open9xFrSkyRSSIAlarm() { memset(this, 0, sizeof(t_Open9xFrSkyRSSIAlarm)); }
}) Open9xFrSkyRSSIAlarm;
PACK(typedef struct t_Open9xExpoData_v201 {
uint8_t mode:2; // 0=end, 1=pos, 2=neg, 3=both
uint8_t chn:2;
uint8_t curve:4; // 0=no curve, 1-6=std curves, 7-10=CV1-CV4, 11-15=CV9-CV13
int8_t swtch:5;
uint8_t phase:3; // if negPhase is 0: 0=normal, 5=FP4 if negPhase is 1: 5=!FP4
uint8_t negPhase:1;
uint8_t weight:7;
int8_t expo;
operator ExpoData();
t_Open9xExpoData_v201() { memset(this, 0, sizeof(t_Open9xExpoData_v201)); }
}) Open9xExpoData_v201;
PACK(typedef struct t_Open9xExpoData_v211 {
uint8_t mode:2; // 0=end, 1=pos, 2=neg, 3=both
int8_t swtch:6;
uint8_t chn:2;
uint8_t phases:5;
uint8_t curveMode:1;
uint8_t weight; // we have one bit spare here :)
int8_t curveParam;
operator ExpoData();
t_Open9xExpoData_v211() { memset(this, 0, sizeof(t_Open9xExpoData_v211)); }
}) Open9xExpoData_v211;
PACK(typedef struct t_Open9xLimitData_v201 {
int8_t min;
int8_t max;
bool revert;
int16_t offset;
operator LimitData();
t_Open9xLimitData_v201() { memset(this, 0, sizeof(t_Open9xLimitData_v201)); }
}) Open9xLimitData_v201;
PACK(typedef struct t_Open9xLimitData_v211 {
int8_t min;
int8_t max;
int8_t ppmCenter;
int16_t offset:14;
uint16_t symetrical:1;
uint16_t revert:1;
operator LimitData();
t_Open9xLimitData_v211() { memset(this, 0, sizeof(t_Open9xLimitData_v211)); }
}) Open9xLimitData_v211;
PACK(typedef struct t_Open9xMixData_v201 {
uint8_t destCh:5; // 0, 1..C9X_NUM_CHNOUT
uint8_t mixWarn:3; // mixer warning
uint8_t srcRaw; //
int8_t weight;
int8_t swtch;
uint8_t curve; // 0=symmetrisch, 1=no neg, 2=no pos
uint8_t delayUp:4;
uint8_t delayDown:4;
uint8_t speedUp:4; // Servogeschwindigkeit aus Tabelle (10ms Cycle)
uint8_t speedDown:4; // 0 nichts
uint8_t carryTrim:1;
uint8_t mltpx:3; // multiplex method 0=+ 1=* 2=replace
int8_t phase:4; // -5=!FP4, 0=normal, 5=FP4
int8_t sOffset;
operator MixData();
t_Open9xMixData_v201() { memset(this, 0, sizeof(t_Open9xMixData_v201)); }
}) Open9xMixData_v201;
PACK(typedef struct t_Open9xMixData_v203 {
uint8_t destCh:5; // 0, 1..C9X_NUM_CHNOUT
uint8_t mixWarn:3; // mixer warning
uint8_t srcRaw; //
int8_t weight;
int8_t swtch;
uint8_t curve;
uint8_t delayUp:4;
uint8_t delayDown:4;
uint8_t speedUp:4; // Servogeschwindigkeit aus Tabelle (10ms Cycle)
uint8_t speedDown:4; // 0 nichts
uint8_t carryTrim:2;
uint8_t mltpx:2; // multiplex method: 0 means +=, 1 means *=, 2 means :=
int8_t phase:4; // -5=!FP4, 0=normal, 5=FP4
int8_t sOffset;
operator MixData();
t_Open9xMixData_v203() { memset(this, 0, sizeof(t_Open9xMixData_v203)); }
}) Open9xMixData_v203;
PACK(typedef struct t_Open9xMixData_v205 {
uint8_t destCh:4; // 0, 1..C9X_NUM_CHNOUT
int8_t phase:4; // -5=!FP4, 0=normal, 5=FP4
int8_t weight;
int8_t swtch:6;
uint8_t mltpx:2; // multiplex method: 0 means +=, 1 means *=, 2 means :=
int8_t curve:6;
uint8_t mixWarn:2; // mixer warning
uint8_t delayUp:4;
uint8_t delayDown:4;
uint8_t speedUp:4; // Servogeschwindigkeit aus Tabelle (10ms Cycle)
uint8_t speedDown:4; // 0 nichts
uint16_t srcRaw:7; //
int16_t differential:7;
uint16_t carryTrim:2;
int8_t sOffset;
operator MixData();
t_Open9xMixData_v205() { memset(this, 0, sizeof(t_Open9xMixData_v205)); }
}) Open9xMixData_v205;
PACK(typedef struct t_Open9xMixData_v209 {
uint8_t destCh:4; // 0, 1..C9X_NUM_CHNOUT
int8_t phase:4; // -5=!FP4, 0=normal, 5=FP4
int8_t weight;
int8_t swtch:6;
uint8_t mltpx:2; // multiplex method: 0 means +=, 1 means *=, 2 means :=
int8_t curve:6;
uint8_t mixWarn:2; // mixer warning
uint8_t delayUp:4;
uint8_t delayDown:4;
uint8_t speedUp:4; // Servogeschwindigkeit aus Tabelle (10ms Cycle)
uint8_t speedDown:4; // 0 nichts
uint16_t srcRaw:6;
int16_t differential:7;
int16_t carryTrim:3;
int8_t sOffset;
operator MixData();
t_Open9xMixData_v209() { memset(this, 0, sizeof(t_Open9xMixData_v209)); }
}) Open9xMixData_v209;
PACK(typedef struct t_Open9xMixData_v211 {
uint8_t destCh:4; // 0, 1..C9X_NUM_CHNOUT
uint8_t curveMode:1; // O=curve, 1=differential
uint8_t noExpo:1;
uint8_t spare:2;
int8_t weight;
int8_t swtch:6;
uint8_t mltpx:2; // multiplex method: 0 means +=, 1 means *=, 2 means :=
uint8_t phases:5;
int8_t carryTrim:3;
uint8_t srcRaw:6;
uint8_t mixWarn:2; // mixer warning
uint8_t delayUp:4;
uint8_t delayDown:4;
uint8_t speedUp:4;
uint8_t speedDown:4;
int8_t curveParam;
int8_t sOffset;
operator MixData();
t_Open9xMixData_v211() { memset(this, 0, sizeof(t_Open9xMixData_v211)); }
}) Open9xMixData_v211;
PACK(typedef struct t_Open9xLogicalSwitchData_v208 { // Custom Switches data
int8_t v1; //input
int8_t v2; //offset
uint8_t func;
operator LogicalSwitchData();
t_Open9xLogicalSwitchData_v208() { memset(this, 0, sizeof(t_Open9xLogicalSwitchData_v208)); }
t_Open9xLogicalSwitchData_v208(LogicalSwitchData&);
}) Open9xLogicalSwitchData_v208;
PACK(typedef struct t_Open9xLogicalSwitchData_v209 { // Custom Switches data
int8_t v1; //input
int8_t v2; //offset
uint8_t func;
operator LogicalSwitchData();
t_Open9xLogicalSwitchData_v209() { memset(this, 0, sizeof(t_Open9xLogicalSwitchData_v209)); }
}) Open9xLogicalSwitchData_v209;
PACK(typedef struct t_Open9xSafetySwData { // Safety Switches data
int8_t swtch;
int8_t val;
t_Open9xSafetySwData() { memset(this, 0, sizeof(t_Open9xSafetySwData)); }
}) Open9xSafetySwData;
PACK(typedef struct t_Open9xFuncSwData_v201 { // Function Switches data
int8_t swtch; // input
uint8_t func;
operator FuncSwData();
t_Open9xFuncSwData_v201() { memset(this, 0, sizeof(t_Open9xFuncSwData_v201)); }
}) Open9xFuncSwData_v201;
PACK(typedef struct t_Open9xFuncSwData_v203 { // Function Switches data
int8_t swtch; // input
uint8_t func;
uint8_t param;
operator FuncSwData();
t_Open9xFuncSwData_v203() { memset(this, 0, sizeof(t_Open9xFuncSwData_v203)); }
}) Open9xFuncSwData_v203;
PACK(typedef struct t_Open9xFuncSwData_v210 { // Function Switches data
int8_t swtch; // input
uint8_t func:5;
uint8_t delay:3;
uint8_t param;
operator FuncSwData();
t_Open9xFuncSwData_v210() { memset(this, 0, sizeof(t_Open9xFuncSwData_v210)); }
}) Open9xFuncSwData_v210;
PACK(typedef struct t_Open9xFrSkyChannelData_v201 {
uint8_t ratio; // 0.0 means not used, 0.1V steps EG. 6.6 Volts = 66. 25.1V = 251, etc.
uint8_t type:4; // channel unit (0=volts, ...)
int8_t offset:4; // calibration offset. Signed 0.1V steps. EG. -4 to substract 0.4V
uint8_t alarms_value[2]; // 0.1V steps EG. 6.6 Volts = 66. 25.1V = 251, etc.
uint8_t alarms_level:4;
uint8_t alarms_greater:2; // 0=LT(<), 1=GT(>)
uint8_t spare:2;
uint8_t barMin; // minimum for bar display
uint8_t barMax; // ditto for max display (would usually = ratio)
operator FrSkyChannelData();
t_Open9xFrSkyChannelData_v201() { memset(this, 0, sizeof(t_Open9xFrSkyChannelData_v201)); }
}) Open9xFrSkyChannelData_v201;
PACK(typedef struct t_Open9xFrSkyChannelData_v203 {
uint8_t ratio; // 0.0 means not used, 0.1V steps EG. 6.6 Volts = 66. 25.1V = 251, etc.
uint8_t type; // channel unit (0=volts, ...)
uint8_t alarms_value[2]; // 0.1V steps EG. 6.6 Volts = 66. 25.1V = 251, etc.
uint8_t alarms_level:4;
uint8_t alarms_greater:2; // 0=LT(<), 1=GT(>)
uint8_t spare:2;
uint8_t barMin:4; // minimum for bar display
uint8_t barMax:4; // ditto for max display (would usually = ratio)
int8_t offset; // calibration offset. Signed 0.1V steps. EG. -4 to substract 0.4V
operator FrSkyChannelData();
t_Open9xFrSkyChannelData_v203() { memset(this, 0, sizeof(t_Open9xFrSkyChannelData_v203)); }
}) Open9xFrSkyChannelData_v203;
PACK(typedef struct t_Open9xFrSkyChannelData_v204 {
uint8_t ratio; // 0.0 means not used, 0.1V steps EG. 6.6 Volts = 66. 25.1V = 251, etc.
uint8_t type; // channel unit (0=volts, ...)
uint8_t alarms_value[2]; // 0.1V steps EG. 6.6 Volts = 66. 25.1V = 251, etc.
uint8_t alarms_level:4;
uint8_t alarms_greater:2; // 0=LT(<), 1=GT(>)
uint8_t multiplier:2;
int8_t offset; // calibration offset. Signed 0.1V steps. EG. -4 to substract 0.4V
operator FrSkyChannelData();
t_Open9xFrSkyChannelData_v204() { memset(this, 0, sizeof(t_Open9xFrSkyChannelData_v204)); }
}) Open9xFrSkyChannelData_v204;
PACK(typedef struct t_Open9xFrSkyChannelData_v208 {
uint8_t ratio; // 0.0 means not used, 0.1V steps EG. 6.6 Volts = 66. 25.1V = 251, etc.
int16_t offset:12;
uint16_t type:4; // channel unit (0=volts, ...)
uint8_t alarms_value[2]; // 0.1V steps EG. 6.6 Volts = 66. 25.1V = 251, etc.
uint8_t alarms_level:4;
uint8_t alarms_greater:2; // 0=LT(<), 1=GT(>)
uint8_t multiplier:2;
operator FrSkyChannelData();
t_Open9xFrSkyChannelData_v208() { memset(this, 0, sizeof(t_Open9xFrSkyChannelData_v208)); }
}) Open9xFrSkyChannelData_v208;
PACK(typedef struct t_Open9xFrSkyData_v201 {
Open9xFrSkyChannelData_v201 channels[2];
operator FrSkyData();
t_Open9xFrSkyData_v201() { memset(this, 0, sizeof(t_Open9xFrSkyData_v201)); }
}) Open9xFrSkyData_v201;
PACK(typedef struct t_Open9xFrSkyData_v202 {
Open9xFrSkyChannelData_v201 channels[2];
uint8_t usrProto:2; // Protocol in FrSky user data, 0=None, 1=FrSky hub, 2=WS HowHigh
uint8_t spare:6;
operator FrSkyData();
t_Open9xFrSkyData_v202() { memset(this, 0, sizeof(t_Open9xFrSkyData_v202)); }
}) Open9xFrSkyData_v202;
PACK(typedef struct t_Open9xFrSkyData_v203 {
Open9xFrSkyChannelData_v203 channels[2];
uint8_t usrProto; // Protocol in FrSky user data, 0=None, 1=FrSky hub, 2=WS HowHigh
operator FrSkyData();
t_Open9xFrSkyData_v203() { memset(this, 0, sizeof(t_Open9xFrSkyData_v203)); }
}) Open9xFrSkyData_v203;
PACK(typedef struct t_Open9xFrSkyBarData_v204 {
uint16_t source:4;
uint16_t barMin:6; // minimum for bar display
uint16_t barMax:6; // ditto for max display (would usually = ratio)
operator FrSkyBarData();
t_Open9xFrSkyBarData_v204() { memset(this, 0, sizeof(t_Open9xFrSkyBarData_v204)); }
}) Open9xFrSkyBarData_v204;
PACK(typedef struct t_Open9xFrSkyData_v204 {
Open9xFrSkyChannelData_v204 channels[2];
uint8_t usrProto:3; // Protocol in FrSky user data, 0=None, 1=FrSky hub, 2=WS HowHigh
uint8_t imperial:1;
uint8_t blades:2;
uint8_t spare:2;
Open9xFrSkyBarData_v204 bars[4];
operator FrSkyData();
t_Open9xFrSkyData_v204() { memset(this, 0, sizeof(t_Open9xFrSkyData_v204)); }
}) Open9xFrSkyData_v204;
PACK(typedef struct t_Open9xFrSkyData_v205 {
Open9xFrSkyChannelData_v204 channels[2];
uint8_t usrProto:3; // Protocol in FrSky user data, 0=None, 1=FrSky hub, 2=WS HowHigh
uint8_t imperial:1;
uint8_t blades:2;
uint8_t spare:2;
Open9xFrSkyBarData_v204 bars[4];
Open9xFrSkyRSSIAlarm rssiAlarms[2];
operator FrSkyData();
t_Open9xFrSkyData_v205() { memset(this, 0, sizeof(t_Open9xFrSkyData_v205)); }
}) Open9xFrSkyData_v205;
PACK(typedef struct t_Open9xFrSkyData_v208 {
Open9xFrSkyChannelData_v208 channels[2];
uint8_t usrProto:2; // Protocol in FrSky user data, 0=None, 1=FrSky hub, 2=WS HowHigh
uint8_t voltsSource:2;
uint8_t blades:2;
uint8_t currentSource:2;
Open9xFrSkyBarData_v204 bars[4];
Open9xFrSkyRSSIAlarm rssiAlarms[2];
operator FrSkyData();
t_Open9xFrSkyData_v208() { memset(this, 0, sizeof(t_Open9xFrSkyData_v208)); }
}) Open9xFrSkyData_v208;
PACK(typedef struct t_Open9xFrSkyData_v210 {
Open9xFrSkyChannelData_v208 channels[2];
uint8_t usrProto:2; // Protocol in FrSky user data, 0=None, 1=FrSky hub, 2=WS HowHigh
uint8_t blades:2; // How many blades for RPMs, 0=2 blades, 1=3 blades
uint8_t spare1:4;
uint8_t voltsSource:3;
uint8_t currentSource:3;
uint8_t spare2:2;
Open9xFrSkyBarData_v204 bars[4];
Open9xFrSkyRSSIAlarm rssiAlarms[2];
uint8_t lines[4];
uint16_t linesXtra;
uint8_t varioSource:3;
uint8_t varioSpeedUpMin:5; // if increment in 0.2m/s = 3.0m/s max
uint8_t varioSpeedDownMin;
operator FrSkyData();
t_Open9xFrSkyData_v210() { memset(this, 0, sizeof(t_Open9xFrSkyData_v210)); }
}) Open9xFrSkyData_v210;
PACK(typedef struct t_Open9xSwashRingData_v208 { // Swash Ring data
uint8_t invertELE:1;
uint8_t invertAIL:1;
uint8_t invertCOL:1;
uint8_t type:5;
uint8_t collectiveSource;
uint8_t value;
operator SwashRingData();
t_Open9xSwashRingData_v208() { memset(this, 0, sizeof(t_Open9xSwashRingData_v208)); }
}) Open9xSwashRingData_v208;
PACK(typedef struct t_Open9xSwashRingData_v209 { // Swash Ring data
uint8_t invertELE:1;
uint8_t invertAIL:1;
uint8_t invertCOL:1;
uint8_t type:5;
uint8_t collectiveSource;
uint8_t value;
operator SwashRingData();
t_Open9xSwashRingData_v209() { memset(this, 0, sizeof(t_Open9xSwashRingData_v209)); }
}) Open9xSwashRingData_v209;
PACK(typedef struct t_Open9xFlightModeData_v201 {
int8_t trim[4]; // -500..500 => trim value, 501 => use trim of phase 0, 502, 503, 504 => use trim of phases 1|2|3|4 instead
int8_t trim_ext:8; // 2 less significant extra bits per trim (10bits trims)
int8_t swtch; // swtch of phase[0] is not used
char name[6];
uint8_t fadeIn:4;
uint8_t fadeOut:4;
operator FlightModeData();
t_Open9xFlightModeData_v201() { memset(this, 0, sizeof(t_Open9xFlightModeData_v201)); }
}) Open9xFlightModeData_v201;
PACK(typedef struct t_Open9xTimerData_v201 {
int8_t mode; // timer trigger source -> off, abs, stk, stk%, sw/!sw, !m_sw/!m_sw
uint16_t val:14;
uint16_t persistent:1;
uint16_t dir:1; // 0=>Count Down, 1=>Count Up
operator TimerData();
t_Open9xTimerData_v201() { memset(this, 0, sizeof(t_Open9xTimerData_v201)); }
}) Open9xTimerData_v201;
PACK(typedef struct t_Open9xTimerData_v202 {
int8_t mode; // timer trigger source -> off, abs, stk, stk%, sw/!sw, !m_sw/!m_sw
uint16_t val;
operator TimerData();
t_Open9xTimerData_v202() { memset(this, 0, sizeof(t_Open9xTimerData_v202)); }
}) Open9xTimerData_v202;
PACK(typedef struct t_Open9xTimerDataExtra {
uint16_t remanent:1;
uint16_t value:15;
t_Open9xTimerDataExtra() { memset(this, 0, sizeof(t_Open9xTimerDataExtra)); }
}) Open9xTimerDataExtra;
#define O9X_MAX_TIMERS 2
#define O9X_MAX_FLIGHT_MODES 5
#define O9X_MAX_MIXERS 32
#define O9X_MAX_EXPOS 14
#define O9X_NUM_CHNOUT 16 // number of real output channels CH1-CH16
#define O9X_NUM_CSW 12 // number of custom switches
#define O9X_NUM_FSW 16 // number of functions assigned to switches
#define O9X_MAX_CURVES 8
#define O9X_NUM_POINTS (112-O9X_MAX_CURVES)
#define O9X_MAX_GVARS 5
#define O9X_209_MAX_CURVE5 8
#define O9X_209_MAX_CURVE9 8
PACK(typedef struct t_Open9xModelData_v201 {
char name[10]; // 10 must be first for eeLoadModelName
Open9xTimerData_v201 timer1;
uint8_t protocol:3;
int8_t ppmNCH:3;
uint8_t thrTrim:1; // Enable Throttle Trim
uint8_t thrExpo:1; // Enable Throttle Expo
uint8_t trimInc:3; // Trim Increments
uint8_t spare1:1;
uint8_t pulsePol:1;
uint8_t extendedLimits:1;
uint8_t extendedTrims:1;
uint8_t spare2:1;
int8_t ppmDelay;
uint8_t beepANACenter; // 1<<0->A1.. 1<<6->A7
Open9xTimerData_v201 timer2;
Open9xMixData_v201 mixData[O9X_MAX_MIXERS];
Open9xLimitData_v201 limitData[O9X_NUM_CHNOUT];
Open9xExpoData_v201 expoData[O9X_MAX_EXPOS];
int8_t curves5[O9X_209_MAX_CURVE5][5];
int8_t curves9[O9X_209_MAX_CURVE9][9];
Open9xLogicalSwitchData_v208 customSw[O9X_NUM_CSW];
Open9xSafetySwData safetySw[O9X_NUM_CHNOUT];
Open9xFuncSwData_v201 funcSw[12];
Open9xSwashRingData_v208 swashR;
Open9xFlightModeData_v201 flightModeData[O9X_MAX_FLIGHT_MODES];
Open9xFrSkyData_v201 frsky;
operator ModelData();
t_Open9xModelData_v201() { memset(this, 0, sizeof(t_Open9xModelData_v201)); }
}) Open9xModelData_v201;
PACK(typedef struct t_Open9xModelData_v202 {
char name[10]; // 10 must be first for eeLoadModelName
Open9xTimerData_v202 timer1;
uint8_t protocol:3;
uint8_t thrTrim:1; // Enable Throttle Trim
int8_t ppmNCH:4;
uint8_t trimInc:3; // Trim Increments
uint8_t spare1:1;
uint8_t pulsePol:1;
uint8_t extendedLimits:1;
uint8_t extendedTrims:1;
uint8_t spare2:1;
int8_t ppmDelay;
uint8_t beepANACenter; // 1<<0->A1.. 1<<6->A7
Open9xTimerData_v202 timer2;
Open9xMixData_v201 mixData[O9X_MAX_MIXERS];
Open9xLimitData_v201 limitData[O9X_NUM_CHNOUT];
Open9xExpoData_v201 expoData[O9X_MAX_EXPOS];
int8_t curves5[O9X_209_MAX_CURVE5][5];
int8_t curves9[O9X_209_MAX_CURVE9][9];
Open9xLogicalSwitchData_v208 customSw[O9X_NUM_CSW];
Open9xSafetySwData safetySw[O9X_NUM_CHNOUT];
Open9xFuncSwData_v201 funcSw[12];
Open9xSwashRingData_v208 swashR;
Open9xFlightModeData_v201 flightModeData[O9X_MAX_FLIGHT_MODES];
Open9xFrSkyData_v202 frsky;
int8_t ppmFrameLength; // 0=22.5ms (10ms-30ms) 0.5msec increments
uint8_t thrTraceSrc;
uint8_t modelId;
operator ModelData();
t_Open9xModelData_v202() { memset(this, 0, sizeof(t_Open9xModelData_v202)); }
}) Open9xModelData_v202;
PACK(typedef struct t_Open9xModelData_v203 {
char name[10]; // 10 must be first for eeLoadModelName
Open9xTimerData_v202 timer1;
uint8_t protocol:3;
uint8_t thrTrim:1; // Enable Throttle Trim
int8_t ppmNCH:4;
uint8_t trimInc:3; // Trim Increments
uint8_t spare1:1;
uint8_t pulsePol:1;
uint8_t extendedLimits:1;
uint8_t extendedTrims:1;
uint8_t spare2:1;
int8_t ppmDelay;
uint8_t beepANACenter; // 1<<0->A1.. 1<<6->A7
Open9xTimerData_v202 timer2;
Open9xMixData_v203 mixData[O9X_MAX_MIXERS];
Open9xLimitData_v201 limitData[O9X_NUM_CHNOUT];
Open9xExpoData_v201 expoData[O9X_MAX_EXPOS];
int8_t curves5[O9X_209_MAX_CURVE5][5];
int8_t curves9[O9X_209_MAX_CURVE9][9];
Open9xLogicalSwitchData_v208 customSw[O9X_NUM_CSW];
Open9xFuncSwData_v203 funcSw[O9X_NUM_FSW];
Open9xSwashRingData_v208 swashR;
Open9xFlightModeData_v201 flightModeData[O9X_MAX_FLIGHT_MODES];
Open9xFrSkyData_v202 frsky;
int8_t ppmFrameLength; // 0=22.5ms (10ms-30ms) 0.5msec increments
uint8_t thrTraceSrc;
uint8_t modelId;
operator ModelData();
t_Open9xModelData_v203() { memset(this, 0, sizeof(t_Open9xModelData_v203)); }
}) Open9xModelData_v203;
PACK(typedef struct t_Open9xModelData_v204 {
char name[10]; // 10 must be first for eeLoadModelName
Open9xTimerData_v202 timer1;
uint8_t protocol:3;
uint8_t thrTrim:1; // Enable Throttle Trim
int8_t ppmNCH:4;
uint8_t trimInc:3; // Trim Increments
uint8_t spare1:1;
uint8_t pulsePol:1;
uint8_t extendedLimits:1;
uint8_t extendedTrims:1;
uint8_t spare2:1;
int8_t ppmDelay;
uint8_t beepANACenter; // 1<<0->A1.. 1<<6->A7
Open9xTimerData_v202 timer2;
Open9xMixData_v203 mixData[O9X_MAX_MIXERS];
Open9xLimitData_v201 limitData[O9X_NUM_CHNOUT];
Open9xExpoData_v201 expoData[O9X_MAX_EXPOS];
int8_t curves5[O9X_209_MAX_CURVE5][5];
int8_t curves9[O9X_209_MAX_CURVE9][9];
Open9xLogicalSwitchData_v208 customSw[O9X_NUM_CSW];
Open9xFuncSwData_v203 funcSw[O9X_NUM_FSW];
Open9xSwashRingData_v208 swashR;
Open9xFlightModeData_v201 flightModeData[O9X_MAX_FLIGHT_MODES];
Open9xFrSkyData_v204 frsky;
int8_t ppmFrameLength; // 0=22.5ms (10ms-30ms) 0.5msec increments
uint8_t thrTraceSrc;
uint8_t modelId;
Open9xFrSkyRSSIAlarm frskyRssiAlarms[2];
operator ModelData();
t_Open9xModelData_v204() { memset(this, 0, sizeof(t_Open9xModelData_v204)); }
}) Open9xModelData_v204;
PACK(typedef struct t_Open9xModelData_v205 {
char name[10]; // 10 must be first for eeLoadModelName
Open9xTimerData_v202 timers[O9X_MAX_TIMERS];
uint8_t protocol:3;
uint8_t thrTrim:1; // Enable Throttle Trim
int8_t ppmNCH:4;
uint8_t trimInc:3; // Trim Increments
uint8_t spare1:1;
uint8_t pulsePol:1;
uint8_t extendedLimits:1;
uint8_t extendedTrims:1;
uint8_t spare2:1;
int8_t ppmDelay;
uint8_t beepANACenter; // 1<<0->A1.. 1<<6->A7
Open9xMixData_v205 mixData[O9X_MAX_MIXERS];
Open9xLimitData_v201 limitData[O9X_NUM_CHNOUT];
Open9xExpoData_v201 expoData[O9X_MAX_EXPOS];
int8_t curves5[O9X_209_MAX_CURVE5][5];
int8_t curves9[O9X_209_MAX_CURVE9][9];
Open9xLogicalSwitchData_v208 customSw[O9X_NUM_CSW];
Open9xFuncSwData_v203 funcSw[O9X_NUM_FSW];
Open9xSwashRingData_v208 swashR;
Open9xFlightModeData_v201 flightModeData[O9X_MAX_FLIGHT_MODES];
Open9xFrSkyData_v205 frsky;
int8_t ppmFrameLength; // 0=22.5ms (10ms-30ms) 0.5msec increments
uint8_t thrTraceSrc;
uint8_t modelId;
uint8_t frskyLines[4];
uint16_t frskyLinesXtra;
int8_t servoCenter[O9X_NUM_CHNOUT];
operator ModelData();
t_Open9xModelData_v205() { memset(this, 0, sizeof(t_Open9xModelData_v205)); }
}) Open9xModelData_v205;
PACK(typedef struct t_Open9xModelData_v208 {
char name[10]; // 10 must be first for eeLoadModelName
Open9xTimerData_v202 timers[O9X_MAX_TIMERS];
uint8_t protocol:3;
uint8_t thrTrim:1; // Enable Throttle Trim
int8_t ppmNCH:4;
uint8_t trimInc:3; // Trim Increments
uint8_t disableThrottleWarning:1;
uint8_t pulsePol:1;
uint8_t extendedLimits:1;
uint8_t extendedTrims:1;
uint8_t spare2:1;
int8_t ppmDelay;
uint8_t beepANACenter; // 1<<0->A1.. 1<<6->A7
Open9xMixData_v205 mixData[O9X_MAX_MIXERS];
Open9xLimitData_v201 limitData[O9X_NUM_CHNOUT];
Open9xExpoData_v201 expoData[O9X_MAX_EXPOS];
int8_t curves5[O9X_209_MAX_CURVE5][5];
int8_t curves9[O9X_209_MAX_CURVE9][9];
Open9xLogicalSwitchData_v208 customSw[O9X_NUM_CSW];
Open9xFuncSwData_v203 funcSw[O9X_NUM_FSW];
Open9xSwashRingData_v208 swashR;
Open9xFlightModeData_v201 flightModeData[O9X_MAX_FLIGHT_MODES];
Open9xFrSkyData_v208 frsky;
int8_t ppmFrameLength; // 0=22.5ms (10ms-30ms) 0.5msec increments
uint8_t thrTraceSrc;
uint8_t modelId;
uint8_t frskyLines[4];
uint16_t frskyLinesXtra;
int8_t servoCenter[O9X_NUM_CHNOUT];
uint8_t varioSource:3;
uint8_t varioSpeedUpMin:5; // if increment in 0.2m/s = 3.0m/s max
uint8_t varioSpeedDownMin;
operator ModelData();
t_Open9xModelData_v208() { memset(this, 0, sizeof(t_Open9xModelData_v208)); }
}) Open9xModelData_v208;
PACK(typedef struct t_Open9xModelData_v209 {
char name[10]; // 10 must be first for eeLoadModelName
Open9xTimerData_v202 timers[O9X_MAX_TIMERS];
uint8_t protocol:3;
uint8_t thrTrim:1; // Enable Throttle Trim
int8_t ppmNCH:4;
uint8_t trimInc:3; // Trim Increments
uint8_t disableThrottleWarning:1;
uint8_t pulsePol:1;
uint8_t extendedLimits:1;
uint8_t extendedTrims:1;
uint8_t spare2:1;
int8_t ppmDelay;
uint8_t beepANACenter; // 1<<0->A1.. 1<<6->A7
Open9xMixData_v209 mixData[O9X_MAX_MIXERS];
Open9xLimitData_v201 limitData[O9X_NUM_CHNOUT];
Open9xExpoData_v201 expoData[O9X_MAX_EXPOS];
int8_t curves5[O9X_209_MAX_CURVE5][5];
int8_t curves9[O9X_209_MAX_CURVE9][9];
Open9xLogicalSwitchData_v209 customSw[O9X_NUM_CSW];
Open9xFuncSwData_v203 funcSw[O9X_NUM_FSW];
Open9xSwashRingData_v209 swashR;
Open9xFlightModeData_v201 flightModeData[O9X_MAX_FLIGHT_MODES];
Open9xFrSkyData_v208 frsky;
int8_t ppmFrameLength; // 0=22.5ms (10ms-30ms) 0.5msec increments
uint8_t thrTraceSrc;
uint8_t modelId;
uint8_t frskyLines[4];
uint16_t frskyLinesXtra;
int8_t servoCenter[O9X_NUM_CHNOUT];
uint8_t varioSource:3;
uint8_t varioSpeedUpMin:5; // if increment in 0.2m/s = 3.0m/s max
uint8_t varioSpeedDownMin;
uint8_t switchWarningStates;
operator ModelData();
t_Open9xModelData_v209() { memset(this, 0, sizeof(t_Open9xModelData_v209)); }
}) Open9xModelData_v209;
PACK(typedef struct t_Open9xModelData_v210 {
char name[10]; // 10 must be first for eeLoadModelName
Open9xTimerData_v202 timers[O9X_MAX_TIMERS];
uint8_t protocol:3;
uint8_t thrTrim:1; // Enable Throttle Trim
int8_t ppmNCH:4;
uint8_t trimInc:3; // Trim Increments
uint8_t disableThrottleWarning:1;
uint8_t pulsePol:1;
uint8_t extendedLimits:1;
uint8_t extendedTrims:1;
uint8_t spare2:1;
int8_t ppmDelay;
uint8_t beepANACenter; // 1<<0->A1.. 1<<6->A7
Open9xMixData_v209 mixData[O9X_MAX_MIXERS];
Open9xLimitData_v201 limitData[O9X_NUM_CHNOUT];
Open9xExpoData_v201 expoData[O9X_MAX_EXPOS];
int8_t curves[O9X_MAX_CURVES];
int8_t points[O9X_NUM_POINTS];
Open9xLogicalSwitchData_v209 customSw[O9X_NUM_CSW];
Open9xFuncSwData_v210 funcSw[O9X_NUM_FSW];
Open9xSwashRingData_v209 swashR;
Open9xFlightModeData_v201 flightModeData[O9X_MAX_FLIGHT_MODES];
int8_t ppmFrameLength; // 0=22.5ms (10ms-30ms) 0.5msec increments
uint8_t thrTraceSrc;
uint8_t modelId;
int8_t servoCenter[O9X_NUM_CHNOUT];
uint8_t switchWarningStates;
Open9xFrSkyData_v210 frsky;
operator ModelData();
t_Open9xModelData_v210() { memset(this, 0, sizeof(t_Open9xModelData_v210)); }
}) Open9xModelData_v210;
PACK(typedef struct t_Open9xModelData_v211 {
char name[10]; // 10 must be first for eeLoadModelName
Open9xTimerData_v202 timers[O9X_MAX_TIMERS];
uint8_t protocol:3;
uint8_t thrTrim:1; // Enable Throttle Trim
int8_t ppmNCH:4;
uint8_t trimInc:3; // Trim Increments
uint8_t disableThrottleWarning:1;
uint8_t pulsePol:1;
uint8_t extendedLimits:1;
uint8_t extendedTrims:1;
uint8_t spare1:1;
int8_t ppmDelay;
uint8_t beepANACenter; // 1<<0->A1.. 1<<6->A7
Open9xMixData_v211 mixData[O9X_MAX_MIXERS];
Open9xLimitData_v211 limitData[O9X_NUM_CHNOUT];
Open9xExpoData_v211 expoData[O9X_MAX_EXPOS];
int8_t curves[O9X_MAX_CURVES];
int8_t points[O9X_NUM_POINTS];
Open9xLogicalSwitchData_v209 customSw[O9X_NUM_CSW];
Open9xFuncSwData_v210 funcSw[O9X_NUM_FSW];
Open9xSwashRingData_v209 swashR;
Open9xFlightModeData_v201 flightModeData[O9X_MAX_FLIGHT_MODES];
int8_t ppmFrameLength; // 0=22.5ms (10ms-30ms) 0.5msec increments
uint8_t thrTraceSrc;
uint8_t modelId;
uint8_t switchWarningStates;
Open9xFrSkyData_v210 frsky;
operator ModelData();
t_Open9xModelData_v211() { memset(this, 0, sizeof(t_Open9xModelData_v211)); }
}) Open9xModelData_v211;
#endif
@@ -1,221 +0,0 @@
/*
* Author - Bertrand Songis <bsongis@gmail.com>
*
* Based on th9x -> http://code.google.com/p/th9x/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#include "opentxGruvin9xsimulator.h"
#include "opentxinterface.h"
#include "opentxeeprom.h"
#define SIMU
#define SIMU_EXCEPTIONS
#define PCBGRUVIN9X
#define CPUM2560
#define ROTARY_ENCODERS 2
#define HELI
#define TEMPLATES
#define SPLASH
#define FLIGHT_MODES
#define FRSKY
#define FRSKY_HUB
#define WS_HOW_HIGH
#define VARIO
#define PPM_UNIT_PERCENT_PREC1
#define BUZZER
#define AUDIO
#define HAPTIC
#define AUTOSWITCH
#define GRAPHICS
#define CURVES
#define XCURVES
#define GVARS
#define BOLD_FONT
#define VOICE
#define PPM_CENTER_ADJUSTABLE
#define PPM_LIMITS_SYMETRICAL
#define GAUGES
#define GPS
#define FAI_CHOICE
#define FRSKY_STICKS
#define EEPROM_VARIANT 3
#undef min
#undef max
#include <exception>
namespace Open9xGruvin9x {
#include "radio/src/targets/gruvin9x/board_gruvin9x.cpp"
#include "radio/src/targets/common_avr/telemetry_driver.cpp"
#include "radio/src/eeprom_common.cpp"
#include "radio/src/eeprom_rlc.cpp"
#include "radio/src/opentx.cpp"
#include "radio/src/strhelpers.cpp"
#include "radio/src/switches.cpp"
#include "radio/src/curves.cpp"
#include "radio/src/mixer.cpp"
#include "radio/src/pulses/pulses_avr.cpp"
#include "radio/src/stamp.cpp"
#include "radio/src/maths.cpp"
#include "radio/src/vario.cpp"
#include "radio/src/gui/menus.cpp"
#include "radio/src/gui/menu_model.cpp"
#include "radio/src/gui/menu_general.cpp"
#include "radio/src/gui/view_main.cpp"
#include "radio/src/gui/view_statistics.cpp"
#include "radio/src/gui/view_telemetry.cpp"
#include "radio/src/lcd.cpp"
#include "radio/src/keys.cpp"
#include "radio/src/simpgmspace.cpp"
#include "radio/src/templates.cpp"
#include "radio/src/translations.cpp"
#include "radio/src/fonts.cpp"
#include "radio/src/audio_avr.cpp"
#include "radio/src/buzzer.cpp"
#include "radio/src/targets/gruvin9x/somo14d.cpp"
#include "radio/src/telemetry/frsky.cpp"
#include "radio/src/telemetry/frsky_d.cpp"
#include "radio/src/translations/tts_en.cpp"
#include "radio/src/haptic.cpp"
int16_t g_anas[NUM_STICKS+BOARD_9X_NUM_POTS];
uint16_t anaIn(uint8_t chan)
{
if (chan == 7)
return 150;
else
return g_anas[chan];
}
bool hasExtendedTrims()
{
return g_model.extendedTrims;
}
uint8_t getStickMode()
{
return limit<uint8_t>(0, g_eeGeneral.stickMode, 3);
}
}
using namespace Open9xGruvin9x;
Open9xGruvin9xSimulator::Open9xGruvin9xSimulator()
{
}
bool Open9xGruvin9xSimulator::timer10ms()
{
#define TIMER10MS_IMPORT
#include "simulatorimport.h"
}
uint8_t * Open9xGruvin9xSimulator::getLcd()
{
#define GETLCD_IMPORT
#include "simulatorimport.h"
}
bool Open9xGruvin9xSimulator::lcdChanged(bool & lightEnable)
{
#define LCDCHANGED_IMPORT
#include "simulatorimport.h"
}
void Open9xGruvin9xSimulator::start(QByteArray & eeprom, bool tests)
{
g_rotenc[0] = 0;
g_rotenc[1] = 0;
memcpy(Open9xGruvin9x::eeprom, eeprom.data(), std::min<int>(sizeof(Open9xGruvin9x::eeprom), eeprom.size()));
StartEepromThread(NULL);
StartMainThread(tests);
}
void Open9xGruvin9xSimulator::start(const char * filename, bool tests)
{
g_rotenc[0] = 0;
g_rotenc[1] = 0;
StartEepromThread(filename);
StartMainThread(tests);
}
void Open9xGruvin9xSimulator::stop()
{
StopMainThread();
StopEepromThread();
}
void Open9xGruvin9xSimulator::getValues(TxOutputs &outputs)
{
#define GETVALUES_IMPORT
#define g_chans512 channelOutputs
#include "simulatorimport.h"
outputs.beep = g_beepCnt;
g_beepCnt = 0;
}
void Open9xGruvin9xSimulator::setValues(TxInputs &inputs)
{
#define SETVALUES_IMPORT
#include "simulatorimport.h"
}
void Open9xGruvin9xSimulator::setTrim(unsigned int idx, int value)
{
idx = Open9xGruvin9x::modn12x3[4*getStickMode() + idx];
uint8_t phase = getTrimFlightPhase(getFlightMode(), idx);
setTrimValue(phase, idx, value);
}
void Open9xGruvin9xSimulator::getTrims(Trims & trims)
{
uint8_t phase = getFlightMode();
trims.extended = hasExtendedTrims();
for (uint8_t idx=0; idx<4; idx++) {
trims.values[idx] = getTrimValue(getTrimFlightPhase(phase, idx), idx);
}
for (int i=0; i<2; i++) {
uint8_t idx = Open9xGruvin9x::modn12x3[4*getStickMode() + i];
int16_t tmp = trims.values[i];
trims.values[i] = trims.values[idx];
trims.values[idx] = tmp;
}
}
void Open9xGruvin9xSimulator::wheelEvent(uint8_t steps)
{
g_rotenc[0] += steps;
}
unsigned int Open9xGruvin9xSimulator::getPhase()
{
return getFlightMode();
}
const char * Open9xGruvin9xSimulator::getPhaseName(unsigned int phase)
{
static char buff[sizeof(g_model.flightModeData[0].name)+1];
zchar2str(buff, g_model.flightModeData[phase].name, sizeof(g_model.flightModeData[0].name));
return buff;
}
const char * Open9xGruvin9xSimulator::getError()
{
#define GETERROR_IMPORT
#include "simulatorimport.h"
}
@@ -1,61 +0,0 @@
/*
* Author - Bertrand Songis <bsongis@gmail.com>
*
* Based on th9x -> http://code.google.com/p/th9x/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#ifndef open9xGruvin9x_simulator_h
#define open9xGruvin9x_simulator_h
#include "simulatorinterface.h"
class RadioData;
class OpenTxEepromInterface;
class Open9xGruvin9xSimulator : public SimulatorInterface {
public:
Open9xGruvin9xSimulator();
virtual void start(QByteArray & eeprom, bool tests=true);
virtual void start(const char * filename, bool tests=true);
virtual void stop();
virtual bool timer10ms();
virtual uint8_t * getLcd();
virtual bool lcdChanged(bool & lightEnable);
virtual void setValues(TxInputs &inputs);
virtual void getValues(TxOutputs &outputs);
virtual void setTrim(unsigned int idx, int value);
virtual void getTrims(Trims & trims);
virtual unsigned int getPhase();
virtual const char * getPhaseName(unsigned int phase);
virtual void wheelEvent(uint8_t steps);
virtual const char * getError();
};
#endif
@@ -1,214 +0,0 @@
/*
* Author - Bertrand Songis <bsongis@gmail.com>
*
* Based on th9x -> http://code.google.com/p/th9x/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#include "opentxM128simulator.h"
#include "opentxinterface.h"
#include "opentxeeprom.h"
#define SIMU
#define SIMU_EXCEPTIONS
#define PCBSTD
#define CPUM128
#define HELI
#define TEMPLATES
#define SPLASH
#define FLIGHT_MODES
#define FRSKY
#define FRSKY_HUB
#define WS_HOW_HIGH
#define VARIO
#define PPM_UNIT_PERCENT_PREC1
#define AUDIO
#define HAPTIC
#define AUTOSWITCH
#define GRAPHICS
#define CURVES
#define XCURVES
#define GVARS
#define BOLD_FONT
#define VOICE
#define PPM_CENTER_ADJUSTABLE
#define PPM_LIMITS_SYMETRICAL
#define GAUGES
#define GPS
#define FAI_CHOICE
#define FRSKY_STICKS
#define DSM2
#define DSM2_PPM
#define EEPROM_VARIANT SIMU_M128_VARIANTS
#define GAUGES
#undef min
#undef max
#include <exception>
namespace OpenTxM128 {
#include "radio/src/targets/stock/board_stock.cpp"
#include "radio/src/targets/common_avr/telemetry_driver.cpp"
#include "radio/src/eeprom_common.cpp"
#include "radio/src/eeprom_rlc.cpp"
#include "radio/src/opentx.cpp"
#include "radio/src/strhelpers.cpp"
#include "radio/src/switches.cpp"
#include "radio/src/curves.cpp"
#include "radio/src/mixer.cpp"
#include "radio/src/pulses/pulses_avr.cpp"
#include "radio/src/stamp.cpp"
#include "radio/src/maths.cpp"
#include "radio/src/vario.cpp"
#include "radio/src/gui/menus.cpp"
#include "radio/src/gui/menu_model.cpp"
#include "radio/src/gui/menu_general.cpp"
#include "radio/src/gui/view_main.cpp"
#include "radio/src/gui/view_statistics.cpp"
#include "radio/src/gui/view_telemetry.cpp"
#include "radio/src/lcd.cpp"
#include "radio/src/keys.cpp"
#include "radio/src/simpgmspace.cpp"
#include "radio/src/templates.cpp"
#include "radio/src/translations.cpp"
#include "radio/src/fonts.cpp"
#include "radio/src/audio_avr.cpp"
#include "radio/src/targets/stock/voice.cpp"
#include "radio/src/telemetry/frsky.cpp"
#include "radio/src/telemetry/frsky_d.cpp"
#include "radio/src/translations/tts_en.cpp"
#include "radio/src/haptic.cpp"
int16_t g_anas[NUM_STICKS+BOARD_9X_NUM_POTS];
uint16_t anaIn(uint8_t chan)
{
if (chan == 7)
return 150;
else
return g_anas[chan];
}
bool hasExtendedTrims()
{
return g_model.extendedTrims;
}
uint8_t getStickMode()
{
return limit<uint8_t>(0, g_eeGeneral.stickMode, 3);
}
}
using namespace OpenTxM128;
OpenTxM128Simulator::OpenTxM128Simulator()
{
}
bool OpenTxM128Simulator::timer10ms()
{
#define TIMER10MS_IMPORT
#include "simulatorimport.h"
}
uint8_t * OpenTxM128Simulator::getLcd()
{
#define GETLCD_IMPORT
#include "simulatorimport.h"
}
bool OpenTxM128Simulator::lcdChanged(bool & lightEnable)
{
#define LCDCHANGED_IMPORT
#include "simulatorimport.h"
}
void OpenTxM128Simulator::start(QByteArray & eeprom, bool tests)
{
memcpy(OpenTxM128::eeprom, eeprom.data(), std::min<int>(sizeof(OpenTxM128::eeprom), eeprom.size()));
StartEepromThread(NULL);
StartMainThread(tests);
}
void OpenTxM128Simulator::start(const char * filename, bool tests)
{
StartEepromThread(filename);
StartMainThread(tests);
}
void OpenTxM128Simulator::stop()
{
StopMainThread();
StopEepromThread();
}
void OpenTxM128Simulator::getValues(TxOutputs &outputs)
{
#define GETVALUES_IMPORT
#define g_chans512 channelOutputs
#include "simulatorimport.h"
}
void OpenTxM128Simulator::setValues(TxInputs &inputs)
{
#define SETVALUES_IMPORT
#include "simulatorimport.h"
}
void OpenTxM128Simulator::setTrim(unsigned int idx, int value)
{
idx = OpenTxM128::modn12x3[4*getStickMode() + idx];
uint8_t phase = getTrimFlightPhase(getFlightMode(), idx);
setTrimValue(phase, idx, value);
}
void OpenTxM128Simulator::getTrims(Trims & trims)
{
uint8_t phase = getFlightMode();
trims.extended = hasExtendedTrims();
for (uint8_t idx=0; idx<4; idx++) {
trims.values[idx] = getTrimValue(getTrimFlightPhase(phase, idx), idx);
}
for (int i=0; i<2; i++) {
uint8_t idx = OpenTxM128::modn12x3[4*getStickMode() + i];
int16_t tmp = trims.values[i];
trims.values[i] = trims.values[idx];
trims.values[idx] = tmp;
}
}
void OpenTxM128Simulator::wheelEvent(uint8_t steps)
{
}
unsigned int OpenTxM128Simulator::getPhase()
{
return getFlightMode();
}
const char * OpenTxM128Simulator::getPhaseName(unsigned int phase)
{
static char buff[sizeof(g_model.flightModeData[0].name)+1];
zchar2str(buff, g_model.flightModeData[phase].name, sizeof(g_model.flightModeData[0].name));
return buff;
}
const char * OpenTxM128Simulator::getError()
{
#define GETERROR_IMPORT
#include "simulatorimport.h"
}
@@ -1,61 +0,0 @@
/*
* Author - Bertrand Songis <bsongis@gmail.com>
*
* Based on th9x -> http://code.google.com/p/th9x/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#ifndef OpenTxM128_simulator_h
#define OpenTxM128_simulator_h
#include "simulatorinterface.h"
class RadioData;
class OpenTxEepromInterface;
class OpenTxM128Simulator : public SimulatorInterface {
public:
OpenTxM128Simulator();
virtual void start(QByteArray & eeprom, bool tests=true);
virtual void start(const char * filename, bool tests=true);
virtual void stop();
virtual bool timer10ms();
virtual uint8_t * getLcd();
virtual bool lcdChanged(bool & lightEnable);
virtual void setValues(TxInputs &inputs);
virtual void getValues(TxOutputs &outputs);
virtual void setTrim(unsigned int idx, int value);
virtual void getTrims(Trims & trims);
virtual unsigned int getPhase();
virtual const char * getPhaseName(unsigned int phase);
virtual void wheelEvent(uint8_t steps);
virtual const char * getError();
};
#endif
@@ -1,218 +0,0 @@
/*
* Author - Bertrand Songis <bsongis@gmail.com>
*
* Based on th9x -> http://code.google.com/p/th9x/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#include "opentxM64simulator.h"
#include "opentxinterface.h"
#include "opentxeeprom.h"
#define HELI
#define SIMU
#define SIMU_EXCEPTIONS
#define PCBSTD
#define CPUM64
#define SPLASH
#define FLIGHT_MODES
#define PPM_UNIT_PERCENT_PREC1
#define HELI
#define TEMPLATES
#define FRSKY
#define FRSKY_HUB
#define WS_HOW_HIGH
#define PXX
#define DSM2
#define DSM2_PPM
#define VARIO
#define HAPTIC
#define AUTOSWITCH
#define GRAPHICS
#define CURVES
#define XCURVES
#define GVARS
#define BOLD_FONT
#define VOICE
#define PPM_CENTER_ADJUSTABLE
#define PPM_LIMITS_SYMETRICAL
#define BUZZER
#define GAUGES
#define GPS
#define FAI_CHOICE
#define FRSKY_STICKS
#define EEPROM_VARIANT SIMU_STOCK_VARIANTS
#define GAUGES
#define NUM_POTS 3
#undef min
#undef max
#include <exception>
namespace OpenTxM64 {
#include "radio/src/targets/stock/board_stock.cpp"
#include "radio/src/targets/common_avr/telemetry_driver.cpp"
#include "radio/src/eeprom_common.cpp"
#include "radio/src/eeprom_rlc.cpp"
#include "radio/src/opentx.cpp"
#include "radio/src/strhelpers.cpp"
#include "radio/src/switches.cpp"
#include "radio/src/curves.cpp"
#include "radio/src/mixer.cpp"
#include "radio/src/pulses/pulses_avr.cpp"
#include "radio/src/stamp.cpp"
#include "radio/src/maths.cpp"
#include "radio/src/vario.cpp"
#include "radio/src/gui/menus.cpp"
#include "radio/src/gui/menu_model.cpp"
#include "radio/src/gui/menu_general.cpp"
#include "radio/src/gui/view_main.cpp"
#include "radio/src/gui/view_statistics.cpp"
#include "radio/src/gui/view_telemetry.cpp"
#include "radio/src/lcd.cpp"
#include "radio/src/keys.cpp"
#include "radio/src/simpgmspace.cpp"
#include "radio/src/telemetry/frsky.cpp"
#include "radio/src/telemetry/frsky_d.cpp"
#include "radio/src/templates.cpp"
#include "radio/src/translations.cpp"
#include "radio/src/fonts.cpp"
#include "radio/src/targets/stock/voice.cpp"
#include "radio/src/buzzer.cpp"
#include "radio/src/translations/tts_en.cpp"
#include "radio/src/haptic.cpp"
int16_t g_anas[NUM_STICKS+BOARD_9X_NUM_POTS];
uint16_t anaIn(uint8_t chan)
{
if (chan == 7)
return 1500;
else
return g_anas[chan];
}
bool hasExtendedTrims()
{
return g_model.extendedTrims;
}
uint8_t getStickMode()
{
return limit<uint8_t>(0, g_eeGeneral.stickMode, 3);
}
}
using namespace OpenTxM64;
OpenTxM64Simulator::OpenTxM64Simulator()
{
#define INIT_IMPORT
#include "simulatorimport.h"
}
bool OpenTxM64Simulator::timer10ms()
{
#define TIMER10MS_IMPORT
#include "simulatorimport.h"
}
uint8_t * OpenTxM64Simulator::getLcd()
{
#define GETLCD_IMPORT
#include "simulatorimport.h"
}
bool OpenTxM64Simulator::lcdChanged(bool & lightEnable)
{
#define LCDCHANGED_IMPORT
#include "simulatorimport.h"
}
void OpenTxM64Simulator::start(QByteArray & eeprom, bool tests)
{
memcpy(&OpenTxM64::eeprom[0], eeprom.data(), 2048);
StartEepromThread(NULL);
StartMainThread(tests);
}
void OpenTxM64Simulator::start(const char * filename, bool tests)
{
StartEepromThread(filename);
StartMainThread(tests);
}
void OpenTxM64Simulator::stop()
{
StopMainThread();
StopEepromThread();
}
void OpenTxM64Simulator::getValues(TxOutputs &outputs)
{
#define GETVALUES_IMPORT
#define g_chans512 channelOutputs
#include "simulatorimport.h"
outputs.beep = g_beepCnt;
g_beepCnt = 0;
}
void OpenTxM64Simulator::setValues(TxInputs &inputs)
{
#define SETVALUES_IMPORT
#include "simulatorimport.h"
}
void OpenTxM64Simulator::setTrim(unsigned int idx, int value)
{
idx = OpenTxM64::modn12x3[4*getStickMode() + idx];
uint8_t phase = getTrimFlightPhase(getFlightMode(), idx);
setTrimValue(phase, idx, value);
}
void OpenTxM64Simulator::getTrims(Trims & trims)
{
uint8_t phase = getFlightMode();
trims.extended = hasExtendedTrims();
for (uint8_t idx=0; idx<4; idx++) {
trims.values[idx] = getTrimValue(getTrimFlightPhase(phase, idx), idx);
}
for (int i=0; i<2; i++) {
uint8_t idx = OpenTxM64::modn12x3[4*getStickMode() + i];
int16_t tmp = trims.values[i];
trims.values[i] = trims.values[idx];
trims.values[idx] = tmp;
}
}
unsigned int OpenTxM64Simulator::getPhase()
{
return getFlightMode();
}
const char * OpenTxM64Simulator::getPhaseName(unsigned int phase)
{
static char buff[sizeof(g_model.flightModeData[0].name)+1];
zchar2str(buff, g_model.flightModeData[phase].name, sizeof(g_model.flightModeData[0].name));
return buff;
}
const char * OpenTxM64Simulator::getError()
{
#define GETERROR_IMPORT
#include "simulatorimport.h"
}
@@ -1,60 +0,0 @@
/*
* Author - Bertrand Songis <bsongis@gmail.com>
*
* Based on th9x -> http://code.google.com/p/th9x/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#ifndef open9x_simulator_h
#define open9x_simulator_h
#include "simulatorinterface.h"
class OpenTxEepromInterface;
class OpenTxM64Simulator : public SimulatorInterface {
public:
OpenTxM64Simulator();
virtual void start(QByteArray & eeprom, bool tests=true);
virtual void start(const char * filename, bool tests=true);
virtual void stop();
virtual bool timer10ms();
virtual uint8_t * getLcd();
virtual bool lcdChanged(bool & lightEnable);
virtual void setValues(TxInputs &inputs);
virtual void getValues(TxOutputs &outputs);
virtual void setTrim(unsigned int idx, int value);
virtual void getTrims(Trims & trims);
virtual unsigned int getPhase();
virtual const char * getPhaseName(unsigned int phase);
virtual void wheelEvent(uint8_t steps) { }
virtual const char * getError();
};
#endif
@@ -1,258 +0,0 @@
/*
* Author - Bertrand Songis <bsongis@gmail.com>
*
* Based on th9x -> http://code.google.com/p/th9x/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#include "opentxSky9xsimulator.h"
#include "opentxinterface.h"
#include "appdata.h"
#define SIMU
#define SIMU_EXCEPTIONS
#define PCBSKY9X
#define CPUARM
#define REVB
#define ROTARY_ENCODERS 1
#define HELI
#define TEMPLATES
#define SPLASH
#define FLIGHT_MODES
#define FRSKY
#define FRSKY_HUB
#define WS_HOW_HIGH
#define VARIO
#define PPM_UNIT_PERCENT_PREC1
#define BUZZER
#define AUDIO
#define VOICE
#define HAPTIC
// #define PXX
#define DSM2
#define DSM2_PPM
#define DBLKEYS
#define AUTOSWITCH
#define GRAPHICS
#define SDCARD
#define CURVES
#define XCURVES
#define GVARS
#define BOLD_FONT
#define PPM_CENTER_ADJUSTABLE
#define PPM_LIMITS_SYMETRICAL
#define GAUGES
#define GPS
#define FAI_CHOICE
#define FRSKY_STICKS
#define NUM_POTS 3
#define EEPROM_VARIANT 3
#undef min
#undef max
#include <exception>
namespace Open9xSky9x {
#include "radio/src/targets/sky9x/board_sky9x.cpp"
#include "radio/src/pulses/ppm_arm.cpp"
#include "radio/src/pulses/pxx_arm.cpp"
#include "radio/src/pulses/dsm2_arm.cpp"
#include "radio/src/targets/sky9x/telemetry_driver.cpp"
#include "radio/src/targets/sky9x/pwr_driver.cpp"
#include "radio/src/targets/sky9x/eeprom_driver.cpp"
#include "radio/src/eeprom_common.cpp"
#include "radio/src/eeprom_raw.cpp"
#include "radio/src/eeprom_conversions.cpp"
#include "radio/src/opentx.cpp"
#include "radio/src/strhelpers.cpp"
#include "radio/src/switches.cpp"
#include "radio/src/mixer.cpp"
#include "radio/src/curves.cpp"
#include "radio/src/targets/sky9x/pulses_driver.cpp"
#include "radio/src/pulses/pulses_arm.cpp"
#include "radio/src/stamp.cpp"
#include "radio/src/maths.cpp"
#include "radio/src/vario.cpp"
#include "radio/src/gui/menus.cpp"
#include "radio/src/gui/menu_model.cpp"
#include "radio/src/gui/menu_general.cpp"
#include "radio/src/gui/view_main.cpp"
#include "radio/src/gui/view_statistics.cpp"
#include "radio/src/gui/view_telemetry.cpp"
#include "radio/src/gui/view_about.cpp"
#include "radio/src/gui/view_text.cpp"
#include "radio/src/lcd.cpp"
#include "radio/src/logs.cpp"
#include "radio/src/targets/sky9x/keys_driver.cpp"
#include "radio/src/keys.cpp"
#include "radio/src/simpgmspace.cpp"
#include "radio/src/templates.cpp"
#include "radio/src/translations.cpp"
#include "radio/src/fonts.cpp"
#include "radio/src/telemetry/frsky.cpp"
#include "radio/src/telemetry/frsky_sport.cpp"
#include "radio/src/telemetry/frsky_d.cpp"
#include "radio/src/targets/sky9x/audio_driver.cpp"
#include "radio/src/audio_arm.cpp"
#include "radio/src/buzzer.cpp"
#include "radio/src/targets/sky9x/sdcard_driver.cpp"
#include "radio/src/targets/sky9x/coproc_driver.cpp"
#include "radio/src/targets/sky9x/haptic_driver.cpp"
#include "radio/src/targets/sky9x/second_serial_driver.cpp"
#include "radio/src/haptic.cpp"
#include "radio/src/translations/tts_cz.cpp"
#include "radio/src/translations/tts_de.cpp"
#include "radio/src/translations/tts_en.cpp"
#include "radio/src/translations/tts_es.cpp"
#include "radio/src/translations/tts_se.cpp"
#include "radio/src/translations/tts_it.cpp"
#include "radio/src/translations/tts_fr.cpp"
#include "radio/src/translations/tts_pt.cpp"
#include "radio/src/translations/tts_sk.cpp"
#include "radio/src/translations/tts_pl.cpp"
#include "radio/src/translations/tts_hu.cpp"
int16_t g_anas[NUM_STICKS+BOARD_9X_NUM_POTS];
uint16_t anaIn(uint8_t chan)
{
if (chan == 7)
return 1500;
else
return g_anas[chan];
}
bool hasExtendedTrims()
{
return g_model.extendedTrims;
}
uint8_t getStickMode()
{
return limit<uint8_t>(0, g_eeGeneral.stickMode, 3);
}
}
using namespace Open9xSky9x;
Open9xSky9xSimulator::Open9xSky9xSimulator()
{
QString path=g.profile[g.id()].sdPath()+"/";
int i=0;
for (i=0; i< std::min(path.length(),1022); i++) {
simuSdDirectory[i]=path.at(i).toAscii();
}
simuSdDirectory[i]=0;
}
bool Open9xSky9xSimulator::timer10ms()
{
#define TIMER10MS_IMPORT
#include "simulatorimport.h"
}
uint8_t * Open9xSky9xSimulator::getLcd()
{
#define GETLCD_IMPORT
#include "simulatorimport.h"
}
bool Open9xSky9xSimulator::lcdChanged(bool & lightEnable)
{
#define LCDCHANGED_IMPORT
#include "simulatorimport.h"
}
void Open9xSky9xSimulator::start(QByteArray & eeprom, bool tests)
{
g_rotenc[0] = 0;
memcpy(Open9xSky9x::eeprom, eeprom.data(), std::min<int>(sizeof(Open9xSky9x::eeprom), eeprom.size()));
StartEepromThread(NULL);
StartMainThread(tests);
}
void Open9xSky9xSimulator::start(const char * filename, bool tests)
{
g_rotenc[0] = 0;
StartEepromThread(filename);
StartMainThread(tests);
}
void Open9xSky9xSimulator::stop()
{
StopMainThread();
StopEepromThread();
}
void Open9xSky9xSimulator::getValues(TxOutputs &outputs)
{
#define GETVALUES_IMPORT
#define g_chans512 channelOutputs
#include "simulatorimport.h"
outputs.beep = g_beepCnt;
g_beepCnt = 0;
}
void Open9xSky9xSimulator::setValues(TxInputs &inputs)
{
#define SETVALUES_IMPORT
#include "simulatorimport.h"
}
void Open9xSky9xSimulator::setTrim(unsigned int idx, int value)
{
idx = Open9xSky9x::modn12x3[4*getStickMode() + idx];
uint8_t phase = getTrimFlightPhase(getFlightMode(), idx);
setTrimValue(phase, idx, value);
}
void Open9xSky9xSimulator::getTrims(Trims & trims)
{
uint8_t phase = getFlightMode();
trims.extended = hasExtendedTrims();
for (uint8_t idx=0; idx<4; idx++) {
trims.values[idx] = getTrimValue(getTrimFlightPhase(phase, idx), idx);
}
for (int i=0; i<2; i++) {
uint8_t idx = Open9xSky9x::modn12x3[4*getStickMode() + i];
int16_t tmp = trims.values[i];
trims.values[i] = trims.values[idx];
trims.values[idx] = tmp;
}
}
void Open9xSky9xSimulator::wheelEvent(uint8_t steps)
{
g_rotenc[0] += steps*4;
}
unsigned int Open9xSky9xSimulator::getPhase()
{
return getFlightMode();
}
const char * Open9xSky9xSimulator::getPhaseName(unsigned int phase)
{
static char buff[sizeof(g_model.flightModeData[0].name)+1];
zchar2str(buff, g_model.flightModeData[phase].name, sizeof(g_model.flightModeData[0].name));
return buff;
}
const char * Open9xSky9xSimulator::getError()
{
#define GETERROR_IMPORT
#include "simulatorimport.h"
}
@@ -1,61 +0,0 @@
/*
* Author - Bertrand Songis <bsongis@gmail.com>
*
* Based on th9x -> http://code.google.com/p/th9x/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#ifndef open9xSky9x_simulator_h
#define open9xSky9x_simulator_h
#include "simulatorinterface.h"
class RadioData;
class OpenTxEepromInterface;
class Open9xSky9xSimulator : public SimulatorInterface {
public:
Open9xSky9xSimulator();
virtual void start(QByteArray & eeprom, bool tests=true);
virtual void start(const char * filename, bool tests=true);
virtual void stop();
virtual bool timer10ms();
virtual uint8_t * getLcd();
virtual bool lcdChanged(bool & lightEnable);
virtual void setValues(TxInputs &inputs);
virtual void getValues(TxOutputs &outputs);
virtual void setTrim(unsigned int idx, int value);
virtual void getTrims(Trims & trims);
virtual unsigned int getPhase();
virtual const char * getPhaseName(unsigned int phase);
virtual void wheelEvent(uint8_t steps);
virtual const char * getError();
};
#endif
@@ -1,295 +0,0 @@
/*
* Author - Bertrand Songis <bsongis@gmail.com>
*
* Based on th9x -> http://code.google.com/p/th9x/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#include "opentxTaranisSimulator.h"
#include "opentxinterface.h"
#include "appdata.h"
#define SIMU
#define SIMU_EXCEPTIONS
#define PCBTARANIS
#define CPUARM
#define HELI
#define SPLASH
#define FLIGHT_MODES
#define FRSKY
#define FRSKY_HUB
#define FRSKY_SPORT
#define GPS
#define VARIO
#define GAUGES
#define PPM_UNIT_PERCENT_PREC1
#define AUDIO
#define VOICE
#define PXX
#define DSM2
#define DSM2_PPM
#define DBLKEYS
#define AUTOSWITCH
#define GRAPHICS
#define SDCARD
#define RTCLOCK
#define CURVES
#define XCURVES
#define GVARS
#define BOLD_FONT
#define PPM_CENTER_ADJUSTABLE
#define PPM_LIMITS_SYMETRICAL
#define FAI_CHOICE
#define LUA
#define LUA_MODEL_SCRIPTS
#define EEPROM_VARIANT 3
#define HAPTIC
#define REVPLUS
#define NUM_POTS 5
#undef min
#undef max
#include <exception>
namespace Open9xX9D {
int taranisSimulatorBoard = 0;
inline int geteepromsize() {
return 32*1024;
}
#define EESIZE geteepromsize()
#include "radio/src/targets/taranis/board_taranis.cpp"
#include "radio/src/pulses/ppm_arm.cpp"
#include "radio/src/pulses/pxx_arm.cpp"
#include "radio/src/pulses/dsm2_arm.cpp"
#include "radio/src/eeprom_common.cpp"
#include "radio/src/eeprom_conversions.cpp"
#include "radio/src/eeprom_rlc.cpp"
#include "radio/src/opentx.cpp"
#include "radio/src/strhelpers.cpp"
#include "radio/src/switches.cpp"
#include "radio/src/curves.cpp"
#include "radio/src/mixer.cpp"
#include "radio/src/targets/taranis/pulses_driver.cpp"
#include "radio/src/targets/taranis/rtc_driver.cpp"
#include "radio/src/targets/taranis/trainer_driver.cpp"
#include "radio/src/targets/taranis/uart3_driver.cpp"
#include "radio/src/pulses/pulses_arm.cpp"
#include "radio/src/stamp.cpp"
#include "radio/src/maths.cpp"
#include "radio/src/vario.cpp"
#include "radio/src/gui/menus.cpp"
#include "radio/src/gui/menu_model.cpp"
#include "radio/src/gui/menu_general.cpp"
#include "radio/src/gui/view_main.cpp"
#include "radio/src/gui/view_statistics.cpp"
#include "radio/src/gui/view_channels.cpp"
#include "radio/src/gui/view_telemetry.cpp"
#include "radio/src/gui/view_text.cpp"
#include "radio/src/gui/view_about.cpp"
#include "radio/src/lcd.cpp"
#include "radio/src/logs.cpp"
#include "radio/src/rtc.cpp"
#include "radio/src/targets/taranis/keys_driver.cpp"
#include "radio/src/keys.cpp"
#include "radio/src/bmp.cpp"
#include "radio/src/haptic.cpp"
#include "radio/src/targets/taranis/haptic_driver.cpp"
// TODO Because FatFS in not C++ there cannot be namespaces there and the functions are defined several times!
#undef SDCARD
#include "radio/src/simpgmspace.cpp"
#define SDCARD
#include "radio/src/translations.cpp"
#include "radio/src/fonts.cpp"
#include "radio/src/telemetry/frsky.cpp"
#include "radio/src/telemetry/frsky_sport.cpp"
#include "radio/src/telemetry/frsky_d.cpp"
#include "radio/src/targets/taranis/audio_driver.cpp"
#include "radio/src/targets/taranis/telemetry_driver.cpp"
#include "radio/src/audio_arm.cpp"
#include "radio/src/translations/tts_cz.cpp"
#include "radio/src/translations/tts_de.cpp"
#include "radio/src/translations/tts_en.cpp"
#include "radio/src/translations/tts_es.cpp"
#include "radio/src/translations/tts_se.cpp"
#include "radio/src/translations/tts_it.cpp"
#include "radio/src/translations/tts_fr.cpp"
#include "radio/src/translations/tts_pt.cpp"
#include "radio/src/translations/tts_sk.cpp"
#include "radio/src/translations/tts_pl.cpp"
#include "radio/src/translations/tts_hu.cpp"
#include "radio/src/lua.cpp"
#include "radio/src/lua/src/lapi.c"
#include "radio/src/lua/src/lcode.c"
#include "radio/src/lua/src/lctype.c"
#include "radio/src/lua/src/ldebug.c"
#include "radio/src/lua/src/ldo.c"
#include "radio/src/lua/src/ldump.c"
#include "radio/src/lua/src/lfunc.c"
#include "radio/src/lua/src/lgc.c"
#include "radio/src/lua/src/llex.c"
#include "radio/src/lua/src/lmem.c"
#include "radio/src/lua/src/lobject.c"
#include "radio/src/lua/src/lopcodes.c"
#include "radio/src/lua/src/lparser.c"
#include "radio/src/lua/src/lstate.c"
#include "radio/src/lua/src/lstring.c"
#include "radio/src/lua/src/ltable.c"
#include "radio/src/lua/src/ltm.c"
#include "radio/src/lua/src/lundump.c"
#include "radio/src/lua/src/lvm.c"
#include "radio/src/lua/src/lzio.c"
#include "radio/src/lua/src/lbaselib.c"
#include "radio/src/lua/src/linit.c"
#include "radio/src/lua/src/lmathlib.c"
#include "radio/src/lua/src/loadlib.c"
#include "radio/src/lua/src/lauxlib.c"
#include "radio/src/lua/src/ltablib.c"
#include "radio/src/lua/src/lcorolib.c"
int16_t g_anas[NUM_STICKS+5];
uint16_t anaIn(uint8_t chan)
{
return g_anas[chan];
}
bool hasExtendedTrims()
{
return g_model.extendedTrims;
}
uint8_t getStickMode()
{
return limit<uint8_t>(0, g_eeGeneral.stickMode, 3);
}
void resetTrims()
{
GPIOE->IDR |= PIN_TRIM_LH_L | PIN_TRIM_LH_R | PIN_TRIM_LV_DN | PIN_TRIM_LV_UP;
GPIOC->IDR |= PIN_TRIM_RV_DN | PIN_TRIM_RV_UP | PIN_TRIM_RH_L | PIN_TRIM_RH_R;
}
}
using namespace Open9xX9D;
OpentxTaranisSimulator::OpentxTaranisSimulator()
{
taranisSimulatorBoard = GetEepromInterface()->getBoard();
QString path=g.profile[g.id()].sdPath()+"/";
int i=0;
for (i=0; i< std::min(path.length(),1022); i++) {
simuSdDirectory[i]=path.at(i).toAscii();
}
simuSdDirectory[i]=0;
}
bool OpentxTaranisSimulator::timer10ms()
{
#define TIMER10MS_IMPORT
#include "simulatorimport.h"
}
uint8_t * OpentxTaranisSimulator::getLcd()
{
#define GETLCD_IMPORT
#include "simulatorimport.h"
}
bool OpentxTaranisSimulator::lcdChanged(bool & lightEnable)
{
#define LCDCHANGED_IMPORT
#include "simulatorimport.h"
}
void OpentxTaranisSimulator::start(QByteArray & eeprom, bool tests)
{
memcpy(Open9xX9D::eeprom, eeprom.data(), std::min<int>(sizeof(Open9xX9D::eeprom), eeprom.size()));
StartEepromThread(NULL);
StartMainThread(tests);
}
void OpentxTaranisSimulator::start(const char * filename, bool tests)
{
StartEepromThread(filename);
StartMainThread(tests);
}
void OpentxTaranisSimulator::stop()
{
StopMainThread();
StopEepromThread();
}
void OpentxTaranisSimulator::getValues(TxOutputs &outputs)
{
#define GETVALUES_IMPORT
#define g_chans512 channelOutputs
#include "simulatorimport.h"
}
void OpentxTaranisSimulator::setValues(TxInputs &inputs)
{
#define SETVALUES_IMPORT
#include "simulatorimport.h"
}
void OpentxTaranisSimulator::setTrim(unsigned int idx, int value)
{
idx = Open9xX9D::modn12x3[4*getStickMode() + idx];
uint8_t phase = getTrimFlightPhase(getFlightMode(), idx);
setTrimValue(phase, idx, value);
}
void OpentxTaranisSimulator::getTrims(Trims & trims)
{
uint8_t phase = getFlightMode();
trims.extended = hasExtendedTrims();
for (uint8_t idx=0; idx<4; idx++) {
trims.values[idx] = getTrimValue(getTrimFlightPhase(phase, idx), idx);
}
for (int i=0; i<2; i++) {
uint8_t idx = Open9xX9D::modn12x3[4*getStickMode() + i];
int16_t tmp = trims.values[i];
trims.values[i] = trims.values[idx];
trims.values[idx] = tmp;
}
}
void OpentxTaranisSimulator::wheelEvent(uint8_t steps)
{
// g_rotenc[0] += steps*4;
}
unsigned int OpentxTaranisSimulator::getPhase()
{
return getFlightMode();
}
const char * OpentxTaranisSimulator::getPhaseName(unsigned int phase)
{
static char buff[sizeof(g_model.flightModeData[0].name)+1];
zchar2str(buff, g_model.flightModeData[phase].name, sizeof(g_model.flightModeData[0].name));
return buff;
}
const char * OpentxTaranisSimulator::getError()
{
#define GETERROR_IMPORT
#include "simulatorimport.h"
}
@@ -1,61 +0,0 @@
/*
* Author - Bertrand Songis <bsongis@gmail.com>
*
* Based on th9x -> http://code.google.com/p/th9x/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#ifndef opentx_taranis_simulator_h
#define opentx_taranis_simulator_h
#include "simulatorinterface.h"
class RadioData;
class OpenTxEepromInterface;
class OpentxTaranisSimulator : public SimulatorInterface {
public:
OpentxTaranisSimulator();
virtual void start(QByteArray & eeprom, bool tests=true);
virtual void start(const char * filename, bool tests=true);
virtual void stop();
virtual bool timer10ms();
virtual uint8_t * getLcd();
virtual bool lcdChanged(bool & lightEnable);
virtual void setValues(TxInputs &inputs);
virtual void getValues(TxOutputs &outputs);
virtual void setTrim(unsigned int idx, int value);
virtual void getTrims(Trims & trims);
virtual unsigned int getPhase();
virtual const char * getPhaseName(unsigned int phase);
virtual void wheelEvent(uint8_t steps);
virtual const char * getError();
};
#endif
File diff suppressed because it is too large Load Diff
+71 -64
View File
@@ -1,7 +1,12 @@
/*
* Author - Bertrand Songis <bsongis@gmail.com>
* Copyright (C) OpenTX
*
* Based on th9x -> http://code.google.com/p/th9x/
* Based on code named
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
@@ -11,104 +16,97 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#ifndef open9xeeprom_h
#define open9xeeprom_h
#ifndef _OPENTXEEPROM_H_
#define _OPENTXEEPROM_H_
#include <inttypes.h>
#include "eeprominterface.h"
#include "eepromimportexport.h"
#include <qbytearray.h>
#define GVARS_VARIANT 0x0001
#define FRSKY_VARIANT 0x0002
#define POS3_VARIANT 0x0004
#define MAVLINK_VARIANT 0x0008
#define M128_VARIANT 0x8000
#define GVARS_VARIANT 0x0001
#define FRSKY_VARIANT 0x0002
#define MAVLINK_VARIANT 0x0008
#define M128_VARIANT 0x8000
#define TARANIS_X9E_VARIANT 0x8000
#define TARANIS_X7_VARIANT 0x4000
#define SIMU_STOCK_VARIANTS (GVARS_VARIANT|FRSKY_VARIANT)
#define SIMU_M128_VARIANTS (M128_VARIANT|SIMU_STOCK_VARIANTS)
#define O9X_MAX_TIMERS 2
#define O9X_MAX_FLIGHT_MODES 5
#define O9X_MAX_MIXERS 32
#define O9X_MAX_EXPOS 14
#define O9X_NUM_CHNOUT 16 // number of real output channels CH1-CH16
#define O9X_NUM_CSW 12 // number of custom switches
#define O9X_NUM_FSW 16 // number of functions assigned to switches
#define O9X_MAX_CURVES 8
#define O9X_NUM_POINTS (112-O9X_MAX_CURVES)
#define O9X_ARM_MAX_FLIGHT_MODES 9
#define O9X_ARM_MAX_MIXERS 64
#define O9X_ARM_MAX_EXPOS 32
#define O9X_ARM_NUM_CHNOUT 32 // number of real output channels CH1-CH16
#define O9X_ARM_NUM_CSW 32 // number of custom switches
#define O9X_ARM_NUM_FSW 32 // number of functions assigned to switches
#define O9X_ARM_NUM_POINTS 512
#define O9X_ARM_MAX_CSFUNCOLD 13
#define O9X_ARM_MAX_CSFUNC 15
#define SIMU_STOCK_VARIANTS (GVARS_VARIANT|FRSKY_VARIANT)
#define SIMU_M128_VARIANTS (M128_VARIANT|SIMU_STOCK_VARIANTS)
class OpenTxGeneralData: public TransformedField {
public:
OpenTxGeneralData(GeneralSettings & generalData, BoardEnum board, unsigned int version, unsigned int variant=0);
OpenTxGeneralData(GeneralSettings & generalData, Board::Type board, unsigned int version, unsigned int variant=0);
virtual const QString & getName() { return internalField.getName(); }
QStringList errors()
{
return _errors;
}
protected:
virtual void beforeExport();
virtual void afterImport();
virtual void setError(const QString & error)
{
qWarning() << error;
_errors << error;
}
StructField internalField;
GeneralSettings & generalData;
BoardEnum board;
Board::Type board;
unsigned int version;
int inputsCount;
unsigned int chkSum;
unsigned int potsType[4];
QStringList _errors;
};
class ProtocolsConversionTable: public ConversionTable
{
public:
ProtocolsConversionTable(BoardEnum board)
ProtocolsConversionTable(Board::Type board)
{
int val = 0;
if (IS_ARM(board)) {
addConversion(OFF, val++);
addConversion(PULSES_OFF, val++);
}
addConversion(PPM, val++);
addConversion(PULSES_PPM, val++);
if (!IS_ARM(board)) {
addConversion(PPM16, val++);
addConversion(PPMSIM, val++);
addConversion(PULSES_PPM16, val++);
addConversion(PULSES_PPMSIM, val++);
}
if (IS_ARM(board)) {
addConversion(PXX_XJT_X16, val);
addConversion(PXX_XJT_D8, val);
addConversion(PXX_XJT_LR12, val++);
addConversion(PULSES_PXX_XJT_X16, val);
addConversion(PULSES_PXX_XJT_D8, val);
addConversion(PULSES_PXX_XJT_LR12, val++);
}
else {
addConversion(PXX_DJT, val++);
addConversion(PULSES_PXX_DJT, val++);
}
if (IS_ARM(board)) {
addConversion(LP45, val);
addConversion(DSM2, val);
addConversion(DSMX, val++);
addConversion(PULSES_LP45, val);
addConversion(PULSES_DSM2, val);
addConversion(PULSES_DSMX, val++);
}
else {
addConversion(LP45, val++);
addConversion(DSM2, val++);
addConversion(DSMX, val++);
addConversion(PULSES_LP45, val++);
addConversion(PULSES_DSM2, val++);
addConversion(PULSES_DSMX, val++);
}
if (IS_ARM(board)) {
addConversion(PULSES_CROSSFIRE, val++);
addConversion(PULSES_MULTIMODULE, val++);
addConversion(PULSES_PXX_R9M, val++);
addConversion(PULSES_SBUS, val++);
}
}
};
class ThrottleSourceConversionTable: public ConversionTable {
public:
ThrottleSourceConversionTable(BoardEnum board, unsigned int version);
};
class ChannelsConversionTable: public ConversionTable
{
public:
@@ -122,27 +120,36 @@ class ChannelsConversionTable: public ConversionTable
class OpenTxModelData: public TransformedField {
public:
OpenTxModelData(ModelData & modelData, BoardEnum board, unsigned int version, unsigned int variant);
OpenTxModelData(ModelData & modelData, Board::Type board, unsigned int version, unsigned int variant);
const char * getName() { return name; }
virtual const QString & getName() { return internalField.getName(); }
QStringList errors()
{
return _errors;
}
protected:
virtual void beforeExport();
virtual void afterImport();
virtual void setError(const QString & error)
{
qWarning() << error;
_errors << error;
}
StructField internalField;
ModelData & modelData;
BoardEnum board;
Board::Type board;
unsigned int version;
unsigned int variant;
private:
char name[256];
int subprotocols[C9X_NUM_MODULES+1/*trainer*/];
int subprotocols[CPN_MAX_MODULES+1/*trainer*/];
ProtocolsConversionTable protocolsConversionTable;
ThrottleSourceConversionTable throttleSourceConversionTable;
ChannelsConversionTable channelsConversionTable;
QStringList _errors;
};
void OpenTxEepromCleanup(void);
#endif
#endif // _OPENTXEEPROM_H_
File diff suppressed because it is too large Load Diff
@@ -1,7 +1,12 @@
/*
* Author - Bertrand Songis <bsongis@gmail.com>
*
* Based on th9x -> http://code.google.com/p/th9x/
* Copyright (C) OpenTX
*
* Based on code named
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
@@ -11,122 +16,136 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#ifndef open9x_interface_h
#define open9x_interface_h
#ifndef _OPENTXINTERFACE_H_
#define _OPENTXINTERFACE_H_
#include "eeprominterface.h"
#define OPENTX_COMPANION_DOWNLOADS "http://downloads-20.open-tx.org/companion"
#define OPENTX_FIRMWARE_DOWNLOADS "http://downloads-20.open-tx.org/firmware"
class RleFile;
class OpenTxFirmware;
class OpenTxEepromInterface : public EEPROMInterface
{
public:
OpenTxEepromInterface(BoardEnum board);
OpenTxEepromInterface(OpenTxFirmware * firmware);
virtual ~OpenTxEepromInterface();
virtual const int getEEpromSize();
virtual const int getMaxModels();
virtual bool load(RadioData &, const uint8_t *eeprom, int size);
virtual bool loadBackup(RadioData &, uint8_t *eeprom, int esize, int index);
virtual unsigned long load(RadioData &, const uint8_t * eeprom, int size);
virtual bool loadxml(RadioData &radioData, QDomDocument &doc);
virtual int save(uint8_t *eeprom, RadioData &radioData, uint32_t variant=0, uint8_t version=0);
virtual int getSize(ModelData &);
virtual int getSize(GeneralSettings &);
bool loadModelFromBackup(ModelData & model, const uint8_t * data, unsigned int size, uint8_t version, uint32_t variant);
virtual int isAvailable(Protocol proto, int port=0);
virtual unsigned long loadBackup(RadioData &, const uint8_t * eeprom, int esize, int index);
virtual int save(uint8_t * eeprom, const RadioData & radioData, uint8_t version=0, uint32_t variant=0);
virtual int getSize(const ModelData &);
virtual int getSize(const GeneralSettings &);
protected:
const char * getName();
bool checkVersion(unsigned int version);
EepromLoadErrors checkVersion(unsigned int version);
bool checkVariant(unsigned int version, unsigned int variant);
template <class T, class M>
bool loadFromByteArray(T & dest, const QByteArray & data, uint8_t version, uint32_t variant=0);
public:
template <class T, class M>
bool loadFromByteArray(T & dest, const QByteArray & data);
template <class T, class M>
bool saveToByteArray(const T & src, QByteArray & data, uint8_t version=0);
template <class T>
bool loadModel(ModelData &model, uint8_t *data, int index, unsigned int stickMode=0);
bool loadRadioSettingsFromRLE(GeneralSettings & settings, RleFile * rleFile, uint8_t version);
bool loadModelFromRLE(ModelData & model, RleFile * rleFile, unsigned int index, uint8_t version, uint32_t variant);
template <class T>
bool loadModelVariant(unsigned int index, ModelData &model, uint8_t *data, unsigned int version, unsigned int variant);
bool loadModel(uint8_t version, ModelData &model, uint8_t *data, int index, unsigned int variant, unsigned int stickMode=0);
template <class T>
bool saveModel(unsigned int index, ModelData &model, unsigned int version, unsigned int variant);
template <class T>
bool loadGeneral(GeneralSettings &settings, unsigned int version);
template <class T>
bool saveGeneral(GeneralSettings &settings, BoardEnum board, uint32_t version, uint32_t variant);
RleFile *efile;
void showErrors(const QString & title, const QStringList & errors);
uint8_t getLastDataVersion(Board::Type board);
RleFile * efile;
OpenTxFirmware * firmware;
};
class OpenTxFirmware: public FirmwareInterface {
class OpenTxFirmware: public Firmware
{
public:
OpenTxFirmware(const QString & id, OpenTxFirmware * parent):
FirmwareInterface(parent, id, parent->getName(), parent->getBoard(), parent->eepromInterface)
Firmware(parent, id, parent->getName(), parent->getBoard())
{
setEEpromInterface(parent->getEEpromInterface());
}
OpenTxFirmware(const QString & id, const QString & name, const BoardEnum board):
FirmwareInterface(id, name, board, new OpenTxEepromInterface(board))
OpenTxFirmware(const QString & id, const QString & name, const Board::Type board):
Firmware(id, name, board)
{
addLanguage("en");
addLanguage("cz");
addLanguage("de");
addLanguage("es");
addLanguage("fr");
addLanguage("it");
addLanguage("de");
addLanguage("se");
addLanguage("cz");
addLanguage("es");
addLanguage("nl");
addLanguage("pl");
addLanguage("pt");
addLanguage("se");
addTTSLanguage("en");
addTTSLanguage("fr");
addTTSLanguage("it");
addTTSLanguage("de");
addTTSLanguage("se");
addTTSLanguage("cz");
addTTSLanguage("sk");
addTTSLanguage("de");
addTTSLanguage("es");
addTTSLanguage("fr");
addTTSLanguage("hu");
addTTSLanguage("it");
addTTSLanguage("nl");
addTTSLanguage("pl");
addTTSLanguage("pt");
addTTSLanguage("es");
addTTSLanguage("hu");
addTTSLanguage("se");
addTTSLanguage("sk");
}
virtual FirmwareInterface * getFirmwareVariant(const QString & id);
virtual Firmware * getFirmwareVariant(const QString & id);
virtual QString getStampUrl();
virtual QString getReleaseNotesUrl();
virtual QString getFirmwareUrl();
virtual int getCapability(const Capability);
virtual bool isTelemetrySourceAvailable(int source);
virtual SimulatorInterface * getSimulator();
virtual int getCapability(Capability);
virtual QString getAnalogInputName(unsigned int index);
virtual QTime getMaxTimerStart();
virtual int isAvailable(PulsesProtocol proto, int port=0);
protected:
QString getFirmwareBaseUrl();
};
void registerOpenTxFirmwares();
void unregisterOpenTxFirmwares();
#endif
extern QList<OpenTxEepromInterface *> opentxEEpromInterfaces;
OpenTxEepromInterface * loadModelFromByteArray(ModelData & model, const QByteArray & data);
OpenTxEepromInterface * loadRadioSettingsFromByteArray(GeneralSettings & settings, const QByteArray & data);
bool writeModelToByteArray(const ModelData & model, QByteArray & data);
bool writeRadioSettingsToByteArray(const GeneralSettings & settings, QByteArray & data);
#endif // _OPENTXINTERFACE_H_
@@ -1,4 +0,0 @@
// Automatically generated file (CMake) - do not edit
#define DATE_STR "@DATE@"
#define TIME_STR "@TIME@"
#define VERS_STR "@C9X_VERSION@"
-323
View File
@@ -1,323 +0,0 @@
#include <algorithm>
#include "helpers.h"
#include "th9xeeprom.h"
RawSwitch th9xToSwitch(int8_t sw)
{
if (sw == 0)
return RawSwitch(SWITCH_TYPE_NONE);
else if (sw <= 9)
return RawSwitch(SWITCH_TYPE_SWITCH, sw);
else
return RawSwitch(SWITCH_TYPE_VIRTUAL, sw > 0 ? sw-9 : sw+9);
}
t_Th9xTrainerMix::t_Th9xTrainerMix()
{
memset(this, 0, sizeof(t_Th9xTrainerMix));
}
t_Th9xTrainerMix::operator TrainerMix()
{
TrainerMix c9x;
c9x.src = srcChn;
c9x.swtch = th9xToSwitch(swtch);
c9x.weight = (25 * studWeight) / 8;
c9x.mode = mode;
return c9x;
}
t_Th9xTrainerData::t_Th9xTrainerData()
{
memset(this, 0, sizeof(t_Th9xTrainerData));
}
t_Th9xTrainerData::operator TrainerData ()
{
TrainerData c9x;
for (int i=0; i<NUM_STICKS; i++) {
c9x.calib[i] = calib[i];
c9x.mix[i] = mix[i];
}
return c9x;
}
t_Th9xGeneral::t_Th9xGeneral()
{
memset(this, 0, sizeof(t_Th9xGeneral));
}
Th9xGeneral::operator GeneralSettings ()
{
GeneralSettings result;
result.version = myVers;
for (int i=0; i<NUM_STICKSnPOTS; i++) {
result.calibMid[i] = calibMid[i];
result.calibSpanNeg[i] = calibSpanNeg[i];
result.calibSpanPos[i] = calibSpanPos[i];
}
result.currModel = currModel;
result.contrast = contrast;
result.vBatWarn = vBatWarn;
result.vBatCalib = vBatCalib;
// result.lightSw = th9xToSwitch(lightSw);
result.trainer = trainer;
result.view = view;
result.disableThrottleWarning = disableThrottleWarning;
result.switchWarning = disableSwitchWarning ? 0 : -1;
result.disableMemoryWarning = disableMemoryWarning;
switch (beeperVal) {
case 0:
result.beeperMode = e_quiet;
break;
case 1:
result.beeperMode = e_no_keys;
break;
case 2:
result.beeperMode = e_all;
break;
case 3:
result.beeperMode = e_all;
result.beeperLength = 2;
}
result.stickMode = stickMode;
result.inactivityTimer = inactivityMin;
return result;
}
t_Th9xExpoData::t_Th9xExpoData()
{
memset(this, 0, sizeof(t_Th9xExpoData));
}
t_Th9xExpoData::operator ExpoData ()
{
ExpoData c9x;
if (exp5) {
c9x.curve.type = CurveReference::CURVE_REF_EXPO;
c9x.curve.value = exp5;
}
else if (curve > 6) {
c9x.curve.type = CurveReference::CURVE_REF_CUSTOM;
c9x.curve.value = curve - 6;
}
else if (curve > 0) {
c9x.curve.type = CurveReference::CURVE_REF_FUNC;
c9x.curve.value = curve;
}
c9x.mode = mode3;
c9x.weight = weight6;
c9x.chn = chn;
c9x.swtch = th9xToSwitch(drSw);
return c9x;
}
t_Th9xLimitData::t_Th9xLimitData()
{
memset(this, 0, sizeof(t_Th9xLimitData));
}
t_Th9xLimitData::operator LimitData ()
{
LimitData c9x;
c9x.min = min-100;
c9x.max = max+100;
c9x.revert = revert;
c9x.offset = offset;
return c9x;
}
t_Th9xMixData::t_Th9xMixData()
{
memset(this, 0, sizeof(t_Th9xMixData));
}
t_Th9xMixData::operator MixData ()
{
MixData c9x;
c9x.destCh = destCh;
if (srcRaw < 7)
c9x.srcRaw = RawSource(SOURCE_TYPE_STICK, srcRaw);
else if (srcRaw < 10)
c9x.srcRaw = RawSource(SOURCE_TYPE_NONE); // TODO
else if (srcRaw == 10)
c9x.srcRaw = RawSource(SOURCE_TYPE_MAX);
else if (srcRaw == 11)
c9x.srcRaw = RawSource(SOURCE_TYPE_NONE); // TODO CUR
else if (srcRaw < 24)
c9x.srcRaw = RawSource(SOURCE_TYPE_CH, srcRaw-12);
else /* always true if (srcRaw < 32) */
c9x.srcRaw = RawSource(SOURCE_TYPE_PPM, srcRaw-24);
c9x.weight = weight;
c9x.swtch = th9xToSwitch(swtch);
if (curve > 6) {
c9x.curve.type = CurveReference::CURVE_REF_CUSTOM;
c9x.curve.value = curve - 6;
}
else if (curve > 0) {
c9x.curve.type = CurveReference::CURVE_REF_FUNC;
c9x.curve.value = curve;
}
c9x.speedUp = speedUp;
c9x.speedDown = speedDown;
c9x.mltpx = (MltpxValue)mixMode;
return c9x;
}
t_Th9xLogicalSwitchData::operator LogicalSwitchData ()
{
LogicalSwitchData c9x;
c9x.func = opCmp;
c9x.val1 = val1;
c9x.val2 = val2;
if ((c9x.func >= LS_FN_VPOS && c9x.func <= LS_FN_ANEG) || c9x.func >= LS_FN_EQUAL) {
c9x.val1 = toSource(val1).toValue();
}
if (c9x.func >= LS_FN_EQUAL) {
c9x.val2 = toSource(val2).toValue();
}
if (c9x.func >= LS_FN_AND && c9x.func <= LS_FN_XOR) {
c9x.val1 = th9xToSwitch(val1).toValue();
c9x.val2 = th9xToSwitch(val2).toValue();
}
return c9x;
}
int8_t t_Th9xLogicalSwitchData::fromSource(RawSource source)
{
int v1 = 0;
if (source.type == SOURCE_TYPE_STICK)
v1 = 1+source.index;
else if (source.type == SOURCE_TYPE_ROTARY_ENCODER) {
EEPROMWarnings += ::QObject::tr("th9x on this board doesn't have Rotary Encoders") + "\n";
v1 = 5+source.index;
}
else if (source.type == SOURCE_TYPE_MAX)
v1 = 8;
/* else if (source.type == SOURCE_TYPE_3POS)
v1 = 9; */
else if (source.type == SOURCE_TYPE_CYC)
v1 = 10+source.index;
else if (source.type == SOURCE_TYPE_PPM)
v1 = 13+source.index;
else if (source.type == SOURCE_TYPE_CH)
v1 = 21+source.index;
else if (source.type == SOURCE_TYPE_TELEMETRY)
v1 = 36+source.index;
return v1;
}
RawSource t_Th9xLogicalSwitchData::toSource(int8_t value)
{
if (value == 0) {
return RawSource(SOURCE_TYPE_NONE);
}
else if (value <= 7) {
return RawSource(SOURCE_TYPE_STICK, value - 1);
}
else if (value == 8) {
return RawSource(SOURCE_TYPE_MAX);
}
/* else if (value == 9) {
return RawSource(SOURCE_TYPE_3POS);
} */
else if (value <= 12) {
return RawSource(SOURCE_TYPE_CYC, value-10);
}
else if (value <= 20) {
return RawSource(SOURCE_TYPE_PPM, value-13);
}
else if (value <= 36) {
return RawSource(SOURCE_TYPE_CH, value-21);
}
else {
return RawSource(SOURCE_TYPE_TELEMETRY, value-36);
}
}
t_Th9xModelData::t_Th9xModelData()
{
memset(this, 0, sizeof(t_Th9xModelData));
}
t_Th9xModelData::operator ModelData ()
{
ModelData c9x;
c9x.used = true;
getEEPROMString(c9x.name, name, sizeof(name));
/*switch(tmrMode) {
case 1:
c9x.timers[0].mode = TMRMODE_ABS;
break;
case 2:
c9x.timers[0].mode = TMRMODE_THs;
break;
case 3:
c9x.timers[0].mode = TMRMODE_THp;
break;
default:
c9x.timers[0].mode = TMRMODE_OFF;
break;
}*/
// c9x.timers[0].dir = tmrDir;
c9x.timers[0].val = tmrVal;
/*c9x.protocol = (Protocol)protocol;
c9x.moduleData[0].channelsCount = 8 + 2 * ppmNCH;
c9x.thrTrim = thrTrim;
c9x.thrExpo = thrExpo;
c9x.trimInc = trimInc;
c9x.moduleData[0].ppmDelay = 300 + 50 * ppmDelay;
c9x.funcSw[0].func = FuncTrims2Offsets;
if (trimSw) {
c9x.funcSw[0].swtch = trimSw;
}
c9x.beepANACenter = beepANACenter;
c9x.pulsePol = pulsePol;
c9x.extendedLimits = extendedLimits;
c9x.swashRingData.invertELE = swashInvertELE;
c9x.swashRingData.invertAIL = swashInvertAIL;
c9x.swashRingData.invertCOL = swashInvertCOL;
c9x.swashRingData.type = swashType;
c9x.swashRingData.collectiveSource = swashCollectiveSource;
c9x.swashRingData.value = swashRingValue;*/
for (int i=0; i<TH9X_NUM_CHNOUT; i++)
c9x.limitData[i] = limitData[i];
for (int i=0; i<TH9X_MAX_EXPOS; i++)
c9x.expoData[i] = expoTab[i];
for (int i=0; i<TH9X_MAX_MIXERS; i++)
c9x.mixData[i] = mixData[i];
for (int i=0; i<NUM_STICKS; i++)
c9x.flightModeData[0].trim[i] = trimData[i].itrim;
for (int i=0; i<TH9X_MAX_CURVES3; i++) {
c9x.curves[i].count = 3;
for (int j=0; j<3; j++) {
c9x.curves[i].points[j].x = -100 + 100*i;
c9x.curves[i].points[j].y = curves3[i][j];
}
}
for (int i=0; i<TH9X_MAX_CURVES5; i++) {
c9x.curves[i+TH9X_MAX_CURVES3].count = 5;
for (int j=0; j<5; j++) {
c9x.curves[i+TH9X_MAX_CURVES3].points[j].x = -100 + 50*i;
c9x.curves[i+TH9X_MAX_CURVES3].points[j].y = curves5[i][j];
}
}
for (int i=0; i<TH9X_MAX_CURVES9; i++) {
c9x.curves[i+TH9X_MAX_CURVES3+TH9X_MAX_CURVES5].count = 5;
for (int j=0; j<9; j++) {
c9x.curves[i+TH9X_MAX_CURVES3+TH9X_MAX_CURVES5].points[j].x = -100 + 50*i;
c9x.curves[i+TH9X_MAX_CURVES3+TH9X_MAX_CURVES5].points[j].y = curves9[i][j];
}
}
return c9x;
}
-182
View File
@@ -1,182 +0,0 @@
/*
* Author - Bertrand Songis <bsongis@gmail.com>
*
* Based on th9x -> http://code.google.com/p/th9x/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#ifndef th9xeeprom_h
#define th9xeeprom_h
#include <inttypes.h>
#include "eeprominterface.h"
//eeprom data
#define TH9X_NUM_CHNOUT 8
#define TH9X_MAX_EXPOS 15
#define TH9X_MAX_MIXERS 25
#define TH9X_MAX_SWITCHES 16
#define TH9X_MAX_CURVES3 3
#define TH9X_MAX_CURVES5 2
#define TH9X_MAX_CURVES9 2
#define TH9X_MAX_CSFUNC 13
#define MDVERS 6
#define TH9X_NUM_CSW 12 //number of custom switches
#define NUM_STICKSnPOTS 7 //number of sticks and pots
PACK(typedef struct t_Th9xTrainerMix {
uint8_t srcChn:3; //0-7 = ch1-8
int8_t swtch:5;
int8_t studWeight:6;
uint8_t mode:2; // off, add-mode, subst-mode
operator TrainerMix();
t_Th9xTrainerMix();
}) Th9xTrainerMix; //
PACK(typedef struct t_Th9xTrainerData {
int16_t calib[8];
Th9xTrainerMix mix[4];
operator TrainerData();
t_Th9xTrainerData();
}) Th9xTrainerData;
PACK(typedef struct t_Th9xGeneral {
uint8_t myVers;
int16_t calibMid[NUM_STICKSnPOTS];
int16_t calibSpanNeg[NUM_STICKSnPOTS];
int16_t calibSpanPos[NUM_STICKSnPOTS];
uint8_t inactivityMin; //ge150
uint8_t iTrimSwitch:4; //ge192
uint8_t iTrimTme1:2;
uint8_t iTrimTme2:2;
uint8_t currModel; //0..15
uint8_t contrast;
uint8_t vBatWarn;
int8_t vBatCalib;
int8_t lightSw;
Th9xTrainerData trainer;
uint8_t adcFilt:2;
uint8_t keySpeed:2;
uint8_t thr0pos:4;
uint8_t disableThrottleWarning:1;
uint8_t disableSwitchWarning:1;
uint8_t disableMemoryWarning:1;
uint8_t beeperVal:2;
uint8_t view:3;
uint8_t stickMode:2;
uint8_t naviMode:2;
operator GeneralSettings();
t_Th9xGeneral();
}) Th9xGeneral;
/*
* ModelData
*/
PACK(typedef struct t_Th9xExpoData {
int8_t exp5:5;
uint8_t mode3:3; //0=end 1=pos 2=neg 3=both 4=trimNeg
int8_t weight6:6;
uint8_t chn:2; //
int8_t drSw:5;
uint8_t curve:3; //
operator ExpoData();
t_Th9xExpoData();
}) Th9xExpoData;
PACK(typedef struct t_Th9xLimitData {
int8_t min:7;
bool scale:1;
int8_t max:7;
bool resv:1;
bool revert:1;
int8_t offset:7;
operator LimitData();
t_Th9xLimitData();
}) Th9xLimitData;
#define MLTPX_ADD 0
#define MLTPX_MUL 1
#define MLTPX_REP 2
PACK(typedef struct t_Th9xMixData {
uint8_t destCh:4; // 1..C9X_NUM_CHNOUT,X1-X4
uint8_t mixMode:2; // + * =
uint8_t dmy1:2; //
uint8_t srcRaw:5; // S1-4,P1-3,max,cur,X1-X4,p1-3,T1-8 24
uint8_t switchMode:2; // switchMode oOff\tiNeg\tiNul\tiPos
uint8_t curveNeg:1; // Cv cV
int8_t weight;
int8_t swtch:5;
uint8_t curve:3; // 0=off 1..7=cv1..7
uint8_t speedUp:4; // Servogeschwindigkeit aus Tabelle (10ms Cycle)
uint8_t speedDown:4; // 0 nichts
operator MixData();
t_Th9xMixData();
}) Th9xMixData;
PACK(typedef struct t_Th9xLogicalSwitchData {
uint8_t sw:3; // 0..7
uint8_t opCmp:2; // < & | ^
uint8_t opRes:3; // 0 => 1=> 0=> !=> & | ^
int8_t val1;
int8_t val2;
operator LogicalSwitchData();
t_Th9xLogicalSwitchData() { memset(this, 0, sizeof(t_Th9xLogicalSwitchData)); }
int8_t fromSource(RawSource source);
RawSource toSource(int8_t value);
}) Th9xLogicalSwitchData;
PACK(typedef struct t_Th9xTrimData {
int8_t itrim:6; //trim index
uint8_t tmode:2;
t_Th9xTrimData() { }
}) Th9xTrimData;
PACK(typedef struct t_Th9xModelData {
char name[10]; // 10 must be first for eeLoadModelName
uint8_t mdVers; // 1
uint8_t tmrMode:3; // 1
int8_t tmrSw:5; //
uint16_t tmrVal; // 2
uint8_t protocol:5; // 1
uint8_t protocolPar:3; //
char res[3]; // 3
Th9xLimitData limitData[TH9X_NUM_CHNOUT];// 3*8
Th9xExpoData expoTab[TH9X_MAX_EXPOS]; // 5*4 -> 3*15
Th9xMixData mixData[TH9X_MAX_MIXERS]; //0 5*25
int8_t curves3[TH9X_MAX_CURVES3][3]; // 9 new143
int8_t curves5[TH9X_MAX_CURVES5][5]; // 10
int8_t curves9[TH9X_MAX_CURVES9][9]; // 18
Th9xLogicalSwitchData switchTab[TH9X_MAX_SWITCHES];//
Th9xTrimData trimData[NUM_STICKS]; // 3*4 -> 1*4
operator ModelData();
t_Th9xModelData();
}) Th9xModelData;
#endif
@@ -1,155 +0,0 @@
/*
* Author - Bertrand Songis <bsongis@gmail.com>
*
* Based on th9x -> http://code.google.com/p/th9x/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#include <iostream>
#include "th9xinterface.h"
#include "th9xeeprom.h"
#include "th9xsimulator.h"
#include "file.h"
#include "appdata.h"
#define FILE_TYP_GENERAL 1
#define FILE_TYP_MODEL 2
#define FILE_GENERAL 0
#define FILE_MODEL(n) (1+n)
Th9xInterface::Th9xInterface():
EEPROMInterface(BOARD_STOCK),
efile(new RleFile())
{
}
Th9xInterface::~Th9xInterface()
{
delete efile;
}
const char * Th9xInterface::getName()
{
return "Th9x";
}
const int Th9xInterface::getEEpromSize()
{
QString avrMCU = g.mcu();
if (avrMCU==QString("m128")) {
return 2*EESIZE_STOCK;
}
return EESIZE_STOCK;
}
const int Th9xInterface::getMaxModels()
{
return 16;
}
bool Th9xInterface::loadxml(RadioData &radioData, QDomDocument &doc)
{
return false;
}
bool Th9xInterface::load(RadioData &radioData, const uint8_t *eeprom, int size)
{
std::cout << "trying th9x import... ";
if (size != getEEpromSize()) {
std::cout << "wrong size\n";
return false;
}
if (!efile->EeFsOpen((uint8_t *)eeprom, size, BOARD_STOCK)) {
std::cout << "wrong file system\n";
return false;
}
efile->openRd(FILE_GENERAL);
Th9xGeneral th9xGeneral;
if (efile->readRlc2((uint8_t*)&th9xGeneral, 1) != 1) {
std::cout << "no\n";
return false;
}
std::cout << "version " << (unsigned int)th9xGeneral.myVers << " ";
switch(th9xGeneral.myVers) {
case 6:
break;
default:
std::cout << "not th9x\n";
return false;
}
efile->openRd(FILE_GENERAL);
int len = efile->readRlc2((uint8_t*)&th9xGeneral, sizeof(Th9xGeneral));
if (len != sizeof(Th9xGeneral)) {
std::cout << "not th9x\n";
return false;
}
radioData.generalSettings = th9xGeneral;
for (int i=0; i<getMaxModels(); i++) {
Th9xModelData th9xModel;
efile->openRd(FILE_MODEL(i));
if (!efile->readRlc2((uint8_t*)&th9xModel, sizeof(Th9xModelData))) {
radioData.models[i].clear();
}
else {
radioData.models[i] = th9xModel;
}
}
std::cout << "ok\n";
return true;
}
bool Th9xInterface::loadBackup(RadioData &radioData, uint8_t *eeprom, int esize, int index)
{
return false;
}
int Th9xInterface::save(uint8_t *eeprom, RadioData &radioData, uint32_t variant, uint8_t version)
{
std::cout << "NO!\n";
// TODO a warning
return 0;
}
int Th9xInterface::getSize(ModelData &model)
{
return 0;
}
int Th9xInterface::getSize(GeneralSettings &settings)
{
return 0;
}
int Th9xInterface::isAvailable(Protocol proto, int port)
{
switch (proto) {
case PPM:
case SILV_A:
case SILV_B:
case SILV_C:
case CTP1009:
return 1;
default:
return 0;
}
}
@@ -1,57 +0,0 @@
/*
* Author - Bertrand Songis <bsongis@gmail.com>
*
* Based on th9x -> http://code.google.com/p/th9x/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#ifndef th9x_interface_h
#define th9x_interface_h
#include "eeprominterface.h"
class RleFile;
class Th9xInterface : public EEPROMInterface
{
public:
Th9xInterface();
virtual ~Th9xInterface();
virtual const char * getName();
virtual const int getEEpromSize();
virtual const int getMaxModels();
virtual bool load(RadioData &, const uint8_t *eeprom, int size);
virtual bool loadBackup(RadioData &, uint8_t *eeprom, int esize, int index);
virtual bool loadxml(RadioData &radioData, QDomDocument &doc);
virtual int save(uint8_t *eeprom, RadioData &radioData, uint32_t variant=0, uint8_t version=0);
virtual int getSize(ModelData &);
virtual int getSize(GeneralSettings &);
virtual int isAvailable(Protocol proto, int port=0);
protected:
RleFile *efile;
};
#endif
@@ -1,233 +0,0 @@
/*
* Author - Bertrand Songis <bsongis@gmail.com>
*
* Based on th9x -> http://code.google.com/p/th9x/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#include "firmwares/th9x/th9xsimulator.h"
#include "firmwares/th9x/th9xinterface.h"
#define SIM
#define SIMU
#define SIMU_EXCEPTIONS
#undef min
#undef max
#define NUM_POTS 3
#define NUM_CSW 12
#define SWSRC_SW1 10
#include <exception>
#include <algorithm>
namespace Th9x {
#include "simpgmspace.h"
#include "th9x.cpp"
#include "stamp.cpp"
#include "menus.cpp"
#include "pers.cpp"
#include "file.cpp"
#include "lcd.cpp"
#include "drivers.cpp"
#include "foldedlist.cpp"
#include "simpgmspace.cpp"
#include "pulses.cpp"
int16_t g_anas[7];
char g_title[80] = "";
uint16_t anaIn(uint8_t chan)
{
if (chan == 7)
return 750;
else
return 512 + g_anas[chan];
}
bool hasExtendedTrims()
{
return false;
}
void setTrim(uint8_t idx, int8_t value)
{
g_model.trimData[idx].itrim = trimRevertM(value, g_model.trimData[idx].tmode);
}
void getTrims(int16_t values[4])
{
for (int i=0; i<4; i++) {
values[i] = trimVal(i);
}
}
void eeprom_RESV_mismatch(void)
{
assert(!"Should never been called. Only needed by VC++ (debug mode)");
}
#define GPIO_TRIM_LH_L pind
#define GPIO_TRIM_LV_DN pind
#define GPIO_TRIM_RV_UP pind
#define GPIO_TRIM_RH_L pind
#define GPIO_TRIM_LH_R pind
#define GPIO_TRIM_LV_UP pind
#define GPIO_TRIM_RV_DN pind
#define GPIO_TRIM_RH_R pind
#define PIN_TRIM_LH_L (1<<INP_D_TRM_LH_DWN)
#define PIN_TRIM_LV_DN (1<<INP_D_TRM_LV_DWN)
#define PIN_TRIM_RV_UP (1<<INP_D_TRM_RV_UP)
#define PIN_TRIM_RH_L (1<<INP_D_TRM_RH_DWN)
#define PIN_TRIM_LH_R (1<<INP_D_TRM_LH_UP)
#define PIN_TRIM_LV_UP (1<<INP_D_TRM_LV_UP)
#define PIN_TRIM_RV_DN (1<<INP_D_TRM_RV_DWN)
#define PIN_TRIM_RH_R (1<<INP_D_TRM_RH_UP)
#define TRIM_CASE(key, pin, mask) \
case key: \
if (state) pin |= mask; else pin &= ~mask;\
break;
void simuSetTrim(uint8_t trim, bool state)
{
switch (trim) {
TRIM_CASE(0, GPIO_TRIM_LH_L, PIN_TRIM_LH_L)
TRIM_CASE(1, GPIO_TRIM_LH_R, PIN_TRIM_LH_R)
TRIM_CASE(2, GPIO_TRIM_LV_DN, PIN_TRIM_LV_DN)
TRIM_CASE(3, GPIO_TRIM_LV_UP, PIN_TRIM_LV_UP)
TRIM_CASE(4, GPIO_TRIM_RV_DN, PIN_TRIM_RV_DN)
TRIM_CASE(5, GPIO_TRIM_RV_UP, PIN_TRIM_RV_UP)
TRIM_CASE(6, GPIO_TRIM_RH_L, PIN_TRIM_RH_L)
TRIM_CASE(7, GPIO_TRIM_RH_R, PIN_TRIM_RH_R)
}
}
#define SWITCH_CASE(swtch, pin, mask) \
case swtch: \
if (state) pin &= ~(mask); else pin |= (mask); \
break;
#define SWITCH_3_CASE(swtch, pin1, pin2, mask1, mask2) \
case swtch: \
if (state >= 0) pin1 &= ~(mask1); else pin1 |= (mask1); \
if (state <= 0) pin2 &= ~(mask2); else pin2 |= (mask2); \
break;
void simuSetSwitch(uint8_t swtch, int8_t state)
{
switch (swtch) {
SWITCH_CASE(0, pine, 1<<INP_E_ThrCt)
SWITCH_CASE(4, pine, 1<<INP_E_AileDR)
SWITCH_3_CASE(3, ping, pine, (1<<INP_G_ID1), (1<<INP_E_ID2))
SWITCH_CASE(1, ping, 1<<INP_G_RuddDR)
SWITCH_CASE(2, pine, 1<<INP_E_ElevDR)
SWITCH_CASE(5, pine, 1<<INP_E_Gear)
SWITCH_CASE(6, pine, 1<<INP_E_Trainer)
default:
break;
}
}
#define KEY_CASE(key, pin, mask) \
case key: \
if (state) pin |= mask; else pin &= ~mask;\
break;
void simuSetKey(uint8_t key, bool state)
{
switch (key) {
KEY_CASE(KEY_MENU, pinb, (1<<INP_B_KEY_MEN))
KEY_CASE(KEY_EXIT, pinb, (1<<INP_B_KEY_EXT))
KEY_CASE(KEY_RIGHT, pinb, (1<<INP_B_KEY_RGT))
KEY_CASE(KEY_LEFT, pinb, (1<<INP_B_KEY_LFT))
KEY_CASE(KEY_UP, pinb, (1<<INP_B_KEY_UP))
KEY_CASE(KEY_DOWN, pinb, (1<<INP_B_KEY_DWN))
}
}
#define IS_BACKLIGHT_ON() (PORTB & (1<<OUT_B_LIGHT))
}
using namespace Th9x;
Th9xSimulator::Th9xSimulator(Th9xInterface * th9xInterface):
th9xInterface(th9xInterface)
{
}
bool Th9xSimulator::timer10ms()
{
#define TIMER10MS_IMPORT
#include "simulatorimport.h"
}
uint8_t * Th9xSimulator::getLcd()
{
#define GETLCD_IMPORT
#include "simulatorimport.h"
}
bool Th9xSimulator::lcdChanged(bool & lightEnable)
{
#define LCDCHANGED_IMPORT
#include "simulatorimport.h"
}
void Th9xSimulator::start(RadioData &radioData, bool tests)
{
th9xInterface->save(&eeprom[0], radioData);
StartMainThread(tests);
}
void Th9xSimulator::stop()
{
StopMainThread();
}
void Th9xSimulator::getValues(TxOutputs &outputs)
{
#define GETVALUES_IMPORT
#include "simulatorimport.h"
for (int i=0; i<8; i++)
outputs.chans[i] *= 2;
}
void Th9xSimulator::setValues(TxInputs &_inputs)
{
TxInputs inputs = _inputs;
for (int i=0; i<4; i++)
inputs.sticks[i] /= 2;
for (int i=0; i<3; i++)
inputs.pots[i] /= 2;
#define SETVALUES_IMPORT
#include "simulatorimport.h"
}
void Th9xSimulator::setTrim(unsigned int idx, int value)
{
Th9x::setTrim(idx, value);
}
void Th9xSimulator::getTrims(Trims & trims)
{
trims.extended = false;
Th9x::getTrims(trims.values);
}
const char * Th9xSimulator::getError()
{
#define GETERROR_IMPORT
#include "simulatorimport.h"
}
@@ -1,60 +0,0 @@
/*
* Author - Bertrand Songis <bsongis@gmail.com>
*
* Based on th9x -> http://code.google.com/p/th9x/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#ifndef th9x_simulator_h
#define th9x_simulator_h
#include "simulatorinterface.h"
class RadioData;
class Th9xInterface;
class Th9xSimulator : public SimulatorInterface {
public:
Th9xSimulator(Th9xInterface *);
virtual void start(RadioData & radioData, bool tests);
virtual void stop();
virtual bool timer10ms();
virtual uint8_t * getLcd();
virtual bool lcdChanged(bool & lightEnable);
virtual void setValues(TxInputs &inputs);
virtual void getValues(TxOutputs &outputs);
virtual void setTrim(unsigned int idx, int value);
virtual void getTrims(Trims & trims);
virtual unsigned int getPhase() { return 0; }
virtual void wheelEvent(uint8_t steps) { }
virtual const char * getError();
protected:
Th9xInterface * th9xInterface;
};
#endif
+311
View File
@@ -0,0 +1,311 @@
/*
* Copyright (C) OpenTX
*
* Based on code named
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include "flasheepromdialog.h"
#include "ui_flasheepromdialog.h"
#include "eeprominterface.h"
#include "helpers.h"
#include "storage.h"
#include "appdata.h"
#include "progressdialog.h"
#include "radiointerface.h"
#include "splashlibrarydialog.h"
FlashEEpromDialog::FlashEEpromDialog(QWidget *parent, const QString &filename):
QDialog(parent),
ui(new Ui::FlashEEpromDialog),
eepromFilename(filename),
radioData(new RadioData())
{
ui->setupUi(this);
ui->profileLabel->setText(tr("Current profile: %1").arg(g.profile[g.id()].name()));
if (!filename.isEmpty()) {
ui->eepromFilename->hide();
ui->eepromLoad->hide();
}
QString backupPath = g.profile[g.id()].pBackupDir();
if (backupPath.isEmpty()) {
backupPath=g.backupDir();
ui->backupBeforeWrite->setChecked(g.enableBackup() || g.profile[g.id()].penableBackup());
}
if (backupPath.isEmpty() || !QDir(backupPath).exists()) {
ui->backupBeforeWrite->setEnabled(false);
}
}
FlashEEpromDialog::~FlashEEpromDialog()
{
delete ui;
}
void FlashEEpromDialog::showEvent(QShowEvent *)
{
updateUI();
}
void FlashEEpromDialog::updateUI()
{
// ui->burnButton->setEnabled(true);
ui->eepromFilename->setText(eepromFilename);
if (!eepromFilename.isEmpty() && getEEpromVersion(eepromFilename) >= 0) {
ui->profileLabel->show();
ui->patchCalibration->show();
ui->patchHardwareSettings->show();
QString name = g.profile[g.id()].name();
QString calib = g.profile[g.id()].stickPotCalib();
QString trainercalib = g.profile[g.id()].trainerCalib();
QString DisplaySet = g.profile[g.id()].display();
QString BeeperSet = g.profile[g.id()].beeper();
QString HapticSet = g.profile[g.id()].haptic();
QString SpeakerSet = g.profile[g.id()].speaker();
if (!name.isEmpty()) {
ui->profileLabel->show();
ui->patchCalibration->show();
ui->patchHardwareSettings->show();
// TODO I hardcode the number of pots here, should be dependant on the board?
if (!((calib.length()==(CPN_MAX_STICKS+3)*12) && (trainercalib.length()==16))) {
ui->patchCalibration->setDisabled(true);
}
if (!((DisplaySet.length()==6) && (BeeperSet.length()==4) && (HapticSet.length()==6) && (SpeakerSet.length()==6))) {
ui->patchHardwareSettings->setDisabled(true);
}
}
else {
ui->profileLabel->hide();
}
ui->burnButton->setEnabled(true);
}
else {
ui->profileLabel->hide();
ui->patchCalibration->hide();
ui->patchHardwareSettings->hide();
}
QTimer::singleShot(0, this, SLOT(shrink()));
}
void FlashEEpromDialog::on_eepromLoad_clicked()
{
QString filename = QFileDialog::getOpenFileName(this, tr("Choose Radio Backup file"), g.eepromDir(), EXTERNAL_EEPROM_FILES_FILTER);
if (!filename.isEmpty()) {
eepromFilename = filename;
updateUI();
}
}
int FlashEEpromDialog::getEEpromVersion(const QString & filename)
{
int result = -1;
QSharedPointer<RadioData> radioData = QSharedPointer<RadioData>(new RadioData());
Storage storage(filename);
if (storage.load(*radioData)) {
result = radioData->generalSettings.version;
}
else {
QMessageBox::warning(this, tr("Error"), storage.error());
}
return result;
}
bool FlashEEpromDialog::patchCalibration()
{
QString calib = g.profile[g.id()].stickPotCalib();
QString trainercalib = g.profile[g.id()].trainerCalib();
int potsnum = getBoardCapability(getCurrentBoard(), Board::Pots);
int8_t txVoltageCalibration = (int8_t) g.profile[g.id()].txVoltageCalibration();
int8_t txCurrentCalibration = (int8_t) g.profile[g.id()].txCurrentCalibration();
int8_t PPM_Multiplier = (int8_t) g.profile[g.id()].ppmMultiplier();
if ((calib.length()==(CPN_MAX_STICKS+potsnum)*12) && (trainercalib.length()==16)) {
QString Byte;
int16_t byte16;
bool ok;
for (int i=0; i<CPN_MAX_STICKS+potsnum; i++) {
Byte=calib.mid(i*12,4);
byte16=(int16_t)Byte.toInt(&ok,16);
if (ok)
radioData->generalSettings.calibMid[i]=byte16;
Byte=calib.mid(4+i*12,4);
byte16=(int16_t)Byte.toInt(&ok,16);
if (ok)
radioData->generalSettings.calibSpanNeg[i]=byte16;
Byte=calib.mid(8+i*12,4);
byte16=(int16_t)Byte.toInt(&ok,16);
if (ok)
radioData->generalSettings.calibSpanPos[i]=byte16;
}
for (int i=0; i<4; i++) {
Byte = trainercalib.mid(i*4,4);
byte16 = (int16_t)Byte.toInt(&ok,16);
if (ok) {
radioData->generalSettings.trainer.calib[i] = byte16;
}
}
radioData->generalSettings.txCurrentCalibration = txCurrentCalibration;
radioData->generalSettings.txVoltageCalibration = txVoltageCalibration;
radioData->generalSettings.PPM_Multiplier = PPM_Multiplier;
return true;
}
else {
QMessageBox::critical(this, tr("Warning"), tr("Wrong radio calibration data in profile, Settings not patched"));
return false;
}
}
bool FlashEEpromDialog::patchHardwareSettings()
{
QString DisplaySet = g.profile[g.id()].display();
QString BeeperSet = g.profile[g.id()].beeper();
QString HapticSet = g.profile[g.id()].haptic();
QString SpeakerSet = g.profile[g.id()].speaker();
uint8_t GSStickMode=(uint8_t) g.profile[g.id()].gsStickMode();
uint8_t vBatWarn=(uint8_t) g.profile[g.id()].vBatWarn();
if ((DisplaySet.length()==6) && (BeeperSet.length()==4) && (HapticSet.length()==6) && (SpeakerSet.length()==6)) {
radioData->generalSettings.vBatWarn = vBatWarn;
radioData->generalSettings.stickMode = GSStickMode;
uint8_t byte8u;
int8_t byte8;
bool ok;
byte8=(int8_t)DisplaySet.mid(0,2).toInt(&ok,16);
if (ok) radioData->generalSettings.optrexDisplay=(byte8==1 ? true : false);
byte8u=(uint8_t)DisplaySet.mid(2,2).toUInt(&ok,16);
if (ok) radioData->generalSettings.contrast=byte8u;
byte8u=(uint8_t)DisplaySet.mid(4,2).toUInt(&ok,16);
if (ok) radioData->generalSettings.backlightBright=byte8u;
byte8u=(uint8_t)BeeperSet.mid(0,2).toUInt(&ok,16);
if (ok) radioData->generalSettings.beeperMode=(GeneralSettings::BeeperMode)byte8u;
byte8=(int8_t)BeeperSet.mid(2,2).toInt(&ok,16);
if (ok) radioData->generalSettings.beeperLength=byte8;
byte8u=(uint8_t)HapticSet.mid(0,2).toUInt(&ok,16);
if (ok) radioData->generalSettings.hapticMode=(GeneralSettings::BeeperMode)byte8u;
byte8u=(uint8_t)HapticSet.mid(2,2).toUInt(&ok,16);
if (ok) radioData->generalSettings.hapticStrength=byte8u;
byte8=(int8_t)HapticSet.mid(4,2).toInt(&ok,16);
if (ok) radioData->generalSettings.hapticLength=byte8;
byte8u=(uint8_t)SpeakerSet.mid(0,2).toUInt(&ok,16);
if (ok) radioData->generalSettings.speakerMode=byte8u;
byte8u=(uint8_t)SpeakerSet.mid(2,2).toUInt(&ok,16);
if (ok) radioData->generalSettings.speakerPitch=byte8u;
byte8u=(uint8_t)SpeakerSet.mid(4,2).toUInt(&ok,16);
if (ok) radioData->generalSettings.speakerVolume=byte8u;
return true;
}
else {
QMessageBox::critical(this, tr("Warning"), tr("Wrong radio setting data in profile, Settings not patched"));
return false;
}
}
void FlashEEpromDialog::on_burnButton_clicked()
{
// patch the eeprom if needed
bool patch = false;
if (ui->patchCalibration->isChecked()) {
patch |= patchCalibration();
}
if (ui->patchHardwareSettings->isChecked()) {
patch |= patchHardwareSettings();
}
QString filename = eepromFilename;
if (patch) {
QString filename = generateProcessUniqueTempFileName("temp.bin");
QFile file(filename);
uint8_t *eeprom = (uint8_t*)malloc(Boards::getEEpromSize(getCurrentBoard()));
int eeprom_size = getCurrentEEpromInterface()->save(eeprom, *radioData, 0, getCurrentFirmware()->getVariantNumber());
if (eeprom_size == 0) {
return;
}
if (!file.open(QIODevice::WriteOnly)) {
QMessageBox::warning(this, tr("Error"), tr("Cannot write file %1:\n%2.").arg(filename).arg(file.errorString()));
return;
}
QTextStream outputStream(&file);
long result = file.write((char*)eeprom, eeprom_size);
if (result != eeprom_size) {
QMessageBox::warning(this, tr("Error"), tr("Error writing file %1:\n%2.").arg(filename).arg(file.errorString()));
return;
}
}
close();
ProgressDialog progressDialog(this, tr("Write Models and Settings to Radio"), CompanionIcon("write_eeprom.png"));
// backup previous EEPROM if requested
QString backupFilename;
QString backupPath;
if (ui->backupBeforeWrite->isChecked()) {
backupPath = g.profile[g.id()].pBackupDir();
if (backupPath.isEmpty()) {
backupPath=g.backupDir();
}
backupFilename = backupPath + "/backup-" + QDateTime().currentDateTime().toString("yyyy-MM-dd-HHmmss") + ".bin";
}
else if (ui->checkFirmwareCompatibility->isChecked()) {
backupFilename = generateProcessUniqueTempFileName("eeprom.bin");
}
if (!backupFilename.isEmpty()) {
if (!readEeprom(backupFilename, progressDialog.progress())) {
return;
}
}
// check EEPROM compatibility if requested
if (ui->checkFirmwareCompatibility->isChecked()) {
int eepromVersion = getEEpromVersion(filename);
QString firmwareFilename = generateProcessUniqueTempFileName("flash.bin");
if (!readFirmware(firmwareFilename, progressDialog.progress()))
return;
QString compatEEprom = generateProcessUniqueTempFileName("compat.bin");
if (convertEEprom(filename, compatEEprom, firmwareFilename)) {
int compatVersion = getEEpromVersion(compatEEprom);
if ((compatVersion / 100) != (eepromVersion / 100)) {
QMessageBox::warning(this, tr("Warning"), tr("The radio firmware belongs to another product family, check file and preferences!"));
return;
}
else if (compatVersion < eepromVersion) {
QMessageBox::warning(this, tr("Warning"), tr("The radio firmware is outdated, please upgrade!"));
return;
}
filename = compatEEprom;
}
else if (QMessageBox::question(this, "Error", tr("Cannot check Models and Settings compatibility! Continue anyway?"), QMessageBox::Yes|QMessageBox::No) == QMessageBox::No) {
return;
}
qunlink(firmwareFilename);
}
// and write...
bool result = writeEeprom(filename, progressDialog.progress());
if (!result && !progressDialog.isEmpty()) {
progressDialog.exec();
}
}
void FlashEEpromDialog::on_cancelButton_clicked()
{
close();
}
void FlashEEpromDialog::shrink()
{
resize(0, 0);
}
+62
View File
@@ -0,0 +1,62 @@
/*
* Copyright (C) OpenTX
*
* Based on code named
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef _FLASHEEPROMDIALOG_H_
#define _FLASHEEPROMDIALOG_H_
#include <constants.h>
#include <QtWidgets>
namespace Ui
{
class FlashEEpromDialog;
}
class RadioData;
class FlashEEpromDialog : public QDialog
{
Q_OBJECT
public:
explicit FlashEEpromDialog(QWidget *parent, const QString &fileName="");
~FlashEEpromDialog();
private slots:
void on_eepromLoad_clicked();
void on_burnButton_clicked();
void on_cancelButton_clicked();
void shrink();
protected:
void updateUI();
bool isValidEEprom(const QString &filename);
int getEEpromVersion(const QString &filename);
bool patchCalibration();
bool patchHardwareSettings();
virtual void showEvent(QShowEvent *);
private:
Ui::FlashEEpromDialog *ui;
QString eepromFilename;
RadioData *radioData;
};
#endif // _FLASHEEPROMDIALOG_H_

Some files were not shown because too many files have changed in this diff Show More