简介
CERTI是一个符合HLA标准的开源RTI框架,旨在构建多标准、多语言的RTI
- DoD HLA 1.3(a.k.a.RTI-NGv6):C++、Java、Python、Fortran90、Matlab
- IEEE1516-2000(a.k.a.HLA 1516):C++
- IEEE1516-2010(a.k.a.HLA Evolved):work-in-progress
CERTI主要包括两个可执行程序——RTIA和RTIG。其关系如下图:
执行顺序
- 配置路径;
- 将FOM文件(.fed或.xml)放置于RTIG的搜索路径中;
- 运行RTIG;
- 配置HOST/PORT/PROXY;
- 运行联邦,此时RTIA自动启动。
CERTI环境变量
CERTI有一系列影响运行的环境变量。
变量 | 关联方 | 描述 |
CERTI_HOME | RTIG | CERTI安装目录,用于RTIG搜索FOM文件。 |
CERTI_FOM_FILE | RTIG | CERTI FOM搜索路径。变量包含一系列以“;”分隔的列表,用于RTIG搜索FOM文件。 |
CERTI_HOST | RTIA | RTIG运行机器。RTIA运行时,尝试连接到CERTI_HOST上的RTIG(或为“localhost”或void)。 |
CERTI_TCP_PORT | RTIG/RTIA | RTIG/RTIA通信的TCP端口(默认为60400)。 |
CERTI_UDP_PORT | RTIG/RTIA | RTIG/RTIA通信的UDP端口(默认为60500)。 |
CERTI_HTTP_PROXY | RTIA | HTTP代理地址,格式为http://host:port |
http_proxy | RTIA | 若CERTI_HTTP_PROXY未定义,以此作为系统万维网HTTP代理地址。 |
CERTI_NO_STATISTICS | RTIA | 设置后,不再显示服务调用统计。 |
RTIG:CERTI RunTime Infrastructure Gateway(CERTI运行框架网关)
RTIG将HLA仿真与CERTI统一起来。一个联邦至少需要有一个RTIG程序。但一个RTIG程序可用于多个联邦。RTIG启用的命令行命令为:
rtig [-v 2] [-l @IP|hostname]
-v | 可选,冗余等级 | 0->无输出;1->少量;2->输出联邦语法 |
-l | 可选,监听地址 |
|
RTIG启动后,HLA联邦成员可与RTI进行交互。事实上,联邦成员不直接与RTIG交互,而是通过RTIA与RTIG交互。RTIG在TCP端口监听RTIA连接。TCP端口为60400或环境变量CERTI_TCP_PORT的值。
RTIG与RTIA交换信息,以满足来自联邦成员的HLA请求。RTIG职责还包括为联邦成员(通过RTIA)提供需要创建或加入联邦执行的FOM文件。当联邦成员调用CreateFederationExcution API时,RTIG尝试从各个预定义位置打开FOM文件。预定义位置采用多种环境变量定义:
- 通过FEDid_name变量提供的,被认为是路径的文件名;
- CERTI联邦对象模型搜索路径 getenv(CERTI_FOM_PATH)+FEDid_name;
CERTI_FOM_PATH可能包含一系列以“;”分隔的列表;
- 采用CERTI_HOME环境变量 getenv(CERTI_HOME)+”/share/federations/”+FEDid_name;
- 安装目录加FEDid_name
PACKAGE_INSTALL_PREFIX+”/share/federations/”+FEDid_name;
- Unix系统中为"/usr/local/share/federation/" + FEDid_name
RTIA:CERTI RunTime Infrastructure Ambassador(CERTI运行框架大使)
当联邦成员创建RTIambassador时,RTIA自动启动。RTIA的运行命令行语句为:
rtia [-v] [-p <port>]
-v | 可选,冗余,显示更多信息 |
-p | 可选,与FederateAmbassador通信的tcp端口 |
RTIA尝试连接到CERTI_HOME环境变量定义的机器上运行的RTIG程序。若该环境变量未设定,则尝试连接到本机。RTIA连接到CERTI_TCP_PORT定义的TCP端口和CERTI_UDP_PORT定义的UDP端口。
联邦示例:billard-nogui
在CERTI安装目录/bin下,双击运行rtig.exe。
打开cmd窗口,cd命令转到billard-nogui.exe所在目录,输入
billard-nogui –n 1 –f Test –F Test.fed
详细信息请参考http://www.nongnu.org/certi/certi_doc/User/html/execute.html