6.3.3底层接口函数.pdfVIP

  • 0
  • 0
  • 约2.27千字
  • 约 2页
  • 2020-02-07 发布于江苏
  • 举报
北京航空航天大学学位论文 6.3.2实时控制的实现 山控制程序功能可以看出,控制程序的最主要功能就是实时计算出各窗口视点参数 及运动体控制信息参数。在虚拟人的智能驾驶行为控制程序中,首先通过设计的虚拟人 智能模块每帧实时计算出虚拟人驾驶车辆行驶过程中车辆所在的位置和方向角,然后根 据这些值得出相应各观察窗口的视点位置和方向角及各种运动体如虚拟人手臂、方向盘 等运动体的六自由度运动控制信息 (位置、方向角)。对于其他不受虚拟人行为影响的 物体的运动,如千扰车辆,运动控制模块根据其各自运动规律来进行逐帧的运动控制信 息计算。所有计算结果将作为此帧的显示参数,图像发生器根据这些输入对场景进行重 新运算,并将图像输出到显示装置。 当图像发生器所需的此帧数据准备好时,控制程序在PC中申请一块内存来存放这 些数据,接着与EagleIG通讯,如果EagleIG完成了上一帧图像的处理,就向EagleIG 中传输数据。在EagleIG进行此帧图像显示的同时,控制程序又进行下一帧的数据计算。 控制程序中实现此功能的两个函数是: SendPushdataToBuffer()刃将数据存入PC内存中 SendDataToEagle();//将PC内存中的数据传输到EagleIG 为了便于用户直观的获得信息和对虚拟人的行为进行精确的掌握,控制程序也提供 两种输出方式,一种是以示意图的方式在用户面进行展示虚拟人的驾驶过程,包括驾驶 路线和道路情况等;一种是以文本文件的格式记录了虚拟人的驾车轨迹,包括位置、速 度、和偏航角。路线示意图如上图所示,文本文件的格式如下: X:317.49 Y.223.50 Speed:78.2777 Heading:90.0000 X:317.49 Y:223.74 Speed:59.7656 Heading:90.0000 6.3.3底层接口函数 EagleIG系统为用户提供了具有通讯功能的一些接口函数,以下列举几个常用的接 日函数: 83 」七京航空航天大学学位论文 externvoidcigioinit(shortirg); //置中断号 externvoidigrun(); //)台动Eagle extemvoid ig_halt(); //停止Eagle externvoidcigioexit(); //退出Eagle externvoidsetesaddr(longaddr); //置Eagle内存地址 externvoidget-addr(longaddr); //读Eagle内存地址 externlong in_long(longaddr); //读长整型数据 (指定地址) externvoid outlong(longaddr,longdata,longcount); //连续写count个长整型的相同数据 (首地址指定) externfloatin_float(longaddr); l/读实型数据 (指定地址) externvoidoutfloat(longaddr,floatdata);//向指定内存地址中写入一个实型数据 externvoid in-mem(longaddress,void*buffer,intcount); //将address开始的count个数据写到指针buffer指定的内存中 externvoid out一mem(longaddress,void*buffer,intcount); //将指针buffer处的count个数据写到address开始的内存中 控制程序向EagleIG传输数据时,需知道图像发生器状态,为此EagleIG定义了 CIGIO结构体: 勿pedefstmct{ shorthalt; //TRUE=停止下一个中断 void*bufrec一ist;//指向Bufrec链接表头 longpoly_c

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档