问题标签 [vrpn]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
7913 浏览

android - 使用 JNI 将大型 C++ 库编译到 Android NDK - Makefile Questions

我正在尝试用几个 Java 包装器编译一个 C++ 库 (VRPN),以便在 Android 应用程序中使用。使用 ndk-build 命令,我的 C++ 接口文件的第一行出现“未定义引用”错误,该文件引用了库中对象的构造函数。我相当确定我的代码是正确的——调用与方法头匹配,并且我有头文件和源文件来验证它是否已实现。我认为问题出在我的 Android.mk 文件上,该文件目前仅引用我的单个类。因此,代码似乎可以编译,但一旦找不到库其余部分的目标代码,就不会链接。我对 C++ 很陌生,所以我对 makefile 了解不多,但是我见过的“标准”makefile 都与 Android NDK 使用的不匹配,这显然隐藏了很多细节。如果我理解正确,在“标准”makefile 中,我只需命名输出文件及其需要的目标文件,然后是目标文件及其源文件和头文件等。我不知道如何强制 ndk- build 为库的其余部分创建目标代码并链接。

这是我当前的 Android.mk:

jni_vrpn_button.h:

jni_vrpn_button.cpp:

想法?

编辑:忘记发布错误:

$ $CRYSTAX/ndk-build SharedLibrary : libjni_vrpn_button.so /cygdrive/c/Development/android-ndk-r4-windows-crystax-4/android-ndk-r4-crystax/sources/string/obj/l ocal/armeabi/ objs/jni_vrpn_button/jni_vrpn_button.o:在函数 Java_jni_VrpnButton_vrpn_1Button_1 initialize': /cygdrive/c/Development/android-ndk-r4-windows-crystax-4/android-ndk-r4-crystax/sources/string/jni/j ni_vrpn_button.cpp:18: undefined reference to vrpn_Button_Example_Server::vrpn_Button_Example_Serve r(char const*, vrpn_Connection*, int, double)' collect2: ld 返回 1 个退出状态 make: *** [/cygdrive/c/Development/android- ndk-r4-windows-crystax-4/android-ndk-r4-crystax/sources/s 字符串/obj/local/armeabi/libjni_vrpn_button.so] 错误1

0 投票
3 回答
24632 浏览

c++ - 函数调用缺少参数列表以创建指针

我尝试通过 VRPN 服务器将我的应用程序连接到 OpenViBE。在我尝试添加代码以将我的应用程序连接到 VRPN 服务器之前,我的应用程序运行良好。

我的代码如下所示:

MainWindow.c代码:

MainWindow.h代码:

使用此代码,当我尝试运行我的应用程序时,我得到:

我尝试通过错误建议编辑代码,但我收到另一个错误:

我四处寻找,但没有找到任何可用的解决方案。

方法checkChannelshandle_analog我从这段代码中“复制”,一切正常:

我在哪里做错了?感谢所有回复。

0 投票
1 回答
347 浏览

java - Java VRPN 按钮服务器

我正在尝试使用VRPN将刺激数据从我的Java应用程序发送到OpenViBE.

我可以从 OpenVibe 中包含的 VRPN 服务器接收 Java 中的模拟和按钮数据,使用java_vrpn and the included test classes (AnalogTest.java, ButtonTest.java)

中包含的示例java_vrpn仅提供了发送短信的可能性

如何从 Java VRPN 服务器发送按钮数据?

请,任何帮助将不胜感激!
这东西让我发疯,我什至找不到 vrpn java lib 是否可以做到这一点!

0 投票
1 回答
631 浏览

macos - Mac OS X 中的 vrpn 和 libusb 链接错误

当我尝试vrpn 7.33在 Mac 上编译时出现以下错误。它说这libusb是为不同的架构编译的,而不是vrpn正在编译的:

但是,当我重新编译libusb将架构更改为时,x86_64我开始收到以下错误:

注意链接器现在是如何搜索原始i386架构的。

为什么vrpn在这两种情况下都抱怨?

0 投票
1 回答
669 浏览

python - 在 Windows 上使用 Python 3.4 64 位构建 VRPN 服务器

我正在尝试在 Windows 7 64 位上使用 Python 3.4 64 位构建带有 Python3 标志的 VRPN 服务器,但似乎存在问题。BlenderVR 软件需要这个。

这是我的程序:

  • 1)我使用CMake创建 makefile(我使用的是 3.4.0 版本,但我也尝试了不同的版本)。我用这个命令来做(那些标志应该在那里,但没有它们的结果似乎是一样的):

cmake -G"MinGW Makefiles"
-HD:\My\BlenderVR\plugins\vrpn
-BD:\My\BlenderVR\plugins\cmake
-DVRPN_BUILD_PYTHON=OFF
-DVRPN_BUILD_PYTHON_HANDCODED_2X=OFF
-DVRPN_BUILD_PYTHON_HANDCODED_3X=ON

我曾经也添加过这些标志,但似乎没有它们也能找到 Python

-DPYTHON_INCLUDE_DIR=D:\My\BlenderVR\Required\Python3\include
-DPYTHON_LIBRARY=D:\My\BlenderVR\Required\Python3\libs\python34.lib

正确找到了 Python,并且此操作不会引发任何错误。

  • 2)然后我使用mingw32-make.exe构建它,我得到这个错误:

[ 90%] 链接 CXX 共享模块 vrpn.pyd
D:/My/BlenderVR/Required/Python3/libs/python34.lib:添加符号时出错:文件格式无法识别
collect2.exe:错误:ld 返回 1 退出状态
python\ CMakeFiles\vrpn-python.dir\build.make:505:目标 'python/vrpn .pyd' 的配方失败 mingw32-make[2]: * * * [python/vrpn.pyd] 错误 1
​​CMakeFiles\Makefile2:3247:目标“python/CMakeFiles/vrpn-python.dir/all”的配方失败 mingw32-make[1]: * * * [python/CMakeFiles/vrpn-python.dir/all]
错误 2 Makefile:159: 目标配方all'
mingw32-make失败:[all] 错误 2

vprn.pyd是我未来工作的关键。

我发现它需要libpython34.a文件(可能)。当我创建它并复制到 Python3/libs 文件夹时,它可以正常工作并且没有错误地完成,但是装箱的vprn.pyd没有按应有的方式工作。

我需要的是让import vrpn在 python 中使用这个简单的测试(附加构建vrpn.pyd的路径):

它使我的整个计算机滞后了一段时间,然后弹出 Python 已停止工作。

我怀疑问题出在我创建的libpython34.a文件中:

我不知道我应该如何获取 libpython 文件。我已经尝试了具有许多 CMake 标志的各种版本的 CMake 和 MinGW(如 MinGWPy、TDM、w64)。我能够使用 32 位 Python 使其工作,但我需要 64 位版本,否则它不适用于 BlenderVR 环境。

我知道这是一个非常具体的问题,起初可能有点令人困惑,但我不知道该怎么说。我会很高兴有任何可以提供帮助的东西。谢谢你。

0 投票
1 回答
2350 浏览

c++ - CMAKE_OSX_DEPLOYMENT_TARGET 在优胜美地自动设置为“10.10”

我正在尝试在我的 OS X 10.10.5 上编译VRPN库。

我使用 :设置了cmake 配置ccmake ../vrpn。当我尝试配置项目时,出现以下错误:

最终 CMake 错误,cmake 的 TryCompile 配置失败

我在配置中看到了变量:

尝试再次配置项目时,我收到以下消息以及上一个错误:

显然,问题在于默认的 cmake 配置设置了错误的 SDK 版本。

我将版本更改为10.11

CMAKE_OSX_SYSROOT根据需要设置:

配置很好,但随后出现以下错误:

令我惊讶的是,在另一个 CMakeLists.txt 上,我尝试获取 Threads 库并且 cmake 执行很好:

我认为问题在于自定义CMAKE_OSX_SYSROOT并使CMAKE_OSX_DEPLOYMENT_TARGETThreads 包无法找到。但是每次我尝试从配置中删除CMAKE_OSX_DEPLOYMENT_TARGETand时,我都会收到第一条错误消息,并且会重置为.CMAKE_OSX_SYSROOTccmakeCMAKE_OSX_DEPLOYMENT_TARGET10.10

你有任何信息/测试可以尝试解决这个问题吗?

0 投票
1 回答
383 浏览

c++ - VRPN C++ 代码可在 Linux 上编译,但不能在 Windows 上编译

我在 Linux 上构建了一个 VRPN 客户端。它基于此:http ://www.vrgeeks.org/vrpn/tutorial---use-vrpn

这是一些代码:

以下是此代码中引用的回调:

这里是定义所有这些对 VRPN 的引用的地方:

https://github.com/vrpn/vrpn/blob/master/vrpn_Analog.h#L168 https://github.com/vrpn/vrpn/blob/master/vrpn_Button.h#L225 https://github.com/ vrpn/vrpn/blob/master/vrpn_Tracker.h#L284

这些在 Linux 上编译时甚至没有警告,实际上可以使用。一切都按预期工作。这里的所有类型似乎都满足编译器g++。

但在 Windows 上,无论我使用 Visual Studio 2015 还是 MinGW 的 g++,前两个回调注册都会得到这个:

对于最后一个,我得到一个不同的错误:

现在我正在输入这个,我想也许 VRPN 在 Windows 上的编译方式不同,这就是为什么编译器现在对我的代码有问题。但我很不知道该怎么做。

0 投票
0 回答
150 浏览

networking - 为什么 VRPN 报告静止物体的这种可变跟踪数据?

我目前正在尝试使用虚拟现实外围网络 (VRPN) 将 NDI Polaris Spectra 光学跟踪设备连接到 Vizard VR 软件。最终目标是使用该设备进行头部和工具跟踪。
Polaris 附带的软件可以正常工作,以亚毫米精度跟踪与设备包装在一起的刚体。VRPN 声称支持 Polaris 跟踪设备,Vizard 包含一个 VRPN 插件。然而,当我使用 VRPN 与 Polaris 接口时,VRPN 报告的跟踪数据似乎差异很大,即使刚体和 Polaris 都连接到三脚架。

要将 VRPN 与 Polaris 一起使用,我编辑了 vrpn.cfg 文件,添加了以下未注释的行:

(我已经确认Polaris设备连接到COM2。只有一个刚体要跟踪,在8700449.rom文件中有描述。我也用Polaris附带的NDI软件确认这是正确的我正在尝试跟踪的刚体的文件。)

然后我运行 vrpn_server.exe 程序,它报告以下内容:

根据 VRPN wiki,我通过在另一个 cmd 窗口中运行 vrpn_print_devices.exe 来测试跟踪是否正常工作:

如果我正确理解这里的比例以米为单位,这些位置的跳跃非常大。(我还要注意 vrpn_print_devices.exe 打印的数据被截断了。)
由于 Polaris 附带的 NDI 软件非常准确地跟踪同一个刚体,我假设位置的跳跃不是由于环境因素(比如房间内的 IR 光源等)。刚体使用 NDI 提供的无源回射跟踪点。我目前在 Windows 7 上运行 VRPN。
虽然我怀疑问题与 VRPN 相关,但也有可能是 Vizard 的 VRPN pluing 无法正确读取来自 VRPN 的数据。这是我用于将跟踪对象链接到主视点的 Vizard (python) 代码。 

但是,这似乎是源自 VRPN 的问题。是否有任何我错过的配置或导致这种不准确跟踪的原因?
谢谢!

编辑:VRPN 是否有可能假设错误的小/大端编码?

0 投票
1 回答
113 浏览

java - 获取处理以读取 Java 文件输出/值

我正在编写一个程序来使用处理从一个 VRPN 设备读取按钮值和一个在命令行中完美运行的示例 Java 文件。

我已经使用适当的库/文件设置了我的草图文件夹,我只需要重新配置 Java 代码以将值发送到事物的 PDE 端(当前为 System.out.println())。我尝试建立一个 PApplet 对象,但在 ButtonTest 类中配置它时遇到了麻烦。我曾尝试在 Java 中研究这种功能,但找不到正确的术语。任何帮助将不胜感激!

我的文件结构:(PDE 文件当前为空/准备就绪并等待)

我的文件结构

仅供参考,我已设法将 Java 文件中的值发送到此处看到的处理草图,我似乎无法为该项目实现它https://forum.processing.org/two/discussion/3677/