Commit Graph
41 Commits
Author SHA1 Message Date
Daniel Agar 859b19db9a uORB.h reduce orb_metadata field sizes 2017-12-31 09:47:51 -05:00
Beat Küng 4a7e02c640 systemlib/visibility.h: remove this file
This is duplicated in src/include/visibility and is directly included via
compiler flag '-include'
2017-03-29 23:02:09 +02:00
Beat Küng ab3b68cf18 ORB_PRIO: set ORB_PRIO_MIN to 1 instead of 0
This is needed as the sensors app assumes a value of 0 means uninitialized.

Follow-up to 'Sensors app: Fix consistency checks', a6696d339d
2017-01-03 20:53:26 +01:00
Beat Küng fbd7aac4b5 uorb: add 'top' command for a live view of topic updates 2016-09-28 15:31:52 +02:00
Julian Oes 5a262ec6bc uorb: came across a wrong comment 2016-07-29 17:44:50 +02:00
Beat Küng e709048fb8 orb: add orb_get_interval to API 2016-06-06 23:27:16 +02:00
Beat Küng 43d734ef43 orb: consistently use unsigned int for queue_size 2016-06-02 07:24:44 +02:00
Beat Küng 5b1273e334 orb: add optional queuing of messages
This adds two uORB API calls:
- orb_advertise_queue
- orb_advertise_multi_queue

Both add a queue_size parameter to define a maximum number of buffered
item. The existing orb calls use all a queue size of one and thus their
behavior is unchanged. If a writer publishes too fast, the oldest elements
from the queue are silently dropped.
The returned timestamp is always the one from the latest message in the
queue.

Queue size can be set via ioctl during advertisement phase. After that it
cannot be changed anymore.
2016-06-02 07:24:44 +02:00
Beat Küng fd0f52bebd orb macros: cleanup some unused code (#4576) 2016-05-19 11:08:37 +02:00
Beat Küng eabc43d78c orb structs: add padding bytes to align the structs where necessary
This is required for the logger, we just manually add the padding bytes
what would otherwise be done by the compiler. Additionally we reorder
the fields by type, so that padding is only necessary for nested types.
2016-05-14 11:27:07 +02:00
Daniel Agar 69c1ce1714 WIP logger serialization 2016-05-14 11:27:07 +02:00
Daniel Agar 9a0e962cbf uorb autogeneration 2016-05-14 11:27:07 +02:00
Daniel Agar eb29b33620 use gcc attributes to align and pack 2016-05-14 11:27:07 +02:00
Daniel Agar 76387b1693 uorb autogeneration 2016-05-14 11:27:07 +02:00
Beat Küng 9da537c092 uorb: add uorb_unadvertise method
This is necessary when using multiple instances of a topic. However it does
not free the underlying resources, as it is assumed they will be used again
at a later point.
2016-04-29 09:31:08 +02:00
Beat Küng c598429547 uORB doc: remove redundant doc & update existing one (describe the _multi methods) 2016-04-19 11:12:35 +02:00
Lorenz Meier fd01d565fe Fix code style / typos in uORB 2015-12-24 10:31:06 +01:00
Lorenz Meier 36a556d107 Modify uORB API to allow cleaner in-app use 2015-12-24 10:30:48 +01:00
tumbili 0a0a074194 use virtual attitude setpoint
Conflicts:
	src/modules/vtol_att_control/tailsitter.cpp
	src/modules/vtol_att_control/tiltrotor.cpp
	src/modules/vtol_att_control/vtol_att_control_main.cpp
	src/modules/vtol_att_control/vtol_att_control_main.h
	src/modules/vtol_att_control/vtol_type.h
2015-11-25 13:28:22 +01:00
James Goppert e55af00222 Removed weak attributes. 2015-09-13 14:40:27 -04:00
Lorenz Meier fbe5ef6087 uORB: Provide used group count 2015-08-30 00:12:45 +02:00
Mark Charlebois 3a47434749 Fixes for qurt HIL build
Workaround required Eigen downgrade to 3.2. Hexagon toolchain does
not support C++11 features of newest version of Eigen.

Running make qurt_fixup will downgrade and patch Eigen for qurt.
Running make restore will revert the patch and do a git submodule update
to restore the expected Eigen version.

Added a "restore" target to undo qurt_fixup

Before doing a qurt build run:

    make qurt_fixup

That will downgrade Eigen to 3.2 and apply the require patch.
To build another target after downgrading:

    make restore

Them make the desired target (other than qurt).

Fixed type used in orb_priority to be consistent with the code
(int* was used in declaration but int32_t* used in code)

Removed unused class member variable in sensors.cpp

Added cmake fix for unit tests. The location of px4_log.c changed.

Fixed the qurt drv_hrt.c implementation to use us instead of ms for time resolution

Added px4_led.c to nuttx platform layer
Use the posix version of px4_led.c for nuttx so we don't end up with
duplicate files. It was moved out of common because it is not used by qurt.

Changed PX4_DEBUG to PX4_WARN when checking for the error condition for store_poll_waiter in vdev.cpp

Updated the px4_log.h file to make calls to the qurt_log functions.
The qurt_log function is defined in the platforms/qurt layer.

Added an option to control starting the commander module in HIL mode.

Moved the flight specific drivers to the configuration file instead of adding them
to the common tool chain file because HIL mode does not need them.

Added the uorb Subscriber and Publisher classes

Call PX4_ISFINITE macro instead of isfinite().

Added px4_led.c to nuttx platform layer
Use the posix version of px4_led.c for nuttx so we don't end up with duplicate files.
It was moved out of common because it is not used by qurt.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-08-25 21:59:01 -07:00
Mark Charlebois 6763039980 Code cleanup - Whitespace changes
These are only whitespace changes

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-07-01 09:10:30 -07:00
Ban Siesta c584bab811 uORB: document ORB_MULTI_MAX_INSTANCES 2015-06-15 18:31:01 +02:00
Ban Siesta 99a442b80e uORB: bump ORB_MULTI_MAX_INSTANCES to 4 because this is needed for an extended unit-test 2015-06-15 18:31:01 +02:00
Mark Charlebois 1ca05aaa64 orb_advert_t changed to void * and checks changed to nullptr
The existing orb_advert_t use thoughout the code sometimes tries
to treat it as a file descriptor and there are checks for < 0
and ::close calls on orb_advert_t types which is an invalid use
of an object pointer, which is what orb_advert_t really is.

Initially I had changed the -1 initializations to 0 but it was
suggested that this should be nullptr. That was a good recommendation
but the definition of orb_advert_t had to change to void * because
you cannot initialize a uintptr_t as nullptr.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-05-27 14:42:49 -07:00
Mark Charlebois a734fc96d1 extensive orb_advert_t fixes
The calls to orb_advertise were being mishandled throughout the code.
There were ::close() calls on memory pointers, there were checks
against < 0 when it is a pointer to a object and values larger than
0x7ffffffff are valid. Some places orb_advert_t variables were
being initialized as 0 other places as -1.

The orb_advert_t type was changed to uintptr_t so the pointer value
would not be wrapped as a negative number. This was causing a failure
on ARM.

Tests for < 0 were changed to == 0 since a null pointer is the valid
representation for error, or uninitialized.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-05-27 14:41:33 -07:00
Lorenz Meier 28dfb8983a uORB: Add API to check if a topic exists yet 2015-04-26 14:33:56 +02:00
Daniel Agar 8aae66b893 trivial code style cleanup round 2 2015-03-27 23:38:58 -04:00
Thomas Gubler 84ff3c671d Merge remote-tracking branch 'upstream/master' into ros_messagelayer_merge2_attctrl_posctrl
Conflicts:
	src/drivers/px4fmu/fmu.cpp
2015-02-01 11:06:47 +01:00
Lorenz Meier e532b81ac1 uORB: Remove last remnants of ORB_ID_DOUBLE/TRIPLE and migrate actuator outputs groups to new style interface 2015-01-29 16:33:54 +01:00
Lorenz Meier 4f9a6273cb uORB: correct pub creation for multi-topics 2015-01-29 16:33:52 +01:00
Lorenz Meier 8de411619a Initial stab at supporting multiple publications on the same base name and auto-enumeration of additional publications. 2015-01-29 16:33:52 +01:00
Thomas Gubler 1f0daea665 remove uorb hacks 2015-01-25 15:01:37 +01:00
Thomas Gubler f960bbf529 bring back switch_pos_t 2015-01-08 10:54:09 +01:00
Thomas Gubler f4e0dc2857 Merge remote-tracking branch 'upstream/master' into dev_ros
Conflicts:
	.gitmodules
2014-12-29 08:00:12 +01:00
Lorenz Meier 0e84f60826 Add macro for multi topic support 2014-12-26 19:57:21 +01:00
Thomas Gubler 16618f1ada Merge remote-tracking branch 'upstream/master' into dev_ros
Conflicts:
	src/examples/subscriber/subscriber_params.c
	src/modules/mc_att_control/mc_att_control_main.cpp
	src/modules/uORB/topics/vehicle_attitude.h
	src/modules/uORB/topics/vehicle_attitude_setpoint.h
	src/platforms/px4_middleware.h
2014-12-18 12:11:05 +01:00
Thomas Gubler ab35b6470c mc att: use multiplatform publisher 2014-12-11 19:02:14 +01:00
Thomas Gubler 356e6f1eeb WIP, move some ORB defines 2014-12-08 13:42:40 +01:00
Lorenz Meier 13fc670386 Moved last libs, drivers and headers, cleaned up IO build 2013-04-28 09:54:11 +02:00