/* * TriggerBase.h * * Author: Aleksey Gerasimenko * gerasimenko.aleksey.n@gmail.com */ #include #include #ifndef SYSCTRL_TRIGGERBASE_H_ #define SYSCTRL_TRIGGERBASE_H_ namespace SYSCTRL { struct TriggerBaseBitField { uint16_t out:1; uint16_t out_shadow:1; uint16_t out_privious:1; uint16_t set:1; uint16_t reset:1; uint16_t positive:1; uint16_t negative:1; };//TriggerBaseBitField union TriggerBaseRegister { uint16_t all; TriggerBaseBitField bit; TriggerBaseRegister(): all(0) {} };//TriggerBaseRegister class TriggerBase { protected: TriggerBaseRegister m_trigger; public: TriggerBase(); public: virtual void setSET(bool set) = 0; virtual void setRESET(bool reset) = 0; virtual void execute() = 0; virtual void clear() = 0; virtual bool getOUT() = 0; virtual bool getPOSITIVE() = 0; virtual bool getNEGATIVE() = 0; virtual bool isPOSITIVE() = 0; virtual bool isNEGATIVE() = 0; }; } /* namespace SYSCTRL */ #endif /* SYSCTRL_TRIGGERBASE_H_ */