Fix the Flight Pack sensor processing.
The main problem was that we expected the data to come in big-endian encoding, but in reality, the sensor send it in little-endian. This was causing the 1st byte to change much faster, and eventually move into the negative value.
Added more validations to handle little-endian values, and recognize NO-DATA scenarios
* #3368 DSM Telemetry Fixes
1. Expand constants for telemetry frame SIDs and optimize flow of processing of sensors (less CPU work)
2. Add Binary GPS
3. Add Dual Battery Sensor monitor
4. Fix bad math on some ESC sensors
5. Fix problem where ESC RPM sensor was changed from "Erpm" to "EscR".. fix it back to "Erpm" for compatibility with 2.8.x
* #3368 DSM Telemetry Fixes
1. Split long if-then-else code into more granular function.
2. fix ESC VBEC (BEC voltage)
3. Improve testing function
* - all telemetry sensor name definitions in one place (untranslated.h)
- all telemetry sensor name definitions follow the naming convention STR_SENSOR_<sensor>
- eliminated one redundant definition
- editorial updates to telemetry protocols code to reflect the naming convention changes
- re-introduced translations in da.h (STR_SENSOR_THROTTLE and STR_SENSOR_SPEED)
- re-introduced translation in it.h (STR_SENSOR_GPSDATETIME)
- re-introduced translation for fr.h ( STR_SENSOR_BATT)
- saved 160 Bytes of flash
* removed obsolete translation
saved 280 byte flash memory in total
* finally removed extern const char STR_MENUTEMPLATES[]; definition
adjusted da.h, fr.h, it.h local sensor name definitions to naming conventions STR_SENSOR_<senosr>
* corrected merge
removed obsolete #ifdef
* some more obsolete ones
* added TW and CN translation for TR_PERIOD and TR_INTERVAL
fixed problem in /radio/src/gui/colorlcd/fullscreen_dialog.cpp preventing builds for CZ, IT and FR languages
* WiP: new module interface
* WiP: softserial timer DMA
* WiP: setup() and send() in one step
and remove methods specific to internal or external module
* fixes and extra port config
* horus targets
* module ports have moved
* T8 support (only internal module)
* fix nv14
* stupid GCC....
* disable BT
* remove nv14 telem driver
* remove old aux serial driver
* Move module buffers out of pulses.h
* Soft serial fixes and PXX1 support
* Fixed PPM module output
* Fixed CLI
* compilation fixes
* Ported bluetooth and flysky gimbal to new serial driver
* Re-enable soft-serial RX
* fixes and cleanup
* nv14 fixes
* Fix flysky gimbals
* Ghost module
* 16 bytes of RAM
* Remove getByte from module API
* Ghost cleanup
* fix: _half_duplex_input() must be called after usart init
* WiP
* more cleanup
* Remove board specific settings from PXX1 / PXX2 drivers
* A bit of PXX2 header cleanup
* Add support for OVER8 and ONEBIT
* Add some support for inverters (NV14 / EL18)
* Support NV14 power fixes in generic board
* Fix polarity handling
* Fix RX DMA
* Fix mixer not running
* Add soft-serial polarity control
* Quick fix for telemetry polling while module port is changed
* Fix bootloader DEBUG
* Fix MPM telemetry
* Fix pulse start
* DSM2 soft-serial fallback
* DSMP async module restart
* Fix CRSF LUA upstream
* Remove global variable telemetryProtocol
* Use HAL/LL constants
* Fix various issue with AFHDS3 and NV14/EL18 internal module
* Fixed S.PORT unit tests
* fix: update widx after writing at current index
* fix: init error condition
* Fix: possible infinite loop in _find_port()
* Add support for bidir S.PORT init
* Add support for "getLastByte" in HW serial driver
* PXX1: Add support for S.PORT based on IDLE callback
* Fix rebase error
* Fix softserial _rx_fifo_push()
* Add softserial support for waitForTxCompleted()
* Fix MPM flashing (internal / external)
* Fixed external MPM
* Activate RX DMA on internal module
Seems to work with serial passthrough without issues, at least on the L3R PRO.
* Fix softserial DMA on stdlcd F4 targets
* Add softserial support for 32bit timers (mostly TIM2)
* More precise soft-serial
* Fix MPM update using inverters & HW uart
* Raise S.PORT DMA/USART IRQ prio to achieve faster switching to input
* Remove useless delays
* Fix flashing external ELRS module
* Added a retry mechanism for FrSky S.PORT update
* Remove useless enableRx()
* External FrSky modules are all flashed via S.PORT
* Remove power management unit update
This was only used on the first batch of X-lite.
Added support for:
- T16 radio
- internal multi-protocol module.
- flashing internal and external multi-protocol modules.
Many thx to:
- goebish, for the hardware support.
- qba667, for the original patches for the internal multi-protocol support (UI and serial com).
* 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
* Fix Multimodule showing up as Crossfire when only multimode and not crossfire is enabled.
* Don't hardcode telemetry to be Frysky on non STM32 arm targets
* Port multi module code to 9X platforms
* Allow Spektrum telemetry protocol to be selected as protocol for the telemetry selection
* Fix infinite loop in spektrum code
* Fix cosmetics
Changes also done for Horus and Taranis UI where appropriate
* Implementation of Spektrum Telemetry for the DYI Multimodule.
I can only test a subset of sensors and these look okay
* Implement conversion from Fahrenheit to Celsius
* Minor fixes for Spektrum telemetry
* Add some more sensors, show sensor ID instead of instance in the overview