VxWorks下的異步通用定時(shí)器設計
3.2 接口設計
提供類(lèi)似于Windows的接口函數,定時(shí)器的唯一索引是id號,操作定時(shí)器均通過(guò)id完成。分為2種類(lèi)型定時(shí)器:周期性定時(shí)器和一次性定時(shí)器。周期性定時(shí)器可以周期性地觸發(fā)。一次性定時(shí)器則只觸發(fā)一次,類(lèi)似于倒計時(shí)定時(shí)器,觸發(fā)后看門(mén)狗自動(dòng)刪除,相應的任務(wù)自動(dòng)退出。在用戶(hù)對定時(shí)器模塊進(jìn)行初始化后,用戶(hù)可以在程序的任何地方調用定時(shí)器提供的接口。本文引用地址:http://dyxdggzs.com/article/163412.htm
3.3 具體實(shí)現
3.3.1 對看門(mén)狗的封裝
基于程序設計上的考慮,將定時(shí)器的管理控制和看門(mén)狗的具體操作分開(kāi),對看門(mén)狗進(jìn)行封裝,CClkGenerator類(lèi)封裝了看門(mén)狗的所有操作,包括看門(mén)狗的創(chuàng )建、刪除、取消和啟動(dòng),保存定時(shí)器id、類(lèi)型、定時(shí)周期等。值得注意的是:看門(mén)狗的回調函數并不是用戶(hù)的回調函數,而是看門(mén)狗管理控制中提供的統一回調函數,回調函數中的參數為定時(shí)器的索引號。封裝代碼如下:
從類(lèi)定義可以看出,用戶(hù)并不能直接使用CClkGen-erator。也就是說(shuō),該類(lèi)對用戶(hù)而言是不可見(jiàn)的,屏蔽了對看門(mén)狗的直接操作,只有定時(shí)器管理控制模塊才可以對其進(jìn)行操作。
3.3.2 定時(shí)器管理與控制
定時(shí)器管理與控制模塊負責模塊初始化、多個(gè)定時(shí)器相關(guān)參數的存儲管理、定時(shí)器任務(wù)的安全退出,以及用戶(hù)接口的實(shí)現。
定時(shí)器的主要數據結構:定時(shí)器控制結構和存儲結構。
評論