Port to C027 (using AppShield and Ethernet)

Dependencies:   C12832 EthernetInterface LM75B MMA7660 MQTT mbed-rtos mbed

Fork of IBMIoTClientEthernetExample by IBM Watson IoT

Revision:
9:58eb378727d9
Parent:
8:80d49dd91542
Child:
10:0b5e0dfee08e
--- a/MMA7660/MMA7660.cpp	Wed Oct 01 13:27:35 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,194 +0,0 @@
-#include "MMA7660.h"
-
-MMA7660::MMA7660(PinName sda, PinName scl, bool active) : _i2c(sda, scl)
-{
-    setActive(active);
-    samplerate = 64;
-}
-
-//Since the MMA lacks a WHO_AM_I register, we can only check if there is a device that answers to the I2C address
-bool MMA7660::testConnection( void )
-{
-    if (_i2c.write(MMA7660_ADDRESS, NULL, 0) == 0 )
-        return true;
-    else
-        return false;
-}
-
-void MMA7660::setActive(bool state)
-{
-    active = state;
-    char modereg = read(MMA7660_MODE_R);
-    modereg &= ~(1<<0);
-
-    //If it somehow was in testmode, disable that
-    if (modereg && (1<<2)) {
-        modereg &= ~(1<<2);
-        write(MMA7660_MODE_R, modereg);
-    }
-
-    modereg += state;
-    write(MMA7660_MODE_R, modereg);
-}
-
-void MMA7660::readData(int *data)
-{
-    bool active_old = active;
-    if (!active) {
-        setActive(true);
-        wait(0.012 + 1/samplerate); //Wait until new sample is ready, my experience is that 1/samplerate isnt needed, but datasheet says so
-    }
-
-    char temp[3];
-    bool alert;
-
-    do {
-        alert = false;
-        read(MMA7660_XOUT_R, temp, 3);
-        for (int i = 0; i<3; i++) {
-            if (temp[i] > 63)
-                alert = true;
-            if (temp[i] > 31)
-                temp[i] += 128+64;
-            data[i] = (signed char)temp[i];
-        }
-    } while (alert);
-
-    if (!active_old)
-        setActive(false);
-}
-
-
-void MMA7660::readData(float *data)
-{
-    int intdata[3];
-    readData(intdata);
-    for (int i = 0; i<3; i++)
-        data[i] = intdata[i]/MMA7660_SENSITIVITY;
-}
-
-float MMA7660::x( void )
-{
-    return getSingle(0);
-}
-
-float MMA7660::y( void )
-{
-    return getSingle(1);
-}
-
-float MMA7660::z( void )
-{
-    return getSingle(2);
-}
-
-
-void MMA7660::setSampleRate(int samplerate)
-{
-    bool active_old = active;
-    setActive(false);                               //Not allowed to be active to change anything
-    int rates[] = {120, 64, 32, 16, 8, 4, 2, 1};    //Alowed samplerates (and their number in array is also number required for MMA)
-    int sampleLoc = 0, sampleError = 10000, temp;
-    for (int i = 0; i<8; i++) {
-        temp = abs( rates[i] - samplerate );
-        if (temp<sampleError) {
-            sampleLoc = i;
-            sampleError=temp;
-        }
-    }
-
-    //Update the samplerate reg
-    temp = read(MMA7660_SR_R);
-    temp &= ~0x07;                                  //Awake sample rate are lowest 3 bit
-    temp |= sampleLoc;
-    write(MMA7660_SR_R, temp);
-    this->samplerate = rates[sampleLoc];
-    setActive(active_old);                              //Restore previous active state
-}
-
-
-MMA7660::Orientation MMA7660::getSide( void )
-{
-    char tiltreg = read(MMA7660_TILT_R);
-    //We care about 2 LSBs
-    tiltreg &= 0x03;
-    if (tiltreg == 0x01)
-        return MMA7660::Front;
-    if (tiltreg == 0x02)
-        return MMA7660::Back;
-    return MMA7660::Unknown;
-}
-
-MMA7660::Orientation MMA7660::getOrientation( void )
-{
-    char tiltreg = read(MMA7660_TILT_R);
-
-    //We care about bit 2, 3 and 4 (counting from zero)
-    tiltreg &= 0x07<<2;
-    tiltreg >>= 2;
-    if (tiltreg == 0x01)
-        return MMA7660::Left;
-    if (tiltreg == 0x02)
-        return MMA7660::Right;
-    if (tiltreg == 0x05)
-        return MMA7660::Down;
-    if (tiltreg == 0x06)
-        return MMA7660::Up;
-    return MMA7660::Unknown;
-}
-
-
-
-//////////////////////////////////////////////
-///////////////PRIVATE////////////////////////
-//////////////////////////////////////////////
-
-
-void MMA7660::write(char address, char data)
-{
-    char temp[2];
-    temp[0]=address;
-    temp[1]=data;
-
-    _i2c.write(MMA7660_ADDRESS, temp, 2);
-}
-
-char MMA7660::read(char address)
-{
-    char retval;
-    _i2c.write(MMA7660_ADDRESS, &address, 1, true);
-    _i2c.read(MMA7660_ADDRESS, &retval, 1);
-    return retval;
-}
-
-void MMA7660::read(char address, char *data, int length)
-{
-    _i2c.write(MMA7660_ADDRESS, &address, 1, true);
-    _i2c.read(MMA7660_ADDRESS, data, length);
-}
-
-float MMA7660::getSingle( int number )
-{
-    bool active_old = active;
-    if (!active) {
-        setActive(true);
-        wait(0.012 + 1/samplerate); //Wait until new sample is ready
-    }
-
-    signed char temp;
-    bool alert;
-
-    do {
-        alert = false;
-        temp = read(MMA7660_XOUT_R + number);
-        if (temp > 63)
-            alert = true;
-        if (temp > 31)
-            temp += 128+64;
-    } while (alert);
-
-    if (!active_old)
-        setActive(false);
-
-    return temp / MMA7660_SENSITIVITY;
-}
\ No newline at end of file