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 +