亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種大氣測量裝置軟件中嵌入式軟件狀態(tài)機的實現(xiàn)方法與流程

文檔序號:12176390閱讀:462來源:國知局

本發(fā)明屬于軟件可靠性設(shè)計技術(shù)領(lǐng)域,具體涉及一種嵌入式軟件狀態(tài)機的實現(xiàn)方法,提高嵌入式軟件容錯能力的方法。



背景技術(shù):

隨著武器系統(tǒng)精確打擊能力越來越強,信息化程度越來越高,各專業(yè)對彈上嵌入軟件也有了更高的要求。傳統(tǒng)嵌入式軟件由于與制導(dǎo)機交互狀態(tài)繁多,代碼中包含大量的if…else…和switch…case…語句,軟件的可維護性、安全性較差。在該情況下,如果總體對通訊協(xié)議進(jìn)行一些修改,則軟件需要進(jìn)行大量的改動,大大增加了軟件開發(fā)人員的工作量和工作難度,也給后續(xù)涉及到的軟件文檔的修改和評測帶來了繁瑣的工作量。

狀態(tài)機是一種具有指定數(shù)目的狀態(tài)的概念機。該概念機在某個指定的時刻僅處于一個狀態(tài),狀態(tài)的改變是由輸入信號的變化而引起的.作為對輸入信號的響應(yīng),系統(tǒng)可能轉(zhuǎn)變到相同或不同的狀態(tài),而輸出事件可能是任意產(chǎn)生的。在程序設(shè)計中引入狀態(tài)機的思想,可使復(fù)雜的程序更清晰,程序修改起來更容易。采用狀態(tài)機思想來進(jìn)行嵌入式軟件的設(shè)計則可以大大提高軟件的可維護性、安全性,降低總體對通訊協(xié)議修改后給軟件改動所帶來的工作量,涉及到的后續(xù)軟件文檔的修改和評測的工作量也大為降低。

在大氣測量裝置軟件中還沒有嵌入式軟件狀態(tài)機的實現(xiàn)方法,亟需針對其進(jìn)行研制滿足設(shè)計要求。



技術(shù)實現(xiàn)要素:

本發(fā)明要解決的技術(shù)問題是提供一種大氣測量裝置軟件中嵌入式軟件狀態(tài)機的實現(xiàn)方法,從而減少程序的判斷語句,并提高可修改性。

為了實現(xiàn)這一目的,本發(fā)明采取的技術(shù)方案是:

一種大氣測量裝置軟件中嵌入式軟件狀態(tài)機的實現(xiàn)方法,大氣測量裝置軟件采用狀態(tài)機進(jìn)行流程控制和任務(wù)觸發(fā),軟件在正常工作模式、半實物仿真工作模式、地面測試模式、軟件傳輸模式程序架構(gòu)相同;添加狀態(tài)機動作執(zhí)行函數(shù),用來執(zhí)行狀態(tài)機產(chǎn)生過程中的中間操作;根據(jù)型號的系統(tǒng)屬性,對于中間存在的特定狀態(tài)通過空信號來遷移;具體包括如下步驟:

(1)確定大氣測量裝置狀態(tài)機方程:

驅(qū)動方程:Z=G[X,Qn]

狀態(tài)方程:(Qn+1,E)=H[Z,Qn]

狀態(tài)方程中各元素說明如下:

X為輸入信號,該信號為外部制導(dǎo)計算機或測試設(shè)備輸入的指令、數(shù)據(jù),大氣測量裝置軟件根據(jù)通訊協(xié)議對其進(jìn)行驗證,如果滿足通訊協(xié)議要求,則將其當(dāng)作輸入信號;

Qn為現(xiàn)態(tài);Qn+1為次態(tài);

大氣測量裝置軟件涉及19種狀態(tài),分別為:

1.State_PowerOn

2.State_NormalOperation

3.State_Test

4.State_Simulation

5.State_SoftTrans

6.State_ParameterTrans

7.State_FileTransStart

8.State_FileIniStart

9.State_FileIniTrans

10.State_FileDataStart

11.State_FileDataTrans

12.State_FileVerify

13.State_FileProgram

14.State_FileTransEnd

15.State_FileReadStart

16.State_FileReadTrans

17.State_FileReadTransData

18.State_FileReadTransWait

19.State_Error

程序剛上電時,設(shè)置最初狀態(tài)為State_PowerOn狀態(tài),表示大氣測量裝置上電狀態(tài);上述19個狀態(tài)根據(jù)該型號通訊協(xié)議及程序的具體實現(xiàn)過程來命名和設(shè)定;根據(jù)該型號任務(wù)的特點,第16種狀態(tài)State_FileReadTrans可通過空信號進(jìn)行遷移,達(dá)到驅(qū)動整個程序流動的目的;

Z:驅(qū)動信號,大氣測量裝置軟件對輸入信號進(jìn)行分類,得到19種驅(qū)動信號,分別為:

1.Sig0100

2.Sig0200.0

3.Sig0200.1

4.Sig0200.2

5.Sig0200.3

6.Sig0200.F

7.Sig1000

8.Sig1100

9.Sig1200.12

10.Sig1200.13

11.Sig1300

12.Sig1200.23

13.Sig1200.25

14.Sig1200.24

15.Sig1200.26

16.Sig1200.11

17.SigFileReadTransData

18.SigFileEnd

19.SigNull

各驅(qū)動信號的命名及驅(qū)動信號數(shù)量根據(jù)該型號的通訊協(xié)議來設(shè)定;

其中第19個信號SigNull為空信號,它的產(chǎn)生對應(yīng)外界輸入的錯誤信號或者是外界的空輸入,在系統(tǒng)設(shè)定的狀態(tài)下驅(qū)動該狀態(tài)發(fā)生遷移;

G:驅(qū)動信號產(chǎn)生函數(shù);在大氣測量裝置軟件中定義如下:

Uint16 SignalGeneration(Uint16 *pRecvFrame,Uint16nLen,StateMachineSignal*psig);

函數(shù)功能:軟件對接收到的制導(dǎo)計算機指令、數(shù)據(jù)進(jìn)行驗證處理后生成狀態(tài)機的驅(qū)動信號;

H:大氣機狀態(tài)生成函數(shù);在大氣測量裝置軟件中的定義如下:

Uint16StateGeneration(Signal,StateOld,&StateNew,&nFunc);

函數(shù)功能:根據(jù)輸入的驅(qū)動信號與上一拍狀態(tài)一起生成狀態(tài)機本拍的狀態(tài) 和動作執(zhí)行函數(shù);

E:狀態(tài)機動作執(zhí)行函數(shù);在大氣測量裝置軟件中有20個動作執(zhí)行函數(shù),分別為:

1,DoDevInfoQuery

2,DoNormalOperation

3,DoSimulation

4,DoTest

5,DoSoftTrans

6,DoParameterTrans

7,DoFaultQuery

8,DoMemQuery

9,DoFileTransStart

10,DoFileIniStart

11,DoFileIniTrans

12,DoFileDataStart

13,DoFileDataTrans

14,DoFileVerify

15,DoFileProgram

16,DoFileTransEnd

17,DoFileReadStart

18,DoFileReadTrans

19,DoFileReadTransData

20,DoFileReadTransWait

上述動作執(zhí)行函數(shù)在程序運行過程中對系統(tǒng)設(shè)定的中間過程進(jìn)行置位,輔助各狀態(tài)進(jìn)行函數(shù)操作;

(2)確定狀態(tài)機操作步驟:

(2.1)驅(qū)動信號生成

大氣測量裝置軟件對接收到的制導(dǎo)計算機指令、數(shù)據(jù)進(jìn)行處理后生成狀態(tài)機的驅(qū)動信號;

(2.2)狀態(tài)發(fā)生

驅(qū)動信號與上一拍狀態(tài)信號一起生成狀態(tài)機本拍的狀態(tài)信號和動作執(zhí)行函數(shù);

(2.3)動作執(zhí)行

動作執(zhí)行函數(shù)根據(jù)動作執(zhí)行標(biāo)志置位相應(yīng)任務(wù)觸發(fā)標(biāo)志;

狀態(tài)機操作在大氣測量裝置軟件主循環(huán)中5ms定時標(biāo)志未置位時進(jìn)行,驅(qū)動信號生成時對輸入信息按通訊協(xié)議規(guī)定進(jìn)行校驗;狀態(tài)表中所有元素均進(jìn)行定義,避免未定義操作對狀態(tài)機造成的影響。

進(jìn)一步的,如上所述的一種大氣測量裝置軟件中嵌入式軟件狀態(tài)機的實現(xiàn)方法,其中:狀態(tài)發(fā)生操作基于二維狀態(tài)轉(zhuǎn)換表實現(xiàn)。

本發(fā)明技術(shù)方案的有益效果在于:本方案中的狀態(tài)機根據(jù)型號任務(wù)特點,將傳統(tǒng)狀態(tài)機進(jìn)行部分改進(jìn),應(yīng)用到嵌入式軟件研制過程中,可使程序的判斷語句至少減少一半,并且編程思路清晰、編寫過程簡單、可修改性強,同時也滿足設(shè)計要求。

具體實施方式

下面結(jié)合具體實施例對本發(fā)明技術(shù)方案進(jìn)行詳細(xì)說明。

本發(fā)明一種大氣測量裝置軟件中嵌入式軟件狀態(tài)機的實現(xiàn)方法,大氣測量 裝置軟件采用狀態(tài)機進(jìn)行流程控制和任務(wù)觸發(fā),軟件在正常工作模式、半實物仿真工作模式、地面測試模式、軟件傳輸模式程序架構(gòu)相同;添加狀態(tài)機動作執(zhí)行函數(shù),用來執(zhí)行狀態(tài)機產(chǎn)生過程中的中間操作;根據(jù)型號的系統(tǒng)屬性,對于中間存在的特定狀態(tài)通過空信號來遷移;具體包括如下步驟:

(1)確定大氣測量裝置狀態(tài)機方程:

驅(qū)動方程:Z=G[X,Qn]

狀態(tài)方程:(Qn+1,E)=H[Z,Qn]

狀態(tài)方程中各元素說明如下:

X為輸入信號,該信號為外部制導(dǎo)計算機或測試設(shè)備輸入的指令、數(shù)據(jù),大氣測量裝置軟件根據(jù)通訊協(xié)議對其進(jìn)行驗證,如果滿足通訊協(xié)議要求,則將其當(dāng)作輸入信號;

Qn為現(xiàn)態(tài);Qn+1為次態(tài);

大氣測量裝置軟件涉及19種狀態(tài),分別為:

1.State_PowerOn

2.State_NormalOperation

3.State_Test

4.State_Simulation

5.State_SoftTrans

6.State_ParameterTrans

7.State_FileTransStart

8.State_FileIniStart

9.State_FileIniTrans

10.State_FileDataStart

11.State_FileDataTrans

12.State_FileVerify

13.State_FileProgram

14.State_FileTransEnd

15.State_FileReadStart

16.State_FileReadTrans

17.State_FileReadTransData

18.State_FileReadTransWait

19.State_Error

程序剛上電時,設(shè)置最初狀態(tài)為State_PowerOn狀態(tài),表示大氣測量裝置上電狀態(tài);上述19個狀態(tài)根據(jù)該型號通訊協(xié)議及程序的具體實現(xiàn)過程來命名和設(shè)定;根據(jù)該型號任務(wù)的特點,第16種狀態(tài)State_FileReadTrans可通過空信號進(jìn)行遷移,達(dá)到驅(qū)動整個程序流動的目的;

Z:驅(qū)動信號,大氣測量裝置軟件對輸入信號進(jìn)行分類,得到19種驅(qū)動信號,分別為:

1.Sig0100

2.Sig0200.0

3.Sig0200.1

4.Sig0200.2

5.Sig0200.3

6.Sig0200.F

7.Sig1000

8.Sig1100

9.Sig1200.12

10.Sig1200.13

11.Sig1300

12.Sig1200.23

13.Sig1200.25

14.Sig1200.24

15.Sig1200.26

16.Sig1200.11

17.SigFileReadTransData

18.SigFileEnd

19.SigNull

各驅(qū)動信號的命名及驅(qū)動信號數(shù)量根據(jù)該型號的通訊協(xié)議來設(shè)定;

其中第19個信號SigNull為空信號,它的產(chǎn)生對應(yīng)外界輸入的錯誤信號或者是外界的空輸入,在系統(tǒng)設(shè)定的狀態(tài)下驅(qū)動該狀態(tài)發(fā)生遷移;

G:驅(qū)動信號產(chǎn)生函數(shù);在大氣測量裝置軟件中定義如下:

Uint16 SignalGeneration(Uint16 *pRecvFrame,Uint16nLen,StateMachineSignal*psig);

函數(shù)功能:軟件對接收到的制導(dǎo)計算機指令、數(shù)據(jù)進(jìn)行驗證處理后生成狀態(tài)機的驅(qū)動信號;

H:大氣機狀態(tài)生成函數(shù);在大氣測量裝置軟件中的定義如下:

Uint16StateGeneration(Signal,StateOld,&StateNew,&nFunc);

函數(shù)功能:根據(jù)輸入的驅(qū)動信號與上一拍狀態(tài)一起生成狀態(tài)機本拍的狀態(tài)和動作執(zhí)行函數(shù);

E:狀態(tài)機動作執(zhí)行函數(shù);在大氣測量裝置軟件中有20個動作執(zhí)行函數(shù),分別為:

1,DoDevInfoQuery

2,DoNormalOperation

3,DoSimulation

4,DoTest

5,DoSoftTrans

6,DoParameterTrans

7,DoFaultQuery

8,DoMemQuery

9,DoFileTransStart

10,DoFileIniStart

11,DoFileIniTrans

12,DoFileDataStart

13,DoFileDataTrans

14,DoFileVerify

15,DoFileProgram

16,DoFileTransEnd

17,DoFileReadStart

18,DoFileReadTrans

19,DoFileReadTransData

20,DoFileReadTransWait

上述動作執(zhí)行函數(shù)在程序運行過程中對系統(tǒng)設(shè)定的中間過程進(jìn)行置位,輔 助各狀態(tài)進(jìn)行函數(shù)操作;

(2)確定狀態(tài)機操作步驟:

(2.1)驅(qū)動信號生成

大氣測量裝置軟件對接收到的制導(dǎo)計算機指令、數(shù)據(jù)進(jìn)行處理后生成狀態(tài)機的驅(qū)動信號;

(2.2)狀態(tài)發(fā)生

驅(qū)動信號與上一拍狀態(tài)信號一起生成狀態(tài)機本拍的狀態(tài)信號和動作執(zhí)行函數(shù);狀態(tài)發(fā)生操作基于二維狀態(tài)轉(zhuǎn)換表實現(xiàn)。

(2.3)動作執(zhí)行

動作執(zhí)行函數(shù)根據(jù)動作執(zhí)行標(biāo)志置位相應(yīng)任務(wù)觸發(fā)標(biāo)志;

狀態(tài)機操作在大氣測量裝置軟件主循環(huán)中5ms定時標(biāo)志未置位時進(jìn)行,驅(qū)動信號生成時對輸入信息按通訊協(xié)議規(guī)定進(jìn)行校驗;狀態(tài)表中所有元素均進(jìn)行定義,避免未定義操作對狀態(tài)機造成的影響。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1