These functions used vprintf which is not available on all platforms.
They also do not enable line and file debug output.
Changed to macros that preserve the output format. Uses new macro that
can be used to implement per object, runtime selectable logging
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
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>
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>
Fix config utility to work with all devices of each type.
Accel, gyro and mag devices correctly set their device_id devtype.
Combo devices (mpu6000 lsm303d) now correctly return their devtype.
config util shows device id for all sensor types.
Add, save during calibration and check during preflight ID parameters for accelerometer and gyro
As requested here [1], this fixes some of the style errors
introduced with the addition of l3g4200d support to the l3gd20
driver. Gyro orientation is set conditionally for the aerocore
board.
[1] https://github.com/PX4/Firmware/pull/937
Signed-off-by: Ash Charles <ashcharles@gmail.com>
The L3G4200D chip is very similar to the L3GD20[H] parts and can use
the same driver with minor adjustments. There are four differences:
* WHO_AM_I register is 0xD3 (not 0xD4 or 0xD7):
- added an extra case to the driver probe
* Sampling rates are marginally different:
- setting sampling rate now depends on the detected chip
* I2C address range is different:
- no changes as the driver doesn't support i2c access
* the L3G4200D has a self-test function:
- no changes---chose not to implement feature in driver
Signed-off-by: Ash Charles <ashcharles@gmail.com>