2019-09-09:
1.修复 调用IDriverInterface::Close() 被阻塞导致主程序退出异常的bug
2.修复 获取参数异常,出现段错误的bug,请参main.cpp 56、57行的方式定义参数接收缓冲区
unsigned char *module_info = new unsigned char[FLASH_MAX_SIZE];
ModuleParamInFlash<1> moddule_param = { 0 }; //标定参数等信息等
1.运行环境x86_64,目前在Ubuntu 14.04、16.04、18.04, centos7.5测试可用,其它64位linux系统理论上来说可用。
2.运行环境aarch64 ubuntu16.04测试可用,其它64位linux系统理论上来说可用。
3.程序需要使用root权限去运行,aarch64架构和x86_64架构需使用不同的动态库文件。
4.模组需要插到usb3.0接口上使用。
5.各个函数参数定义及相关说明请参考include目录下头文件及其注释。
6.camera 支持分辨率 1280x800x2 (25fps 50fps 100fps), 640x400x2 (25fps 50fps 100fps 200fps)。
7.imu数据频率(imuFreq) 目前只支持 <1000hz, 且需要满足相邻两帧imu数据时间间隔为 >0 整数
8.固件更新方法 https://github.com/INDEMIND/ModuleFirmwareUpdate.git
以下是基本函数调用说明,具体操作可参考main.c
using namespace indem;
如:IDriverInterface *driver = DriverFactory();
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: 图像频率
param3: 图像分辨率 参数只支持 RESOLUTION_1280(1280x800x2)、RESOLUTION_640(640x400x2)
return:false 设备打开失败
调用如下:
driver->Open(1000, 50, RESOLUTION_1280);
如:
driver->SetCameraCallback(CameraCallbackFunction);
driver->SetIMUCallback(ImuCallBackFunction);
SetHotplugCallback(HMDHotplugCallback_func);
交叉编译工具下载:
下载链接 https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/aarch64-linux-gnu/
选择 gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz
解压交叉编译工具, 可根据需要修改交叉编译工具(同时修改build.sh 中 ”CROSS_COMPILE“ 选项):
tar -xvJf gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz
编译:
./build.sh
运行:
sudo ./main.sh width height camfps imufreq
如:sudo ./main.sh 640 400 25 200
编译:
./build.sh
运行:
sudo ./main.sh width height camfps imufreq
如:sudo ./main.sh 640 400 25 200