[發明專利]一種基于C語言的異步延時執行方法及執行裝置有效
申請號: | 201710363591.2 | 申請日: | 2017-05-22 |
公開(公告)號: | CN107239276B | 公開(公告)日: | 2021-01-12 |
發明(設計)人: | 崔順升;段俊彪;陳景超;陳欽宇;黃福榮 | 申請(專利權)人: | 廣州安圣信息科技有限公司 |
主分類號: | G06F8/30 | 分類號: | G06F8/30 |
代理公司: | 佛山幫專知識產權代理事務所(普通合伙) 44387 | 代理人: | 胡麗琴 |
地址: | 510000 廣東省廣*** | 國省代碼: | 廣東;44 |
權利要求書: | 查看更多 | 說明書: | 查看更多 |
摘要: | |||
搜索關鍵詞: | 一種 基于 語言 異步 延時 執行 方法 裝置 | ||
1.一種基于C語言的異步延時執行裝置,其特征在于,其包括結構體定義模塊、計數驅動模塊和調用模塊;調用模塊設有計數值模塊、注入事件模塊和事件標簽模塊,且調用模塊包括異步延時調用模塊和異步延時重調用模塊;
結構體定義模塊用于對事件結構體及需要發生的事件進行定義;
計數驅動模塊用于采用時間單位對調用模塊中發生的注入事件進行計數,且在計數過程中,對觸發的事件進行隊列清除,對未觸發的事件進行計數累加;
異步延時調用模塊用于對指定的發生事件、事件異步發生的延時計數值和事件指針指向獲取指定存儲位置;
異步延時重調用模塊用于對指定的發生事件、事件異步發生的延時計數值和事件指針指向獲取指定存儲位置,并對同一事件標簽代表的事件重新計數注入;
其中,在調用一次保證執行的情況下,采用異步延時調用模塊;其中異步延時調用模塊的工作流程為:在對指定事件調用后,該事件開始計數,中間重復調用同事件的異步延時調用模塊,該事件并不會重新計數,直到該事件達到指定計數值、觸發事件發生后,才可以調用異步延時調用模塊再次對事件進行調用;
在調用完畢后,需根據實際情況,對將要發生的事件的執行時間進行隨時修改的情況下,采用異步延時重調用模塊;其中異步延時重調用模塊的工作流程為:在對指定事件調用后,該事件開始計數,中間重復調用同事件的異步延時重調用模塊,該事件重新計數;如果一直在該事件計數未到達前重復調用異步延時重調用模塊,則該事件會一直重置計數,事件將永遠不會發生。
2.如權利要求1所述的基于C語言的異步延時執行裝置,其特征在于,事件結構體包括事件啟動標志、事件啟動計數值、事件計數值和事件指針。
3.如權利要求2所述的基于C語言的異步延時執行裝置,其特征在于,事件啟動標志用于標記該事件是否在啟動延時異步調用中。
4.如權利要求3所述的基于C語言的異步延時執行裝置,其特征在于,事件啟動計數值用于記錄事件注入時設置的延時值。
5.如權利要求4所述的基于C語言的異步延時執行裝置,其特征在于,事件計數值用于在計數驅動模塊在每次計數時,采用自減方式進行事件異步延時觸發的倒數值。
6.如權利要求5所述的基于C語言的異步延時執行裝置,其特征在于,事件指針用于存儲異步延時觸發發生的事件的方法指針。
7.一種如權利要求1-6中任一項所述的基于C語言的異步延時執行裝置的執行方法,其特征在于,其包括如下步驟:
(S01)通過結構體定義模塊定義多組需要發生的事件;
(S02)異步延時調用模塊、異步延時重調用模塊分別針對步驟(S01)中定義的事件進行編號,且設定每組事件異步發生的延時計數值和事件指針指向,并獲取指定存儲位置;
(S03)計數驅動模塊每一間隔周期執行一次,每次執行均遍歷步驟(S01)中定義的多個事件,如果事件啟動標志為啟動狀態,則計數驅動模塊將自減該事件的計數值,當該事件的計數值自減為0時,表示該事件已達到步驟(S02)中延時計數值的設定值,計數驅動模塊通過該事件的事件指針,觸發執行該事件;如果事件啟動標志為未啟動狀態,則計數驅動模塊將跳過此事件的驅動,執行步驟(S04);
(S04)異步延時重調用模塊對同一事件標簽代表的事件重新計數注入。
8.如權利要求7所述的基于C語言的異步延時執行裝置的執行方法,其特征在于,步驟(S03)中,間隔周期為1ms。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于廣州安圣信息科技有限公司,未經廣州安圣信息科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710363591.2/1.html,轉載請聲明來源鉆瓜專利網。