/** * @file NexTimer.h * * The definition of class NexTimer. * * @author huang xianming (email:) * @date 2015/8/26 * * @copyright * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of * the License, or (at your option) any later version. */ #ifndef __NEXTIMER_H__ #define __NEXTIMER_H__ #include "NexTouch.h" #include "NexHardware.h" /** * @addtogroup Component * @{ */ /** * NexTimer component. * * Commonly, you want to do something after set timer cycle and enable it,and the cycle value * must be greater than 50 * */ class NexTimer: public NexTouch { public: /* methods */ /** * @copydoc NexObject::NexObject(uint8_t pid, uint8_t cid, const char *name); */ NexTimer(uint8_t pid, uint8_t cid, const char *name); /** * Attach an callback function of timer respond event. * * @param timer - callback called with ptr when a timer respond event occurs. * @param ptr - parameter passed into push[default:NULL]. * @return none. * * @note If calling this method multiply, the last call is valid. */ void attachTimer(NexTouchEventCb timer, void *ptr = NULL); /** * Detach an callback function. * * @return none. */ void detachTimer(void); /** * Get the value of timer cycle val. * * @param number - an output parameter to save the value of timer cycle. * * @retval true - success. * @retval false - failed. */ bool getCycle(uint32_t *number); /** * Set the value of timer cycle val. * * @param number - the value of timer cycle. * * @retval true - success. * @retval false - failed. * * @warning the cycle value must be greater than 50. */ bool setCycle(uint32_t number); /** * contorl timer enable. * * @retval true - success. * @retval false - failed. */ bool enable(void); /** * contorl timer disable. * * @retval true - success. * @retval false - failed. */ bool disable(void); /** * Get tim attribute of component * * @param number - buffer storing data retur * @return the length of the data */ uint32_t Get_cycle_tim(uint32_t *number); /** * Set tim attribute of component * * @param number - To set up the data * @return true if success, false for failure */ bool Set_cycle_tim(uint32_t number); }; /** * @} */ #endif /* #ifndef __NEXTIMER_H__ */