* fixed issue where returning from popup was blocking UP/DOWN navigation,
* added shortcut to go directly to edit mode for empty LS,
* removed POT navigation code,
* more cleanup
* use proper internal module timer alias from hal.h,
* rename *_arm to generic file names,
* added APB2 SYSCFG define to hal.h, removed from intmoduleAfhds2aStart,
* cleanup of dead code
* fixed custom failsafe channels setup missing for channels > 8,
* fixed checkModelIdUnique on invalid menu line,
* default model internal module off,
* refactored findNextUnusedModelId (opentx#7259)
* remove undocumented long press OK to auto assign next free model ID, reeanable unique ID warn
* removed not used translations
* remove DATETIME translation
* exclude VKEYS for non MENU_DIAG_ANAS_KEYS builds
* exclude SLIDERTYPES when NUM_SLIDERS == 0
* USB Serial mode
* USB vid, pid
* shorten USB strings
* single USB mode define, as in EdgeTX
* added CRSF and AFHDS2A USB Telem mirror,
* Reduce CDC_IN_FRAME_INTERVAL since we have smaller buffer and this matches EdgeTX
* fix GCC warnings
* removed tiny_string dependency,
* replaced goodBadPkt and elrsFlags with linkstat,
* do not reset linkstat.flags on device change,
* update CMAKE size comment
* increased fieldData buffer size by overlapping it with general data buffer
* increased max devices count,
* renamed some functions,
* do not store popup msg if popup is not shown,
* skip field on first chunk if wrong folder,
* reduced FieldProps size,
* Use standard Fifo for buzzer
* Added DFPlayer driver,
integrated with buzzer driver,
* enabled Play Value and Play Track special functions,
* split AUX2 into AUX3 and AUX4 Serial
* 2 pots on i6X,
* fixed definitions after AUX split
* renamed buzzerEvent to audioEvent
* aux4 init potential fix
* Added volume adjustment, removed delays for now.
* fixed play track + interval,
* fixed boot sounds and sounds order,
* unify delays timer init,
* Fixed volume levels
* Do not skip frequent sounds
* Fixed welcome sound order,
* Added filenames for Play Track
* Readjusted volume levels
* Do not play "zero" by default,
* added support for 9 custom tracks
* buid fix
* Flysky Gimbal implementation for the FS-i6X, this
this is possible thanks to the work of Janek, by
enabling the idle callback function for UART4
* Some changes done as requested by Janek
Outstanding requests:
- Write adc values directly to the DMA variable, this is
currently not possible as disabling channels 0-3 in
adcInit() messes with the order of the switches, pots
and sticks
* Hardware CRC16 1021 implemented and working well
* Direct write of adcValues is now completed
* Serial idle callback is now inside a void function
flysky_gimbal_init which is called in board.cpp
* use exact method names, timing and interface as Multiprotocol
* added spi error flags handling
* added CRC checking for A7105
* removed AFHDS2A sensor ID guard due to CRC checking
* cleanup
* CRCF check on Bind result
* Validate RX address
* Do not drop AFHDS2A_ID_GPS_STATUS high byte if not zero
* INAV Lite: report true rssi, fixed afhds2a alt, galt, curr, sats display,
Switched to 4 byte sensors (ibus_telemetry_type=7/8/135/136) for simplicity
* fixed display of GAlt unit
* fixed yaw
* added Vertical speed indicator
* remove debug display
* alt position fix
* Set home position on fix. emit sound.
* Show sats also on standard telemetry screens.
* hide HDOP
* reverted decode sats instead of fix
* cleanup
* An attempt to port INAV radar screen.
* removed splash to make it fit in the flash.
* reenable afhds2a sensor values. fixed galt screen position
* proper scale for altitude
* Fixed speed scaling
* display speed with one digit fraction
* Fixed rssi reading and sats icon position
* Fixed mode display for AFHDS2A
* Throttle display to 10fps
* Display HDOP, RX batt, cell voltage, updated layout,
* allow inversion of unit
* draw distance for CRSF and AFHDS2A
* use dist or "420" for CRSF dist
* keep data between sessions
* allow display as telemetry screen
* always enable radio tools, add INAV lite as build time option
* Refactored memory model to be more flexible and to support upcoming ExpressLRS version.
* Fixed save bug present on master
* removed shortening functions
* AFHDS2A telemetry mirror
* Mimic Multiprotocol module telemetry data format
* copy telemetry data to separate buffer
* increase telemetry mirror serial speed
* fixed telem sensor labels
- reload folder on change to refresh possible changes in Switch Mode and RX PWM mapping,
- use single continuous buffer to do not waste RAM + readjusted buffers,
- remove not used "reloadFolder" functionality,
- adjusted buffers,
- load folder items faster,
- added workaround for missing packet last 2 bytes,
- keep focus only on value, like in original lua,
- use unions for correct naming of popup and command fields,
- removed popup guards and added volatile instead,
* Fixed hardware menus definition,
fixed radio setup menu focus,
enabled DELETE action for special functions menu,
Unified Receiver row name to be always "Receiver" instead of "RxNum",
fixed splash screen delay option,
enabled channels monitor shortcut for model input edit and mixer edit by long press BIND button
* menu improvements backport (Fixes#7036)
* Use RxNum for AFHDS2A receiver identification
* Compilation fixes
* better data alignment,
* remove storing backlightColor for i6X,
* bump eeprom version,
* added RadioData and ModelData checks
* cosmetics
* subType should be able to store all modes
* UINT8 save, load and display were ignored,
* UINT8 min, max, unit offset was wrong,
* Other devices and back button IDs could overwrite actual field ID,
refactored to optimizer RAM usage,
added units support,
added CRSF_UINT8 support,
fixed bug where value of hidden field was stored,
display whole values: Packet Rate sensitivity is now visible,
* Dimmable backlight
* uses TIM3 CH4 PWM mode
* renamed backlightOn to resetBacklightTimeout (backport)
* updated readme
* EXT module power is moved from `PC9` to `PC13`
* Fix initial 100% blink
* renamed define
* Brightness adjust from backlight function (backport)
* Fixed dim light event with backlight off
* Defines improvement
* SBUS Trainer
* Fixed rx fifo again,
* Always invert UART RX because only SBUS for now,
* HAL libs don't care about mask
* Better workaround for CNDTR reading
* Move trainer functions to trainer.c (backport)
* Enable 16 channels trainer
* Enable trainer lost and back sounds
* Do not process sbus input when not enabled,
* Added translations
* Show Other Devices
* list devices
* select device
* Ignore unsupported fields,
* cleanup
* static
* do not trim before full packet is received,
* fields index reading on edit fix
* ported i2c driver from Taranis
* no paging in read mode - as in eeprom spec
* ACK polling instead of hardcoded wait
* wait for internal block write broken, replaced by hard delay
* removed libopencm3 i2c libs
* gpio speed should be higher
* timeout error handling,
* do not use additional RAM for writes,
* first try for sbus16
* next try on sbus16/ibus16
* cosmetics
* improved full ibus18 code
* reverted to use MAX_OUTPUT_CHANNELS=16 even for AFHDS2A_CHANNELS>16
* Reduced elrsv2 size.
* Don't store hidden field names.
* Skip hidden field support.
* don't leave line for field without a name
* reuse fieldData buffer for commandMessage,
* backport warning timeout reset on flags change
* Trim only command names
* new lcd_Warn backport
* reduce chunks buffer usage
* Load only current folder into buffers.
* Rearrange buffers to reduce RAM usage.
* increased fieldData buffer
* Replaced sprintf with custom implementation.
* Skip unsupported field type.
Added GVARS to ELRSV2 build (now fits!)
Optimized ELRSV2 for size once again.
Make ELRSV2 idle update as fas as other menus
Hide Storage mode in options when not available
Removed frsky splash
Backported and customized Gauge widget.
Backported text centering feature.
Added custom CRSF hooks for scripts.
Removed ExpressLRS menu references from core.
Removed previous ExpressLRS menu implementation.
Ported ELRSV2.lua.
Telemetry sensors max at 22 for ELRSV2 builds.
Diagnostic keys screen is now define guarded and removed by default.
Diagnostic analogs screen is now define guarded and removed by default.
- bootloader boots main fw,
- main fw properly exposes version,
- USB registers as mass storage with fat FS and reports 3 files,
broken:
- input/output error when accessing files,
In our case this reclaims 584 bytes of RAM, leaving us with total of 1112 bytes free at the moment.
The most of it is change to MIXER_STACK_SIZE. My basic tests showed no issue so far.
Standard AFHDS2A protocol transmits all values as 2 raw bytes
and a stock FS-i6 transmitter shows voltage type values properly
as signed. This change interprets all UNIT_VOLTS FlySky telemetry
items as being signed 16-bit values so their display matches the
values displayed on stock FS-i6 and FS-i6X receivers.
Signed-off-by: Bryan Mayland <bmayland@capnbry.net>
* Use pwrCheck() as primary control point for shutdown, centralizes thread control in simpgmspace module;
* Remove main_thread_running in favor of separate variables for startup mode and shutdown flag;
* Don't start a thread for ARM startup, just run simuMain() directly (the thread just exits anyway);
* Refactor SIMU_SLEEP() macro, and remove all unnecessary uses of it, also remove SIMU_SLEEP_NORET;
* Add startType param to opentxStart() to control splash and startup checks;
* Fixes backlight never turning off in simulator with "SWITCH" power button type (pwrPressed() was always true);
* Fixes simu shutdown when model checklist is displayed at startup;
* Adds stubs to possibly simulate a "soft" power button in the future.
* Support new r9m firmwares
* More future proof, thx Kilrah
* (significant) typo
* Companion part
* Make support a compilation option
* Fix compilation for normal users
* Warning popup for usability tests
* Better implementation
* All sizes
* Cosmetics
* Flex is EU+/AU+ only
* [Companion] Handle "flexr9m" option in module settings UI (to match radio UI, including warning msg); Move some "toString" functions out of ModelPrinter into ModuleData/Multiprotocols; "Future-proof" available R9M power options based on "stdr9m" fw option; Fix missing "Hitec" MM protocol name; Fix printing of R9M-EU power level in ModelPrinter.
* Cosmetics
* Rename R9M flex option
* Move failsafe further back to prevent nav oddity
~ Move UI to new FileSyncDialog class;
~ Improve UI responsiveness during operation (closes#5005);
+ Add log verbosity option (also helps with UI response);
+ Add several filtering settings in new "extra options" panel (include/exlude patterns, symlinks, recursive, empty folders);
~ Exclude patterns ".*" and "System Volume*" by default (addresses #5213, #5106);
+ Sanity check file timestamps when using date comparison, future dates are invalid (addresses #5735);
~ Folders are no longer included in file counts (total/created/etc);
~ Ignore unreadable files/dirs (also enables NTFS permissions check);
~ Switch from QMutex to QReadWriteLock.
~ All stored properties are fully dynamic, using an extended version of the Qt Property System;
~ CompStoreObj is now QObject subclass;
+ All properties now have change notifier signals;
~ Do not store default values in settings;
+ Add _reset() and _default() functions for each property;
+ Settings import now ignores all non-existent properties automatically;
+ Add settings export functions;
+ Add more version macros;
~ Remove template functions;
~ Move DownloadBranchType and create NewModelAction enums and register with Qt meta system;
~ Multiple efficiency and optimization changes (const functions, literals, etc).
This reverts commit 17b4aa2466.
Removing the -nostartfiles caused the Taranis bootloader to include
a number of strange functions. Instead define _fini to avoid the linker
issues.
This reverts commit 17b4aa2466.
Removing the -nostartfiles caused the Taranis bootloader to include
a number of strange functions. Instead define _fini to avoid the linker
issues.
* Changed USB Gamepad resolution to full 11 bit and fixed offset issues for some games
* Changed USB Gamepad resolution to full 11 bit and fixed offset issues for some games
* Changed USB Gamepad resolution to full 11 bit and fixed offset issues for some games
* [companion][build][Windows] Refactor 'install' and 'installer' targets: Use qtwindeploy to collect Qt dependencies; 'install' with WIN_DO_FULL_INSTALL=YES now really copies everything needed; Simplified NSIS script, now also supports MinGW build; Refactor libeay search.
* Rename nsis input script.
* Fix NSIS input script name in CMakeLists.txt.
* [Companion][build] Create new Windows icon with more sizes; move icon files out of src root.
* [CompanionIcon] Can now add multiple image files to icon for representing different UI states (checked/active/etc).
* [Companion][CustomFunctionsPanel] Fix sound file locked after playback (fixes#5222, fixes#5997); Refactor play button (fixes#4929); Create new QMediaPlayer on each play and load in "LowLatency" mode instead of stream.
We already do averaging in the normal anaIn/getADC().
Also according to Mike's and my own research we don't need the averaging.
Tested on two X-Lites with PMW sticks
* Implement model note view without menu handler. Use it before pulse starts
* Also at model change. Handle wd reset and start pulses after mixer
* Fix Horus compile
* Fix Horus crash
* Fix coding style issue
* [Companion][LogsDialog] Use relative path for Google Earth track icon (fixes#5080); Use detached process to launch GE (does not restart GE for every export, does not keep handle to GE process); Fix typo in warning message.
* [LogsDialog] Use GE export file path as base for icon path (don't assume TempDir); Fix auto-connection warning from Qt due to misnamed function; Remove redundant check for existing GE file.
QT 5.11 finally removes the qt5_use_modules macro.
Instead target_link_libraries with the Qt5::Lib added should be used.
Since we already use that in one place, it should work everywhere. Since
the common companion lib already depends on Core, widges and multimedia
components that link against it, also implicitly link against those
libraries.
* add receiver number check for Horus
* find the first free model ID on LONG ENTER
* use the next free model ID for new models
* improve free model ID support for std LCD as well
* fixed “duplicate model”
* fixed ModelsList::isModelIdUnique()
* avoid generating a blank part for font size that do not have extras
* use “stretch” instead of “jessie”
.. and add libgtest-dev.
* keep space width equal 4, no matter what
* updated generated fonts
* updated reference images
* Replace PyQt completely (#5902)
* ported img2lbm.py to Pillow (and get rid of PyQt)
* removed PyQt from Dockerfile
* fixed travis
* fixed issue with img2lbm and Horus bitmaps
When an "Adjust GV" special function is reusing trim buttons to increase/decrease GVs, then the trim limits are applied instead of GV limits. This patch applies the GV limits.
* added setCustomFailsafe()
* failsafe setup: set all custom channels with ENTER long press
implements #5820
* added “outputs -> failsafe” menu item on horus
* change “Trims >> Subtrims” to “Trims => Subtrims”
* use translated string for “Outputs => Failsafe”
* fixed entered TR_TRIMS2OFFSETS and TR_OUTPUTS2FAILSAFE
When using ZCHARs in Horus texts, there are some artefacts when highlighted.
* added “outputs -> failsafe” menu item on taranis 212x64 LCD
* added “outputs -> failsafe” menu item on taranis 128x64 LCD
* fixed indentation
* - Match X9 behavior
- Made to handle replacing SH by a two pos and the future two additional switches
- Use string tables to find switch standard designation
* Compile fix
* Save 128 byte by moving variable to stack
* Make usb mass storage buffer smaller on F2 processors and put into reuseablebuffer
- Lower USB mass storage buffer to 512 bytes per default on F2
targets, makes usb speed slightly slower ~600 kB/s instead ~700 KB/s
in my tests, saving 3584 bytes
- Save another ~300 bytes by putting that buffer into reusableBuffer
* Don't put id into reusuableBuffer
All uses of id can be on the stack as well. Makes no difference for ram usage but makes it safer to reuse reusableBuffer
* Only link cdc serial when needed
We always linked usb cdc even in non debug builds. CDC uses about ~600 byte of RAM for its buffers and structures.
* [Companion] Qualify all remaining QObject translations with proper class/object names; Centralize some common strings into constants.h.
* [Companion] Replace all instances of some common strings with macros from constants.h.
* [Companion] Fix translation warnings from lupdate.
* [Companion] Add Qt tr() functions to all radio data classes instead of using generic QObject type. (no functional changes)
* Small fix for gcc.
* Move more element name string generation to individual classes; settle on nameToString as function name.
* Also put firmware build options translations into Firmware scope.
* Added: scripts for nightly build (SD card content, Russian voice), system sounds: done, other sounds: partially
Fixed: gTTS issue with unicode (Cyrillic) chars in command params (gTTS module instead of system command)
* Fixed: gTTS issue with Unicode (Cyrillic) chars in command params (gTTS module instead of system command), for release candidates and release
Changed: SOX params to normalize the audio
Added: "psv" parameter to export list of audio files into PSV format (see TTSAutomate https://github.com/CaffeineAU/TTSAutomate , to generate voice files using TTS engines from Microsoft, Amazon, Google etc)
Added: some extra voice files for RU
* [Companion] Refactor radio data classes to own files, out of eeprominterface.cpp. No functional changes.
* Move files related to refactoring. No functional or code changes.
* Fix clang warning and an include path.
* Fix indents on curvereference.cpp. [ci skip]
* [Companion] RawSourceRange: Fix for timers and RTC; Remove unused "single precision" flag and logic; Add logic for "short" timer handling.
* [Companion] Add TimerEdit class for editing negative times; Implement TimerEdit in LS, CF, and Telemetry (bars) editors;
* [Companion] Refactor LogicalSwitchesPanel for fewer & more efficient updates; Fix newly-added LS not being available in source lists; Fix bug with timer/rtc comparison values getting reset to value of spin box instead of time editor.
* Add forgotten #include.
* [Companion] LogicalSwitchesPanel: Update raw sources list upon screen refresh (fixes#5374); Improve data entry in spin boxes (fixes#5375).
* Make gcc happy.
* [Companion] Set proper RawSourceRange for GVars, trims, mixer scripts, and sticks/switches/cyclic/MAX.
* [Companion] Fix backwards precision/range logic on telemetry sensors offset spinbox; Fix other minor range issues with ratio & offset.
* [Companion] Remove short limit on min/max timer values for LS & telem. bars.
* Switch to TimerEdit in maxLibQt.
* Fix gcc build.
* Remove unused files.
* Caps fix.
* [firmware][ARM] Adjust some value limits for mix sources and update editing UI for LSs, CFs, & telem. bars:
* Increase timer limits to +/-8:59:59 when used with LSs, CFs, & bars;
* Increase Lua script output limits to +/-30K;
* Trim limits based on extended limit model setting;
* Limit TX voltage to 25.5;
* Limit TX time comparison value to 29:59m;
* Use proper GVar limits (user-configured), display precision, & unit in LSs & telem. bars;
* Display timer values properly with hours (instead of mmm:ss).
* [firmware] getTimerString() would fail with times >= 100min if hours weren't shown.
* Fix builds w/out GVars.
* Add firmware lun target for non EEPROM platforms
* Fix Fat fat tables and make FAT 1024 byte big
* Niceify some constants
* Cleanup (saves 1024 byte of flash) and fix reporting wrong Size of drive
* Silence compiler warning, set right size for flash on X12/X10
* Add firmware.txt/bootload.txt to virtual drive that displays version information
* Report also version of other component (bootloader/firmware)
* Show version also in bootloader and fix F4 platforms
* Save space on X7
* Fix X7 logic
* Compile fix for AVR
* avr-gcc does not like no newline after ifdef
* Really fix avr
* Move MultiposPots & MultiposPotsPositions capability lookups and getAnalogInputName() to Boards class.
* Add RawSource::isAvailable() and RawSwitch::isAvailable(); Add board type param to various RawSource lookup functions.
* Add CustomFunctionData::toString(), FlightModeData::toString(), FactoryInstalledPots board capability, MAX_SWITCH_TYPE, & break out GeneralSettings source/switch defaults to own function.
* Add RadioDataConversionState class for tracking conversion actions.
* Implement RadioDataConversionState handler, add conversion process report, and improve/fix conversion issues:
* Make sure all switches/pots/knobs have default configs for destination board type;
* Try to move more custom control names, intelligently;
* Convert model timers and throttle source;
* Adjust for Horus 6P switch in place of Taranis S2 knob;
* Adjust for extra sliders on X12 and X9E to move LS and RS to proper slots as needed;
* Make sure ALL controls are validated, eg. to always account for extra trims/analogs/switches/etc which don't exist on destination;
* Properly indicate invalid RawSource::toString() items with "???".
* Allow user to cancel out of file conversions & provide ample warnings if switching radio type/profile with unsaved file(s) still open;
Also: Fix bug with some orphaned MdiChild windows never being deleted; Create static bool Storage::isBoardCompatible(b1, b2).
* Add maxLibQt "stub" (will not compile).
* Add ExportableTableView for better presentation of conversion results table.
* Move getFourCC() and isBoardCompatible() to Boards class.
* 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
* [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.
* 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
* 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
* 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
* [Companion] Fix conversion of switches between X7 and X9/10/12 radios.
* [Companion] Also convert raw sources in ExpoData (inputs) when switching radio types.
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.
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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)
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.
* - 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
* 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
* 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
* 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
* 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
* 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
+ 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
* 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
* 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
* 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
* 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
* 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.
* [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.
* [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.
* [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
* 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
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 (';')`
* [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.
* [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).
* Generated new French .ts file.
* Update French translation concerning the new SD sync mechanism.
* Skip must be translated as "Ignorer", not "Sauter".
* French mistake.
* 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;
* [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.
* [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.
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
* [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().
* 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“
* 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
* [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.
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
* [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).
* 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
* Create getUnit lua function
* Cosmetics
* Expend getFieldInfo instead of creating a new function
* Streamline units table
* @projeckk2glider comments
* Cosmetics
* Use simple division
* [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.
* 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.
* [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)
* 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
* [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".
* [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.
* [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.
* [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.
* [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.
* 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.
* [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).
* [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).
* [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.
* [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.
* 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
* [Simulator] Increase resolution of CoGetOSTime() on Windows MSVC (possible fix for #4529, ref. #4342).
* Return total time, not delta time.
* Improve efficiency.
* 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
* 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
* Missing debug timer
* USB driver cleanup
* Re #4479: Joystick update called from mixer thread every 10ms
* Cosmetics
* Compilation fix
* Cosmetics
* Another compilation fix
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.
* [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
* [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)
* [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).
* 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.
* 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)
* [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
* 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
* 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
* 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
* 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
* 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
* [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.
* [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.
* 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
* 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 ;)
* [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.
* [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.
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*.
* 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
* [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
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
- 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.
* 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
* 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)
* 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
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.
* 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
* [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.
* 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
* 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.
* 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
* 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
* 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
* [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.
* 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)
* 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]
* [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
* 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
* [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.
* 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)
* 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
* [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.
* 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
* 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
* 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
* [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).
* [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.
* 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
* [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.
* [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).
* 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
* 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
* [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.
* 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
* [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! :)
* [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.
* [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.
* 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
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
* 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)
* [Companion] MdiChild now use a QTreeWidget instead of a QListWidget (for Horus compatibility)
* [Companion] Horus models.txt parsing / writing implemented
* Fix for QT53 (#4109)
* 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)
* 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)
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
* 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)
* 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
* 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
* [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
* Introduce f_gets()
* Comment out debug TRACE
* Windows editing protection
* Store strlen result + uncrustify
* Uncrustify was probably too harsh !
* Cosmetics
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).
* 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
* 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
* 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
* 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 ?)
* 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
* 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 ;)
# 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
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
[](https://opentx.rocket.chat)
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=DJ9MASSKVW8WN)
The ongoing development on 2.2.x is done in this branch.
# Custom OpenTX / EdgeTX for Flysky FS-i6X
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.
Join our [Discord](https://discord.gg/3vKfYNTVa2), [RCGroups](https://www.rcgroups.com/forums/showthread.php?3916435-FlySky-I6X-port-of-OpenTX) or [Telegram](https://t.me/otx_flysky_i6x) to contribute, discuss or get help.<br>
## Instructions
- [FlySky i6X user interface](https://github.com/OpenI6X/opentx/wiki/Manual) and other differences to official EdgeTX/OpenTX devices.<br>
* Mariano ([marianomd](https://github.com/marianomd)), continued Kuba's work and made it up to useable condition! Added gimbals, buttons, AFHDS2A, PPM, CRSF.
* Kuba ([qba667](https://github.com/qba667)), started this work and made this project possible, it is forked from his repo.
* Wilhelm ([wimalopaan](https://github.com/wimalopaan)) added 16 channels SBUS16 / IBUS16 modes.
* Rafael ([rafolg](https://github.com/rafolg)), ported FlySky Hall Gimbal support from EdgeTX.
* Tom ([tmcadam](https://github.com/tmcadam)) fixed AFHDS2A PWM mode selection.
* The internal RF code was taken from the great KotelloRC's [erfly6: Er9X for i6 and i6x](https://bitbucket.org/KotelloRC/erfly6/src/master/).
* Some of the internal RF fixes are a result of analysing [pascallanger's](https://github.com/pascallanger) [DIY-Multiprotocol-TX-Module](https://github.com/pascallanger/DIY-Multiprotocol-TX-Module).
* ExpressLRS configurator is based on elrsV2/V3.lua from [ExpressLRS](https://github.com/ExpressLRS/ExpressLRS).
* Some of the ports are from [EdgeTX](https://github.com/EdgeTX/edgetx/).
* ADC code taken from [OpenGround](https://github.com/fishpepper/OpenGround).
* All the contributors of [OpenTX](https://github.com/opentx/opentx/).
<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>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>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>
[Taranis]
<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>
@@ -22,10 +95,10 @@ Notice: version 2.1.4 was skipped by the OpenTX team to avoid confusion with FrS
<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.
<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>,
<li>Various small bug-fixes: <a href=https://github.com/opentx/opentx/issues/2994>#2994</a>,
# 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")
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)
option(DEBUG_IMPORT"Turn on debug output for EEPROM import")# Disabled by default
if(DEBUG_IMPORT)
add_definitions(-DDEBUG_MODEL_IMPORT)
message(STATUS"EEPROM import debugging enabled")
endif(DEBUG_IMPORT)
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()
option(TABLE_LAYOUT"Use QTableWidget for grid layouts")# Disabled by default
if(TABLE_LAYOUT)
add_definitions(-DTABLE_LAYOUT)
message(STATUS"Using QTableWidget")
endif(TABLE_LAYOUT)
endif()
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()
if(SDL_FOUND)
include_directories(${SDL_INCLUDE_DIR})
add_definitions(-DSIMU_AUDIO)
add_definitions(-DJOYSTICKS)
endif()
message(STATUS"Looking for QT lupdate ")
find_package(Lupdate)
if(LUPDATE_FOUND)
message("QT lupdate: "${LUPDATE_EXECUTABLE})
add_definitions(${APP_COMMON_DEFINES})# set in top-level CMakeLists
if(NOTMSVC)
set(WARNING_FLAGS"${WARNING_FLAGS} -Wall")
if(WARNINGS_AS_ERRORS)
set(WARNING_FLAGS"${WARNING_FLAGS} -Werror")
endif()
else()
message("QT lupdate not found!")
# silence lots of warnings regarding "insecure" use of functions (sprintf, strcpy, etc)
// if it's already selected, add a warning message
else
ui->updatesLayout->addWidget(newQLabel("<font color='red'>"%tr("Note: Nightly builds are not available in this version, Release/RC update channel will be used.")%"</font>",this));
tr("<b><u>WARNING!</u></b><br>Normally CPU type is automatically selected according to the chosen firmware.<br>If you change the CPU type the resulting eeprom could be inconsistent."),
QMessageBox::critical(nullptr,CPN_STR_APP_NAME,QCoreApplication::translate("Companion","The saved settings could not be imported, please try again or continue with current settings."),QMessageBox::Ok,0);
printf(tmpl,"--export",QCoreApplication::translate("Companion","Save application settings to file...").toUtf8().constData());
printf(tmpl,"--import",QCoreApplication::translate("Companion","Load application settings from file or previous version...").toUtf8().constData());
printf(tmpl,"--defaults",QCoreApplication::translate("Companion","Reset ALL application settings to default and remove radio profiles...").toUtf8().constData());
printf(tmpl,"--quit ",QCoreApplication::translate("Companion","Exit before settings initialization and application startup.").toUtf8().constData());
printf(tmpl,"--version",QCoreApplication::translate("Companion","Print version number and exit.").toUtf8().constData());
printf(tmpl,"--help|-h",QCoreApplication::translate("Companion","Print this help text.").toUtf8().constData());
fflush(stdout);
}
intmain(intargc,char*argv[])
{
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
/* From doc: This attribute must be set before Q(Gui)Application is constructed. */
printf("%s [Y/N] ",QCoreApplication::translate("Companion","Reset ALL application settings to default values and remove radio profiles, are you sure?").toUtf8().constData());
std::cin>>ok;
if(ok!='Y'&&ok!='y')
exit(0);
if(!doExport){
printf("%s [Y/N] ",QCoreApplication::translate("Companion","Would you like to perform a backup first?").toUtf8().constData());
std::cin>>ok;
if(ok=='Y'||ok=='y')
Helpers::exportAppSettings();
}
g.resetAllSettings();
g.storeAllSettings();
std::cout<<QCoreApplication::translate("Companion","Application settings were reset and saved.").toUtf8().constData()<<std::endl;
leFiltExc->setToolTip(tr("One or more file pattern(s) to exclude, separated by commas.\n""Blank means exclude none. ?, *, and [...] wildcards accepted."));
leFiltInc->setToolTip(tr("One or more file pattern(s) to include, separated by commas.\n""Blank means include all. ?, *, and [...] wildcards accepted."));
ui_progress->setInfo((stat.index<stat.count?tr("Current: <b>%1</b> of ").arg(stat.index):"")%reportTemplate.arg(stat.count).arg(stat.created).arg(stat.updated).arg(stat.skipped).arg(stat.errored).arg(stat.errored?"red":"black"));
std::bitset<NUM_ERRORS> errors((unsigned long long)errorsFound);
QStringList errorsList;
errorsList << tr("Possible causes for this:");
if (errors.test(UNSUPPORTED_NEWER_VERSION)) { errorsList << tr("- Eeprom is from a newer version of OpenTX"); }
if (errors.test(NOT_OPENTX)) { errorsList << tr("- Eeprom is not from OpenTX"); }
if (errors.test(NOT_TH9X)) { errorsList << tr("- Eeprom is not from Th9X"); }
if (errors.test(NOT_GRUVIN9X)) { errorsList << tr("- Eeprom is not from Gruvin9X"); }
if (errors.test(NOT_ERSKY9X)) { errorsList << tr("- Eeprom is not from ErSky9X"); }
if (errors.test(NOT_ER9X)) { errorsList << tr("- Eeprom is not from Er9X"); }
if (errors.test(WRONG_SIZE)) { errorsList << tr("- Eeprom size is invalid"); }
if (errors.test(WRONG_FILE_SYSTEM)) { errorsList << tr("- Eeprom file system is invalid"); }
if (errors.test(UNKNOWN_BOARD)) { errorsList << tr("- Eeprom is from a unknown board"); }
if (errors.test(WRONG_BOARD)) { errorsList << tr("- Eeprom is from the wrong board"); }
if (errors.test(BACKUP_NOT_SUPPORTED)) { errorsList << tr("- Eeprom backup not supported"); }
if (errors.test(UNKNOWN_ERROR)) { errorsList << tr("- Something that couldn't be guessed, sorry"); }
if (errors.test(HAS_WARNINGS)) {
errorsList << tr("Warning:");
if (errors.test(WARNING_WRONG_FIRMWARE)) { errorsList << tr("- Your radio probably uses a wrong firmware,\n eeprom size is 4096 but only the first 2048 are used"); }
}
QMessageBox msgBox(parent);
msgBox.setWindowTitle(title);
msgBox.setIcon(QMessageBox::Critical);
msgBox.setText(mainMessage);
msgBox.setInformativeText(errorsList.join("\n"));
msgBox.setStandardButtons(QMessageBox::Ok);
msgBox.exec();
}
#endif
// TODO: No GUI here, e.g. return string list instead
if(errors.test(WARNING_WRONG_FIRMWARE)){warningsList<<tr("- Your radio probably uses a wrong firmware,\n eeprom size is 4096 but only the first 2048 are used");}
if(errors.test(OLD_VERSION)){warningsList<<tr("- Your eeprom is from an old version of OpenTX, upgrading!\n To keep your original file as a backup, please choose File -> Save As specifying a different name.");}
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.