一種eoc設(shè)備局端獲取終端控制消息響應(yīng)的方法
【專利說明】一種EOC設(shè)備局端獲取終端控制消息響應(yīng)的方法
[0001]
技術(shù)領(lǐng)域
[0002]本發(fā)明涉及數(shù)據(jù)通信領(lǐng)域中的EOC (Ethernet over Coax)設(shè)備控制領(lǐng)域,尤其是一種EOC設(shè)備局端獲取終端控制消息響應(yīng)的方法。
【背景技術(shù)】
[0003]在EOC通信系統(tǒng)中,由于局端需要對終端進行管理和控制,因此除了業(yè)務(wù)數(shù)據(jù)流的轉(zhuǎn)發(fā)外,還存在各種控制消息會在兩者之間交互,局端通過這些消息管理、配置和獲取終端狀態(tài)。在配置終端或終端啟動上線過程中,局端往往需要對終端進行多項配置,而通常每一項配置又需要多次控制消息交互。在實際應(yīng)用中存在的多臺終端同時上線和同時配置的情況,使得短時間內(nèi)局端終端控制信息需要交互的次數(shù)進一步增加??梢娫贓OC系統(tǒng)中,控制信息的交互需求量較大,需要處理大量控制信息時,如何能提高每次控制信息的處理速度,是提高局端對終端管理功能效率的關(guān)鍵??刂菩畔⒖杀环譃閮深悾葱枰K端響應(yīng),和不需要終端響應(yīng)。根據(jù)某些EOC設(shè)備原有的通信機制,在處理需要終端響應(yīng)的控制消息時,有一個固定的等待時間timel,如圖1所示。
[0004]等待timel時間的目的在于,局端處理控制消息的模塊不知道響應(yīng)何時被收到,因此必須等待一個足夠長的時間timel,保證響應(yīng)已被收到,再去響應(yīng)接收模塊讀取響應(yīng)。然而這些時間消耗大都在作無意義的空閑等待,因為為了保證每次讀取的成功率,timel的選擇往往遠長于實際平均所需時間,造成大量浪費。在大量處理需要終端響應(yīng)的控制消息場景下,每次固定的大量額外時間支出是一筆沉重的負擔(dān)??梢姡诓粚ο到y(tǒng)穩(wěn)定、安全和準確性造成負面影響的前提下,如何能節(jié)省原有邏輯中不必要的時間損耗,是一個值得研究的問題。
【發(fā)明內(nèi)容】
[0005]本發(fā)明所要解決的技術(shù)問題是:針對EOC局端獲取終端控制消息響應(yīng)時耗太長的問題,在保證系統(tǒng)原有穩(wěn)定、安全、準確性不受損的前提下,以大大減少時耗為目標,提出了一種EOC設(shè)備局端獲取終端控制消息響應(yīng)的方法,可節(jié)省原有機制中無意義的多余等待時間,大大削減整個操作的時耗。通過引入同步信號,實現(xiàn)相關(guān)線程間的同步,以保證響應(yīng)能及時被獲取。采用本發(fā)明,即可省去發(fā)起請求后,獲取響應(yīng)前的固定等待時間,使得整體耗時較為接近實際所需。
[0006]本發(fā)明采用的技術(shù)方案如下:
一種EOC設(shè)備局端獲取終端控制消息響應(yīng)的方法包括:
步驟1:局端裝置分別包括局端消息控制模塊與局端響應(yīng)接收模塊,局端消息控制模塊與局纟而響應(yīng)接收1?塊冋時運燈;
步驟2:局端消息控制模塊發(fā)送需要終端響應(yīng)的控制消息,并實時檢測局端響應(yīng)接收模塊是否釋放了同步信號;局端響應(yīng)接收模塊實時接收終端發(fā)來的響應(yīng),若收到終端響應(yīng),則釋放同步信號;
步驟3,與步驟2同時,局端消息控制模塊若獲得同步信號,則立即去局端響應(yīng)接收模塊讀取響應(yīng)信息;否則,進入等到狀態(tài),直到設(shè)定的等待時間結(jié)束,并返回讀取失敗信息。
[0007]進一步的,所述步驟I具體包括:
局端裝置啟動時創(chuàng)建需要使用的信號量,并提供該信號量使用的相關(guān)接口 ;信號量為O表示存儲響應(yīng)的固定內(nèi)存中,沒有未被讀取過的響應(yīng),信號量為I表示固定內(nèi)存中有未被讀取的響應(yīng);局端裝置包括局端消息控制模塊與局端響應(yīng)接收模塊,局端裝置啟動后,局端消息控制模塊與局端響應(yīng)接收模塊同時運行,局端消息控制模塊創(chuàng)建第一處理線程和第二處理線程;局端響應(yīng)接收模塊創(chuàng)建局端響應(yīng)接收模塊線程。
[0008]進一步的,所述步驟2具體包括:
步驟21:第一處理模塊線程向第二處理模塊線程發(fā)送需要獲取響應(yīng)的控制消息,第二處理模塊線程向終端發(fā)送相應(yīng)的請求,并返回校驗結(jié)果給第一處理模塊線程。
[0009]步驟22:局端響應(yīng)接收模塊線程接收第二處理模塊線程發(fā)來的響應(yīng),若收到響應(yīng)后,則將其放入固定的內(nèi)存中,若此時前一次的響應(yīng)未被讀取,即信號量為1,則調(diào)用信號量減I的函數(shù)將信號量清零,然后調(diào)用信號量加I函數(shù),將信號量置I,表示有未被讀取的響應(yīng)放入了固定內(nèi)存中,局端響應(yīng)接收模塊線程釋放了同步信號。
[0010]進一步的,所述步驟3具體包括:
步驟31:與步驟2同時,第一處理線程收到第二處理線程返回的校驗結(jié)果后,立即向第二處理線程請求讀取響應(yīng);若當(dāng)前存儲響應(yīng)的固定內(nèi)存中,沒有未被讀取過的響應(yīng),則第二處理線程進入阻塞等待狀態(tài),并設(shè)置請求超時的時間為T,執(zhí)行步驟32 ;否則,局端響應(yīng)接收模塊線程釋放了同步信號,第二處理線程從固定內(nèi)存中讀取響應(yīng),并將響應(yīng)送到第一處理線程,執(zhí)行步驟33;
步驟32:如果在設(shè)定超時的時間內(nèi),不存在未被讀取的響應(yīng),則本次獲取響應(yīng)失敗,并返回失敗信息;
步驟33:將該響應(yīng)與之前的校驗信息進行校驗,校驗通過則此次讀取響應(yīng)成功;如果校驗不通過,則返回失敗信息。
[0011]綜上所述,由于采用了上述技術(shù)方案,本發(fā)明的有益效果是:
本發(fā)明取消了用戶態(tài)的空閑等待,節(jié)省了圖1中的timel。由于終端控制消息的發(fā)送過程在局端用戶態(tài)有互斥鎖確保無并發(fā)執(zhí)行,且信號量阻塞有超時機制,因此引入信號量不會帶來死鎖問題,也不會對系統(tǒng)的穩(wěn)定、精確性帶來負面影響。
【附圖說明】
[0012]本發(fā)明將通過例子并參照附圖的方式說明,其中:
圖1是某些EOC設(shè)備原有處理需要終端響應(yīng)的控制消息的機制。
[0013]圖2是
【發(fā)明內(nèi)容】
示意圖。
[0014]圖3是M0CA1.1局端讀取終端寄存器值流程圖。
【具體實施方式】
[0015]本說明書中公開的所有特征,或公開的所有方法或過程中的步驟,除了互相排斥的特征和/或步驟以外,均可以以任何方式組合。
[0016]本說明書(包括任何附加權(quán)利要求、摘要和附圖)中公開的任一特征,除非特別敘述,均可被其他等效或具有類似目的的替代特征加以替換。即,除非特別敘述,每個特征只是一系列等效或類似特征中的一個例子而已。
[0017]MOCA1.1設(shè)備是EOC設(shè)備的一種,本發(fā)明在M0CA1.1設(shè)備的應(yīng)用實例如下步驟說明。設(shè)置信號量就是為了釋放信號量。將信號量加1,就是“釋放了同步信號”。
[0018]1、局端裝置在啟動時,創(chuàng)建一個信號量,并初始化為O。信號量為O表示存儲響應(yīng)的固定內(nèi)存中,沒有未被讀取過的響應(yīng),信號量為I表示固定內(nèi)存中有未被讀取的響應(yīng),此處信號量不能為除O、I外其他值。提供若干該信號量相關(guān)的接口:
1)void sem_up (void):作用將該信號量+1 ;
2)int