器件型号:OPT8241-CDK-EVM
工具/软件:TI C/C++编译器
尊敬的所有人:
我们希望同步固件多个 OPT8241摄像头。
该流程的设计如下。
1.使用 USB 电缆将摄像头1连接至计算机。
2.启动 Voxel Viewer 并开始流式传输。
3.使用 USB 电缆将摄像头2连接至计算机。
4.启动 Voxel Viewer 的另一个实例并开始流式传输。
我们需要注册回叫两次、每个摄像头一个。 每个摄像头应具有不同的缓冲器。 (请参阅 :github.com/.../Qt)
首先、我们尝试将 grabber.cpp 和 grabber.h (在 github.com/.../Qt 中)集成到我的主代码中。我们发现回调函数只执行一次、无法继续运行。为什么?
在主代码中忽略哪个设置? 我们下一步可以做什么?
此致、
盛华
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
部分代码如下所示。
主代码:
CameraSystem 系统;
//获取所有有效检测到的设备
- 常量矢量 设备= sys.scan();
- DevicePtr toConnect;
- DepthCameraPtr depthCamera = sys.connect (toConnect);
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~μ A
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~μ A
- Grabber Graber1 (depthCamera、Grabber::FRAMEFLAG_DEPTY_FRAME、sys);
- Grabber1.start();
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~μ A
网址为 grabber.cpp
空捕捉器::_callback (DepthCamera &depthCamera、const Frame &Frame、DepthCamera::FrameType 类型)
{
锁定 _(_mtx);//只运行一次
~~~~μ A
否则(type = DepthCamera::frame_XYZI_point_cloud_frame)
{
if (_qXYZIFram.size ()>= FIFO_SIZE)
{
XYZIPointCloudFrame *f =_qXYZIFrame.front();
_qXYZIFrame.pop_front();
if (f!= NULL)
删除 f;
}
XYZIPointCloudFrame *NF =新的 XYZIPointCloudFrame;
*NF =*动态转换 (框架);
_qXYZIFrame.push_back (NF);
帧计数++;
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



