Forked version of the FXOS8700CQ library which maintains its own memory
Dependents: fxos8700cq_example
Fork of FXOS8700CQ by
Revision 5:2bd683278d23, committed 2017-03-02
- Comitter:
- janjongboom
- Date:
- Thu Mar 02 17:12:06 2017 +0000
- Parent:
- 2:4c2f8a3549a9
- Commit message:
- The library should maintain its own memory
Changed in this revision
| FXOS8700CQ.cpp | Show annotated file Show diff for this revision Revisions of this file |
| FXOS8700CQ.h | Show annotated file Show diff for this revision Revisions of this file |
--- a/FXOS8700CQ.cpp Wed May 28 17:08:33 2014 +0000
+++ b/FXOS8700CQ.cpp Thu Mar 02 17:12:06 2017 +0000
@@ -6,6 +6,9 @@
// Construct class and its contents
FXOS8700CQ::FXOS8700CQ(PinName sda, PinName scl, int addr) : dev_i2c(sda, scl), dev_addr(addr)
{
+ accel_data = new SRAWDATA();
+ magn_data = new SRAWDATA();
+
// Initialization of the FXOS8700CQ
dev_i2c.frequency(I2C_400K); // Use maximum I2C frequency
uint8_t data[6] = {0, 0, 0, 0, 0, 0}; // target device write address, single byte to write at address
@@ -76,7 +79,10 @@
}
// Destruct class
-FXOS8700CQ::~FXOS8700CQ(void) {}
+FXOS8700CQ::~FXOS8700CQ(void) {
+ if (accel_data) delete accel_data;
+ if (magn_data) delete magn_data;
+}
void FXOS8700CQ::enable(void)
@@ -115,7 +121,7 @@
return databyte;
}
-uint8_t FXOS8700CQ::get_data(SRAWDATA *accel_data, SRAWDATA *magn_data)
+uint8_t FXOS8700CQ::get_data()
{
if(!enabled) {
return 1;
@@ -147,6 +153,14 @@
return 0;
}
+int16_t FXOS8700CQ::getAccelX() { return accel_data->x; }
+int16_t FXOS8700CQ::getAccelY() { return accel_data->y; }
+int16_t FXOS8700CQ::getAccelZ() { return accel_data->z; }
+
+int16_t FXOS8700CQ::getMagnetX() { return magn_data->x; }
+int16_t FXOS8700CQ::getMagnetY() { return magn_data->y; }
+int16_t FXOS8700CQ::getMagnetZ() { return magn_data->z; }
+
uint8_t FXOS8700CQ::get_accel_scale(void)
{
uint8_t data = 0x00;
--- a/FXOS8700CQ.h Wed May 28 17:08:33 2014 +0000
+++ b/FXOS8700CQ.h Thu Mar 02 17:12:06 2017 +0000
@@ -143,11 +143,9 @@
/**
* Data retrieval from the FXOS8700CQ
*
- * @param accel_data destination XYZ accelerometer data struct
- * @param magn_data destination XYZ magnetometer data struct
* @return 0 on success, non-zero on failure
*/
- uint8_t get_data(SRAWDATA *accel_data, SRAWDATA *magn_data);
+ uint8_t get_data();
/**
* Retrieve the full-range scale value of the accelerometer
@@ -155,6 +153,13 @@
* @return 2, 4, or 8, depending on part configuration; 0 on error
*/
uint8_t get_accel_scale(void);
+
+ int16_t getAccelX();
+ int16_t getAccelY();
+ int16_t getAccelZ();
+ int16_t getMagnetX();
+ int16_t getMagnetY();
+ int16_t getMagnetZ();
@@ -166,6 +171,9 @@
// I2C helper methods
void read_regs(int reg_addr, uint8_t* data, int len);
void write_regs(uint8_t* data, int len);
+
+ SRAWDATA *accel_data;
+ SRAWDATA *magn_data;
};
