基于Unity动态生成三维场景的仿真系统及其实现方法_3

文档序号:9327056阅读:来源:国知局
将设备模型库中每种类型的设备三维模型初始位置坐标(X,y,z),设置为(33,1-7, 3.8),此坐标为设备在机房模型中摆放时指定的起始坐标。将上述设置好初始坐标的机房模型和设备模型保存成为.prefab预设模型文件,并分别存到Unity的机房模型库和设备模型库中。
[0040]步骤2.、在Unity中新建C#程序读取自定义配置文件,自动生成三维场景。
[0041]2-1、自定义配置文件中分层次定义了机房类型、网元个数、每个网元的设备型号、设备每个槽位的单板型号,如图2所示。
[0042]所述自定义配置文件的第一层定义了机房类型的名称和网元的个数;其第二层定义了不同网元的网元编号、设备类型名称;其第三层定义了设备每个槽位编号及对应的单板类型名称。
[0043]所述自定义配置文件的层次结构如图2所示。
[0044]下列是一个应用实例中的配置文件定义格式:
[220kv_2]
<1_0SN7500>
Slot_l_SL16A
Slot_2_NULL
Slot_38_NULL<2_0SN7500>
Slot_l_SL16A
Slot_2_NULL
Slot_38_NULL
在[220kv_2]中,“220kv”为机房规格名称,“2”为网元个数;
在<1_0SN7500>和<2_0SN7500>中,“ I ”和“2”为网元编号,“0SN7500”为网元编号对应的设备型号名称,
在Slot_l_SL16A和Slot_2_NULL中,“Slot”为设备槽位名称关键字,“ I”和“2”为设备槽位号,“SL16A”为该槽位所插单板的型号名称,“NULL”表示该槽位插入空单板。
[0045]2-2、读取所述自定义配置文件,解析该文件中的数据:
扫描文件中的“[]”,如果未找到“[]”结束处理;如果找到了,取出“ □”中的字符串,并分割前后的的字符串和数据,并分别赋值给程序中的机房名变量和循环变量;
扫描文件中的“〈>”,取出“〈>”中的字符串,并分割“_”前后的的数据和字符串,并分别赋值给程序中的循环变量和设备名变量;
扫描“Slot”关键字,分割前后的的数据和字符串,并分别赋值给程序中的循环变量和单板名变量;
2-3、根据从文件中读取到的机房名称、设备名称、单板名称以及网元数量,通过C#程序循环调用Unity中的Resources.Load (Name)方法,从Unity中的机房模型库和设备模型库中载入之前预设好的.prefab模型;机房模型和第一个载入的设备模型将会按照之前设定好的位置摆放到三维场景中,之后循环载入的设备模型将根据Unity中transform,posit1n = new Vector3 ((f loat) (33.0-2.0*i),1.7f, 3.8f)方法,重新自动设定相应的位置。
[0046]步骤3、如图4所示,在三维场景仿真模块中新建监听线程,订阅实时数据库的消息频道,获取通信设备仿真模块中仿真设备运行状态的实时消息。
[0047]3-1、三维场景仿真模块与通信设备仿真模块,通过Redis数据库的“订阅/发布”机制进行消息和数据的传输,三维场景仿真模块根据所订阅的消息频道,监听接收通信设备仿真模块发送来的消息,并根据消息中的内容,实时更新设备模型的指示灯的状态。
[0048]3-2、三维场景仿真模块接收来自通信设备仿真模块的消息并进行解析,此消息的协议格式为:“状态标志_故障类型_网元设备ID_设备槽位ID”。
[0049]当三维场景仿真模块接收到消息后,对消息进行解析:根据将消息进行分割,首先判断状态标志位,如果为0,则属于正常状态,此时根据正常状态的指示灯显示规则刷新三维设备模型的指示灯状态;如果标志位为1,则属于异常状态,此时继续判断故障类型,包括:断纤、光纤劣化、单板离线、单板损坏等;确定故障类型后,判断故障点:网元设备ID和设备槽位ID,此后根据设备故障状态时指示灯的显示规则,更改对应故障点模型的指示灯为告警状态。
[0050]监听线程接收消息示例如下:
“1_ 断纤 _2_8”;
“I”表示此时为故障状态,故障类型为“断纤”,故障点为网元2对应设备的第8槽位单板所接的光纤。
[0051]步骤4、在三维场景中操作设备或修复设备故障,并将操作信息发送给通信设备仿真模块,进行仿真计算和判断。
[0052]4-1、在三维场景中根据告警指示,在相应故障点查找引发告警的故障设备,并根据故障类型进行相应的修复操作,包括:更换光纤,更换单板等;
故障修复操作步骤为:键盘控制Unity场景中的主摄像机模型移动到故障点设备所处的位置,鼠标选中所要修复的设备模型,单击鼠标右键,在弹出的菜单中选择操作项,如“更换设备”,然后在弹出的设备选取界面中,选择相应型号的设备,点击更换按钮,完成更换设备的操作。
[0053]4-2、完成修复操作后,三维场景仿真模块向通信设备仿真模块发送操作消息,包括修复设备的ID和操作的类型。其消息格式为:“操作类型_网元设备ID_设备槽位ID”。
[0054]如下所示:
“更换光纤_2_8”;
此消息表示,更换了网元2设备第8槽位单板所接的光纤。
[0055]4-3、三维场景仿真模块中的监听线程,接收通信设备仿真模块发送来的仿真计算结果:
如果之前修复操作无误,则三维场景仿真模块中的监听线程会接收到正常状态的消息,从而更新三维场景中相应设备的指示灯恢复到正常状态;如果之前的故障修复操作有误,则三维场景仿真模块中的监听线程仍将接收到异常状态的消息,三维场景中相应设备的指示灯仍然显示异常状态,此时,可继续执行步骤4,进行故障的检查和修复并发送操作消息,如此训循环执行。
[0056]以上所述实施方式仅为本发明的优选实施例,而并非本发明可行实施的穷举。对于本领域一般技术人员而言,在不背离本发明原理和精神的前提下对其所作出的任何显而易见的改动,都应当被认为包含在本发明的权利要求保护范围之内。
【主权项】
1.一种基于Unity动态生成三维场景的仿真系统,其特征在于:其包括三维仿真模型库、场景配置文件库、三维场景仿真模块和数据通信模块;所述三维场景仿真模块包括场景显示模块和场景操作模块,所述场景操作模块的控制输出端接入场景显示模块的指令输入端;所述三维仿真模型库和场景配置文件库的输出端接所述场景显示模块的数据输入端,所述场景操作模块经数据通信模块与外部的设备仿真程序相通信。2.根据权利要求1所述的基于Unity动态生成三维场景的仿真系统,其特征在于:所述三维仿真模型库包括通信机房模型库和通信设备模型库;所述通信机房模型库包括省级调度中心通信机房三维模型、地市级调度中心通信机房三维模
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1