module XNSim { module XNSimStatus { //内核加载状态,内置类型,不能用作主题 @nested struct XNCoreStatus { long XNFWStatus; //主框架加载状态 0-未加载 1-初始化完成 2-正常 其它-异常 long XNTMStatus; //时间管理器加载状态 0-未加载 1-初始化完成 2-正常 其它-异常 long XNEMStatus; //事件管理器加载状态 0-未加载 1-初始化完成 2-正常 其它-异常 long XNSDStatus; //场景管理器加载状态 0-未加载 1-初始化完成 2-正常 其它-异常 long XNThMStatus; //线程管理器加载状态 0-未加载 1-初始化完成 2-正常 其它-异常 long XNMMStatus; //模型管理器加载状态 0-未加载 1-初始化完成 2-正常 其它-异常 long XNSMStatus; //服务管理器加载状态 0-未加载 1-初始化完成 2-正常 其它-异常 long XNDMStatus; //DDS管理器加载状态 0-未加载 1-初始化完成 2-正常 其它-异常 }; //引擎状态主题 struct XNEngineStatus { string XNEngineName; //引擎名称 long XNEngineID; //引擎ID long XNEngineSt; //引擎状态 0-未开始 1-运行中 2-暂停 3-终止 其它-未知状态 long XNEngineAff; //引擎CPU亲和性 long XNThCnt; //线程数量 XNCoreStatus XNCoreSt; //内核状态 }; //线程状态主题 struct XNThreadStatus { string XNThreadName; //线程名称 long XNThreadID; //线程ID long XNThreadSt; //线程状态 0-未开始 1-运行中 2-暂停 3-终止 其它-未知状态 long XNThreadAff; //线程CPU亲和性 long XNThreadPro; //线程优先级 unsigned long long XNThRunCnt; //线程运行周期数 double XNThCurFreq; //线程实时频率,单位Hz double XNThSetFreq; //线程设置频率,单位Hz }; //模型状态主题 struct XNModelStatus { string XNModelName; //模型名称 long XNModelID; //模型ID long XNModelSt; //模型状态主题 long XNModelThID; //模型所属线程ID long XNModelNode; //模型运行节点 long XNModelPro; //模型运行优先级 unsigned long long XNModelRunCnt; //模型运行周期数 double XNMdlCurFreq; //模型实时频率,单位Hz double XNMdlSetFreq; //模型设置频率,单位Hz }; }; module XNSimControl { //仿真运行控制主题 struct XNRuntimeControl { long XNSimCmd; //仿真控制指令 0-无指令 1-暂停 2-继续 3-终止 long XNThrCmd; //线程控制指令 从低位到高位,每两个二进制位控制一个线程的运行:00-无指令,01- 暂停,10-继续,11-结束 }; }; };