394 lines
24 KiB
C
394 lines
24 KiB
C
/********************************************************************************************
|
||
Copyright : XianZhisensorTechnologiesCo.,Ltd
|
||
File Name : zhicamera_api.cpp
|
||
Description: APIs accessed by users
|
||
Version :
|
||
Author : ss.chen
|
||
Data : 2020-4-16
|
||
History :
|
||
*********************************************************************************************/
|
||
#pragma once
|
||
#include "dkam_base_type.h"
|
||
#include <stdbool.h>
|
||
|
||
|
||
#ifdef __cplusplus
|
||
extern "C"
|
||
{
|
||
#endif
|
||
//using namespace std;
|
||
|
||
|
||
typedef struct CAMERA_OBJECT Camera_Object_C;
|
||
|
||
|
||
#ifdef _WIN32
|
||
#define DLLEXPORT_API extern __declspec(dllexport)
|
||
#define DLL_INT int __stdcall
|
||
#define DLL_CHAR_POINT char* __stdcall
|
||
#define DLL_BOOL bool __stdcall
|
||
#define DLL_UNSIGNED_LONG_LONG unsigned long long __stdcall
|
||
#define DLL_UNSIGNED_INT unsigned int __stdcall
|
||
#define DLL_VOID void __stdcall
|
||
#define DLL_CAMERA_OBJECT_POINT Camera_Object_C* __stdcall
|
||
#define DLL_DISCOVERYINFO DiscoveryInfo __stdcall
|
||
#define DLL_DOUBLE double __stdcall
|
||
#define DLL_FLOAT float __stdcall
|
||
#else
|
||
#define DLLEXPORT_API
|
||
#define DLL_INT int
|
||
#define DLL_CHAR_POINT char*
|
||
#define DLL_BOOL bool
|
||
#define DLL_UNSIGNED_LONG_LONG unsigned long long
|
||
#define DLL_UNSIGNED_INT unsigned int
|
||
#define DLL_VOID void
|
||
#define DLL_CAMERA_OBJECT_POINT Camera_Object_C*
|
||
#define DLL_DISCOVERYINFO DiscoveryInfo
|
||
#define DLL_DOUBLE double
|
||
#define DLL_FLOAT float
|
||
#endif
|
||
|
||
/*/////////////////////////////////////////////////////////////////////////////////////////////
|
||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||
******************************************相机相关操作*****************************************
|
||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||
/////////////////////////////////////////////////////////////////////////////////////////////*/
|
||
//发现相机
|
||
DLLEXPORT_API DLL_INT DiscoverCamera();
|
||
//创建相机
|
||
DLLEXPORT_API DLL_CAMERA_OBJECT_POINT CreateCamera(int camera_index);
|
||
//销毁相机
|
||
DLLEXPORT_API DLL_VOID DestroyCamera(Camera_Object_C* camera_obj);
|
||
//相机排序(0:IP 1:series number)
|
||
DLLEXPORT_API DLL_INT CameraSort(int sort_mode);
|
||
//获取相机的信息
|
||
DLLEXPORT_API DLL_DISCOVERYINFO GetCameraInfo(Camera_Object_C* camera_obj);
|
||
//获取相机的CCP状态(data输出0为可连接)
|
||
DLLEXPORT_API DLL_INT GetCameraCCPStatus(Camera_Object_C* camera_obj, int *data);
|
||
//获取相机xml所有节点名称
|
||
DLLEXPORT_API DLL_VOID GetCameraXMLNodeNames(Camera_Object_C* camera_obj, char node_names[][255], int* len);
|
||
//获取节点最大值
|
||
DLLEXPORT_API DLL_INT GetNodeMaxValue(Camera_Object_C* camera_obj, const char* key);
|
||
//获取节点最小值
|
||
DLLEXPORT_API DLL_INT GetNodeMinValue(Camera_Object_C* camera_obj, const char* key);
|
||
//获取int节点增量
|
||
DLLEXPORT_API DLL_INT GetNodeIncValue(Camera_Object_C* camera_obj, const char* key);
|
||
//获取相机节点value(camera_ret:相机索引号 key:寄存器的名称)
|
||
DLLEXPORT_API DLL_INT GetRegisterAddr(Camera_Object_C* camera_obj, const char* key);
|
||
//读string类型的寄存器
|
||
DLLEXPORT_API DLL_INT ReadStringRegister(Camera_Object_C* camera_obj, const char* key, char* reg_str);
|
||
//写string类型的寄存器
|
||
DLLEXPORT_API DLL_INT WriteStringRegister(Camera_Object_C* camera_obj, const char* key, unsigned short datasize, char* reg_str);
|
||
//相机IP(camera_ret:相机索引号)
|
||
DLLEXPORT_API DLL_CHAR_POINT CameraIP(int camera_index);
|
||
//相机的序列号
|
||
DLLEXPORT_API DLL_CHAR_POINT CameraSeriesNumberByIndex(int camera_index);
|
||
//设置log日志的等级开关,决定是否开启某一个等级的日志打印,默认关闭(0:关闭 1:开启)
|
||
DLLEXPORT_API DLL_VOID SetLogLevel(int error, int debug, int warnning, int info);
|
||
//连接相机(camera_ret:相机索引号)
|
||
DLLEXPORT_API DLL_INT CameraConnect(Camera_Object_C* camera_obj);
|
||
//开启数据流通道 (camera_ret:相机索引号 channel_index :数据流通道索引)
|
||
DLLEXPORT_API DLL_INT StreamOn(Camera_Object_C* camera_obj, unsigned short channel_index);
|
||
//开始接受数据 (camera_ret:相机索引号)
|
||
DLLEXPORT_API DLL_INT AcquisitionStart(Camera_Object_C* camera_obj);
|
||
//清空缓存区
|
||
DLLEXPORT_API DLL_VOID FlushBuffer(Camera_Object_C* camera_obj, unsigned short channel_index);
|
||
//设置最大的缓冲区
|
||
DLLEXPORT_API DLL_INT SetMaxBufferLength(Camera_Object_C* camera_obj, unsigned short channel_index, unsigned int size);
|
||
//获取buffer缓冲区大小
|
||
DLLEXPORT_API DLL_INT GetMaxBufferLength(Camera_Object_C* camera_obj, unsigned short channel_index);
|
||
//设置重发包比例
|
||
DLLEXPORT_API DLL_INT SetPacketResendRatio(Camera_Object_C* camera_obj, unsigned short channel_index, double ratio);
|
||
//获取重发包比例
|
||
DLLEXPORT_API DLL_DOUBLE GetPacketResendRatio(Camera_Object_C* camera_obj, unsigned short channel_index);
|
||
//设置select的超时时间
|
||
DLLEXPORT_API DLL_INT SetSocketSelectTimeout(Camera_Object_C* camera_obj, unsigned short channel_index, unsigned int timeout);
|
||
//获取select的超时时间
|
||
DLLEXPORT_API DLL_INT GetSocketSelectTimeout(Camera_Object_C* camera_obj, unsigned short channel_index);
|
||
//设置重发包超时时间
|
||
DLLEXPORT_API DLL_INT SetPacketTimeout(Camera_Object_C* camera_obj, unsigned short channel_index, unsigned int timeout);
|
||
//获取重发包超时时间
|
||
DLLEXPORT_API DLL_INT GetPacketTimeout(Camera_Object_C* camera_obj, unsigned short channel_index);
|
||
//设置block超时时间
|
||
DLLEXPORT_API DLL_INT SetBlockTimeout(Camera_Object_C* camera_obj, unsigned short channel_index, unsigned int timeout);
|
||
//获取block超时时间
|
||
DLLEXPORT_API DLL_INT GetBlockTimeout(Camera_Object_C* camera_obj, unsigned short channel_index);
|
||
//获取帧方面的统计数据
|
||
DLLEXPORT_API DLL_VOID GetBlockStatistics(Camera_Object_C* camera_obj, unsigned short channel_index,
|
||
unsigned int *completed_buffers,
|
||
unsigned int *failures,
|
||
unsigned int *timeouts,
|
||
unsigned int *underruns,
|
||
unsigned int *aborteds,
|
||
unsigned int *missing_frames,
|
||
unsigned int *block_camera_wrong,
|
||
unsigned int *size_mismatch_errors);
|
||
//获取包方面的统计数据
|
||
DLLEXPORT_API DLL_VOID GetPacketStatistics(Camera_Object_C* camera_obj, unsigned short channel_index,
|
||
unsigned int *received_packets,
|
||
unsigned int *missing_packets,
|
||
unsigned int *error_packets,
|
||
unsigned int *ignored_packets,
|
||
unsigned int *resend_requests,
|
||
unsigned int *resent_packets,
|
||
unsigned int *duplicated_packets);
|
||
//获取接收花费时间方面的统计数据
|
||
DLLEXPORT_API DLL_VOID GetRecieveTimeStatistics(Camera_Object_C* camera_obj, unsigned short channel_index, StatisticsData *o_statistics_data);
|
||
//获取网速的统计数据
|
||
DLLEXPORT_API DLL_INT GetNetSpeed(Camera_Object_C* camera_obj, unsigned short channel_index);
|
||
//获取帧率的统计数据
|
||
DLLEXPORT_API DLL_FLOAT GetBlockRate(Camera_Object_C* camera_obj, unsigned short channel_index);
|
||
//获取数据(camera_ret:相机索引号 channel_index :数据流通道索引 raw_data:接收数据的结构体 )
|
||
/*C++*/
|
||
//阻塞式抓取数据
|
||
DLLEXPORT_API DLL_INT Capture(Camera_Object_C* camera_obj, unsigned short channel_index, PhotoInfo *raw_data);
|
||
//try
|
||
DLLEXPORT_API DLL_INT TryCapture(Camera_Object_C* camera_obj, unsigned short channel_index, PhotoInfo *raw_data);
|
||
//超时抓取数据
|
||
DLLEXPORT_API DLL_INT TimeoutCapture(Camera_Object_C* camera_obj, unsigned short channel_index, PhotoInfo *raw_data, long long timeout);
|
||
//将char数据转为float类型
|
||
DLLEXPORT_API DLL_VOID Convert3DPointFromCharToFloat(Camera_Object_C* camera_obj, PhotoInfo *raw_data, float* output);
|
||
//将Rawdata数据转换成RGB888的图像数据
|
||
DLLEXPORT_API DLL_INT RawdataToRgb888(Camera_Object_C* camera_obj, PhotoInfo *rgb_data);
|
||
//获取点云的X平面数据
|
||
DLLEXPORT_API DLL_INT GetCloudPlaneX(Camera_Object_C* camera_obj, PhotoInfo *raw_data, short *imagedata);
|
||
//获取点云的Y平面数据
|
||
DLLEXPORT_API DLL_INT GetCloudPlaneY(Camera_Object_C* camera_obj, PhotoInfo *raw_data, short *imagedata);
|
||
//获取点云的Z平面数据
|
||
DLLEXPORT_API DLL_INT GetCloudPlaneZ(Camera_Object_C* camera_obj, PhotoInfo *raw_data, short *imagedata);
|
||
//保存点云某个平面数据
|
||
DLLEXPORT_API DLL_INT SaveCloudPlane(Camera_Object_C* camera_obj, PhotoInfo *raw_data, short *imagedata, char* path_name);
|
||
/*C++*/
|
||
|
||
//停止接受数据(camera_ret:相机索引号)
|
||
DLLEXPORT_API DLL_INT AcquisitionStop(Camera_Object_C* camera_obj);
|
||
//关闭数据流通道 (camera_ret:相机索引号 channel_index :数据流通道索引)
|
||
DLLEXPORT_API DLL_INT StreamOff(Camera_Object_C* camera_obj, unsigned short channel_index);
|
||
//相机断开连接 (camera_ret:相机索引号)
|
||
DLLEXPORT_API DLL_INT CameraDisconnect(Camera_Object_C* camera_obj);
|
||
/*/////////////////////////////////////////////////////////////////////////////////////////////
|
||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||
****************************************GVCP相关操作*******************************************
|
||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||
/////////////////////////////////////////////////////////////////////////////////////////////*/
|
||
//获取相机内参
|
||
DLLEXPORT_API DLL_INT GetCamInternelParameter(Camera_Object_C* camera_obj, int camera_cnt, float *Kc, float *K);
|
||
//获取相机外参
|
||
DLLEXPORT_API DLL_INT GetCamExternelParameter(Camera_Object_C* camera_obj, int camera_cnt, float *R, float *T);
|
||
//设置相机ip (camera_ret:相机索引号 ip mask gateway)
|
||
DLLEXPORT_API DLL_INT ForceIP(Camera_Object_C* camera_obj, char* ip, char* mask, char* gateway);
|
||
//判断相机的IP和PC的IP是否在同一网段
|
||
DLLEXPORT_API DLL_BOOL WhetherIsSameSegment(Camera_Object_C* camera_obj);
|
||
//设置相机种类 (0:红外;1:RGB)
|
||
DLLEXPORT_API DLL_INT SetCameraType(Camera_Object_C* camera_obj, int camera_cnt);
|
||
//获取相机种类 (0:红外;1:RGB)
|
||
DLLEXPORT_API DLL_INT GetCameraType(Camera_Object_C* camera_obj);
|
||
//获取相机的宽
|
||
DLLEXPORT_API DLL_INT GetCameraWidth(Camera_Object_C* camera_obj, int* width, int camera_cnt);
|
||
//设置相机的宽
|
||
DLLEXPORT_API DLL_INT SetCameraWidth(Camera_Object_C* camera_obj, int width, int camera_cnt);
|
||
//获取相机的高
|
||
DLLEXPORT_API DLL_INT GetCameraHeight(Camera_Object_C* camera_obj, int* height, int camera_cnt);
|
||
//设置相机的高
|
||
DLLEXPORT_API DLL_INT SetCameraHeight(Camera_Object_C* camera_obj, int height, int camera_cnt);
|
||
//写寄存器 (camera_ret:相机索引号 register_addr:寄存器的地址 data:接收寄存器的值)
|
||
DLLEXPORT_API DLL_INT WriteRegister(Camera_Object_C* camera_obj, unsigned int register_addr, int data);
|
||
//读寄存器 (camera_ret:相机索引号 register_addr:寄存器的地址 data:接收寄存器的值)
|
||
DLLEXPORT_API DLL_INT ReadRegister(Camera_Object_C* camera_obj, unsigned int register_addr, int* data);
|
||
//设置超时时间
|
||
DLLEXPORT_API DLL_INT SetHeartBeatTimeout(Camera_Object_C* camera_obj, int value);
|
||
//获取超时时间
|
||
DLLEXPORT_API DLL_INT GetHeartBeatTimeout(Camera_Object_C* camera_obj);
|
||
//设置相机曝光模式(camera_index:相机索引号 status:(1手动曝光,0自动曝光) camera_cnt:相机的摄像头0:红外摄像头 1:RGB摄像头)
|
||
DLLEXPORT_API DLL_INT SetAutoExposure(Camera_Object_C* camera_obj, int status, int camera_cnt);
|
||
//获取相机曝光模式 (camera_index:相机索引号 camera_cnt:相机的摄像头0:红外摄像头 1:RGB摄像头)
|
||
DLLEXPORT_API DLL_INT GetAutoExposure(Camera_Object_C* camera_obj, int camera_cnt);
|
||
//设置RGB摄像头自动曝光增益的级别(>=1 仅支持RGB摄像头) (camera_index:相机索引号 camera_cnt:相机的摄像头0:红外摄像头 1:RGB摄像头 level:曝光增益等级)
|
||
DLLEXPORT_API DLL_INT SetCamExposureGainLevel(Camera_Object_C* camera_obj, int camera_cnt, int level);
|
||
//获取RGB摄像头自动曝光增益的级别,仅支持RGB摄像头(camera_index:相机索引号 camera_cnt:相机的摄像头0:红外摄像头 1:RGB摄像头)
|
||
DLLEXPORT_API DLL_INT GetCamExposureGainLevel(Camera_Object_C* camera_obj, int camera_cnt);
|
||
//设置相机曝光类型int status >0 多重曝光 不能是0
|
||
DLLEXPORT_API DLL_INT SetMutipleExposure(Camera_Object_C* camera_obj, int status);
|
||
//获取相机曝光类型
|
||
DLLEXPORT_API DLL_INT GetMutipleExposure(Camera_Object_C* camera_obj);
|
||
//设置曝光时间utimes:曝光时间: 红外镜头范围1000 - 100000um, RGB镜头范围1000 - 56000um, 默认16600, camera_cnt:0是红外, 1是RGB
|
||
DLLEXPORT_API DLL_INT SetExposureTime(Camera_Object_C* camera_obj, int utime, int camera_cnt);
|
||
//获取相机曝光时间 camera_cnt:0是红外, 1是RGB
|
||
DLLEXPORT_API DLL_INT GetExposureTime(Camera_Object_C* camera_obj, int camera_cnt);
|
||
//设置相机多曝光模式, 0:等差,1:等比
|
||
DLLEXPORT_API DLL_INT SetMultiExpoMode(Camera_Object_C* camera_obj, int mode);
|
||
//获取相机多曝光模式
|
||
DLLEXPORT_API DLL_INT GetMultiExpoMode(Camera_Object_C* camera_obj);
|
||
//设置多曝光起点,value 范围:0-100000
|
||
DLLEXPORT_API DLL_INT SetMultiExpoMin(Camera_Object_C* camera_obj, int value);
|
||
//获取多曝光起点
|
||
DLLEXPORT_API DLL_INT GetMultiExpoMin(Camera_Object_C* camera_obj);
|
||
//设置多曝光终点,value 范围:0-100000
|
||
DLLEXPORT_API DLL_INT SetMultiExpoMax(Camera_Object_C* camera_obj, int value);
|
||
//获取多曝光终点
|
||
DLLEXPORT_API DLL_INT GetMultiExpoMax(Camera_Object_C* camera_obj);
|
||
//设置增益 model: 1 模拟增益量 2 数据增益量 value: 增益值 times:缺省参数,缺省为1, 第二次增益times = 2
|
||
DLLEXPORT_API DLL_INT SetGain(Camera_Object_C* camera_obj, int mode, int value, int camera_cnt);
|
||
//获取相机增益值 mode: 1 模拟增益量 2 数据增益量
|
||
DLLEXPORT_API DLL_INT GetGain(Camera_Object_C* camera_obj, int mode, int camera_cnt);
|
||
//设置相机触发模式mode: 0 连拍模式 1 触发模式
|
||
DLLEXPORT_API DLL_INT SetTriggerMode(Camera_Object_C* camera_obj, int mode);
|
||
//设置相机触发模式信号来源: 0 软触发 1 硬触发
|
||
DLLEXPORT_API DLL_INT SetTriggerSource(Camera_Object_C* camera_obj, int sourcetype);
|
||
//设置相机RGB触发模式mode: 0 连拍模式 1 触发模式
|
||
DLLEXPORT_API DLL_INT SetRGBTriggerMode(Camera_Object_C* camera_obj, int mode);
|
||
//设置相机触发模式下的触发帧数
|
||
DLLEXPORT_API DLL_INT SetTriggerCount(Camera_Object_C* camera_obj);
|
||
//获取相机触发模式下的触发帧数
|
||
DLLEXPORT_API DLL_INT GetTriggerCount(Camera_Object_C* camera_obj);
|
||
//设置相机RGB触发模式下的触发帧数
|
||
DLLEXPORT_API DLL_INT SetRGBTriggerCount(Camera_Object_C* camera_obj);
|
||
//设置重发请求: 0 关闭, 1 打开(默认开启)
|
||
DLLEXPORT_API DLL_VOID SetResendRequest(Camera_Object_C* camera_obj, int channel_index, int resend_flag);
|
||
//获取重发请求: 0 关闭, 1 打开(默认开启)
|
||
DLLEXPORT_API DLL_INT GetResendRequest(Camera_Object_C* camera_obj, int channel_index);
|
||
//设置红外摄像头ROI
|
||
DLLEXPORT_API DLL_INT SetRoi(Camera_Object_C* camera_obj, int channel_index, int size_x, int size_y, int offset_x, int offset_y);
|
||
//设置激光模式: 1 line, 0 plane(默认plane)
|
||
DLLEXPORT_API DLL_INT SetLaserMode(Camera_Object_C* camera_obj, int mode);
|
||
//获取激光模式
|
||
DLLEXPORT_API DLL_INT GetLaserMode(Camera_Object_C* camera_obj);
|
||
//设置点云后处理模型
|
||
DLLEXPORT_API DLL_INT SetPointCloudPostProcessMode(Camera_Object_C* camera_obj, int mode);
|
||
//获取点云后处理模型
|
||
DLLEXPORT_API DLL_INT GetPointCloudPostProcessMode(Camera_Object_C* camera_obj);
|
||
//设置点云增益值,取值范围:0-30,只有当点云自动增益等级为0时才可以设置该值
|
||
DLLEXPORT_API DLL_INT SetPointCloudThresholdValue(Camera_Object_C* camera_obj, int value);
|
||
//获取点云增益值
|
||
DLLEXPORT_API DLL_INT GetPointCloudThresholdValue(Camera_Object_C* camera_obj, int* value);
|
||
//设置点云自动增益等级: 0-20
|
||
DLLEXPORT_API DLL_INT SetPointCloudThresholdLevel(Camera_Object_C* camera_obj, int level);
|
||
//获取点云自动增益等级
|
||
DLLEXPORT_API DLL_INT GetPointCloudThresholdLevel(Camera_Object_C* camera_obj, int* level);
|
||
//获取xml buffer size
|
||
DLLEXPORT_API DLL_INT GetXMLBufferSize(Camera_Object_C* camera_obj, int* xml_size);
|
||
//获取xml buffer
|
||
DLLEXPORT_API DLL_INT GetXMLBuffer(Camera_Object_C* camera_obj, char* buffer);
|
||
//保存用户配置文件
|
||
DLLEXPORT_API DLL_INT SaveUserConfig(Camera_Object_C* camera_obj, char* fliename);
|
||
//加载用户配置文件
|
||
DLLEXPORT_API DLL_INT LoadUserConfig(Camera_Object_C* camera_obj,char* fliename);
|
||
//获取节点类型
|
||
DLLEXPORT_API DLL_INT GetNodeType(Camera_Object_C* camera_obj, const char* key);
|
||
//获取节点访问模式
|
||
DLLEXPORT_API DLL_INT GetNodeAccessMode(Camera_Object_C* camera_obj, const char* key);
|
||
//设置Int类型节点值
|
||
DLLEXPORT_API DLL_INT SetIntNodeValue(Camera_Object_C* camera_obj, const char* key, unsigned int value);
|
||
//设置Bool类型节点值
|
||
DLLEXPORT_API DLL_INT SetBoolNodeValue(Camera_Object_C* camera_obj, const char* key, bool value);
|
||
//设置Command类型节点值
|
||
DLLEXPORT_API DLL_INT SetCommandNodeValue(Camera_Object_C* camera_obj, const char* key);
|
||
//设置Float类型节点值
|
||
DLLEXPORT_API DLL_INT SetFloatNodeValue(Camera_Object_C* camera_obj, const char* key, float value);
|
||
//设置String类型节点值
|
||
DLLEXPORT_API DLL_INT SetStringNodeValue(Camera_Object_C* camera_obj, const char* key, char* value);
|
||
//设置Enumeration类型节点值
|
||
DLLEXPORT_API DLL_INT SetEnumNodeValue(Camera_Object_C* camera_obj, const char* key, int value);
|
||
//获取Int类型节点值
|
||
DLLEXPORT_API DLL_INT GetIntNodeValue(Camera_Object_C* camera_obj, const char* key, int* value);
|
||
//获取Bool类型节点值
|
||
DLLEXPORT_API DLL_INT GetBoolNodeValue(Camera_Object_C* camera_obj, const char* key, int* value);
|
||
//获取Command类型节点值
|
||
DLLEXPORT_API DLL_INT GetCommandNodeValue(Camera_Object_C* camera_obj, const char* key, char* value);
|
||
//获取Float类型节点值
|
||
DLLEXPORT_API DLL_INT GetFloatNodeValue(Camera_Object_C* camera_obj, const char* key, float* value);
|
||
//获取String类型节点值
|
||
DLLEXPORT_API DLL_INT GetStringNodeValue(Camera_Object_C* camera_obj, const char* key, char* value);
|
||
//获取Enumeration类型节点值
|
||
DLLEXPORT_API DLL_INT GetEnumNodeValue(Camera_Object_C* camera_obj, const char* key, int* value);
|
||
//开启或关闭时间戳同步status: 0 关闭时间戳同步 1 开启时间戳同步
|
||
DLLEXPORT_API DLL_INT SetTimestamp(Camera_Object_C* camera_obj, int status);
|
||
//获取时间戳是否开启
|
||
DLLEXPORT_API DLL_INT GetTimestamp(Camera_Object_C* camera_obj);
|
||
//获取PTPD状态码
|
||
DLLEXPORT_API DLL_INT GetTimestampStatus(Camera_Object_C* camera_obj);
|
||
//控制锁存时间戳
|
||
DLLEXPORT_API DLL_INT SetTimestampControlLatch(Camera_Object_C* camera_obj);
|
||
//获取时间戳
|
||
DLLEXPORT_API DLL_UNSIGNED_LONG_LONG GetTimestampValue(Camera_Object_C* camera_obj);
|
||
//获取时间戳频率
|
||
DLLEXPORT_API DLL_UNSIGNED_LONG_LONG GetTimestampTickFrequency(Camera_Object_C* camera_obj);
|
||
//固件升级
|
||
DLLEXPORT_API DLL_INT FirmwareUpgrade(Camera_Object_C* camera_obj, const char *localfilename);
|
||
//内核升级
|
||
DLLEXPORT_API DLL_INT KernelUpgrade(Camera_Object_C* camera_obj, const char* localfilename);
|
||
//获取下位置日志
|
||
DLLEXPORT_API DLL_INT DownloadCameraLog(Camera_Object_C* camera_obj, const char* filepath, const char* filename);
|
||
//获取下位机日志目录
|
||
DLLEXPORT_API DLL_INT CameraLogList(Camera_Object_C* camera_obj, char filename_s[][255], int* len);
|
||
//图片裁剪
|
||
DLLEXPORT_API DLL_INT ImageRoiCrop(Camera_Object_C* camera_obj, PhotoInfo* source_data, RoiPoint roi, PhotoInfo* target_data);
|
||
//获取相机盖状态,此接口只对特定型号相机适用, 0:相机盖关闭,1:相机盖打开, 其他:查看错误码
|
||
DLLEXPORT_API DLL_INT GetCameraCoverStatus(Camera_Object_C* camera_obj, int* status);
|
||
//相机盖状态,此接口只对特定型号相机适用
|
||
DLLEXPORT_API DLL_INT TurnOnCameraCover(Camera_Object_C* camera_obj);
|
||
//关闭相机盖,此接口只对特定型号相机适用
|
||
DLLEXPORT_API DLL_INT TurnOffCameraCover(Camera_Object_C* camera_obj);
|
||
// 设置激光器正常/关闭接口,1:关闭,0:正常,默认是正常状态
|
||
DLLEXPORT_API DLL_INT SetLaserStatus(Camera_Object_C* camera_obj, int status);
|
||
// 获取激光器正常/关闭接口,1:关闭,0:正常,返回值,0:成功,其他查看错误码
|
||
DLLEXPORT_API DLL_INT GetLaserStatus(Camera_Object_C* camera_obj, int* status);
|
||
|
||
/*/////////////////////////////////////////////////////////////////////////////////////////////
|
||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||
*******************************************数据保存********************************************
|
||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||
/////////////////////////////////////////////////////////////////////////////////////////////*/
|
||
//保存xml到本地
|
||
DLLEXPORT_API DLL_INT SaveXmlToLocal(Camera_Object_C* camera_obj, char* pathname);
|
||
/*C++*/
|
||
//保存点云 to pcd 格式
|
||
DLLEXPORT_API DLL_INT SavePointCloudToPcd(Camera_Object_C* camera_obj, PhotoInfo *raw_data, char* path_name);
|
||
//保存点云 to txt 格式
|
||
DLLEXPORT_API DLL_INT SavePointCloudToTxt(Camera_Object_C* camera_obj, PhotoInfo *raw_data, char* path_name);
|
||
//保存点云 to ply 格式
|
||
DLLEXPORT_API DLL_INT SavePointCloudToPly(Camera_Object_C* camera_obj, PhotoInfo *raw_data, char* path_name);
|
||
//点云滤波(基于空间密度的点云去噪)
|
||
DLLEXPORT_API DLL_VOID FilterPointCloud(Camera_Object_C* camera_obj, PhotoInfo *raw_data, double level);
|
||
//空间滤波(基于空间网格的点云去噪) 20220225: 弃用, FilterPointCloud为该API的升级版
|
||
DLLEXPORT_API DLL_INT SpatialFilterPointcloud(Camera_Object_C* camera_obj, PhotoInfo *raw_data, int Area_PointCloudCount);
|
||
//保存bmp图
|
||
DLLEXPORT_API DLL_INT SaveToBMP(Camera_Object_C* camera_obj, PhotoInfo *data, char* path_name);
|
||
//保存点云深度图 to png
|
||
DLLEXPORT_API DLL_INT SaveDepthToPng(Camera_Object_C* camera_obj, PhotoInfo *raw_data, char* path_name);
|
||
//点云融合
|
||
DLLEXPORT_API DLL_INT FusionImageTo3D(Camera_Object_C* camera_obj, PhotoInfo *image_data, PhotoInfo *raw_data, float * image_cloud);
|
||
//根据RGB重排点云
|
||
DLLEXPORT_API DLL_INT Fusion3DToRGB(Camera_Object_C* camera_obj, PhotoInfo *rgb_data, PhotoInfo *raw_data, PhotoInfo *xyz);
|
||
//根据RGB重排点云
|
||
DLLEXPORT_API DLL_INT Fusion3DToRGBWithOutDistortion(Camera_Object_C* camera_obj, PhotoInfo* rgb_data, PhotoInfo* raw_data, PhotoInfo* xyz);
|
||
//图像膨胀
|
||
DLLEXPORT_API DLL_VOID PixelSwell(Camera_Object_C* camera_obj, int *roi_output, PhotoInfo *target_data);
|
||
//图像腐蚀
|
||
DLLEXPORT_API DLL_VOID PixelCorrosion(Camera_Object_C* camera_obj, int *roi_output, PhotoInfo *target_data);
|
||
//ROI映射区域坐标
|
||
DLLEXPORT_API DLL_VOID ROIMappingCoordinate(Camera_Object_C* camera_obj, int *roi_output, PhotoInfo *target_data, RoiPoint *point_output);
|
||
//ROI检索映射
|
||
DLLEXPORT_API DLL_VOID ROIPixelMapping(Camera_Object_C* camera_obj, PhotoInfo *point_data, PhotoInfo *source_data, PhotoInfo *target_data, RoiPoint *roi_input, int *ROI_output);
|
||
//保存点云 with image to pcd
|
||
DLLEXPORT_API DLL_INT SavePointCloudWithImageToTxt(Camera_Object_C* camera_obj, PhotoInfo *raw_data, float * rgb_cloud, char *path_name);
|
||
//保存与图片融合后的点云Ply(保留无效点)
|
||
DLLEXPORT_API DLL_INT SavePointCloudWithImageToPly(Camera_Object_C* camera_obj, PhotoInfo *raw_data, float * image_cloud, char *path_name);
|
||
//保存与图片融合后的点云Pcd
|
||
DLLEXPORT_API DLL_INT SavePointCloudWithImageToPcd(Camera_Object_C* camera_obj, PhotoInfo *raw_data, float * image_cloud, char *path_name);
|
||
/*C++*/
|
||
/*/////////////////////////////////////////////////////////////////////////////////////////////
|
||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||
*******************************************获取版本号******************************************
|
||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||
/////////////////////////////////////////////////////////////////////////////////////////////*/
|
||
//相机固件的版本号
|
||
DLLEXPORT_API DLL_CHAR_POINT CameraVerions(Camera_Object_C* camera_obj);
|
||
//SDK的版本号
|
||
DLLEXPORT_API DLL_CHAR_POINT SDKVersion(Camera_Object_C* camera_obj);
|
||
DLLEXPORT_API DLL_CHAR_POINT sdkversion();
|
||
//相机的序列号
|
||
DLLEXPORT_API DLL_CHAR_POINT CameraSeriesNumber(Camera_Object_C* camera_obj);
|
||
#ifdef __cplusplus
|
||
}
|
||
#endif |