一種基于事件的星載軟件運行狀態監控方法
【技術領域】
[0001]本發明涉及星載嵌入式軟件領域,特別是一種基于事件的星載軟件運行狀態監控方法。
【背景技術】
[0002]衛星在軌運行過程中,需要實時監測其運行狀態和情況,這些狀態信息一般通過遙測信道下傳到地面,便于對其觀測和監控。而衛星軟硬件資源、遙測下行資源均有限,如何合理使用有限資源,達到衛星軟件運行狀態監控,始終是設計過程中需考慮的關鍵因素。
[0003]在星載軟件運行狀態監控方面,常規方法采用遙測下行軟件變量方式實現,存在的主要問題是:一方面,對每種狀態的監控均設置軟件標志,周期性的存儲和下傳,浪費存儲空間和遙測下行通道;另一方面,記錄所有標志、事件信息過多,可能造成存儲空間溢出情況。
【發明內容】
[0004]本發明解決的技術問題是:克服現有技術的不足,提供了一種基于事件的星載軟件運行狀態監控方法,能夠利用星上有限的存儲空間,通過事件觸發和記錄方式,完成對軟件運行狀態監控,確保事件不遺漏且及時通過遙測下傳到地面。
[0005]本發明的技術解決方案是:一種基于事件的星載軟件運行狀態監控方法,包括如下步驟:
[0006](I)根據星載軟件關鍵事件信息長度、關鍵事件信息數目確定關鍵事件信息存儲空間值后送至衛星,并控制衛星根據關鍵事件信息存儲空間值建立關鍵事件信息存儲空間;所述關鍵事件信息包括地面需觀測的異常敏感器采集數據、異常程序分支、總線傳輸錯誤信息;
[0007](2)對星載軟件關鍵事件信息進行編號,并通過編號建立各個關鍵事件信息在關鍵事件信息存儲空間的存儲位置關系,然后建立每個關鍵事件信息在軟件中的觸發點;
[0008](3)在星載軟件運行過程中經過觸發點觸發對應的關鍵事件信息時,將該觸發點對應的關鍵事件信息加入到關鍵事件信息存儲空間中,并根據關鍵事件信息的首次觸發時間計算關鍵事件信息存儲空間中關鍵事件信息的存儲時間,并在星載軟件運行過程中,判斷關鍵事件信息存儲空間中關鍵事件信息的數目及關鍵事件信息存儲時間;
[0009](4)如果關鍵事件信息存儲空間中關鍵事件信息的數目小于關鍵事件信息的數目閾值,則依次判斷各個關鍵事件信息存儲時間,當關鍵事件信息存儲時間大于等于關鍵事件信息存儲時間閾值時,將該關鍵事件信息進行下傳,當關鍵事件信息存儲時間小于關鍵事件信息存儲時間閾值時,不進行操作;如果關鍵事件信息存儲空間中關鍵事件信息的數目大于等于關鍵事件信息的數目閾值,則將此時關鍵事件信息存儲空間中關鍵事件信息進行下傳;
[0010](5)關鍵事件信息下傳后,在關鍵事件信息存儲空間中清除該關鍵事件信息,清空該關鍵事件信息的首次觸發事件和在關鍵事件信息存儲空間中的存儲時間,并重復步驟
(2)-步驟(4)直至對星載軟件運行狀態監控完成。
[0011]所述的建立每個關鍵事件信息在軟件中的觸發點為在軟件的關鍵事件信息處添加的軟件接口,其中該軟件接口可以在第一次運行對應關鍵事件信息時,將對應關鍵事件信息添加到關鍵事件信息存儲空間中。
[0012]所述的關鍵事件信息的數目閾值為700,關鍵事件信息存儲時間閾值為5s。
[0013]本發明與現有技術相比的優點在于:
[0014](I)本發明與現有技術相比,在事件信息被觸發時才進行記錄和下傳,提高存儲空間和遙測下行通道使用效率;
[0015](2)本發明與現有技術相比,對同一事件信息,無論是一次還是多次觸發,僅占用該事件對應的相同存儲空間,有效節省了事件信息存儲空間,采用有限存儲空間能夠存儲所有事件?目息;
[0016](3)本發明在到達關鍵事件信息存儲時間上限或關鍵事件信息存儲數目上限時,對關鍵事件信息進行下傳,可有效均衡關鍵事件信息下傳的時間要求和數目要求,提高遙測下行通道利用率。
【附圖說明】
[0017]圖1為本發明方法的流程示意圖;
【具體實施方式】
[0018]下面結合附圖對本發明的【具體實施方式】進行進一步的詳細描述。
[0019]如圖1所示,本發明涉及一種基于事件的星載軟件運行狀態監控方法,能夠完成關鍵事件信息記錄,并及時下行到地面,具體步驟如下:
[0020]步驟一:預先建立有限的關鍵事件信息存儲空間,關鍵事件信息存儲空間為預先分配內存空間,根據具體應用場景確定其存儲空間大小,用于存儲所有關鍵事件信息,即地面根據實際應用環境預先計算關鍵事件信息存儲空間大小,并控制衛星建立對應大小關鍵事件信息存儲空間。所述關鍵事件信息的存儲空間Nspace = Ndis*LenInfo,其中LenInfo表示每個關鍵事件信息長度(單位:字節),關鍵事件信息內容可包含事件觸發時候時間、變量參數等信息,Ndis為分配的可存儲事件總數,Nspace為總存儲空間大小(單位:字節)O
[0021]步驟二:建立軟件運行過程中關鍵事件信息編號,并確保每個關鍵事件信息編號的唯一性。同時,并通過每個關鍵事件信息編號,建立與事件存儲空間一一對應的查詢關系。所述關鍵事件信息包括地面需觀測的異常敏感器采集數據、異常程序分支、總線傳輸錯誤信息,其中,步驟一中所述事件存儲空間用于存儲所述關鍵事件信息。
[0022]例如關鍵事件信息總數為Nmax (Nmax< = Ndis),為便于關鍵事件信息與存儲空間建立一一對應關系,令事件編號(id)取值為[0,Nmax-1]。
[0023]步驟三:建立每個關鍵事件信息在軟件中的觸發點,所述觸發點為軟件運行添加關鍵事件信息的軟件接口,即通過接口函數SET_EVENT(id),將觸發時刻的關鍵事件信息(id)添加到存儲空間中。
[0024]步驟四: