Commit Graph

101 Commits

Author SHA1 Message Date
Daniel Agar 08bf71b73d drivers/tone_alarm and tune_control small improvements/cleanup
- drivers/tone_alarm: move to ModuleBase and purge CDev (/dev/tone_alarm0)
 - drivers/tone_alarm: only run on tune_control publication (or scheduled note) rather than continuously
 - drivers/tone_alarm: use HRT to schedule tone stop (prevents potential disruption)
 - msg/tune_control: add tune_id numbering
 - systemcmds/tune_control: add "error" special case tune_id
 - move all tune_control publication to new uORB::PublicationQueued<>
 - start tone_alarm immediately after board defaults are loaded to fix potential startup issues
 - for SITL (or other boards with no TONE output) print common messages (startup, error, etc)
2020-10-05 21:39:26 -04:00
Matthias Grob ed7732eaec rc_loss_alarm: remove unimplemented declaration 2020-07-20 09:36:47 -04:00
Daniel Agar 466b5db36f uORB::Publication improvements and cleanup (#14784)
- create common uORB::PublicationBase
 - uORB::PublicationQueued types are now type aliases
 - ORB_PRIO use enum type everywhere to avoid accidental misuse
 - PX4Accelerometer/PX4Gyroscope/etc driver libs explicitly advertise on construction, unadvertise on destruction. This is a workaround for any potential issues that might appear when accel/gyro cdev and uORB indexing doesn't align.
2020-05-04 11:09:30 -04:00
Daniel Agar dc05ceaad2 create temperature_compensation module
- this is a new module for temperature compensation that consolidates the functionality previously handled in the sensors module (calculating runtime thermal corrections) and the events module (online thermal calibration)
 - by collecting this functionality into a single module we can optionally disable it on systems where it's not used and save some flash (if disabled at build time) or memory (disabled at run time)
2020-01-20 21:42:42 -05:00
Daniel Agar de4f594937 DriverFramework purge
The bulk of this change was tightly coupled and needed to be deleted in one pass. Some of the smaller changes were things that broke as a result of the initial purge and subsequently fixed by further eradicating unnecessary platform differences. Finally, I deleted any dead code I came across in the related files I touched while going through everything.

 - DriverFramework (src/lib/DriverFramework submodule) completely removed
 - added dspal submodule in qurt platform (was brought in via DriverFramework)
 - all df wrapper drivers removed
 - all boards using df wrapper drivers updated to use in tree equivalents
 - unused empty arch/board.h on posix and qurt removed
 - unused IOCTLs removed (pub block, priv, etc)
 - Integrator delete methods only used from df wrapper drivers
 - commander: sensor calibration use "NuttX version" everywhere for now
 - sensors: update to px4_{open, read, close} instead of DevMgr wrapper (adc open for analog differential pressure)
 - battery_status: update to px4_{open, read, close} instead of DevMgr wrapper (adc open for analog differential pressure)
 - cdev cleanup conflicting typedefs and names with actual OS (pollevent_t, etc)
 - load_mon and top remove from linux boards (unused)
 - delete unused PX4_MAIN_FUNCTION
 - delete unused getreg32 macro
 - delete unused SIOCDEVPRIVATE define
 - named each platform tasks consistently
 - posix list_devices and list_topics removed (list_files now shows all virtual files)
2020-01-13 14:07:03 -05:00
Beat Küng 5ff83ef740 gyro calibration: remove unused scale parameters 2019-11-29 11:28:17 -05:00
Daniel Agar 1c4e854f93 cmake don't build param "c" files and remove param defines
- these aren't actual source code
2019-11-11 10:25:42 -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
Daniel Agar 744f06cc8f clang-tidy: enable readability-delete-null-pointer and fix 2019-10-28 10:50:31 -04:00
Daniel Agar 4192414576 clang-tidy: partially fix cppcoreguidelines-pro-type-reinterpret-cast 2019-10-28 10:50:31 -04:00
Daniel Agar 78ef8aab2d STACK_MAIN increase default 1024 -> 2048 2019-08-30 19:11:51 -07:00
Daniel Agar e69398c09f introduce uORB::PublicationQueued and transition most orb_advertise_queue usage 2019-08-04 10:08:09 -04:00
Beat Küng 72ddf3e0aa tune_control: use orb queue advertisement consistently 2019-07-25 10:38:57 -04:00
bresch c6e7c0fa5d Parameter update - Rename variables in modules/events
using parameter_update.py script
2019-04-03 15:38:50 +02:00
Alessandro Simovic 39d1751bbe rc loss alarm: stop on RC reconnect 2019-03-29 19:42:02 -07:00
Daniel Agar 184aa2861a PX4_ISFINITE use builtin everywhere 2019-02-21 14:56:08 -05:00
mcsauder 31f23c1e76 Rename tune_control_s strength to volume to match Nuttx and Linux standard nomenclature for audio (loudness) control. 2019-02-19 10:07:53 +01:00
Beat Küng 481bfc6308 px4_module: use px4_atomic_t 2019-01-30 10:24:06 -05:00
Julian Oes 5b9dea5604 Replacing usleep with px4_usleep
This is a step towards isolating time from the system.
2018-12-22 10:32:18 +01:00
Beat Küng 4e6139d9fb Posix: add '#pragma GCC poison exit'
Generally exit() should not be used on Posix, because it exits the whole
program instead of only the task.
2018-08-31 18:11:58 +02:00
mcsauder bf87270ded Doxy documenting in send_event.cpp/h and px4_module.h. 2018-08-29 09:50:21 +02:00
Daniel Agar b1d3bb0403 stop ignoring Wmissing-field-initializers and fix (#9912) 2018-07-22 12:45:52 -04:00
alessandro 51ee9eaaf4 typo 2018-07-05 14:17:55 +02:00
Alessandro Simovic 11933ac239 rc_loss_alarm: removed unused var 2018-07-05 14:17:55 +02:00
Alessandro Simovic 155089c800 Addressed review comments from #9769 2018-07-05 14:17:55 +02:00
Alessandro Simovic df257c6555 Added parameters for enabling/disabling specific event tasks 2018-07-05 14:17:55 +02:00
Alessandro Simovic 1982957bef Added/moved namespaces in events module 2018-07-05 14:17:55 +02:00
Alessandro Simovic c684275018 moved rc_loss_alarm into the event module 2018-07-05 14:17:55 +02:00
Daniel Agar 9ce83f2208 fix all sign-compare warnings 2018-07-01 09:36:55 +00:00
Daniel Agar cf74166801 double promotion warning fix or ignore per module 2018-07-01 09:36:55 +00:00
Beat Küng 13ab5ed0d0 px4_main_t: fix method declaration throughout the code base
px4_main_t is defined as:
typedef int (*px4_main_t)(int argc, char *argv[]);
which matches with the definition in NuttX, given to task_create
2018-05-09 07:59:46 +02:00
Daniel Agar ea3acb7121 cmake remove circular linking and reorganize
- px4_add_module now requires MAIN
 - px4_add_library doesn't automatically link
2018-04-29 21:48:54 -04:00
Beat Küng 90513e719e ASSERT: remove some inappropriate asserts
Since assertions lead to crashes, we need better failure handling. In all
the cases in this patch, the assert is not required.

All the ones with the task id should be replaced with the module base
class.

Ah yes, and this reduces flash space, since the ASSERT macro will expand to
a printf that contains the source file name.
2018-04-11 07:47:06 +02:00
yinjiajie adfa795b79 polyfit.hpp : modify xn to xm 2018-01-07 20:44:52 +01:00
yinjiajie 42b4156bae polyfit.hpp : modify n to m+1 2018-01-07 20:44:52 +01:00
Beat Küng 8ec59f0bc9 status_display: remove unused vehicle_attitude topic 2017-10-24 13:15:14 +02:00
ChristophTobler 9be8d6acc9 add subscriber handler and status displays 2017-10-24 13:15:14 +02:00
Beat Küng 353caec1af temperature_calibration: check if no sensor is found 2017-10-07 10:57:53 +02:00
Daniel Agar 91cda08081 temperature calibration coverity fix 141891 2017-09-16 21:28:24 +01:00
Daniel Agar 8ddd071f18 temperature_calibration coverity fix 141892 2017-09-16 21:28:24 +01:00
Daniel Agar e15afcca7a vehicle_command commands are uint16, not uint32 2017-09-08 09:06:30 +02:00
Daniel Agar 9b5fe8c476 ignore -Wsign-compare per module 2017-09-07 10:27:36 +02:00
José Roberto de Souza 4462869432 Add support to new fields in command_ack 2017-08-19 09:04:52 +02:00
José Roberto de Souza 925efe990d Initialize all outgoing vehicle_command_ack_s and vehicle_command_s
This will initialize those structs with zero in all fields not set
and all fields set will only be change once to the final value not
wasting CPU time zeroing it.

This will guarantee that no non-unitialized structs will have
a trash value on from_external causing it to be sent to the
MAVLink channel without need it.
2017-08-08 21:46:30 +02:00
José Roberto de Souza a8cfd6f36a msg: Use the correctly data types on vehicle_command
Lets save a few bytes using the right data types.
2017-08-08 21:46:30 +02:00
Lorenz Meier f4eaea99c5 Temp cal: Use correct constants 2017-08-01 12:46:59 +02:00
Beat Küng 8d7481f9ac load_mon: use ModuleBase & add documentation 2017-07-14 11:57:11 +02:00
Beat Küng 3b64be44f4 ModuleBase: add wait_until_running() method 2017-07-14 11:57:11 +02:00
Beat Küng 053eb12329 Module documentation: switch to Markdown 2017-07-14 11:57:11 +02:00