Forked version of the FXOS8700CQ library which maintains its own memory

Dependents:   fxos8700cq_example

Fork of FXOS8700CQ by Thomas Murphy

Revision:
5:2bd683278d23
Parent:
2:4c2f8a3549a9
--- 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;