diff --git a/Tools/module_config/generate_actuators_metadata.py b/Tools/module_config/generate_actuators_metadata.py index 930eab5cb6..7addc000ba 100755 --- a/Tools/module_config/generate_actuators_metadata.py +++ b/Tools/module_config/generate_actuators_metadata.py @@ -417,10 +417,18 @@ def get_mixers(yaml_config, output_functions, verbose): if verbose: print('Mixer configs: {}'.format(config)) + + rules = [] + for rule in yaml_config['mixer'].get('rules', []): + rules.append({k.replace('_','-'): v for k, v in rule.items()}) + + if verbose: + print('Mixer rules: {}'.format(rules)) mixers = { 'actuator-types': actuator_types, 'config': config, + 'rules': rules, } return mixers diff --git a/validation/module_schema.yaml b/validation/module_schema.yaml index 3137f5b607..118c499f7b 100644 --- a/validation/module_schema.yaml +++ b/validation/module_schema.yaml @@ -498,6 +498,12 @@ mixer: type: integer function: type: string + identifier: + # for rules + type: string + rules: + # mixer rules, validated by the mavlink actuator component information schema + type: list config: # Airframe types type: dict @@ -526,6 +532,8 @@ mixer: schema: actuator_type: type: string + group_label: + type: string count: # param name or fixed count oneof: