You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
219 lines
9.7 KiB
219 lines
9.7 KiB
# Cerberus Validation Schema for module configuration files. |
|
# See http://docs.python-cerberus.org/en/stable/validation-rules.html |
|
|
|
|
|
module_name: |
|
# human-readable module name (used for descriptions, can contain spaces) |
|
type: string |
|
required: true |
|
|
|
serial_config: |
|
# UART configuration (optional) |
|
# A module can register autostart command(s) that are associated with a |
|
# configuration parameter, so that a user can select on which serial port to |
|
# run the command. |
|
# One or several commands can be defined. |
|
type: list |
|
minlength: 1 |
|
schema: |
|
type: dict |
|
schema: |
|
command: |
|
# script command that is executed on autostart. |
|
# These variables can be used: |
|
# ${SERIAL_DEV} Serial device (e.g. /dev/ttyS1) |
|
# ${BAUD_PARAM} param name for the baudrate |
|
# ${i} instance in [0, N-1] (for multi-instance commands) |
|
# It's possible to use multiple lines. |
|
type: string |
|
required: true |
|
|
|
port_config_param: |
|
# Parameter definition to configure on which port to run the |
|
# command |
|
type: dict |
|
required: true |
|
schema: |
|
name: |
|
# Parameter name (e.g. TEL_FRSKY_CONFIG, MAV_${i}_CONFIG) |
|
type: string |
|
regex: '[0-9A-Z_]+(\$\{i\}[0-9A-Z_]*)?_(CONFIG|CFG)' |
|
required: true |
|
group: |
|
# Associated parameter group (e.g. GPS) |
|
type: string |
|
required: true |
|
default: |
|
# Default value(s). This can be a string to specify the |
|
# serial tag (e.g. GPS1, TEL1, ...) or a list of strings |
|
# for multiple instances. |
|
# If omitted, the command is disabled by default. |
|
anyof: |
|
- type: string |
|
- type: list |
|
minlength: 1 |
|
schema: |
|
type: string |
|
depends_on_port: |
|
# Optional serial tag dependency (e.g. GPS1). If a board |
|
# does not specify this serial port, the parameter will |
|
# not be included in the build (i.e. it's not |
|
# configurable) |
|
type: string |
|
description_extended: |
|
# Optional extended description |
|
type: string |
|
label: |
|
# Optional command label (e.g. used in the autostart script). |
|
# If omitted, module_name is used. |
|
type: string |
|
num_instances: |
|
# Allow to configure and run multiple instances of a command. |
|
# For multiple instances, '${i}' can be used to refer to |
|
# an instance, for example in the parameter name or script |
|
# command. |
|
# Default: 1 |
|
type: integer |
|
min: 1 |
|
supports_networking: |
|
# set to true if the module supports networking (UDP) |
|
type: boolean |
|
|
|
|
|
parameters: |
|
# Parameter definitions. |
|
# This is a list of parameter groups, where each group has one or more |
|
# parameter definitions. |
|
type: list |
|
minlength: 1 |
|
schema: |
|
type: dict |
|
schema: |
|
group: |
|
# Parameter group (should be short) |
|
# This applies to all parameters in the definitions dictionary |
|
type: string |
|
required: true |
|
definitions: |
|
type: dict |
|
keyschema: |
|
type: string |
|
regex: '[0-9A-Z_]+(\$\{i\}[0-9A-Z_]*)?' |
|
valueschema: |
|
type: dict |
|
schema: |
|
description: |
|
type: dict |
|
required: true |
|
schema: |
|
short: |
|
# Short description (one line) |
|
type: string |
|
required: true |
|
maxlength: 70 |
|
regex: '[^\n]+' |
|
long: |
|
# Long description (can be multiple lines) |
|
type: string |
|
required: true |
|
|
|
type: |
|
# Define the parameter type |
|
required: true |
|
type: string |
|
allowed: ['int32', 'float', 'boolean', 'enum', 'bitmask' ] |
|
min: |
|
# Optional minimum value (only for int32 or float) |
|
type: number |
|
max: |
|
# Optional maximum value (only for int32 or float) |
|
type: number |
|
decimal: |
|
# Optional number of decimal places to display (only for float) |
|
type: number |
|
increment: |
|
# Optional increment step size (for a GCS) (only for float) |
|
type: number |
|
unit: |
|
# Optional parameter unit (only for int32 or float) |
|
# (Extend this list as needed) |
|
type: string |
|
allowed: [ |
|
'%', 'Hz', 'mAh', |
|
'rad', '%/rad', 'rad/s', 'rad/s^2', '%/rad/s', 'rad s^2/m','rad s/m', |
|
'bit/s', 'B/s', |
|
'deg', 'deg*1e7', 'deg/s', |
|
'celcius', 'gauss', 'gauss/s', 'mgauss', 'mgauss^2', |
|
'hPa', 'kg', 'kg/m^2', 'kg m^2', |
|
'mm', 'm', 'm/s', 'm^2', 'm/s^2', 'm/s^3', 'm/s^2/sqrt(Hz)', 'm/s/rad', |
|
'Ohm', 'V', |
|
'us', 'ms', 's', |
|
'S', 'A/%', '(m/s^2)^2', 'm/m', 'tan(rad)^2', '(m/s)^2', 'm/rad', |
|
'm/s^3/sqrt(Hz)', 'm/s/sqrt(Hz)', 's/(1000*PWM)', '%m/s', 'min', 'us/C', |
|
'N/(m/s)', 'Nm/(rad/s)', 'Nm', 'N', |
|
'normalized_thrust/s', 'normalized_thrust', 'norm', 'SD'] |
|
bit: |
|
# description of all bits for type bitmask. |
|
# The first bit is 0. |
|
type: dict |
|
keyschema: |
|
type: integer |
|
valueschema: |
|
type: string |
|
|
|
values: |
|
# enumeration of possible values for type enum |
|
type: dict |
|
keyschema: |
|
type: integer |
|
valueschema: |
|
type: string |
|
|
|
default: |
|
# Default value(s). This is an integer or a float, |
|
# or a list of values for multiple instances. |
|
required: true |
|
anyof: |
|
- type: boolean |
|
- type: number |
|
- type: list |
|
minlength: 1 |
|
schema: |
|
anyof: |
|
- type: boolean |
|
- type: number |
|
- type: list |
|
|
|
category: |
|
# Optional parameter category |
|
type: string |
|
allowed: [ 'Developer', 'System' ] |
|
volatile: |
|
# Optional volatile flag. Set to true if the |
|
# parameter can be changed by the system |
|
# automatially |
|
type: boolean |
|
reboot_required: |
|
# set to true, if changing of the parameter requires |
|
# a reboot to take effect |
|
type: boolean |
|
num_instances: |
|
# Optional number of instances. |
|
# For multiple instances, '${i}' can be used to |
|
# refer to an instance, for example in the parameter |
|
# name or description. |
|
# Default: 1 |
|
type: integer |
|
min: 1 |
|
instance_start: |
|
# The value of the first instance for multiple |
|
# instances, used in '${i}'. If 0, ${i} expands to |
|
# [0, N-1] |
|
# Default: 0 |
|
type: integer |
|
requires_ethernet: |
|
# param is only added if the board has ethernet |
|
# support |
|
type: boolean |
|
|
|
|
|
|