The baro was not fully initialized when the sensors module tried to
open it. Added a sleep command and a sleep 2 to rc.S so the baro
is initialized by the time the sensors module tried to read it.
Fixed other noisy errors
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
This adds support for a dynamic build for QuRT and initial
Multi-uORB changes to enable communication between the DSP and
the application processor.
This part of the changes do not affect the POSIX build. This is
enablement for the QuRT build using Multi-uORB. The second part
of the changes will be added in a new module under src/modules.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
uORBManager_posix.cpp did a stat to see if a file exists but the
file is actually a virtual file. Using stat was incorrect because
it required a stat buffer that was never used. The POSIX access
function is a better choice so I created a px4_access version to
handle virtual files.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
There was a conversion error in the timeout (in ms)
passed in and the ts.tv_nsec field of the struct timeval.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
The orb_advertise and/or orb_publish calls were failing because
there were not enough devmap entries allocated for all the orb
topics advertised.
The number of entries was increased from 50 to 100.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
There were an insufficient number of devmap entries allocated and
when they ran out, new orb_advertise requests would fail.
Also added a new logging macro for the Linux build to show the
calling pthread if enabled.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
The warnx and warn calls map to PX4_WARN.
Calls to errx or err genrtate a compile error.
The px4_log.h file implements a new log format:
For DEBUG and INFO:
<level> <msg>
For ERROR and WARN:
<level> <msg> (file filepath line linenum)
The verbosity can be changed by setting the macro to use
either linux_log or linux_log_verbose in px4_log.h
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
In the upstream tree ringbuffer.h includes the method implementations
in the header file which causes multiple definitions in the link for
other targets. Changed so ringbuffer.cpp is build separately for other
platforms and is included by ringbuffer.h on NuttX.
uORB changes do not link without uORBTest_UnitTest.cpp enabled for
the NuttX build.
px4_getopt was not exported and wasn't visible in NuttX build.
The makefiles were restored to be as close as possible to upstream
so the NuttX build builtin's work again. The code will have to be
refactored after the merge.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
px4_read, px4_write, and px4_opctl were not returning the correct
value on error. They were returning -errno vs -1.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
QuRT does not have a filesystem, so creating a virtual filesystem
that could be implemented as an in-memory file or a remote file
over fastRPC.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
The debug message made it difficult to use the shell for the
posix build. Commented out the debug line.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
sim.cpp was causing the posix shell to have continuous debug output.
Used debug macros to suppress output
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
The following should not have been defined:
PX4_DIOC_GETPRIV
PX4_DEVIOCSPUBBLOCK
PX4_DEVIOCGPUBBLOCK
PX4_DEVIOCGDEVICEID
The actual defines are in drv_device.h and are:
DEVIOCSPUBBLOCK
DEVIOCGPUBBLOCK
DEVIOCGDEVICEID
DIOC_GETPRIV is defined by Nuttx, so mapped to SIOCDEVPRIVATE for POSIX
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
Changed "linux" target to "posix". Most of the changes are shared with
QuRT and with OSX. The Linux specific parts are in for i2c which uses
<linux/i2c.h> and <linux/i2c-dev.h>.
There is also a check for __PX4_LINUX in mavlink for a tty ioctl that is
not supported.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
If simulate is not true, then a read I2C device is present.
The global scope ioctl should be called on _fd, not px4_ioctl.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
list_devices will list virtual devices starting with "/dev/".
list_topics will list topics ("/obj/")
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
The commander module now compiles for Linux.
state_machine_helper_linux.cpp iterates over the virtual devices vs
all devices under /dev as per NuttX when disabling publishing.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
The list_tasks and list_devices commands will show
lists of running px4 threads and created virtual device nodes.
The list_builtins command was removes and the list of commands
will be shown if return is pressed.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
The MS5611_SIM class is supposed to simulate data from a real
ms5611. An externl simulator could provide an interface to
call to get data that would be returned from a transfer() call.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
The simulator satisfies the dependencies for an accelerometer
being present.
The accel code compiles but is not fully functional.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
The simulated device satisfies the factory pattern used by
MS5611 to create a specific I2C or SPI device instance.
For now the functions just return true, but should/could
return simulated data.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
If PX4_I2C_SIMULATE is set to 1, then the actual I2C device will
not be opened and all transfers will succeed.
If PX4_I2C_SIMULATE is false and transfer() is called, then the
appropriate ioctl is make on the actual device.
if I2C::ioctl is called via px4_ioctl() then the command fails and
a warning is printed to use I2C::transfer
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
The parameter is not present in the linux implementation so removed
the documentation for the parameter.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
To avoid confusion when a real device and a virtual device is
being used, changed CDev to VDev for Linux.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
Added PX4_ISFINITE(x) to px4_defines.h to handle the differences on
NuttX and Linux.
This change also picked up some file renaming for virtual character devices
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
I2C class derives from CDev class which requires a devname
but in at least some instances, a nullptr is passed for devname.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>