Since in RX_NONE bit is undefined, bit_check() will always return
true. Fix is just removing RX_NONE from the available RX types
on versions using feature bits for RX, since they won't allow
not having a RX configured (FC will fall back to RX_PPM).
Fixes#287
I believe everything works and is OK, but I am unclear about MSP/FC/Configurator versioning, so some of what I've done here may not be correct, or may need to be done differently. I would appreciate guidance/explanation.
Name RX_PARALLEL_PWM was confusing, so it's been renamed to
just RX_PWM.
Values for RX_PWM and RX_PPM were swapper, they're now the correct
ones.
Set the order of the rx types as serial, ppm, pwm, spi, msp and none.
Allow versions using the feature bits to select RX_NONE by clearing
all relevant bits in the features.
Implement a combobox selector for the receiver type, showing
just the options for the specific type (e.g. selecting serial
receiver reveals the combobox for the serial protocol).
On INAV > 1.7.3 read and write receiver type to RX_CONFIG rather
than to feature bits. Note that this will break the configurator
in builds with version = 1.7.4 before https://github.com/iNavFlight/inav/pull/1596/files
is applied.
Implement groups which can be declared in any order including
any item in the order deemed more useful. This way we no longer
need to put elements ordered by their osd_items_e value.
Also, elements and even groups can be disabled when the features
or hardware required for drawing them is not present or not
enabled.
Setting the feature also hides the mode from the modes tab, since
the FC won't register the BOXID as an active one. FC support
detection is based on INAV version >= 1.7.3, since support for
the AIRMODE feature has been advertised by previous releases
but it's not really supported (it does nothing).
Support for INAV is at https://github.com/iNavFlight/inav/pull/1949Fixes#154