CB_Device SDK 快速开始
CB_Device 开发包组成、头文件引用、调用流程、参数树模型、回调模型与单位约定。
关于本 SDK
CB_Device 是凯视佳 lg、jr 等面阵工业相机(USB3 / GigE 接口)的 C 接口开发包,
导出函数前缀统一为 CB_,返回类型为 CB_RESULT(即 int),采用 __stdcall 调用约定。
⚠️ 返回码约定:
CB_E_SUCCESS的值为 0,其余为各类错误(见错误码章节)。
所有函数都返回CB_RESULT,建议逐个判断是否为CB_E_SUCCESS。
开发包组成
| 文件 | 说明 |
|---|---|
CB_DeviceApi.h |
主接口头文件:SDK 信息、日志、设备枚举、参数树、采集、回调、图像保存/显示等全部导出函数 |
CB_Define.h |
数据结构、回调类型与基础枚举定义(CB_TDeviceInfo、CB_TFrameData、CB_TParamInfo 等) |
CB_Enum.h |
GenICam 风格特征枚举定义(触发、传感器、增益、像素格式等) |
CB_Error.h |
返回码定义(CB_E_*) |
CB_ImageProcess.h |
图像处理接口(Gamma / 对比度亮度 LUT、坏点校正、中值滤波、锐化) |
CB_Include.h |
跨平台类型与导出宏定义 |
CB_Device.lib / .dll |
导入库与动态库(Windows;32/64 位各一份) |
引入方式:
#include "CB_DeviceApi.h" // 已内部包含 CB_Define.h / CB_Error.h 等
接口约定:所有导出函数均为
__stdcall调用约定,返回CB_RESULT(int);不使用异常,
每个返回值都要判断是否为CB_E_SUCCESS。
调用流程总览
CB_Initial 初始化 SDK
CB_EnumerateDevices 枚举设备 → 得到设备数目
CB_GetDeviceInfo 获取设备信息(打开前即可调用)
CB_OpenDevice 打开(占用)设备
├─ 参数读写(CB_Get/Set*Param,整型/浮点/布尔/枚举/字符串/寄存器)
├─ CB_SetGrabBufferNum / CB_SetGrabTimeout
├─ CB_StartGrabbing 开始采集
├─ CB_SetGrabCallback 注册采集回调(或轮询 CB_GetGrabFrameBuffer)
│ └─ 回调中 CB_GetGrabFrameBuffer 取帧 → 处理 → CB_FreeGrabFrameBuffer 释放
├─ CB_StopGrabbing 停止采集
└─(改参数 / 反复采集)
CB_CloseDevice 关闭设备
CB_Uninitial 反初始化 SDK
参数树模型
CB_Device 采用 GenICam 风格的参数树,不提供成百上千个独立 Set/Get 函数,而是统一用
一组通用接口按参数名字符串读写:
CB_GetParamNum/CB_GetParamNameByIndex列出设备支持的全部参数;CB_GetParamInfoByName取得参数类型(CB_TParamInfo:类别、数据类型、读写权限、单位、表示形式等);- 根据类型调用对应的读写接口:
- 整型:
CB_GetIntParam/CB_SetIntParam(含 Min/Max/Inc 范围查询); - 浮点:
CB_GetFloatParam/CB_SetFloatParam; - 布尔:
CB_GetBoolParam/CB_SetBoolParam; - 枚举:
CB_GetEnumParam/CB_SetEnumParam,并用CB_GetEnumParamEntry*枚举可选条目; - 字符串:
CB_GetStringParam/CB_SetStringParam; - 命令:
CB_ExecuteCommandParam;寄存器:CB_Get/SetRegisterParam。
- 整型:
例如设置曝光时间,可先
CB_GetParamInfoByName确认参数名与类型,再CB_SetFloatParam(h, "ExposureTime", v)。
具体参数名请参考相机对应的 GenICam XML / 厂商文档。
回调模型
采集支持回调与主动取帧两种取数方式:
- 回调:
CB_SetGrabCallback注册CB_GRAB_CALLBACK类型回调,SDK 在每帧就绪时调用,回调中
用CB_GetGrabFrameBuffer取得CB_TFrameData并处理,处理完必须CB_FreeGrabFrameBuffer释放; - 也可不注册回调,在业务线程中轮询
CB_GetGrabFrameBuffer。
此外还有事件回调 CB_EVENT_CALLBACK(由 CB_SetEventCallback 注册)与参数失效回调
CB_INVALIDATE_CALLBACK(由 CB_SetInvalidateCallback 注册,设备参数被异步修改后通知应用刷新 UI)。
单位约定速查
| 量 | 单位 |
|---|---|
| 曝光时间 | 由 CB_Unit_e 决定,常见 ms |
| 增益 | 由 CB_Unit_e / 参数类型决定 |
| 触发/延时 | 由 CB_Unit_e 决定,常见 μs / ns |
| 图像尺寸 | 像素 |
| 时间戳 | 设备时钟原始值(见 CB_TChunkData) |
这份文档对您有帮助吗?
发现错误、表述不清或缺少内容?请告诉我们,我们会尽快补充。
您可以通过以下方式反馈: 发送邮件至 service@catchbest.com