From 21c16716932a946f73c79534b723783e3533044e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= Date: Fri, 17 Sep 2021 12:03:08 +0200 Subject: [PATCH] pwm_out_sim: add dynamic mixing support --- src/drivers/pwm_out_sim/CMakeLists.txt | 2 ++ src/drivers/pwm_out_sim/PWMSim.cpp | 4 ++-- src/drivers/pwm_out_sim/module.yaml | 8 ++++++++ 3 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 src/drivers/pwm_out_sim/module.yaml diff --git a/src/drivers/pwm_out_sim/CMakeLists.txt b/src/drivers/pwm_out_sim/CMakeLists.txt index 77a5de2543..dcde17e2af 100644 --- a/src/drivers/pwm_out_sim/CMakeLists.txt +++ b/src/drivers/pwm_out_sim/CMakeLists.txt @@ -35,6 +35,8 @@ px4_add_module( MAIN pwm_out_sim SRCS PWMSim.cpp + MODULE_CONFIG + module.yaml DEPENDS mixer mixer_module diff --git a/src/drivers/pwm_out_sim/PWMSim.cpp b/src/drivers/pwm_out_sim/PWMSim.cpp index 86d2f57cdd..ebc5a566ef 100644 --- a/src/drivers/pwm_out_sim/PWMSim.cpp +++ b/src/drivers/pwm_out_sim/PWMSim.cpp @@ -104,7 +104,7 @@ PWMSim::ioctl(device::file_t *filp, int cmd, unsigned long arg) struct pwm_output_values *pwm = (struct pwm_output_values *)arg; for (unsigned i = 0; i < pwm->channel_count; i++) { - if (i < OutputModuleInterface::MAX_ACTUATORS) { + if (i < OutputModuleInterface::MAX_ACTUATORS && !_mixing_output.useDynamicMixing()) { _mixing_output.minValue(i) = pwm->values[i]; } } @@ -116,7 +116,7 @@ PWMSim::ioctl(device::file_t *filp, int cmd, unsigned long arg) struct pwm_output_values *pwm = (struct pwm_output_values *)arg; for (unsigned i = 0; i < pwm->channel_count; i++) { - if (i < OutputModuleInterface::MAX_ACTUATORS) { + if (i < OutputModuleInterface::MAX_ACTUATORS && !_mixing_output.useDynamicMixing()) { _mixing_output.maxValue(i) = pwm->values[i]; } } diff --git a/src/drivers/pwm_out_sim/module.yaml b/src/drivers/pwm_out_sim/module.yaml new file mode 100644 index 0000000000..7a152924a7 --- /dev/null +++ b/src/drivers/pwm_out_sim/module.yaml @@ -0,0 +1,8 @@ + +module_name: PWM Sim +actuator_output: + output_groups: + - param_prefix: PWM_SIM + channel_label: 'PWM Sim' + num_channels: 16 +