1.一种大气测量装置软件中嵌入式软件状态机的实现方法,其特征在于:
大气测量装置软件采用状态机进行流程控制和任务触发,软件在正常工作模式、半实物仿真工作模式、地面测试模式、软件传输模式程序架构相同;添加状态机动作执行函数,用来执行状态机产生过程中的中间操作;根据型号的系统属性,对于中间存在的特定状态通过空信号来迁移;具体包括如下步骤:
(1)确定大气测量装置状态机方程:
驱动方程:Z=G[X,Qn]
状态方程:(Qn+1,E)=H[Z,Qn]
状态方程中各元素说明如下:
X为输入信号,该信号为外部制导计算机或测试设备输入的指令、数据,大气测量装置软件根据通讯协议对其进行验证,如果满足通讯协议要求,则将其当作输入信号;
Qn为现态;Qn+1为次态;
大气测量装置软件涉及19种状态,分别为:
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
程序刚上电时,设置最初状态为State_PowerOn状态,表示大气测量装置上电状态;上述19个状态根据该型号通讯协议及程序的具体实现过程来命名和设定;根据该型号任务的特点,第16种状态State_FileReadTrans可通过空信号进行迁移,达到驱动整个程序流动的目的;
Z:驱动信号,大气测量装置软件对输入信号进行分类,得到19种驱动信号,分别为:
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
各驱动信号的命名及驱动信号数量根据该型号的通讯协议来设定;
其中第19个信号SigNull为空信号,它的产生对应外界输入的错误信号或者是外界的空输入,在系统设定的状态下驱动该状态发生迁移;
G:驱动信号产生函数;在大气测量装置软件中定义如下:
Uint16 SignalGeneration(Uint16 *pRecvFrame,Uint16 nLen,StateMachineSignal*psig);
函数功能:软件对接收到的制导计算机指令、数据进行验证处理后生成状态机的驱动信号;
H:大气机状态生成函数;在大气测量装置软件中的定义如下:
Uint16StateGeneration(Signal,StateOld,&StateNew,&nFunc);
函数功能:根据输入的驱动信号与上一拍状态一起生成状态机本拍的状态 和动作执行函数;
E:状态机动作执行函数;在大气测量装置软件中有20个动作执行函数,分别为:
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
上述动作执行函数在程序运行过程中对系统设定的中间过程进行置位,辅助各状态进行函数操作;
(2)确定状态机操作步骤:
(2.1)驱动信号生成
大气测量装置软件对接收到的制导计算机指令、数据进行处理后生成状态机的驱动信号;
(2.2)状态发生
驱动信号与上一拍状态信号一起生成状态机本拍的状态信号和动作执行函数;
(2.3)动作执行
动作执行函数根据动作执行标志置位相应任务触发标志;
状态机操作在大气测量装置软件主循环中5ms定时标志未置位时进行,驱动信号生成时对输入信息按通讯协议规定进行校验;状态表中所有元素均进行定义,避免未定义操作对状态机造成的影响。
2.如权利要求1所述的一种大气测量装置软件中嵌入式软件状态机的实现方法,其特征在于:状态发生操作基于二维状态转换表实现。