XWOS API  4.0
XWOS C/C++ API参考手册
载入中...
搜索中...
未找到
SSwt.hxx
浏览该文件的文档.
1
13#ifndef __xwos_cxx_SSwt_hxx__
14#define __xwos_cxx_SSwt_hxx__
15
16#include <xwos/osal/swt.hxx>
17#include <xwos/cxx/Cpu.hxx>
18
19namespace xwos {
20
37template<xwid_t TCpu = 0UL>
38class SSwt
39{
40 private:
41 struct xwos_swt mSwt;
43 public:
49 {
50 xwos_swt_init(&mSwt, flag);
51 }
55 virtual ~SSwt() {}
65 xwer_t start(xwtm_t origin, xwtm_t period)
66 {
67 xwer_t rc;
68
69 if (TCpu == Cpu::getLocalCpuId()) {
70 rc = xwos_swt_start(&mSwt, origin, period,
72 } else {
73 rc = -EHOSTUNREACH;
74 }
75 return rc;
76 }
82 xwer_t stop() { return xwos_swt_stop(&mSwt); }
86 struct xwos_swt * getXwosObj() { return &mSwt; }
87
88 /* 生命周期管理 */
89 xwer_t grab() { return xwos_swt_grab(&mSwt); }
90 xwer_t put() { return xwos_swt_put(&mSwt); }
92 protected:
93 virtual void swtAlarmFunction() {}
95 private:
96 static void sSwtAlarmFunction(struct xwos_swt * swt, SSwt * obj) { obj->swtAlarmFunction(); }
97};
98
103} // namespace xwos
104
105#endif /* xwos/cxx/SSwt.hxx */
xwos::Cpu
static xwid_t getLocalCpuId()
获取当前CPU的ID
Definition Cpu.hxx:64
静态软件定时器
Definition SSwt.hxx:39
struct xwos_swt mSwt
Definition SSwt.hxx:41
virtual void swtAlarmFunction()
Definition SSwt.hxx:93
struct xwos_swt * getXwosObj()
获取XWOS对象指针
Definition SSwt.hxx:86
xwer_t grab()
Definition SSwt.hxx:89
SSwt(xwsq_t flag=XWOS_SWT_FLAG_NULL)
静态软件定时器构造函数
Definition SSwt.hxx:48
static void sSwtAlarmFunction(struct xwos_swt *swt, SSwt *obj)
Definition SSwt.hxx:96
xwer_t put()
Definition SSwt.hxx:90
xwer_t stop()
停止软件定时器
Definition SSwt.hxx:82
virtual ~SSwt()
静态软件定时器析构函数
Definition SSwt.hxx:55
xwer_t start(xwtm_t origin, xwtm_t period)
启动软件定时器
Definition SSwt.hxx:65
#define EHOSTUNREACH
Host is unreachable
Definition errno.h:131
xws64_t xwtm_t
XWOS系统时间 (有符号)
Definition type.h:742
signed long xwer_t
Definition type.h:554
unsigned long xwsq_t
Definition type.h:445
static xwer_t xwos_swt_put(struct xwos_swt *swt)
XWOS API:减少软件定时器对象的引用计数
Definition swt.h:169
#define XWOS_SWT_FLAG_NULL
XWOS API:软件定时器标志 —— 无标志(默认标志)
Definition swt.h:94
static xwer_t xwos_swt_start(struct xwos_swt *swt, xwtm_t origin, xwtm_t period, xwos_swt_f callback, void *arg)
XWOS API:启动软件定时器
Definition swt.h:280
static xwer_t xwos_swt_stop(struct xwos_swt *swt)
XWOS API:停止软件定时器
Definition swt.h:297
static xwer_t xwos_swt_init(struct xwos_swt *swt, xwsq_t flag)
XWOS API:静态方式初始化软件定时器
Definition swt.h:112
void(* xwos_swt_f)(struct xwos_swt *, void *)
XWOS API:软件定时器回调函数指针类型
Definition swt.h:76
static xwer_t xwos_swt_grab(struct xwos_swt *swt)
XWOS API:增加软件定时器对象的引用计数
Definition swt.h:150
Definition Bmp.hxx:21
XWOS API:软件定时器
Definition swt.h:69
C++操作系统抽象层:软件定时器