The index is not really a user concern and leads to confusion. gps
baudrate is not set like any other baud date and the determination of an
appropriate index is hidden from the user.
If the user specifies a baudrate that is not supported the default index
is used which is current the index for 115200.
This also allows GPS to work on softserial ports at up to 19200.
per function.
Note: a future commit will enable MSP to work on additional ports in
order to support simultaneous combinations of Serial/Bluetooth
configuration, OSD, RX_MSP on otherwise unused ports.
own dedicated serial port.
Added a feature to enable/disable RX_MSP.
Renamed feature SERIALRX to RX_SERIAL.
Renamed feature PARALLEL_PWM to RX_PARALLEL_PWM
Renamed PPM to RX_PPM.
Update serial configuration checking to better support Serial RX and
telemetry by verifiying serial port features and supported baud rates.
It's now possible to use a low-speed serial rx provider via softserial -
only problem is all the current serial rx providers are 100000/115200
baud. The code changes however open the door for using serial rx and
any capable serial port such as uart3-5 on the STM32F30x
It's also now possible to use GPS at low speeds on software serial
ports.
This enables a new feature setting for PARALLEL_PWM which is enabled by
default.
This starts to move much of the feature checking/excluding code that is
littered through into a single place - validateAndFixConfig(). Since
the config is known to be valid after the method is called other code
can just get on with it's job instead of checking for confliciting
features/settings.
Currently port usage is hard-coded to the default port layout, cli
commands are coming in a future commit.
This decouples all code from the global 'serialPorts' structure which
has been removed. Any code that needs to use a serial port can use
findOpenSerialPort() and openSerialPort() and maintain it's own
reference to the port.
Ports can switch between functions. e.g. by default
cli/msp/telemetry/gps
passthrough all use USART1. Each port maintains it's current function.
see begin/endSerialPortFunction.
There are only certain combinations of serial port functions that are
supported, these are listed in serialPortFunctionScenario_e.
This commit also adds a few 'static' keywords to variables that should
have been.
There a a few other minor fixes and tweaks to various bits of code that
this uncovered too.
serial_common.c/h. decouple runtime_config from serial ports. decouple
buzzer from serial ports. decouple opening of the main serial port from
the msp code. decouple serial rx providers from runtime_config. rename
core_t to serialPorts_t since it only contained serial ports. It's now
clear which files use serial ports based on the header files they
include.