* reduce risk of corrupt radio.yml #1412
Adds CRC16 checksum to radio.yml when saved.
Adds save to temporary file, folowed by rename to radio.yml
Adds check on load, with fall-back to temporary file
* Made sure that only the first read block of radio.yml is checked for the 'checksum' value.
Added checksum generation on radio.yml produced by conversion.
* Added namespace.
Github actions triggered build failed on this - compiler difference.
* Fixed typo in code not run locally.
* Made checksum result code a enum class.
Fixed null-poionter dereference bug.
* Added check and handling for radio.yml file not read (will be handled as if checksum failed)
Added evaluation of checksum when radio_new.yml is read.
Added f_unlink() calls before f_rename() to ensure the target filename does not exist.
* Added radio.yml cheksum handling to Simulator/Companion.
Cleaned radio firmware handling of checksum field up to be newline agnostic.
* Added handling of files without checksum.
- Letting files pass the check if no checksum field is present (old files) and the size is realistic (25 bytes)
* Fixed bug causing new conversion from binary if no radio.yml BUT a radio_new.yaml
is present in the filesystem.
Now the conversion is only performed if neither file exsits.
* repair rebase problems
* rerun yaml generator
* fix another rebase problem
* update text in companion to be more meaningful when the radio.yml file has a checksum error
fix wrong error message in trace
* add trigger to check radio config when leavin menu_radio
* fix: add handling for temporary and error yaml radio settings files to simu/simulator/libsimulator
* fix corner cases when comverting non crc-ed files
* chore: Tweak radio data warnings for screen sizes
- Changed the define to be a little shorter
- Added missing define for TW
- Three string lengths to suit 128, 212 and basically colorlcd
Co-authored-by: gagarinlg <malte@langermann.net>
Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
* First build
* Fix X9
* Update api_general.cpp
* Update translations.h
* clean up translations
* fix: B&W option handling, remove magic numbers, cleanup
- Remove references to invertRotary, change to RotEncDir or similar
- Add compatabilty importing to companion, firmware
- Rename Lua API call
- Move magic numbers to enum
- Improve B&W option handling so it doesn't apply changes while in menu
* chore: yaml regen
* fix: Add missing guards for X9D/X9D+
* fix: Wrong enum name in simu
* fix(cpn): Use correct names for UI elements
* fix: Translations
* fix: Allow `rotEncMode` in all yaml due to x9d var
Of the three X9D variants, the X9D+2019 is the only one that
has a rotary encoder as standard. However, as the base config
file is for the X9D, this meant it wasn't reading or writing the
config value. Rather than add a seperate config file for it for
a single variable, simple to just allow it across all targets.
* fix: Companion string, change colorlcd to `Choice`
Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
* timer direction: ellapsed or left
* Add AUDIO announcement support
* Storage for showElapsed
* Translations
* Fix storage
* BW implementation
* Different BW implementation
* Companion support
* Color LCD implementation and rebase to lvgl
* Fix problems found by raphaelcoeffic
* chore: Regenerate the YAML files properly
* fix: Remove unused `TR_SHOW` remnant
* chore: Formatting and cleanup
* fix: Timer dir choice was shown in wrong place
Wrong newline used in ce23b50
* Fix cpn ui triggers, remove unnecessary code and some formatting
* fix(colorlcd): Hide timer dir opt if zero value
Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
Co-authored-by: elecpower <neilh713@tpg.com.au>