API调用¶
以下是基本函数调用说明,具体操作参考main.c
下载地址:https://github.com/INDEMIND/Driver_Linux
indem命名空间¶
using namespace indem;
调用DriverFactory()函数返回api对象指针
如:IDriverInterface *driver = DriverFactory();
设置回调函数¶
根据以下几个定义,实现三个回调函数,用于接收相关数据,回调函数参数定义可参考include/DriverInterface.h
typedef void(*DriverCameraDataCallback)(cameraData* data);
typedef void(*DriverIMUDataCallback)(IMUData* data);
typedef void(*DriverHotplugCallback)(bool bArrive);
如:
void ImuCallBackFunction(IMUData* data);
void CameraCallbackFunction(cameraData* data);
void HMDHotplugCallback_func (bool bArrive);
获取标定参数
函数原型:
bool GetModuleParams(int& version, unsigned char* params, size_t& len)
version: 模组内部固件版本标记,备用
params: 模组信息标定信息存放缓冲区
len: 接收到数据的长度,单位:byte
return: true 获取参数成功, false 获取参数失败
调用如下:
int version = 255;
size_t info_size = 0;
unsigned char *module_info = new unsigned char[(sizeof(struct ModuleParameters))];
struct ModuleParameters moddule_param;//标定参数等信息
driver->GetModuleParams(version, module_info, info_size);
memcpy(&moddule_param, module_info, sizeof(struct ModuleParameters));
调用设备打开接口,打开模组
函数原型:
bool Open(int imuFreq=1000,int imgFreq=50, IMAGE_RESOLUTION resolution= RESOLUTION_DEFAULT)
param1: imu数据频率(imuFreq) 目前只支持 <1000hz 且需要满足 1000/imuFreq 为>0 整数(imu寄存器中是以时间间隔为单位配置的)
param2: 图像频率 目前支持 25、50
param3: 图像分辨率 参数只支持 RESOLUTION_1280(1280x800x2)、RESOLUTION_640(640x400x2)
return:false 设备打开失败
调用如下:
driver->Open(1000, 50, RESOLUTION_1280);
调用回调函数接口配置回调函数
如:
driver->SetCameraCallback(CameraCallbackFunction);
driver->SetIMUCallback(ImuCallBackFunction);
SetHotplugCallback(HMDHotplugCallback_func);
更多内容请参考main.c