pwm period is now 200us instead of the default 20ms veml6040 config is now AF_BIT | TRIG_BIT

Dependencies:   mbed MMA8451Q USBDevice WakeUp vt100

Fork of afero_node_suntory_2017_06_15 by Orefatoi

spi/AferoCommHndlr.h

Committer:
wataloh
Date:
2017-06-09
Revision:
21:d03c7bbb9f37
Parent:
16:283828f1f6fe

File content as of revision 21:d03c7bbb9f37:

#ifndef _AFERO_COMM_HNDLR_
#define _AFERO_COMM_HNDLR_

#include "mbed.h"
//#include "pin_defines.h"
#include "mbedSPI.h"
#include "afLib.h"
#include "ToDoQ.h"
#include "Preferences.hpp"
#include "RTC_Handler.h"
#include "WatchDogWrapper.hpp"

#define ATTR_ID_SENSE_VAL 1
#define ATTR_ID_FLOW_CONTROL 4
#define ATTR_ID_SENSING_INTERVAL 3

class AferoCommHndlr
{
public:
    void loop();
    static void init();
    static AferoCommHndlr *create(mbedSPI *spi);
    void update();
    int32_t sanitizeSensingInterval(uint16_t attributeId, int32_t interval);
    Timeout *deathWish;
    static void kick_the_bucket();
    void _myOnAttributeSetComplete(const uint8_t requestId, const uint16_t attributeId, const uint16_t valueLen, const uint8_t *value);
private:
    bool _onGetTodo(ToDo *todo);
    bool _onGetTodoFalsy(ToDo *todo);
    bool (AferoCommHndlr::*_onGetTodoP)(ToDo *todo);
    bool flowControlEnabled; //ATTR_ID_FLOW_CONTROL;
    ToDoQ *todoQ;
    uint8_t sem;
    AferoCommHndlr();
    iafLib *piafLib;
    static void fco_irq_fall();
    static void myOnAttributeSet(const uint8_t requestId, const uint16_t attributeId, const uint16_t valueLen, const uint8_t *value);
    static void myOnAttributeSetComplete(const uint8_t requestId, const uint16_t attributeId, const uint16_t valueLen, const uint8_t *value);
    static bool onGetTodo(ToDo *todo);
    mbedSPI *spi;
    Timer *timer;
    Timeout *setAttrCmpDelay;
    void onSetAttrCmpDelay();
};

#endif //_AFERO_COMM_HNDLR_