Hover!( Microchip MGC3130 ) library. Now, it is development version. http://www.hoverlabs.co/#hover https://www.switch-science.com/catalog/2124/

Dependents:   MjHover_Hello

MjHover.h

Committer:
matsujirushi
Date:
2015-04-03
Revision:
6:8d68ac1bab97
Parent:
5:bd26aba87b9b
Child:
7:a3b72910732d

File content as of revision 6:8d68ac1bab97:

#ifndef MJ_HOVER_H
#define MJ_HOVER_H

#include "mbed.h"

using namespace std;

namespace matsujirushi {

class MjHoverBase
{
public:
    MjHoverBase(I2C* i2c, uint8_t address, DigitalInOut* ts_n, DigitalInOut* reset_n);
    
    void Reset();
    
    bool DataAvailable() const
    {
        return this->ts_n->read() ? false : true;
    }
    
    bool WriteMessage(uint8_t id, const uint8_t* payload, uint8_t payloadSize);
    bool ReadMessage(uint8_t* id, uint8_t* payload, uint8_t payloadSize, uint8_t* readPayloadSize);
    
private:
    I2C *i2c;
    uint8_t address;
    DigitalInOut* ts_n;     // I/O Transfer Status
    DigitalInOut* reset_n;  // O   Master Clear#

    void BeginRead()
    {
        this->ts_n->output();
        this->ts_n->write(0);
    }
    void EndRead()
    {
        this->ts_n->input();
        wait_us(100);
    }

};

class MjHover : private MjHoverBase
{
public:
    MjHover(I2C* i2c, uint8_t address, DigitalInOut* ts_n, DigitalInOut* reset_n);
    void begin();
    void setRelease();
    bool getStatus();
    uint8_t getEvent();
    static const char* getEventString(uint8_t eventByte);
    
};

} // namespace matsujirushi

#endif