案例分享:康标达(Computar)工业镜头调试工具v1.0.0(支持搜索打开镜头,获取设备信息,初始化,设置缩放、对焦、光圈和滤镜相关属性)
需求
1.搜索镜头,打开镜头,关闭镜头;
2.获取镜头所有信息,协议版本、固件版本、修订版本、I2C地址、镜头型号、温度;
3.获取设备支持的功能,是否支持缩放、对焦、光圈、滤镜等功能;
4.打开设备后,判断是否已初始化,不必每次打开都初始化对应功能,避免调整已经设置好的位置;
5.支持的功能,可获取所有属性和对应的动态属性,上下限制;
6.支持的功能,可动态获取对应的设置值;
7.支持的功能,可设置步长,目标地址,电机速度,补偿开关等;
8.高度封装的模块化设计,子线程异步交互;
9.完整的日志信息,记录每次操作;
10.高度完善的封装类,脱离设备驱动层;
《康标达工业镜头开发笔记(一):康标达(Computar)工业镜头介绍、搭建SDK基础环境》





QQ技术群,找到博主群,加进Q群,点击“文件”搜索“lensTool”,群内与博文同步更新)

INCLUDEPATH += $$PWD
DEPENDPATH += $$PWD
HEADERS += \
$$PWD/LensManager.h \
$$PWD/lensCommon.h
SOURCES += \
$$PWD/LensManager.cpp
# 镜头sdk
LENS_SDK_DIR = $$PWD/lensSdkX64
INCLUDEPATH += $$LENS_SDK_DIR/include
LIBS += -L$$LENS_SDK_DIR/lib
LIBS += -lSLABHIDtoSMBus
HEADERS += \
$$PWD/lensSdkX64/include/SLABCP2112.h \
$$PWD/lensSdkX64/include/Types.h \
$$PWD/lensSdkX64/include/configVal.h \
$$PWD/lensSdkX64/include/devAddr.h \
$$PWD/lensSdkX64/include/silabs_defs.h \
$$PWD/lensSdkX64/include/silabs_sal.h
SOURCES += \
$$PWD/lensSdkX64/src/LensCtrl.c \
$$PWD/lensSdkX64/src/UsbCtrl.c
#ifndef LensManager_H
#define LensManager_H
#include <QObject>
#include <QMutex>
#include <QMutexLocker>
#include "lensCommon.h"
class LensManager : public QObject
{
Q_OBJECT
private:
explicit LensManager(QObject *parent = 0);
public:
static LensManager * getInstance();
signals:
void signal_logMessage(QString s); // 信号: 日志信息
signals:
void signal_searchLensNumResult(bool ok, int numDevices); // 信号: 搜索摄像头数量结果
void signal_searchLensInfoResult(bool ok, QList<LensInfo> listLensInfo); // 信号: 搜索摄像头信息结果
void signal_openDeviceResult(bool succeed, LensInfo lensInfo); // 信号: 打开设备结果
void signal_getGeneralInfoResult(bool ok, LensInfo lensInfo); // 信号: 获取镜头通用信息
void signal_closeDeviceResult(); // 信号: 关闭设备
signals: // 缩放: 滤镜操作结果
void signal_getZoomInfoResult (bool ok, LensInfo lensInfo);
void signal_initializeZoomResult(bool ok, LensInfo lensInfo);
void signal_setZoomBacklash (bool ok, LensInfo lensInfo);
void signal_setZoomSpeedResult (bool ok, LensInfo lensInfo);
void signal_setZoomPosResult (bool ok, LensInfo lensInfo);
signals: // 信号: 对焦操作结果
void signal_getFocusInfoResult (bool ok, LensInfo lensInfo);
void signal_initializeFocusResult(bool ok, LensInfo lensInfo);
void signal_setFocusBacklash (bool ok, LensInfo lensInfo);
void signal_setFocusSpeedResult (bool ok, LensInfo lensInfo);
void signal_setFocusPosResult (bool ok, LensInfo lensInfo);
signals: // 信号: 光圈操作结果
void signal_getIrisInfoResult (bool ok, LensInfo lensInfo);
void signal_initializeIrisResult(bool ok, LensInfo lensInfo);
void signal_setIrisBacklash (bool ok, LensInfo lensInfo);
void signal_setIrisSpeedResult (bool ok, LensInfo lensInfo);
void signal_setIrisPosResult (bool ok, LensInfo lensInfo);
signals: // 信号: 滤镜操作结果
void signal_getFilterInfoResult (bool ok, LensInfo lensInfo);
void signal_initializeFilterResult(bool ok, LensInfo lensInfo);
void signal_setFilterPosResult (bool ok, LensInfo lensInfo);
public slots:
void slot_start();
void slot_stop()