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
sensors/TimeEventHandler.hpp
- Committer:
- wataloh
- Date:
- 2017-05-29
- Revision:
- 15:2c2c0a7c50c1
- Parent:
- 5:9d5c7ee80f3b
- Child:
- 21:d03c7bbb9f37
File content as of revision 15:2c2c0a7c50c1:
#ifndef _TIME_EVENT_HANDLER_HPP_ #define _TIME_EVENT_HANDLER_HPP_ #include "Preferences.hpp" #include "DebugIO.hpp" namespace MaruSolSensorManager { template<typename A> class TimeEventHandler { protected: static A *self; static Timeout timeout; PACKET packet; void (A::*callback)(); uint32_t nop_i; int32_t interval_current; inline void nop(){ if(nop_i>400) { nop_i = 0; SERIAL_PRINT_DBG("."); } ++nop_i; } void read() { callback = &A::go; } void backToNOP() { callback = NULL;//&A::nop; } virtual void checkIntervalUpdate() { } public: void loop() { if(callback != NULL) { (self->*callback)(); } self->checkIntervalUpdate(); } TimeEventHandler(){ nop_i = 0; } static A* getInstance() { return self == NULL ? self = new A() : self; } static void deleteInstance() { timeout.attach(&NOP,10); if(self!=NULL) { delete self; self = NULL; } } static void onRead() { self->read(); } static void NOP() { } }; template<typename A> A* TimeEventHandler<A>::self=NULL; template<typename A> Timeout TimeEventHandler<A>::timeout; }; #endif //_TIME_EVENT_HANDLER_HPP_