} void VRPN_CALLBACK handle_button( void* userData, const vrpn_BUTTONCB b ) { cout << \<< b.button << \<< b.state << endl; } void VRPN_CALLBACK handle_tracker(void* userData, const vrpn_TRACKERCB t ) { cout << \<< t.sensor << \<< t.pos[0] << \<< t.pos[1] << \<< t.pos[2] << endl; } int main(int argc, char* argv[]) { vrpn_Analog_Remote* vrpnAnalog = new vrpn_Analog_Remote(\); vrpn_Button_Remote* vrpnButton = new vrpn_Button_Remote(\); vrpn_Tracker_Remote* vrpnTracker = new vrpn_Tracker_Remote( \); vrpnAnalog->register_change_handler( 0, handle_analog ); vrpnButton->register_change_handler( 0, handle_button ); vrpnTracker->register_change_handler( 0, handle_tracker ); while(1) { vrpnAnalog->mainloop(); vrpnButton->mainloop(); vrpnTracker->mainloop(); } return 0; } (说明:这个图也是原文中的图片,自己测试时不是很方便截图,不过效果是类似的,点击鼠标按键时会有“Button”。)
不太清楚原文中的tracker是如何测试的。
下面是Wiimote,由于没有这东西,就不详细介绍了,原文中介绍的也不多。
Going further with VRPN
The VRPN server can be on another machine. You can have access to the devices plugged to another machine simply by specifying the network address of the vrpn_server when you create your remote devices.
教程——使用VRPN(2)
2013-06-02 11:21:16| 分类: 学习 | 标签:学习 教程 |举报 |字号大中小 订阅
前面一篇文章介绍了如何配置VRPN server,以及进行了一个简单的测试。这里将介绍如何用VRPN编写简单的程序。在进行下面的学习前,首先应该按照“在Windows下安装VRPN(Virtual Reality Peripheral Network)”这篇文章介绍的,安装好VRPN,并进行配置。同样的这篇文章也是翻译的这篇文章。
一个简单的client
下面是得到Analog值的简单代码: #include \ #include
现在进行一些解释:
vrpn_Analog_Remote* vrpnAnalog vrpn_Analog_Remote(\); = new vrpn_Analog_Remote是一个类,允许你连接到一个已经定义了驱动和一个Analog输出的vrpn server。这个构造函数吸收驱动的名字和server的网络地址。