Page 5 of 9
Re: Digital pressure sensor Driver
Posted: Sun Jun 05, 2016 3:12 pm
by tfAteba
Hi Giovanni, RM, all,
Here is a patch for the BMP085 Digital pressure sensor ex sub-project support.
To resume the action of the patch:
- Creation of two HAL classes: hal_barometer and hal_thermometer. Those classes are a bit different to the zip a send last time.
- Creation of the os/ex/Bosch folder with the driver files (bmp085.c, bmp085.h and bmp085.mk)
- Creation of a demo in testhal/STM32/STM32F4xx/I2C-BMP085/
There is still a lot of work

, but I need your point of view to improve my current work. All comment are welcome
Re: Digital pressure sensor Driver
Posted: Sun Jun 05, 2016 3:39 pm
by RoccoMarco
In barometer and temperature class there are missed calibration methods (set_bias, reset_bias, set_sensitivity, reset_sensitivity).
Code: Select all
/**
* @name Macro Functions (BaseBarometer)
* @{
*/
/**
* @brief Barometer get axes number.
*
* @param[in] ip pointer to a @p BaseBarometer class.
* @return The number of axes of the BaseSensor
*
* @api
*/
#define barometerGetAxesNumber(ip) \
(ip)->vmt_basebarometer->get_axes_number(ip)
Now it is get_channels_number
Code: Select all
/**
* @brief BaseBarometer specific methods.
*/
#define _base_barometer_methods_alone \
/* Invoke the get pressure data.*/ \
msg_t (*get_pressure)(void *instance, int32_t pressure[]);
This is redundant. You already have the read_raw and read_cooked methods in the basesensor class and barometer/thermometer extend this class.
Take a look to LSM303DLHC. Here I have 3 VMT
Code: Select all
/**
* @brief LSM303DLHC 6-axis accelerometer/compass class.
*/
struct LSM303DLHCDriver {
/** @brief BaseSensor Virtual Methods Table. */
const struct BaseSensorVMT *vmt_basesensor;
/** @brief BaseAccelerometer Virtual Methods Table. */
const struct BaseAccelerometerVMT *vmt_baseaccelerometer;
/** @brief BaseCompass Virtual Methods Table. */
const struct BaseCompassVMT *vmt_basecompass;
/** @brief LSM303DLHC Accelerometer Virtual Methods Table. */
const struct LSM303DLHCACCVMT *vmt_lsm303dlhcacc;
/** @brief LSM303DLHC Compass Virtual Methods Table. */
const struct LSM303DLHCCOMPVMT *vmt_lsm303dlhccomp;
_lsm303dlhc_data
};
using
vmt_lsm303dlhcacc->read_raw I am able to read raw data from
accelermeter onlyusing
vmt_lsm303dlhccomp->read_raw I am able to read raw data from
compass onlyusing
vmt_basesensor->read_raw I am able to read raw data from
both subsystems
Re: Digital pressure sensor Driver
Posted: Sun Jun 05, 2016 5:53 pm
by tfAteba
Hi RM,
Thanks for those details, i will correct that tomorrow and send back a patch when ready.
regards,
Theo.
Re: Digital pressure sensor Driver
Posted: Sun Jun 05, 2016 5:56 pm
by RoccoMarco
I will edit and commit both classes for barometer and thermometer by the end of the day.
Is this ok to you?
Ciao,
RM
Re: Digital pressure sensor Driver
Posted: Mon Jun 06, 2016 12:33 am
by tfAteba
Hi RM,
Yes it is ok for me

.
Please tell me when commited. I will get the last version and work with.
ciao,
Theo
Re: Digital pressure sensor Driver
Posted: Mon Jun 06, 2016 7:59 pm
by RoccoMarco
Hi Theo,
I have added three new classes on trunk: hygrometer, barometer and thermometer. They are completely identical on accelerometer/magnetometer classes except for that convention already discussed (axes/channels).
I am intentioned to restyle current MEMS implementation simplifying code, optimizing code in certain points and improving configuration structures (enabling user to set-up interrupt registers). Even more I will introduce support for a barometer (LPS25H) and for a hygrometer/thermometer (HTS221) both from ST.
I will make these edits in the next 48h. I suggest you to take a look to new version of device driver before to develop your own driver.
Ciao,
RM
Re: Digital pressure sensor Driver
Posted: Mon Jun 06, 2016 8:42 pm
by tfAteba
Hi RM,
Thanks for your feedback. I will then wait the new version of the driver and port and update what I have done according to the new implementation.
Did you take a look at my driver code?
Re: Digital pressure sensor Driver
Posted: Mon Jun 06, 2016 8:45 pm
by RoccoMarco
Honestly last time I saw only sensor classes. I will take a look to driver implementation as soon I have some spare time. Fore sure I will take a deep look into before to add it to trunk.
Thanks a lot for your contribution and your patience.
Ciao,
RM
Re: Digital pressure sensor Driver
Posted: Mon Jun 06, 2016 9:05 pm
by tfAteba
ok, I will send another patch for the driver and a demo after new port. It will be interesting to have a look at the last version maybe.
It is a pleasure to contribute to the project, it is my way to say thank you.
I'm also learning at the same time
regards,
Theo
Re: Digital pressure sensor Driver
Posted: Mon Jun 06, 2016 10:20 pm
by tfAteba
I just remark that in the trunk the readme file don't show the existace of the ex repository for the moment.
It shows rt, nil hal but not ex.
regads
Theo