Satellite 项目配置、调试、运行说明文档
目录
一、MAK VR-link 安装
1、软件源
2、安装
3、配置环境变量
4、Crack 破解证书
二、MAK RTI 安装
1、软件源
2、安装
3、配置环境变量
三、开发环境说明(VC++ 6.0)
1、软件源
2、安装过程
3、常见报错
四、ASN1. Include 与 lib 配置说明
五、结束语
六、参考文献
一、MAK VR-link 安装
1、软件源
MAK VR-link 是 MAK 公司开发的商业产品,目前已闭源,需要付费才能获取,目前网上
已经很难找到免费的 VR-link 软件。笔者是在一个不知名小论坛里购买到的破解版,现已放
置百度网盘:
MAK VR-link:http://pan.baidu.com/s/1eSN9UCi,
破解的工具:http://pan.baidu.com/s/1i4LRGup,
2、安装
解压两个文件,安装 VR-link,按照默认的配置点击“next”。
3、配置环境变量
需要注意的是环境变量 PATH 的配置(下文有说明)。
4、Crack 破解证书
license 服务是作为证书许可服务端运行在本机(127.0.0.1)上,另外也可以运行在专门
的服务器上,它是软件运行时验证终端身份的主要凭证。
a) 首先,运行 Crack 文件夹下的 lmtools.exe 文件,在“System Settings”标签页中查看并
复制 Computer/Hostname 项的准确内容,这是本地主机名称,如图 1-1:
凌说周刊,大家相互交流与学习的舞台
1 / 6
图 1-1
b) 用记事本编辑 license.lic 文件,将文件第一行的“SERVER HOST ANY 17000”中的
“HOST”更改为 a)中的准确名称(包括-PC),保存之后关闭 license.lic 文件。
c) 然后配置 lmtools.exe(相当于配置一台证书服务器):
(1) 以管理员权限运行 lmtools.exe 程序,在“Service/License file”标签页中勾选
“Configuration using Service”;
(2) 在“Config Service”中依次导入三个文件“lmgrd.exe”“license.lic”“log.log”(最
后一个文件是自己新建的),不勾选后面的两个选择项(选择的话会出错);
(3) 在“Start/Stop/Reread”中可以开启/关闭/强制关闭该证书服务(service);
(4) 注意:此证书服务不可以设置开机自启动服务,不然运行代码会弹框、报错:“证
书加载失败”;只能在每次开机后,第一次运行仿真程序之前手动“开启”;如果将证书服务
设置成开机自启动的话,服务端(lmtools.exe)在会报错:“证书已运行”。
(5) 设 置 证 书 的 环 境 变 量 : 在 环 境 变 量 选 项 卡 中 , 新 建 用 户 变 量
MAKLMGRD_LICENSE_FILE ,变量的值为“17000@上面查询的主机的名称”,保存并推出。(提
示:待环境变量配置完毕之后,需要重启计算机。)
二、MAK RTI 安装
1、软件源
网上可以获取不同开发者发开的、各个版本的 RTI,例如 openRTI、CERTI 等,但是考虑
到软件之间的兼容性,笔者建议还是安装 MAK 公司的 RTI。目前 CSDN 网站上可以获取 MAK
RTI 可执行程序,很多无法正常运行,或者安装之后出现各种报错,在此笔者直接给出一个
可以正确运行的版本:makRti2.2-msvc++6.0-win32-setup.exe:
http://pan.baidu.com/s/1slhWdKp,
从名称可知该软件指定运行在 win32 平台上。
2、安装
解压文件,双击 makRti 程序,默认选项进行安装,期间会出现四次弹窗,分别提示是
否创建两个环境变量 MAK_RTI、RTI_RID_FILE,是否为当前用户应用该环境变量,都选择“是”:
凌说周刊,大家相互交流与学习的舞台
2 / 6
图 2-1
图 2-2
3、配置环境变量
如 2-3 图所示,此时 PATH 下的值增加了两项:bin 目录和 lib 目录。
图 2-3
增加了一个环境变量:RTI_RID_FILE,其值为:C:\MAK\makRti2.2\rid.mtl
4、配置文件参数
各个联邦成员所在的主机中,C:\MAK\makRti2.2\rid.mtl 文件中,需要修改三个参数:
setqp RTI_useRtiExec 1
setqb RTI_tcpForwarderAddr “127.0.0.1”(本机提供服务)
setqb RTI_timeMgmt 1
三、开发环境说明(VC++ 6.0)
1、软件源
本项目的开发环境是 VC++6.0,不过由于需要配合整体的仿真环境配置,特别是不能引
入后期的“杂质文件”,使得配置过程并不顺利。目前较难找到早期的 VC++6.0,在此笔者一
并给出:
VC++6.0:http://pan.baidu.com/s/1pLbo4f5,密码:306v
2、安装过程
VC++6.0 按照默认项安装即可。
在安装完 MAK RTI 和 VR-link 后,用 VC++ 6.0 编译 VR-link 下 examples 里面的例子程序,
提示找不到 rti/hla1516.h,还有两个环境变量,导致程序编译不通过,解决办法:
1) 将 MAK RTI 和 VR-link 库文件目录包含进 VC 工程,方法是:在 VC++6.0 中按照 Tools—
Options—Directories—Include files 的顺序,将/MAK/makRti2.2/Include 和/MAK/Include(此目
录对应的是 VR-link 安装目录)添加到链接目录中。按照 Tools—Options—Directories—library
凌说周刊,大家相互交流与学习的舞台
3 / 6
files 的顺序将/MAK/makRti2.2/Lib 和/MAK/lib(此目录对应的是 VR-link 安装目录)添加到链
接目录中;
2) 新建两个环境变量:MAK_RTIDIR、MAK_VRLDIR,其值分别是: C:\MAK\makRti2.2 和
=D:\MAK,保存。关闭 VC++6.0,重新再打开 VC 后再编译。
3、常见报错
1) 首次打开 VC++6.0 时,会出现如下的弹框:
图 3-1
这是 VC++6.0 的版本控制设置,在大型工程项目中多个人协同合作时对修改的版本进
行记录控制。此处笔者建议直接取消,进入即可。
2) 编译 satellite 工程时出现图 3-1,一般是重新导入 satellite.dsp,使用的是原始的工程
配置,include 和 lib 目录均没有添加进链接库。VC++6.0 编译项目时,不会重写 satellite.dsp
文件。
此时,需要将 MAK RTI 的 include、MAK VR-link 的 include、satellite 项目的 include 添加
到链接目录中,如图 3-2 所示:
图 3-1
图 3-2
4 / 6
凌说周刊,大家相互交流与学习的舞台
3) 如编译出现类似“cannot open XX.lib”,则是没有添加 lib 库目录,报错如图 3-3:
解决办法如图 3-4 所示,将三个 lib 库目录添加到链接目录中:
图 3-3
图 3-4
4) 如编译出现要求输入 license 的弹出框,说明 license 服务没有启动。
5) 如果报错:“没有找到*.fed”文件,说明当前工程的 debug 目录下没有.fed 文件,需
要到 D:\MAK 目录下拷贝对应的.fed 文件。另一种做法是,新建一个环境变量 RTI_CONFIG,
它的值域是 D:\envirenmentVari,将 D:\MAK 下的所有.fed 文件均拷贝到此目录下。
对于解决具体的某一个错误,例如:“没有找到‘XX’文件”,笔者建议先在网管项目中搜
索,如果能搜索到,则拷贝到工作目录下;如果没有搜索到,再选择上网求证。另外,很多
大博主写的中文博客还是很不错的,对于解决具体问题可能有帮助。如果纯脆为了对概念、
协议、原理等进行学习的话,建议阅读英文原版的帮助文档,解释更为直观。
四、ASN1. Include 与 lib 配置说明
在有了以上配置之后,可以开始导入“**项目”中的 satellite 工程。编译之后提示“无
法链接到 asn1rt.lib”“无法链接到 asn1per.lib”,此时在 satellite 工程文件中搜索此 lib 文件,
发现前人早已配置到工程文件中,具体路径是:/satellite/Mnmp/Lib 和/satellite/Mnmp/Include.
此处有两种配置 include 和 lib 库的方法:
方法一:在 VC++6.0 中按照 Tools—Options—Directories—Include files 的顺序,将
/satellite/Mnmp/Include 添加到链接目录中,按照 Tools—Options—Directories—library files 的
顺序将/satellite/Mnmp/Lib 添加到链接目录中;
方法 2:将/satellite/Mnmp/Lib 添加到环境变量 PATH 的值域中,这样以后不再需要添加
lib 库了。再按照方法一,将 include 目录添加到链接目录中。
在程序可以正常运行之后,可以运行 C:\MAK\makRti2.2\bin\rtiexec.exe 工具来查看运行
的联邦和联邦成员,若没有显示联邦及联邦成员信息,则检查 C:\MAK\rid.mtl 文件中的
RTI_useRtiExec 的值是否为 1,若不是,改为 1;RTI_udpPort 的值默认为 4000,且所有的成
员都要统一。
凌说周刊,大家相互交流与学习的舞台
5 / 6
五、结束语
至此,MAK VR-link、MAK RTI 实行联邦成员间的仿真通信功能已基本实现。下一步的工
作就是熟悉联邦成员之间的交互机制、仿真实现控制的思路和架构。
六、参考文献:
[1] 王勃 ... [等] 编. VR-Link 开发[M]. 国防工业出版社, 2009.
[2] 新浪博客.http://blog.sina.com.cn/s/blog_59b9a3a30100fnu2.html,2009.
[3] 新浪博客.http://blog.sina.com.cn/s/blog_59b9a3a30100fnu3.html,2009.
[4] 新浪博客.http://blog.sina.com.cn/s/blog_59b9a3a30100d7zx.html,2009.
[5] 黄英君. 空间综合信息网络管理关键技术研究与仿真[D]. 国防科学技术大学, 2006.
【声明:本文稿属笔者原创,仅供大家参考与交流,转载请附出处。】
Linggery(微信公众号:凌说周刊)
2017 年 8 月 27 日
后台回复关键词:RTI 程序
(欢迎相互交流学习~)
凌说周刊,大家相互交流与学习的舞台
6 / 6