Beat Küng
9166b6953d
output drivers: init SmartLock after exit_and_cleanup
...
This fixes an invalid memory access when exiting the module:
exit_and_cleanup destroys the object, but lock_guard is destructed after
and accesses the lock.
2022-05-12 08:16:35 -04:00
Daniel Agar
5e05d98fe2
output modules simplify locking for mixer reset and load
...
- fixes the deadlock in px4io ioctl mixer reset
- px4io Run() locks (CDev semaphore)
- mixer load goes through px4io ioctl MIXERIOCRESET which calls MixingOutput::resetMixerThreadSafe()
- MixingOutput::resetMixerThreadSafe() stores a Command::Type::resetMixer command in an atomic variable, schedules a work queue cycle, then sleep spins until the command is cleared
- the execution of the cycle eventually calls back into PX4IO::updateOutputs(), which tries to lock (and waits forever)
2022-04-19 08:52:17 +02:00
Beat Küng
9b629a9e95
hitl,sitl,sih: use separate actuator_outputs_sim for SYS_CTRL_ALLOC==1
...
- removes the need to do type-specific rescaling of pwm to normalized values
- allows to run physical output drivers alongside HIL/SIH
2022-02-25 08:30:58 +01:00
Beat Küng
9ca58f5e97
actuator outputs: always add reverse range param
...
and remove the possibility to set min > max to reverse.
Initially the idea was to add the checkbox on the UI side, to avoid adding
another param, but I don't think I'll go through the extra effort on the
QGC side.
2022-01-14 12:18:29 -05:00
Daniel Agar
d3301ba826
delete PWM_SERVO_GET_TRIM_PWM
2022-01-10 09:51:11 -05:00
Daniel Agar
78b3d22471
lib/mixer_module: consume output_limit library
2022-01-10 11:59:55 +01:00
Beat Küng
d1abdd0f8d
output drivers: add option to generate a separate output range reversing param
...
Makes it a bit easier to configure. Reversing by setting MIN > MAX is still
supported.
2021-12-24 20:06:13 -05:00
Beat Küng
357a16aca6
pwm_out_sim: split module.yaml into HIL+SIM files
2021-11-23 12:40:22 -05:00
mcsauder
21163d859e
Whitespace cleanup.
2021-10-19 13:29:26 -04:00
Beat Küng
ab1d76ae7d
params: use PWM_MAIN_* instead of PWM_FMU_*
2021-10-18 18:45:19 -04:00
Beat Küng
44bbe87165
pwm_out_sim: use PWM_FMU for sitl and HIL_ACT for hitl
...
We might want to change this later, but for now it allows to use the same
airframe configs for sitl/real, and independent hitl configuration.
2021-10-18 18:45:19 -04:00
Beat Küng
21c1671693
pwm_out_sim: add dynamic mixing support
2021-10-18 18:45:19 -04:00
Beat Küng
5f0781b6e9
output modules: add param prefix argument to MixingOutput
2021-10-18 18:45:19 -04:00
Peter van der Perk
d5e3e9a7bc
[Kconfig] Decompose Kconfig, now each module has its own Kconfig
...
Which is better for versioning and decomposability
2021-10-07 10:09:01 -04:00
Daniel Agar
967d35a6b6
rate limit most parameter_update subscriptions
...
- parameter updates can be quite expensive because they trigger nearly all modules to reload all of their parameters immediately
- limit modules from updating faster than once per second
2021-01-10 21:09:15 -05:00
Daniel Agar
21a8d7db7f
WorkItem modules: Run() shouldn't be public
2020-01-22 12:03:03 -05:00
Daniel Agar
c8211dee28
drv_mixer.h - delete unused MIXERIOCGETOUTPUTCOUNT
2019-11-22 15:00:25 -05:00
Daniel Agar
79dc676c8f
mixer: move MixerGroup out of Mixer hierarchy and delete mixer.h header
2019-11-22 15:00:25 -05:00
Daniel Agar
a475d71ca9
astyle shift module documentation to bottom of files
...
- Astyle chokes on the module description strings, so for now we can keep them near the bottom of each file.
2019-11-02 10:58:47 -04:00
Beat Küng
3198610f85
src/platforms: move all headers to platforms/common/include/px4_platform_common
...
and remove the px4_ prefix, except for px4_config.h.
command to update includes:
for k in app.h atomic.h cli.h console_buffer.h defines.h getopt.h i2c.h init.h log.h micro_hal.h module.h module_params.h param.h param_macros.h posix.h sem.h sem.hpp shmem.h shutdown.h tasks.h time.h workqueue.h; do for i in $(grep -rl 'include <px4_'$k src platforms boards); do sed -i 's/#include <px4_'$k'/#include <px4_platform_common\/'$k/ $i; done; done
for in $(grep -rl 'include <px4_config.h' src platforms boards); do sed -i 's/#include <px4_config.h/#include <px4_platform_common\/px4_config.h'/ $i; done
Transitional headers for submodules are added (px4_{defines,log,time}.h)
2019-10-30 11:48:47 +01:00
Beat Küng
529da7b33e
MIXERIOCLOADBUF ioctl: remove unnecessary string length restriction
...
mixer.cpp ensures the string is null-terminated (buffer length is 2048).
2019-10-21 09:42:08 +02:00
Beat Küng
a8f6622831
OutputModuleInterface::updateOutputs return bool to control actuator_outputs pub
...
Required for pwm_out_sim: only publish actuator_outputs when we get
actuator_controls. Otherwise lockstep startup does not work.
The issue was there before but hidden, due to a long poll timeout.
Works with HIL too.
2019-10-21 09:42:08 +02:00
Beat Küng
349469cf75
refactor pwm_out_sim: use mixer_module and run on work queue
...
Tested with SITL + HITL
2019-10-21 09:42:08 +02:00
Daniel Agar
c8e59c4e39
parameter_update use uORB::Subscription consistently
2019-09-29 10:49:03 -04:00
Julian Oes
c8d13bacf2
pwm_out_sim: don't advertise garbage
2019-09-04 09:21:54 -07:00
Beat Küng
43fdcd7876
px4_middleware: remove that header and move px4::init to px4_init.h
...
delete include:
for i in $(grep -rl 'px4_middleware.h' src platforms); do sed -i '/#include <px4_middleware.h/d' $i; done
2019-08-30 07:59:44 +02:00
bresch
34fca5a552
PWM - Remove unused MIXERADDSIMPLE
2019-06-05 16:53:08 +02:00
Matthias Grob
36248cb12e
PWMSim: publish disarmed value when not armed
2018-12-29 00:18:05 +01:00
Matthias Grob
05e45c2867
PWMSim: refactor only use one output number variable
2018-12-29 00:18:05 +01:00
Matthias Grob
986e6c96b5
PWMSim: refactor unused output loop
2018-12-29 00:18:05 +01:00
Matthias Grob
c22dbe130b
PWMSim: refactor to use math constrain
2018-12-29 00:18:05 +01:00
Julian Oes
da9029274c
pwm_out_sim: always publish actuators
...
This is required so that the SITL simulator receives a feedback from
PX4.
2018-12-22 10:32:18 +01:00
Julian Oes
d70b0f1c8c
Replace sleep with px4_sleep
...
This is another step to isolate time from the system.
2018-12-22 10:32:18 +01:00
Beat Küng
19ccab28bb
mixer: use an enum for airmode
2018-12-13 09:50:07 +01:00
bresch
7cc00f41d2
AirModeYaw - Change airmode type from bool to int
2018-12-13 09:50:07 +01:00
Daniel Agar
48ba88eaf0
pwm_out_sim add mixer saturation status publication ( #10866 )
2018-11-16 16:42:20 -05:00
bresch
f590137525
Fix HIL
...
Revert "pwm_out_sim lazily publish actuator_outputs"
This reverts commit bcad940a9f .
2018-11-12 19:21:15 +01:00
Daniel Agar
bcad940a9f
pwm_out_sim lazily publish actuator_outputs
2018-09-17 00:06:52 +02:00
Daniel Agar
51faca0f66
pwm_out_sim cleanup unnecessary Device CDev usage
2018-08-27 13:14:15 -04:00
Beat Küng
6971a92881
pwm_out_sim: reduce verbosity
2018-08-13 21:50:14 -04:00
Daniel Agar
d21fdf9988
pwm_out_sim: replace usleep with sleep
...
- the valid values are 0-999999
2018-08-05 00:19:11 +02:00
Beat Küng
442d4410ca
pwm_out_sim: cleanup, avoid unnecessary & incorrect init of _control_subs
...
These need to be set to -1.
2018-07-28 15:23:09 +02:00
Daniel Agar
e468a9bbcc
move systemlib/pwm_limit to standalone lib
2018-06-12 09:06:30 +02:00
Daniel Agar
977ab4e7b8
improve end to end control latency measurement ( #9388 )
2018-05-02 03:03:32 -04:00
Daniel Agar
fc829b8519
pwm_out_sim PWM_SERVO_SET_MIN_PWM fix index check
...
- fixes coverity CID 264261
2018-03-24 13:39:31 -04:00
Daniel Agar
8c43408a92
pwm_out_sim PWM_SERVO_SET_MAX_PWM fix index check
...
- fixes coverity CID 264263
2018-03-24 13:39:31 -04:00
bresch
c9d72c0d07
PWMSim : add MC_AIRMODE support
2018-03-23 10:35:08 +01:00
Beat Küng
cd4eb9a1de
pwm_out_sim: fix comment & add missing return
2018-03-22 08:19:08 +01:00
Beat Küng
dff7cf687a
pwm_out_sim: fix documentation & task name
2018-03-22 08:19:08 +01:00
Philipp Oettershagen
ff66605a8a
Fix: Increase pwmsim module stack by 100 bytes again because load_mon was giving warning about low stack
2018-03-13 12:51:33 +01:00