《VR-Link开发》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:王勃,艾祖亮,方伟等编译
  • 出 版 社:北京:国防工业出版社
  • 出版年份:2009
  • ISBN:9787118064797
  • 页数:298 页
图书介绍:本书内容包括:绪论、安装和配置VR-LINK;VR-LINK概念;编译VR-LINK应用程序;协议无关接口;HLA关联接口;FOM灵活性;DIS关联接口;TENA关联接口;VR-LINK实用类;实例和实用程序;经验实例等内容。

第1章 绪论 1

1.1 协议无关API 1

1.2 VR-Link的功能部件 1

1.3 支持的仿真标准 3

1.3.1 支持HLA RTI1.3和RTI1516规范 4

1.3.2 HLA FOM支持 4

1.3.3 TENA支持 5

第2章 安装与配置VR-Link 6

2.1 安装VR-Link 6

2.1.1 在Windows系统上安装VR-Link 6

2.1.2 在UNIX系统上安装VR-Link 7

2.1.3 Windows系统下的Silent安装和卸载 8

2.2 VR-Link安装的文件 9

2.3 安装与使用FLEXlm许可管理器 10

2.3.1 FLEXlm客户端—服务器结构 10

2.3.2 安装与配置许可管理器 11

2.3.3 安装许可管理器软件 11

2.3.4 申请许可文件 11

2.3.5 复制许可文件到flexlm目录下 12

2.3.6 设置MAKLMGRD_LICENSE_FILE环境变量 12

2.3.7 添加另外的许可文件 13

2.3.8 为许可服务器和后台程序指定端口 13

2.3.9 运行许可服务器 14

2.3.10 Windows系统下将FLEXlm作为服务程序运行 14

2.3.11 FLEXlm许可管理器疑难故障的解决 15

2.4 安装RTI 16

2.4.1 安装M?K RTI 17

2.5 配置DIS应用程序的网络环境 17

2.5.1 广播地址和子网掩码(UNIX) 18

2.5.2 子网掩码(Windows) 18

2.5.3 UDP端口 18

第3章 VR-Link概念 19

3.1 VR-Link是多级工具包 19

3.1.1 多级访问 19

3.2 HLA、DIS和协议无关 19

3.2.1 高层体系结构(HLA) 20

3.2.2 DIS协议 21

3.2.3 协议无关 21

3.2.4 详细HLA、DIS信息获取 21

3.3 VR-Link概念综述 22

3.4 连接到演练 23

3.5 管理状态信息 24

3.5.1 管理本地仿真实体 24

3.5.2 管理远程实体 25

3.6 管理事件信息 25

3.6.1 发送本地交互 26

3.6.2 接收远程交互 26

3.7 其它仿真概念 26

3.7.1 管理时间 26

3.7.2 标识对象 28

3.7.3 使用回调 28

3.7.4 坐标系统 30

3.7.5 航迹推测和平滑 30

3.7.6 时戳 30

3.8 大小Endian报格式 31

3.9 VR-Link的基本例子 32

3.9.1 监听的例子 32

3.9.2 发送的例子 36

第4章 编译VR-Link应用程序 40

4.1 编译和链接VR-Link应用程序 40

4.1.1 函数库和头文件 40

4.1.2 第三方库 41

4.1.3 UNIX系统下编译指定仿真标准 41

4.1.4 UNIX下选择一个实例应用程序协议 42

4.1.5 Windows下编译指定协议版本 42

4.1.6 Windows下选择实例应用程序的协议 43

4.2 从C语言调用VR-Link 44

4.2.1 用C语言调用C++语言 44

4.2.2 用C++语言调用C语言 44

4.2.3 C和C++包含的头文件 44

4.3 交付VR-Link应用程序给使用者 45

第5章 协议无关接口 46

5.1 协议无关接口介绍 46

5.2 连接到多个演练 46

5.2.1 为HLA创建演练连接 47

5.2.2 为DIS创建演练连接 48

5.2.3 初始化应用程序 48

5.2.4 DtExerciseConn成员函数 50

5.3 处理交互 52

5.3.1 发送交互 53

5.3.2 接收交互 54

5.4 处理实体 56

5.5 处理本地仿真实体 57

5.5.1 创建DtEntityPublisher 57

5.5.2 设置实体状态 59

5.5.3 坐标 60

5.5.4 设置实体状态的例子 61

5.5.5 使用DtEntityPublisher∷tick()函数 62

5.5.6 设置位置与方位的阈值 62

5.5.7 删除本地仿真实体 63

5.6 处理远程实体 63

5.6.1 创建反射实体列表 63

5.6.2 通过DtReflectedEntityList遍历 64

5.6.3 推迟反射对象的发现 65

5.6.4 检查实体的状态 66

5.6.5 DR 68

5.6.6 使用平滑 69

5.6.7 掌握实体加入或离开演练的时机 70

5.6.8 状态更新到达时通知应用程序 71

5.6.9 处理实体超时 73

5.6.10 派生DtReflectedEntity 74

5.7 标识对象 75

5.7.1 DIS的对象标识 75

5.7.2 HLA中的对象标识 75

5.7.3 VR-Link如何标识对象 76

5.8 处理其它类型对象 77

5.8.1 管理发射器 78

5.9 坐标视图 80

5.9.1 地形坐标视图 81

5.9.2 UTM坐标视图 82

5.9.3 笛卡儿坐标视图 83

5.10 铰链部件 83

5.10.1 检查铰链部件数据 83

5.10.2 设置铰链部件数据 85

5.11 附加部件 87

5.12 多线程中使用独立VR-Link对象 88

5.13 远程控制M?K产品 89

第6章 HLA关联接口 90

6.1 介绍 90

6.2 直接与RTI交互 90

6.2.1 使用RTI1516协议创建应用程序 90

6.2.2 联邦成员初始化服务 91

6.2.3 RTI初始化服务 91

6.3 获取关于FOM的信息 93

6.4 发布和定购FOM类和属性 95

6.4.1 发布类和属性 95

6.4.2 订购类和属性 96

6.5 管理HLA对象 98

6.5.1 获得对象添加和删除的时机 100

6.5.2 截取反射属性值 101

6.5.3 强制属性更新 102

6.5.4 反射本地更新 102

6.6 所有权管理 103

6.6.1 实现所有权管理 105

6.7 使用DDM 109

6.7.1 地理坐标DDM 110

6.7.2 使用地理坐标DDM发布 110

6.7.3 使用地理坐标DDM反射 110

6.7.4 带有区域的交互 111

6.7.5 不利用VR-Link地理实现的DDM 112

6.8 使用DtInteraction类 112

6.8.1 DtInteraction相关的输出成员函数 113

6.9 一般HLA问题 114

6.9.1 时戳 114

6.9.2 注册和响应同步点 114

6.9.3 时间管理 116

6.9.4 VR-Link对RTI服务的调用 119

6.10 HLA1.3和IEEE1516联邦成员间的互操作性 121

6.11 FOM灵活性 122

第7章 FOM灵活性 123

7.1 介绍 123

7.2 FOM映射概念概述 123

7.3 VR-Link API所需的FOM映射信息 124

7.4 FOM映射信息 125

7.5 建立FOM映射器的类映射 126

7.5.1 选择对象类发布 126

7.5.2 映射单个FOM类到发布器 126

7.5.3 订购对象类 127

7.5.4 订购交互类 128

7.6 创建DtInteraction实例 128

7.7 属性和参数的编码与解码 129

7.7.1 编码器和解码器 129

7.7.2 编码和解码函数 130

7.7.3 编码与解码工厂 134

7.8 选择DtFomMapper 135

7.8.1 传递一个DtFomMapper的实例 136

7.8.2 传递共享库名称 136

7.8.3 低效运行FOM映射器的创建函数 138

7.8.4 在构造DtExerciseConn之后配置FOM映射器 138

7.8.5 使用不同版本的RPR FOM 138

7.8.6 派生用户自己的DtFomMapper 139

第8章 FOM灵活性举例 141

8.1 VR-Link FOM映射和扩展举例 141

8.2 从新的FOM创建到VR-Link类的映射 141

8.2.1 编写编码和解码类 142

8.2.2 配置FOM映射器 142

8.3 向RPRFOM类添加属性和参数 146

8.3.1 创建DtEntityStateRepository的子类 146

8.3.2 创建DtFireInteraction的子类 147

8.3.3 向FOM映射器中增加属性和参数映射 148

8.4 创建新的交互类 153

8.4.1 创建新的交互 153

8.4.2 创建新的解码和编码函数 158

8.4.3 使用新类 161

8.5 创建新的对象类 162

8.5.1 创建一个新的状态池 163

8.5.2 创建新的发布器、反射对象和对象列表 165

8.5.3 创建编码器和解码器类 168

8.5.4 在应用程序中使用新类 171

第9章 使用VR-Link代码生成器 173

9.1 简介 173

9.1.1 安装VR-Link代码生成器 174

9.2 启动VR-Link代码生成器 174

9.2.1 VR-Link代码生成器窗口 174

9.3 使用代码生成器 174

9.3.1 载入FOM定义文件 174

9.3.2 选择要生成的对象和交互 174

9.3.3 从对象中移除类到生成列表 176

9.3.4 配置代码生成参数 176

9.3.5 选择输出目录 177

9.3.6 生成对象和交互 177

9.4 生成的代码 177

9.4.1 枚举型 178

9.4.2 数据类型 178

9.4.3 对象和交互 178

9.4.4 工程文件/make文件 178

9.4.5 不能够被解码和生成的属性和类型 179

第10章 DIS关联接口 180

10.1 处理PDU 180

10.1.1 发送PDU 181

10.1.2 接收PDU 181

10.1.3 在PDU报头检查和设置数据 184

10.1.4 获得PDU的网络描述 185

10.1.5 DtPdu构造函数 185

10.1.6 DtPduFactory 187

10.1.7 在PDU类中使用外部缓存 188

10.1.8 复制PDU 189

10.1.9 获取对象的ID 189

10.2 处理非标准PDU 190

10.2.1 使用DtUnknownPdu 190

10.2.2 派生DtPdu的类 192

10.3 配置用户连接到DIS网络连接 200

10.3.1 DtExerciseConn构造函数 200

10.3.2 配置DtNetSocket 201

10.3.3 使用异步IO 202

10.3.4 配置DtClientSocket和数据包服务器(UNIX) 203

10.3.5 网络之间的通信(DtGroupSocket) 204

10.3.6 订购组播地址 205

10.3.7 过滤PDU 206

10.3.8 打包和解包PDU 206

10.3.9 使用DtSocket发送信息包 207

10.3.10 使用DtSocket接收包信息 207

10.4 阻止引入的实体状态PDU 209

第11章 TENA关联接口 211

11.1 介绍 211

11.2 编译和链接 211

11.3 创建TENA演练连接 212

11.3.1 命令行选项 212

11.4 发送交互 213

11.5 TENA VR-Link中的实体 213

11.6 TENA的时间管理 214

11.7 LROM映射 214

11.7.1 DtObjectInterface类 215

11.7.2 DtMassageInterface类 215

11.7.3 LROM映射表细节 216

11.7.4 建立LROM映射器接口映射 216

11.7.5 利用对象接口类进行订购 217

11.7.6 选择消息接口类发送交互 217

11.7.7 利用消息接口类订购TENA消息 218

11.8 LROM映射器(LROM Mapper) 219

11.8.1 LROM映射器举例 219

11.9 TENA网络转储 220

11.10 安装TENA软件 220

11.10.1 安装TENA中间件 220

11.10.2 创建M?K对象模型 221

11.10.3 运行TENA应用程序 224

第12章 VR-Link实用类 225

12.1 矢量和矩阵类 225

12.1.1 使用DtVector类 225

12.1.2 使用DtDcm类 226

12.1.3 DtVector和DtDcm语义 227

12.1.4 矢量和矩阵操作函数 227

12.2 方位、欧拉角和DtTaitBryan类 228

12.2.1 欧拉角和矩阵表示之间的转换 228

12.3 坐标转换 229

12.3.1 地心坐标系 229

12.3.2 大地坐标系 229

12.3.3 地形坐标系 231

12.3.4 投影坐标系(UTM) 233

12.3.5 地形坐标和UTM坐标的不同 234

12.3.6 低层坐标转换函数 235

12.4 用DtList创建链接列表 236

12.5 诊断类 238

12.5.1 使用DtOutput流进行输出 239

12.5.2 在Windows中输出诊断信息 239

12.6 DtException类 240

12.7 操作IP地址的函数 240

12.8 各种全局函数 241

第13章 实例和实用程序 242

13.1 关于应用 242

13.1.1 工具实例的许可执行 242

13.2 f18程序 242

13.2.1 f18配置文件 244

13.2.2 开火 245

13.2.3 响应爆炸信息 245

13.2.4 绝对时戳 245

13.2.5 使用更改的FOM 245

13.3 从其它语言中调用VR-Link 246

13.4 发射器(Launcher) 246

13.5 netdump(DIS) 246

13.6 hlaNetdump(HLA) 247

13.7 nethex(DIS) 249

13.8 通话(Talk)和监听(Listen) 249

13.9 vdc——VR-Link后台控制器(UNIX) 250

13.9.1 vdc实例 250

13.9.2 vdc诊断 251

13.10 M?K数据包服务器(UNIX) 251

13.10.1 数据包服务器模式 251

13.10.2 数据包服务器的配置 252

13.10.3 应用程序如何与数据包服务器连接 252

13.10.4 使用数据包服务器 252

13.10.5 启动数据包服务器 253

13.10.6 停止数据包服务器 255

13.10.7 数据包服务器的控制 255

13.10.8 Ping客户端 255

13.10.9 包分类 256

13.10.10 状态命令 256

13.10.11 队列长度 256

13.10.12 技术注解 256

13.11 buffgrep(UNIX) 258

13.11.1 buffgrep实例 258

第14章 经验实例 259

14.1 实例1:分布式仿真系统数据接口 259

14.1.1 系统组织与结构 259

14.1.2 加入到演练连接 260

14.1.3 数据管理 262

14.1.4 结论 266

14.2 实例2:FOM扩展 268

14.3 实例3:时间管理 272

14.3.1 时间概念 272

14.3.2 时间管理原则 272

14.3.3 时间推进机制 273

14.4 实例4:仿真互连体系结构 277

14.4.1 RTI体系结构 278

14.4.2 仿真系统内部互连体系结构 280

14.4.3 仿真系统之间互连体系结构 282

14.4.4 仿真系统互连网络的组建 283

附录A 术语 285

附录B M?K系列产品 296

参考文献 298