VRPN学习笔记(二) 配置server和编写client

来源:互联网 发布:iscroll.js 下载 编辑:程序博客网 时间:2024/06/07 06:59

关于配置VRPN server的步骤,可以参考这个网站 http://www.vrgeeks.org/vrpn/tutorial---use-vrpn

为了检测是否配置成功,在DOS下运行vrpn_print_devices.exe


配置完了server,我们尝试一个简单的client代码

#include "vrpn_Analog.h"

#include <iostream>
using namespace std;


void VRPN_CALLBACK handle_analog( void* userData, const vrpn_ANALOGCB a )
{
int nbChannels = a.num_channel;

cout << "Analog : ";

for( int i=0; i < a.num_channel; i++ )
{
cout << a.channel[i] << " ";
}

cout << endl;
}

int main(int argc, char* argv[])
{
vrpn_Analog_Remote* vrpnAnalog = new vrpn_Analog_Remote("Mouse0@localhost");

vrpnAnalog->register_change_handler( 0, handle_analog );

while(1)
{
vrpnAnalog->mainloop();
}

return 0;
}

不要忘了在project properties中添加includelib,并且linkvrpn.lib,这些文件夹可以在C:/usr/local中找到。

然后就可以Build了,可能会出现错误 error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in ....obj 。原因是可能用Release模式链接了一个Debug编译出的lib,或者用Debug模式链接了Release编译的lib。这个时候换一下模式再编译就可以了。

运行你的这个小程序,该client会打印server提供的analog值,因为我在配置server时用鼠标作为外部设备,所以client打印的就是滑动鼠标时的坐标值。

0 0
原创粉丝点击