我在下面发布的代码基本上用于从软件获取(连续流数据)并在接收到数据时显示该数据。我面临的问题是,软件(已经有“服务器”)在 Windows 上,但我需要在运行 Linux(Ubuntu)的单独系统上获取数据。
谁能指导我我需要对代码进行哪些更改才能使其在 Linux 上运行?
此外,由于它们通过网络“通信”,代码中是否会有任何更改以指向Windows 机器上的服务器?(我很抱歉这样的术语,我对此有点陌生,所以如果我弄错了,请纠正我)
#include "vrpn_Connection.h" // Missing this file? Get the latest VRPN distro at
#include "vrpn_Tracker.h" // ftp://ftp.cs.unc.edu/pub/packages/GRIP/vrpn
#include "conio.h" // for kbhit()
//== Callback prototype ==--
void VRPN_CALLBACK handle_pos (void *, const vrpn_TRACKERCB t);
//== Main entry point ==--
int main(int argc, char* argv[])
{
vrpn_Connection *connection;
char connectionName[128];
int port = 3883;
sprintf(connectionName,"localhost:%d", port);
connection = vrpn_get_connection_by_name(connectionName);
vrpn_Tracker_Remote *tracker = new vrpn_Tracker_Remote("Tracker", connection);
tracker->register_change_handler(NULL, handle_pos);
while(!kbhit())
{
tracker->mainloop();
connection->mainloop();
Sleep(5);
}
return 0;
}
//== Position/Orientation Callback ==--
void VRPN_CALLBACK handle_pos (void *, const vrpn_TRACKERCB t)
{
printf("Tracker Position:(%.4f,%.4f,%.4f) Orientation:(%.2f,%.2f,%.2f,%.2f)\n",
t.pos[0], t.pos[1], t.pos[2],
t.quat[0], t.quat[1], t.quat[2], t.quat[3]);
}
如果有人能提出一个“更简单”的替代方案,我将不胜感激。谢谢!