* 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>
* Minor changes
* Major revision and addition of several missing translations
Major additions, e.g. of several missing panels and now a vast majority of Companion is translated.
Learnt a lot but took me forever, must be a better way of doing it...
* Add files via upload
* Reapply ETX boilerplate header
* `GYRO` define is no longer used
Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
* Added audio/haptic feedback for all hard keys excpet trim switches.
Changed logic from application decides if feedback has to be given (was inconsistent and inefficient) to key driver detects button down and triggers immediate feedback if radio settings allowed for acoustic and/or haptic feedback (radio settings, radio setup, sound set to All)
With this change all instances of the application calling for feedback were removed in favor of the centralized approach.
This first commit also introduces a dummy function for providing feedback on key presses in boot.cpp because keys.cpp is also used as the bootloader key driver but with no logic to determine if feedback is allowed. Using a define that indicates keys.cpp is compiled for use in the bootloader would make a much nicer and backwards compatible solution.
* don't want to change libopenui so silence onKeyPress (application requests feedback) in audio.cpp
* made generation of acoustic/haptic feedback conditional on BOOT define, i.e. no feedback if keys.cpp is compiled for the bootloader
* removed onKeyPress()
* fixed crash on acoustic/haptic feedback on hard keys by restoring keys.cpp and moving logic to LvglWrapper.cpp/keyboardDriverRead().
Removed call to getWindowEvent() which would just call getEvent(false) by directly calling getEvent(false). This allowed to remove getWindowEvent() entirely as it was only used by keyboardDriverRead().
* fix: Audio header include no longer needed