//****************************************************************************************** // File: Device.h // Authors: Dan G Ogorchock & Daniel J Ogorchock (Father and Son) // // Summary: st::Device is the highest level generic class for either a st::Sensor or // st::Executor subclass. // In general, this file should not need to be modified. // // Change History: // // Date Who What // ---- --- ---- // 2015-01-03 Dan & Daniel Original Creation // 2019-02-09 Dan Ogorchock Moved update() from Sensor to Device // // //****************************************************************************************** #ifndef ST_DEVICE_H #define ST_DEVICE_H #include //#include namespace st { class Device { private: const __FlashStringHelper *m_pName; public: //constructor Device(const __FlashStringHelper *name); //destructor virtual ~Device(); //initialization routine - This pure virtual function must be implemented by all derived classes virtual void init()=0; virtual void update() = 0; //function used by all devices to process data from SmartThings Shield - all derived classes must implement this pure virtual function virtual void beSmart(const String &str)=0; //called periodically by Everything class to ensure ST Cloud is kept consistent with the state of each Device subclass object virtual void refresh(); //gets const String getName() const; //debug flag to determine if debug print statements are executed (set value in your sketch) static bool debug; }; } #endif