Modified for compatibility with Rev.E. hardware

Fork of AkmSensor by AKM Development Platform

akmanalogsensor.h

Committer:
masahikofukasawa
Date:
2016-07-22
Revision:
11:cef8dc1cf010
Child:
13:d008249f0359

File content as of revision 11:cef8dc1cf010:

#ifndef AKMANALOGSENSOR_H
#define AKMANALOGSENSOR_H

#include "mbed.h"
#include "SerialNano.h"
#include "akmsensor.h"
#include "mcp342x.h"

class AkmAnalogSensor : public AkmSensor
{

public:
    typedef enum {
        SUB_ID_EQ430L               = 0x00,
        SUB_ID_EQ431L               = 0x01,
        SUB_ID_EQ432L               = 0x02,
        SUB_ID_EQ433L               = 0x03,
    } SubIdLinearSensor;

    /**
     * Constructor.
     *
     */
    AkmAnalogSensor();

    /**
     * Destructor.
     *
     */
    virtual ~AkmAnalogSensor();
    virtual AkmSensor::Status init(const uint8_t id, const uint8_t subid);
    virtual bool isEvent();
    virtual AkmSensor::Status startSensor();
    virtual AkmSensor::Status startSensor(const float sec);
    virtual AkmSensor::Status stopSensor();
    virtual AkmSensor::Status readSensorData(Message* msg);
    virtual Status requestCommand(Message* in, Message* out);
    void eventCallback();
    
private: 
    bool            event;    
    uint8_t         primaryId;
    uint8_t         subId;
    
    Ticker          ticker;
    AnalogIn*       ain;
    MCP342X*        mcp3428;
    float           interval;
};

#endif