Commit Graph
27 Commits
Author SHA1 Message Date
Beat Küng 9be11c048a batt_smbus: fix string length, use correct delete[] for array 2017-04-06 11:48:35 +02:00
Julian Oes 8ff237c69f Remove size optimization for individual modules
It makes more sense to set the optimization flags on a platform basis
instead of individually for each module. This allows for different
optimization options for SITL, NuttX, Snapdragon, etc.
2016-09-30 08:11:51 +02:00
Lorenz Meier 034bbdf988 Fix battery topic handling in SMBus battery 2016-05-22 12:44:07 +02:00
ksschwabe 4b6d0ef0a6 batt_smbus: Adds check for if the battery detected is a 3DR solo battery
Also, if the battery is a 3DR Solo battery, it checks for the button
press on the battery which sets the is_powering_off flag.

The check for whether the battery is a 3DR Solo battery is based on
whether the Manufacturer Name, Device Name and Device Chemistry all
match the that of the standard 3DR Solo battery.
2016-02-18 21:47:09 +01:00
ksschwabe 27a645353b batt_smbus: Adds functions for reading out the SBS Info
Functions added for reading out the following info:
 - Manufacturer Name
 - Device Name
 - Serial Number
 - Device Chemistry
2016-02-18 21:47:09 +01:00
ksschwabe e3f2467b91 batt_smbus: Commentted out button press detection
The button press detection relies on reading the MANUFACTURER_DATA
register. The implementation of what information is returned when reading
this register differs from manufacturer to manufacturer.

This has been commented out until an elegant solution can be found to detect
the battery shutdown on different batteries manufactured by different
manufacturers.
2016-02-18 21:47:09 +01:00
Angus Peart 6ac26c680d batt_smbus: read button status from the smart battery
This is a cherry-pick of commit 8bd17a4b0cd9c1432cb57a9a80a215692f532370
in 3drobotics/PX4Firmware-solo

Conflicts:
	src/drivers/batt_smbus/batt_smbus.cpp
	src/drivers/drv_irlock.h
	src/lib/ecl
2016-02-18 21:47:09 +01:00
ksschwabe 7fc0b0925c batt_smbus: Adds ManufacturerAccess, write_reg, and write_block functions
Also fixes the the PEC calculation for writing. See
http://cache.freescale.com/files/32bit/doc/app_note/AN4471.pdf and
http://www.ti.com/lit/an/sloa132/sloa132.pdf for more details for more
details on SMBus reading and writing including with and without PECs.
2016-02-18 21:47:09 +01:00
Lorenz Meier fa5071b3c5 Remove module.mk files to prevent confusion of adopters upgrading 2015-10-06 11:23:20 +02:00
James Goppert 1d6b31d196 Switch to cmake build system. 2015-09-07 20:37:45 -04: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
Mark Charlebois 9758112e31 Use px4_config.h instead of nuttx/config.h
Modified code to use OS independent header file for config settings.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-04-20 10:55:41 -07:00
Randy Mackay 04863dc2d1 batt_smbus: add ioctl to return batt capacity
Also use full charge capacity instead of design capacity so that an old
battery's capacity will appear as lower than its original capacity but
it will still report 100% charged after charging
2015-04-10 14:17:25 +09:00
Randy Mackay 4e83f43ea3 batt_smbus: remove usleep
Also restore I2C address after performing command line search for
devices
2015-03-19 12:09:40 +09:00
Randy Mackay 23075f6dab batt_smbus: calculate current discharged 2015-03-19 12:09:31 +09:00
Randy Mackay ca4adebe11 batt_smbus: remove debug 2015-03-02 15:30:06 +09:00
Randy Mackay d57dd250b9 batt_smbus: reverse reported current
smart batteries report a negative current when being discharged
2015-02-20 16:57:23 +01:00
Randy Mackay d80a00fad1 batt_smbus: disable if no batt 10seconds after startup 2015-01-21 22:23:17 +01:00
Lorenz Meier 3c99becada SMBus battery driver: Remove console print on normal block read operation 2015-01-04 11:04:55 +01:00
Lorenz Meier 1106e0bff3 SMBus battery driver: further code style fixes 2015-01-04 11:02:53 +01:00
Lorenz Meier 17e4e283d8 SMBus battery driver: Stylize according to style guide 2015-01-04 10:58:45 +01:00
Randy Mackay c4e3577476 batt_smbus: add search 2014-12-30 13:43:23 +09:00
Randy Mackay a952a18b42 batt_smbus: add get_PEC 2014-12-30 13:43:21 +09:00
Randy Mackay 65bcd0e122 batt_smbus: minor format fix 2014-12-30 13:43:18 +09:00
Randy Mackay b8e818b387 batt_smbus: remove sleep before I2C transfer 2014-12-30 13:43:13 +09:00
Randy Mackay df9547e9d3 batt_smbus: driver for smart battery 2014-12-30 13:43:11 +09:00