!REDIRECT “https://docs.px4.io/master/ja/uart/user_configurable_serial_driver.html“
Making Serial Port Drivers User-Configurable
This topic explains how to set up a serial driver so that it can be end-user configured (via parameters) to run on any of a flight controller board’s configurable serial ports.
Preconditions
The driver is assumed to already exist, and be started in the shell using the command syntax:
<driver_name> start -d <serial_port> [-b <baudrate> | -b p:<param_name>]
where,
-d
: serial port name.-b
: Baud rate (optional) if the driver supports multiple baud rates. If supported, the driver must allow you to specify the rate as both a bare baudrate and as a parameter name in the form-b p:<param_name>
(which can be parsed withpx4_get_parameter_value()
). > Tip See the gps driver for an example.
Making the Driver Configurable
To make driver configurable:
- Create a YAML module configuration file:
- Add a new file in the driver’s source directory named module.yaml
- Insert the following text and adjust as needed: ``` module_name: uLanding Radar serial_config:
- command: ulanding_radar start -d ${SERIAL_DEV} -b p:${BAUD_PARAM} port_config_param: name: SENS_ULAND_CFG group: Sensors ``` > Note The full documentation of the module configuration file can be found in the validation/module_schema.yaml file. This is also used to validate all configuration files in CI.
- Add the module configuration to the CMakeLists.txt file for the driver module:
px4_add_module(
MODULE drivers__ulanding
MAIN ulanding_radar
SRCS
ulanding.cpp
MODULE_CONFIG
module.yaml
)