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 |
diff -r 4c2f8a3549a9 -r 2bd683278d23 FXOS8700CQ.cpp --- 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;
diff -r 4c2f8a3549a9 -r 2bd683278d23 FXOS8700CQ.h --- 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; };