麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

基于低功耗的訂閱式設備訪問方法

文檔序號:6621470閱讀:233來源:國知局
基于低功耗的訂閱式設備訪問方法
【專利摘要】本發明涉及一種基于低功耗的訂閱式設備訪問方法。包括訂閱的處理和時間調整的處理,1)訂閱的處理包括設備注冊、用戶請求處理和周期超時處理;2)時間調整的處理包括對增加時間周期、刪除時間周期、修改時間周期和定時器超時的處理。本發明通過訂閱機制根據用戶對目標設備的訂閱請求,為相應的用戶創建用戶請求節點,加入相應的設備中的用戶請求管理鏈表中,以及為相應的用戶請求節點創建周期節點,加入相應的時間節點中的周期節點管理鏈表中;在時間調整中,將多個周期相同的定時器進行合并,減少了對周期性定時器資源的使用,減少了對設備不同時間點的訪問,讓CPU深度休眠,在CPU被喚醒時完成所有用戶對設備的訪問需求,從而降低功耗。
【專利說明】基于低功耗的訂閱式設備訪問方法

【技術領域】
[0001]本發明涉及一種基于低功耗的訂閱式設備訪問方法。

【背景技術】
[0002]在嵌入式開發中有很多應用需要對外圍設備進行管理及周期性訪問的需求,通常的方式是各自的模塊或應用程序都獨立管理,訪問自己需要的設備,一般采用輪詢方式。對于周期性獲取,傳統的實現方案就是利用操作系統提供的定時器,采取循環定時查詢方式。在傳統方案下將不利于嵌入式系統低功耗的實現,并且也會對定時器資源造成巨大的壓力;使用這種方式不僅浪費系統資源,而且很難使嵌入式設備整體進入良好的休眠,從而導致功耗的浪費,增加了對電源需求的成本。例如電源應用模塊需要周期性跟蹤設備當前的電池電量信息,全球定位系統(GPS)應用需要周期性獲取當前的位置信息,但GPS模塊自身功耗很大,長時間開啟將縮短嵌入式設備的單次使用時間。
[0003]隨著技術地不斷發展,為了更好地協調軟、硬件資源,訂閱技術應運而生。簡單來講,訂閱技術與現實生活中訂閱牛奶,訂閱手機天氣預報,訂閱報紙等功能相似,就是用戶與提供商預定好后,提供商按用戶要求提供相關的資源或信息等。
[0004]目前,實現訂閱方式的系統一般采用代理-服務器的結構或者代理-服務器-客戶端的結構,在服務器-客戶端之間通常采用客戶端/服務器(C/S)或瀏覽器/服務器(B/S)模式,代理-服務器之間的通信通常基于SNMP協議或TCP/UDP協議進行。
[0005]現有技術中,主要應用于服務器網絡模式,在協議層面上定義的訂閱機制,沒有涉及嵌入式設備內部具體的實現方法,沒有針對資源和功耗進行管理。所以以上的實現方式根本無法應用在嵌入式設備上,因為嵌入式設備資源有限,功耗有限。因此需要本領域技術人員迫切解決的一個技術問題就是:如何能夠創新地提出一種基于低功耗的訂閱式設備訪問方法。


【發明內容】

[0006]針對現有技術中存在的問題,本發明的目的在于提供一種基于低功耗的訂閱式設備訪問方法的技術方案,以滿足低功耗要求的設備管理、訪問的需求。
[0007]所述的基于低功耗的訂閱式設備訪問方法,其特征在于包括訂閱的處理和時間調整的處理;1)訂閱的處理包括設備注冊、用戶請求處理和周期超時處理,2)時間調整的處理包括增加時間周期處理、刪除時間周期處理、修改時間周期處理和定時器超時處理。
[0008]所述的基于低功耗的訂閱式設備訪問方法,其特征在于所述的設備注冊是對支持訂閱功能的設備注冊信息的處理,注冊時需要提供注冊參數,注冊參數包括設備名稱、建立資源的回調函數、釋放資源的回調函數和周期超時的回調函數,對注冊的設備按設備名稱進行管理及提供服務,當設備名稱相同時不能進行設備注冊;注冊時根據設備名稱遍歷設備管理鏈表,如果設備名存在,不能注冊設備,如果設備名不存在,創建設備節點,保存參數到設備節點中,初始化設備節點中的用戶請求管理鏈表,增加設備節點到設備管理鏈表中;建立資源的回調函數和釋放資源的回調函數根據設備的需要可以不進行實現,當不需要實現時,參數可為空,周期超時的回調函數一定要實現且不能為空;
所述的用戶請求處理是對接收到的用戶請求類型判定是訂閱增加請求類型、訂閱刪除請求類型或訂閱修改請求類型,然后進入不同流程進行處理,用戶請求內容包含用戶標識、請求的類型、訪問設備的周期、周期超時時接收消息的數據標識、應答時接收消息的控制標識、訪問設備的名稱和是否立即執行標識;立即執行標識指用戶請求處理完成時立即調用周期超時的回調函數,無需等到超時再調用;
所述的周期超時處理是訂閱周期超時,會收到超時通知,通知中包含超時周期,根據超時周期遍歷時間管理鏈表,查找到對應的時間節點,遍歷該時間節點中的周期節點管理鏈表管理的周期節點,通過周期節點找到關聯的用戶請求節點,即周期節點有指向用戶請求節點的指針,通過用戶請求節點找到對應的設備節點,即用戶請求節點有指向設備節點的指針,調用設備注冊的周期超時的回調函數,該函數通過數據標識通知用戶訂閱信息,該遍歷直到周期節點管理鏈表最后一個周期節點通知用戶訂閱信息后結束。
[0009]所述的基于低功耗的訂閱式設備訪問方法,其特征在于所述的增加時間周期處理,是根據用戶請求節點中的時間周期,遍歷時間管理鏈表,如果沒有找到相同時間周期的時間節點,創建該周期的時間節點,保存周期值,初始化時間節點中周期節點管理鏈表,啟動該周期定時器,增加時間節點到時間管理鏈表中,創建周期節點,建立與用戶請求節點的關聯關系,增加該周期節點到時間節點中的周期節點管理鏈表中;如果找到對應的時間節點時,創建周期節點,建立與用戶請求節點的關系,增加該周期節點到時間節點中的周期節點管理鏈表中;
所述的刪除時間周期處理,根據用戶請求節點中的關聯關系,找到對應周期節點,從該周期節點找到對應的時間節點中的周期節點管理鏈表,將周期節點從該時間節點中的周期節點管理鏈表中刪除,斷開與用戶請求節點的關聯關系,回收周期節點,如果該周期的時間節點中的周期節點管理鏈表中沒有其他周期節點存在,則停止該周期定時器,時間節點也從時間管理鏈表中刪除,回收時間節點;
所述的修改時間周期處理,根據用戶請求節點中的關聯關系,找到對應周期節點,從該周期節點找到對應的時間節點中的周期節點管理鏈表,將周期節點從該時間節點中的周期節點管理鏈表中刪除,斷開與用戶請求節點的關聯關系,回收周期節點,如果該周期的時間節點中的周期節點管理鏈表中沒有其他周期節點存在,則停止該周期定時器,時間節點也從時間管理鏈表中刪除,回收時間節點;使用新的時間周期修改用戶請求節點中的時間周期,根據用戶請求節點中的新時間周期,遍歷時間管理鏈表,如果沒有找到相同時間周期的時間節點,創建該周期的時間節點,保存周期值,初始化時間節點中的周期節點管理鏈表,啟動該周期定時器,將時間節點增加到時間管理鏈表中,創建周期節點,建立與用戶請求節點的關系,增加該周期節點到時間節點中的周期節點管理鏈表中;如果找到對應的時間節點時,創建周期節點,建立與用戶請求節點的關系,增加該周期節點到時間節點中的周期節點管理鏈表中;
所述的定時器超時處理,通知訂閱管理周期超時,通知中包含超時周期時間,定時器根據周期重新計時,等待下次超時到來;每一個不同的時間周期,都對應有不同的定時器。
[0010]所述的基于低功耗的訂閱式設備訪問方法,其特征在于所述的訂閱增加請求類型,根據用戶請求中設備的名稱查詢設備是否存在,如果請求的設備不存在,通過控制標識通知用戶訂閱增加失敗,否則根據用戶標識查找用戶是否已經請求過該設備,如果用戶訂閱過該設備,通過控制標識通知用戶訂閱增加失敗,否則沒有請求過該設備,創建用戶請求節點,保存用戶請求相關信息到用戶請求節點,如果用戶請求的設備注冊了建立資源的回調函數調用該函數,否則跳過該步驟,將創建的用戶請求節點與查找到的對應的訪問設備建立關聯即將創建的用戶請求節點增加到對應的設備節點中的用戶請求管理鏈表中,再將用戶請求節點與周期節點建立關聯關系;如果是立即執行標識調用周期超時的回調函數,否則等到周期超時時調用周期超時的回調函數,通過控制標識通知用戶訂閱增加成功。
[0011]所述的基于低功耗的訂閱式設備訪問方法,其特征在于所述的訂閱刪除請求類型,根據用戶請求中設備的名稱查詢設備是否存在,如果請求的設備未找到,通過控制標識通知用戶訂閱刪除失敗,否則根據用戶標識查找用戶是否已經請求過該設備,如果用戶未訂閱過該設備,通過控制標識通知用戶訂閱刪除失敗,否則根據找到的用戶請求節點與周期節點斷開關聯關系,再將用戶請求節點與對應的訪問設備斷開關聯即將用戶請求節點從對應的設備節點中的用戶請求管理鏈表中刪除;如果設備注冊了釋放資源的回調函數調用該函數,否則跳過該步驟,回收用戶請求節點,通過控制標識通知用戶訂閱刪除成功。
[0012]所述的基于低功耗的訂閱式設備訪問方法,其特征在于所述的訂閱修改請求類型,根據用戶請求中設備的名稱查詢設備是否存在,如果請求的設備未找到,通過控制標識通知用戶訂閱修改失敗,否則根據用戶標識查找用戶是否已經請求過該設備,如果用戶未訂閱過該設備,通過控制標識通知用戶訂閱修改失敗,否則如果設備注冊了釋放資源的回調函數調用該函數,否則跳過該步驟;根據找到的用戶請求節點及新的周期修改與周期節點關聯關系,如果設備注冊了建立資源的回調函數調用該函數,否則跳過該步驟,通過控制標識通知用戶訂閱修改成功。
[0013]本發明通過實現訂閱機制,即根據用戶對目標設備的訂閱請求,為相應的用戶創建用戶請求節點,加入相應的設備中的用戶請求管理鏈表中,以及為相應的用戶請求節點創建周期節點,加入相應的時間節點中的周期節點管理鏈表中;周期超時,根據超時周期查找到對應的時間節點,遍歷該時間節點中的周期節點管理鏈表,根據鏈表中的周期節點,找到關聯的用戶請求節點,即周期節點中有指向用戶請求節點的指針,根據用戶請求節點,找到對應的設備節點,即用戶請求節點中有指向設備節點的指針,調用設備注冊時注冊的相關回調函數,通過數據標識通知用戶訂閱信息給用戶;在時間調整中,將多個周期相同的定時器進行合并,減少了對周期性定時器資源的使用,減少了對設備不同時間點的訪問,即不需要設備隨時待命等待用戶發起訪問,可以讓CPU深度的進行休眠,可以在CPU被喚醒時完成所有用戶對設備的訪問需求,從而降低了功耗。

【專利附圖】

【附圖說明】
[0014]圖1是本發明的總體結構框圖;
圖2是本發明的關聯關系的數據結構示意圖;
圖3是本發明的支持訂閱設備的注冊流程圖;
圖4是本發明的用戶請求流程圖;
圖5是本發明的周期超時處理流程圖; 圖6是本發明的未優化周期的設備訪問示意圖;
圖7是本發明的優化后的周期的設備訪問示意圖;
圖8是本發明的用戶請求節點與周期節點建立關聯流程圖;
圖9是本發明的用戶請求節點與周期節點斷開關聯流程圖;
圖10是本發明的用戶請求節點與周期節點修改關聯流程圖。

【具體實施方式】
[0015]如圖1,低功耗訂閱根據功能在內部分為時間調整和訂閱,時間調整用于“對齊”各個用戶請求的到期時刻,所謂“對齊”是指將訂閱周期相同的請求進行統一管理,使得訂閱時盡量少使用定時器資源。定時器資源包括但不限于操作系統提供的軟件定時器、硬件定時器或具有定時功能的資源。訂閱完成設備注冊,用戶請求處理和周期超時處理,設備注冊完成設備信息的注冊功能,用戶請求處理完成用戶請求信息的保存和對用戶訂閱的應答及對時間調整的調用,周期超時處理完成對用戶訂閱信息的反饋。
[0016]設備注冊提供給支持訂閱功能的設備注冊函數,該函數需要提供足夠的靈活度,支持不同的訂閱用戶處理各自創建的私有數據,訂閱周期到期時的回調函數處理,并且能夠處理用戶取消訂閱時釋放(回收)訂閱用戶的私有數據,同名設備不支持重復注冊,注冊函數參數包括設備名稱,建立資源的回調函數,釋放資源的回調函數,周期超時的回調函數。
[0017]用戶根據設備注冊的名稱進行請求,而且每個用戶對同一設備只允許請求一次訂閱。要求用戶訂閱請求消息包含唯一的用戶標識、請求的類型、訂閱時間周期、用戶收取訂閱消息的數據標識、用戶收取訂閱應答消息的控制標識、訪問設備的名稱及是否立即執行標識。當發送用戶的訂閱信息時將根據具體與用戶預定的收取數據標識發回給用戶,若中間產生無法訂閱或者訂閱模塊異常等也將會根據用戶收取的的控制標識通知用戶。
[0018]訂閱沒有時間調整的參與也可以完成對設備的訪問功能,但此種方式與輪訓方式相似對于用戶請求相同周期的訪問,為每個請求提供一個不同的定時器資源,無法確定訪問設備的時間點,設備需要隨時等候,無法完成低功耗功能。
[0019]時間調整是對定時器資源的統一整合,合并了定時周期相同的資源,減少了定時器的個數,同時對于相同周期的訪問時間點可以相對固定,可以使設備不需要隨時等待,可以使設備進入休眠,在訪問周期超時時完成所以用戶的請求處理,從而減低功耗。
[0020]在低功耗訂閱中訂閱與時間調整兩者相輔相成,融為一體,缺一不可,如果沒有訂閱,時間調整就沒有整合資源的意義,如果沒有時間調整,訂閱就失去了降低功耗的能力。
[0021]如圖2,設備節點之間,用戶請求節點之間,時間節點之間,周期節點之間即相同類型節點之間的鏈接使用了雙向鏈表,用戶請求節點和周期節點之間即不同類型數據節點之間的箭頭表示相應結構體內有指針指向對方。
[0022]設備管理鏈表對設備節點進行管理,每個設備節點保存有相關的注冊設備的信息,設備節點信息包括設備名稱,建立資源的回調函數,釋放資源的回調函數,周期超時的回調函數,用戶請求管理鏈表。每個設備節點包含有用戶請求管理鏈表,用戶請求管理鏈表管理用戶請求節點,用戶請求節點保存用戶對該設備的請求信息及管理信息,用戶請求節點信息包括用戶標識,訪問設備的周期,周期超時時接收消息的數據標識,應答時接收消息的控制標識,用戶私有數據,指向設備節點的指針,指向周期節點的指針。用戶請求節點內包含有指向周期節點的指針,當與周期節點建立相互關聯時指向周期節點,用戶請求節點內包含有指向設備節點的指針,該指針主要用于根據用戶請求節點可以快速找到設備節點及對用戶請求節點的快速刪除。
[0023]時間管理鏈表對時間節點進行管理,每個時間節點保存有相關的訂閱時間信息,時間節點信息包括時間周期,關聯的定時器,周期節點管理鏈表。每個時間節點包含有周期管理鏈表,周期管理鏈表管理,統一用戶請求的時間周期。周期節點保存有與用戶請求節點相互關聯的管理信息,周期節點信息包括指向時間節點的指針,指向用戶請求節點的指針。周期節點內包含有指向用戶請求節點的指針,當周期節點與用戶請求節點建立相互關聯時指向用戶請求節點,周期節點內包含有指向時間節點的指針,該指針主要用于根據周期節點可以快速找到時間節點及對周期節點的快速刪除。
[0024]訂閱的處理如下:
如圖3,設備注冊是對支持訂閱功能的設備注冊信息的處理,注冊時需要提供注冊參數,注冊參數包括設備名稱、建立資源的回調函數、釋放資源的回調函數和周期超時的回調函數,對注冊的設備按設備名稱進行管理及提供服務,當設備名稱相同時不能進行設備注冊;注冊時根據設備名稱遍歷設備管理鏈表,如果設備名存在,不能注冊設備,如果設備名不存在,創建設備節點,保存參數到設備節點中,初始化設備節點中的用戶請求管理鏈表,增加設備節點到設備管理鏈表中;建立資源的回調函數和釋放資源的回調函數根據設備的需要可以不進行實現,當不需要實現時,參數可為空(NULL),周期超時的回調函數一定要實現且不能為空。
[0025]如圖4,用戶請求處理是對接收到的用戶請求類型判定是訂閱增加請求類型、訂閱刪除請求類型或訂閱修改請求類型,然后進入不同流程進行處理,用戶請求內容包含用戶標識(UID)、請求的類型、訪問設備的周期、周期超時時接收消息的數據標識(DID)、應答時接收消息的控制標識(CID)、訪問設備的名稱和是否立即執行標識;立即執行標識指用戶請求處理完成時立即調用周期超時的回調函數,無需等到超時再調用;
如果是訂閱增加請求類型,根據用戶請求中設備的名稱查詢設備是否存在,如果請求的設備不存在,通過控制標識通知用戶訂閱增加失敗,否則根據用戶標識查找用戶是否已經請求過該設備,如果用戶訂閱過該設備,通過控制標識通知用戶訂閱增加失敗,否則沒有請求過該設備,創建用戶請求節點,保存用戶請求相關信息到用戶請求節點,如果用戶請求的設備注冊了建立資源的回調函數調用該函數,否則跳過該步驟,將創建的用戶請求節點與查找到的對應的訪問設備建立關聯即將創建的用戶請求節點增加到對應的設備節點中的用戶請求管理鏈表中,再將用戶請求節點與周期節點建立關聯關系;如果是立即執行標識調用周期超時的回調函數,否則等到周期超時時調用周期超時的回調函數,通過控制標識通知用戶訂閱增加成功;
如果是訂閱刪除請求類型,根據用戶請求中設備的名稱查詢設備是否存在,如果請求的設備未找到,通過控制標識通知用戶訂閱刪除失敗,否則根據用戶標識查找用戶是否已經請求過該設備,如果用戶未訂閱過該設備,通過控制標識通知用戶訂閱刪除失敗,否則根據找到的用戶請求節點與周期節點斷開關聯關系,再將用戶請求節點與對應的訪問設備斷開關聯即將用戶請求節點從對應的設備節點中的用戶請求管理鏈表中刪除;如果設備注冊了釋放資源的回調函數調用該函數,否則跳過該步驟,回收用戶請求節點,通過控制標識通知用戶訂閱刪除成功;
如果是訂閱修改請求類型,根據用戶請求中設備的名稱查詢設備是否存在,如果請求的設備未找到,通過控制標識通知用戶訂閱修改失敗,否則根據用戶標識查找用戶是否已經請求過該設備,如果用戶未訂閱過該設備,通過控制標識通知用戶訂閱修改失敗,否則如果設備注冊了釋放資源的回調函數調用該函數,否則跳過該步驟;根據找到的用戶請求節點及新的周期修改與周期節點關聯關系,如果設備注冊了建立資源的回調函數調用該函數,否則跳過該步驟,通過控制標識通知用戶訂閱修改成功。
[0026]如圖5,周期超時處理是訂閱周期超時,會收到超時通知,通知中包含超時周期,根據超時周期遍歷時間管理鏈表,查找到對應的時間節點,遍歷該時間節點中的周期節點管理鏈表管理的周期節點,通過周期節點找到關聯的用戶請求節點,即周期節點有指向用戶請求節點的指針,通過用戶請求節點找到對應的設備節點,即用戶請求節點有指向設備節點的指針,調用設備注冊的周期超時的回調函數,該函數通過數據標識通知用戶訂閱信息,該遍歷直到周期節點管理鏈表最后一個周期節點通知用戶訂閱信息后結束。
[0027]其中建立與時間調整的關聯將在時間調整設計實現中具體描述。訂閱采用單任務的設計方式也為用戶的請求帶來了便利,串行化的處理使得共享資源的處理無需復雜的同步機制。
[0028]時間調整設計實現原理:
時間調整主要作用是對齊離散時間點的用戶周期請求,主要設計思想圍繞如何減少定時器的使用個數,以及如何使得離散時間點的到期時間能夠統一,統一到期周期就意味著可以長時間沒有分散的超時請求就可以讓外部長時間不產生中斷,CPU也可以安安心心進入更深層次的低功耗狀態;但是一般系統需要維護著秒級別的系統時間,為了配合系統時間的運作,我們約定用戶訂閱周期的最小粒度是秒,而且可以考慮將無序的用戶訂閱請求到期時刻對齊到秒更新時刻,這樣子就可以減少中斷同時也可以進行訂閱處理。
[0029]時間調整的設計將主要考慮如何減少定時器的使用個數。對于極端情形,用戶對于外設信息獲取周期將無法做任何對齊,這樣子將使得時間管理對于每個用戶都需要單獨請求時間周期。但是更為一般的情形是,用戶對于設備的請求周期分布在固定的幾個周期上。這樣子在不考慮周期間的最小公倍數也可以節省定時器的前提下,也可以省下可觀的定時器,時間調整將相同的請求周期只使用一個定時器進行處理。
[0030]在不使用時間調整的情況:
如圖6,用戶1、用戶2、用戶3都對設備A每隔Cycl周期進行訪問。由于訪問的時刻不一致,用戶I在tl時刻開始訪問,用戶2在t2時刻開始訪問,用戶3在t3時刻開始訪問,tl〈t2〈t3導致每個用戶需要分別有自己的定時器來維護訪問時間,這樣就產生了 3個定時器。從而產生的訪問周期時刻用戶I為tl+n* Cycl,用戶2為t2+n* Cycl,用戶3為t3+n* Cycl,η為第幾次訪問設備,此種訪問方式需要設備A隨時待命等待用戶的訪問,根本無法進行休眠,導致設備A —直工作使得嵌入式設備功耗增加。
[0031]在使用時間調整的情況:
如圖7,用戶1、用戶2、用戶3都對設備A每隔Cycl周期進行訪問。雖然訪問的時刻不一至文,用戶I在tl時刻開始訪問,用戶2在t2時刻開始訪問,用戶3在t3時刻開始訪問,tl〈t2〈( tl+Cycl)<t3< (tl+2*Cycl)但訪問的周期相同,開始時為用戶I建立Cycl周期定時器,用戶2在t2時刻開始訪問時,發現已經建立過Cycl周期定時器就將t2時刻對齊到tl+Cycl時刻訪問設備A,這樣用戶1、用戶2可以使用同一個定時器,在tl+Cycl時刻分別訪問設備A。當用戶3在t3時刻開始訪問時,發現已經建立過Cycl周期定時器就將t3時刻對齊到tl+2*Cycl時刻訪問設備A,這樣用戶1、用戶2、用戶3可以使用同一個定時器,在tl+2*Cycl時刻分別訪問設備A。訪問設備A的周期時刻tl+n*Cycl, η為第幾次訪問設備,此種訪問方式不需要設備A隨時待命,只需要等到規定的時刻到來訪問該設備的用戶都可以得到響應,設備可以進入深度休眠使得嵌入式設備功耗大幅降低。
[0032]時間調整的處理如下:
如果是增加時間周期,根據用戶請求節點中的時間周期,遍歷時間管理鏈表,如果沒有找到相同時間周期的時間節點,創建該周期的時間節點,保存周期值,初始化時間節點中周期節點管理鏈表,啟動該周期定時器,增加時間節點到時間管理鏈表中,創建周期節點,建立與用戶請求節點的關聯關系,即周期節點中的用戶請求節點指針指向用戶請求節點,用戶請求節點中的周期節點指針指向周期節點,周期節點中時間節點指針指向時間節點,增加該周期節點到時間節點中的周期節點管理鏈表中;如果找到對應的時間節點時,創建周期節點,建立與用戶請求節點的關系,即周期節點中的用戶請求節點指針指向用戶請求節點,用戶請求節點中的周期節點指針指向周期節點,周期節點中時間節點指針指向時間節點,增加該周期節點到時間節點中的周期節點管理鏈表中,如圖8。
[0033]如果是刪除時間周期,根據用戶請求節點中的關聯關系,即用戶請求節點中的周期節點指針指向周期節點,找到對應周期節點,從該周期節點找到對應的時間節點中的周期節點管理鏈表,即周期節點中的時間節點指針指向時間節點,將周期節點從該時間節點中的周期節點管理鏈表中刪除,斷開與用戶請求節點的關聯關系,回收周期節點,如果該周期的時間節點中的周期節點管理鏈表中沒有其他周期節點存在,則停止該周期定時器,時間節點也從時間管理鏈表中刪除,回收時間節點,如圖9。
[0034]如果是修改時間周期,根據用戶請求節點中的關聯關系,即用戶請求節點中的周期節點指針指向周期節點,找到對應周期節點,從該周期節點找到對應的時間節點中的周期節點管理鏈表,即周期節點中的時間節點指針指向時間節點,將周期節點從該時間節點中的周期節點管理鏈表中刪除,斷開與用戶請求節點的關聯關系,回收周期節點,如果該周期的時間節點中的周期節點管理鏈表中沒有其他周期節點存在,則停止該周期定時器,時間節點也從時間管理鏈表中刪除,回收時間節點;使用新的時間周期修改用戶請求節點中的時間周期,根據用戶請求節點中的新時間周期,遍歷時間管理鏈表,如果沒有找到相同時間周期的時間節點,創建該周期的時間節點,保存周期值,初始化時間節點中的周期節點管理鏈表,啟動該周期定時器,將時間節點增加到時間管理鏈表中,創建周期節點,建立與用戶請求節點的關系,即周期節點中的用戶請求節點指針指向用戶請求節點,用戶請求節點中的周期節點指針指向周期節點,周期節點中時間節點指針指向時間節點,增加該周期節點到時間節點中的周期節點管理鏈表中;如果找到對應的時間節點時,創建周期節點,建立與用戶請求節點的關系,即周期節點中的用戶請求節點指針指向用戶請求節點,用戶請求節點中的周期節點指針指向周期節點,周期節點中時間節點指針指向時間節點,增加該周期節點到時間節點中的周期節點管理鏈表中,如圖10。
[0035]如果是定時器超時,通知訂閱管理周期超時,通知中包含超時周期時間,定時器根據周期重新計時,等待下次超時到來;每一個不同的時間周期,都對應有不同的定時器。
【權利要求】
1.基于低功耗的訂閱式設備訪問方法,其特征在于包括訂閱的處理和時間調整的處理;1)訂閱的處理包括設備注冊、用戶請求處理和周期超時處理,2)時間調整的處理包括增加時間周期處理、刪除時間周期處理、修改時間周期處理和定時器超時處理。
2.根據權利要求1所述的基于低功耗的訂閱式設備訪問方法,其特征在于所述的設備注冊是對支持訂閱功能的設備注冊信息的處理,注冊時需要提供注冊參數,注冊參數包括設備名稱、建立資源的回調函數、釋放資源的回調函數和周期超時的回調函數,對注冊的設備按設備名稱進行管理及提供服務,當設備名稱相同時不能進行設備注冊;注冊時根據設備名稱遍歷設備管理鏈表,如果設備名存在,不能注冊設備,如果設備名不存在,創建設備節點,保存參數到設備節點中,初始化設備節點中的用戶請求管理鏈表,增加設備節點到設備管理鏈表中;建立資源的回調函數和釋放資源的回調函數根據設備的需要可以不進行實現,當不需要實現時,參數可為空,周期超時的回調函數一定要實現且不能為空; 所述的用戶請求處理是對接收到的用戶請求類型判定是訂閱增加請求類型、訂閱刪除請求類型或訂閱修改請求類型,然后進入不同流程進行處理,用戶請求內容包含用戶標識、請求的類型、訪問設備的周期、周期超時時接收消息的數據標識、應答時接收消息的控制標識、訪問設備的名稱和是否立即執行標識;立即執行標識指用戶請求處理完成時立即調用周期超時的回調函數,無需等到超時再調用; 所述的周期超時處理是訂閱周期超時,會收到超時通知,通知中包含超時周期,根據超時周期遍歷時間管理鏈表,查找到對應的時間節點,遍歷該時間節點中的周期節點管理鏈表管理的周期節點,通過周期節點找到關聯的用戶請求節點,即周期節點有指向用戶請求節點的指針,通過用戶請求節點找到對應的設備節點,即用戶請求節點有指向設備節點的指針,調用設備注冊的周期超時的回調函數,該函數通過數據標識通知用戶訂閱信息,該遍歷直到周期節點管理鏈表最后一個周期節點通知用戶訂閱信息后結束。
3.根據權利要求1或2所述的基于低功耗的訂閱式設備訪問方法,其特征在于所述的增加時間周期處理,是根據用戶請求節點中的時間周期,遍歷時間管理鏈表,如果沒有找到相同時間周期的時間節點,創建該周期的時間節點,保存周期值,初始化時間節點中周期節點管理鏈表,啟動該周期定時器,增加時間節點到時間管理鏈表中,創建周期節點,建立與用戶請求節點的關聯關系,增加該周期節點到時間節點中的周期節點管理鏈表中;如果找到對應的時間節點時,創建周期節點,建立與用戶請求節點的關系,增加該周期節點到時間節點中的周期節點管理鏈表中; 所述的刪除時間周期處理,根據用戶請求節點中的關聯關系,找到對應周期節點,從該周期節點找到對應的時間節點中的周期節點管理鏈表,將周期節點從該時間節點中的周期節點管理鏈表中刪除,斷開與用戶請求節點的關聯關系,回收周期節點,如果該周期的時間節點中的周期節點管理鏈表中沒有其他周期節點存在,則停止該周期定時器,時間節點也從時間管理鏈表中刪除,回收時間節點; 所述的修改時間周期處理,根據用戶請求節點中的關聯關系,找到對應周期節點,從該周期節點找到對應的時間節點中的周期節點管理鏈表,將周期節點從該時間節點中的周期節點管理鏈表中刪除,斷開與用戶請求節點的關聯關系,回收周期節點,如果該周期的時間節點中的周期節點管理鏈表中沒有其他周期節點存在,則停止該周期定時器,時間節點也從時間管理鏈表中刪除,回收時間節點;使用新的時間周期修改用戶請求節點中的時間周期,根據用戶請求節點中的新時間周期,遍歷時間管理鏈表,如果沒有找到相同時間周期的時間節點,創建該周期的時間節點,保存周期值,初始化時間節點中的周期節點管理鏈表,啟動該周期定時器,將時間節點增加到時間管理鏈表中,創建周期節點,建立與用戶請求節點的關系,增加該周期節點到時間節點中的周期節點管理鏈表中;如果找到對應的時間節點時,創建周期節點,建立與用戶請求節點的關系,增加該周期節點到時間節點中的周期節點管理鏈表中; 所述的定時器超時處理,通知訂閱管理周期超時,通知中包含超時周期時間,定時器根據周期重新計時,等待下次超時到來;每一個不同的時間周期,都對應有不同的定時器。
4.根據權利要求2所述的基于低功耗的訂閱式設備訪問方法,其特征在于所述的訂閱增加請求類型,根據用戶請求中設備的名稱查詢設備是否存在,如果請求的設備不存在,通過控制標識通知用戶訂閱增加失敗,否則根據用戶標識查找用戶是否已經請求過該設備,如果用戶訂閱過該設備,通過控制標識通知用戶訂閱增加失敗,否則沒有請求過該設備,創建用戶請求節點,保存用戶請求相關信息到用戶請求節點,如果用戶請求的設備注冊了建立資源的回調函數調用該函數,否則跳過該步驟,將創建的用戶請求節點與查找到的對應的訪問設備建立關聯即將創建的用戶請求節點增加到對應的設備節點中的用戶請求管理鏈表中,再將用戶請求節點與周期節點建立關聯關系;如果是立即執行標識調用周期超時的回調函數,否則等到周期超時時調用周期超時的回調函數,通過控制標識通知用戶訂閱增加成功。
5.根據權利要求2所述的基于低功耗的訂閱式設備訪問方法,其特征在于所述的訂閱刪除請求類型,根據用戶請求中設備的名稱查詢設備是否存在,如果請求的設備未找到,通過控制標識通知用戶訂閱刪除失敗,否則根據用戶標識查找用戶是否已經請求過該設備,如果用戶未訂閱過該設備,通過控制標識通知用戶訂閱刪除失敗,否則根據找到的用戶請求節點與周期節點斷開關聯關系,再將用戶請求節點與對應的訪問設備斷開關聯即將用戶請求節點從對應的設備節點中的用戶請求管理鏈表中刪除;如果設備注冊了釋放資源的回調函數調用該函數,否則跳過該步驟,回收用戶請求節點,通過控制標識通知用戶訂閱刪除成功。
6.根據權利要求2所述的基于低功耗的訂閱式設備訪問方法,其特征在于所述的訂閱修改請求類型,根據用戶請求中設備的名稱查詢設備是否存在,如果請求的設備未找到,通過控制標識通知用戶訂閱修改失敗,否則根據用戶標識查找用戶是否已經請求過該設備,如果用戶未訂閱過該設備,通過控制標識通知用戶訂閱修改失敗,否則如果設備注冊了釋放資源的回調函數調用該函數,否則跳過該步驟;根據找到的用戶請求節點及新的周期修改與周期節點關聯關系,如果設備注冊了建立資源的回調函數調用該函數,否則跳過該步驟,通過控制標識通知用戶訂閱修改成功。
【文檔編號】G06F17/30GK104166687SQ201410362142
【公開日】2014年11月26日 申請日期:2014年7月28日 優先權日:2014年7月28日
【發明者】宮尚, 雷翔, 金忠鶴 申請人:東方通信股份有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 洮南市| 通河县| 梓潼县| 鄯善县| 陆良县| 称多县| 北川| 宁河县| 景德镇市| 凉山| 福建省| 富平县| 吉首市| 陇西县| 徐汇区| 佛坪县| 永春县| 遂宁市| 镇康县| 库车县| 宜良县| 视频| 桐柏县| 姚安县| 民乐县| 邮箱| 怀仁县| 蛟河市| 绥棱县| 绥滨县| 池州市| 阿坝县| 重庆市| 中西区| 罗平县| 咸丰县| 西林县| 广宁县| 余江县| 佳木斯市| 丰台区|