| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267 |
- #ifndef _BHCAMBASE_h_
- #define _BHCAMBASE_h_
- //设备状态
- #define FR_DS_ONLINE 0 //设备在线
- #define FR_DS_OFFLINE 1 //设备掉线
- #define FR_DS_BUSY 2 //设备忙
- #define FR_DS_HARDWAREERROR 3 //设备硬件故障
- #define FR_DS_UNKNOW 4 //未知错误
- // 错误码
- #define FR_RET_SUCC 0 // 成功
- #define FR_RET_FAIL -1 // 失败
- #define FR_RET_PARA -2 // 参数错误
- #define FR_RET_NDEV -3 // 打开设备失败
- #define FR_RET_NINI -4 // 未打开设备
- #define FR_RET_BUSY -5 // 设备繁忙
- #define FR_RET_DATA -6 // 图像数据不正确
- #define FR_RET_NLNK -7 // 设备断开
- #define FR_RET_NMEM -10 // 内存分配失败
- #define FR_RET_ARDY -11 // 已经打开设备
- /**
- *@brief 打开高拍仪(只能打开自己厂商的高拍仪类型, 不能打开其他厂商的摄像头 也不能打开自己厂商的其他摄像头)
- *@param[in] 无
- *@param[out] 无
- *@return 成功返回0,失败返回其他
- **/
- int HIGH_StartCamera();
- /**
- * @brief 获得固件版本,在初始化资源HIGH_StartCamera后调用
- * @param[out] szVersion 固件版本,格式:厂商+高拍仪型号+PIDVID(彩色高拍仪)+固件版本号/固件修改日期
- * @return 成功返回0,失败返回其他
- **/
- int HIGH_GetFirmwareVersion(char szVersion[64]);
- /**
- *@brief 获取设备状态
- *@param[in][out]piStatus设备状态:参考设备状态宏定义
- *@return 无
- **/
- void HIGH_GetStatus(int* piStatus);
- /**
- * @brief 关闭高拍仪
- * @param[in] 无
- * @param[out] 无
- * @return 成功返回0,失败返回其他
- **/
- int HIGH_StopCamera();
- /**
- * @brief 设置拍照自动纠编 设置为自动纠编时 预览HIGH_CreateWindow时需要实时画出红框框住目标 拍照HIGH_TakePicture时图片为自动获取目标后裁剪的图片
- * @param[in] bAuto
- * 是否自动纠编 0:否 1:是
- * @param[out] 无
- * @return 成功返回0,失败返回其他
- **/
- int HIGH_SetAutoCrop(bool bAuto);
- /**
- *@brief 设置高拍仪分辨率
- * @param[in] nHPixel
- * 水平分辨率
- * @param[in] nVPixel
- * 垂直分辨率
- *@param[out] 无
- *@return 成功返回0,失败返回其他
- **/
- int HIGH_SetCameraPixel(int nHPixel, int nVPixel);
- /**
- *@brief 设置高拍仪旋转角度
- * @param[in] nRotateSize
- * 旋转角度,0:不旋转 1:90度 2:180度 3:270度
- *@param[out] 无
- *@return 成功返回0,失败返回其他
- **/
- int HIGH_SetRotateSize(int nRotateSize);
- /**
- *@brief 设置高拍仪色彩类型
- * @param[in] nColorType
- * 色彩类型,0:彩色(24bpp) 1:灰度(黑白) 2:黑白(素描)
- *@param[out] 无
- *@return 成功返回0,失败返回其他
- **/
- int HIGH_SetColorType(int nColorType);
- /**
- *@brief 设置高拍仪图片质量
- * @param[in] nJPGQuality
- * 图片质量
- *@param[out] 无
- *@return 成功返回0,失败返回其他
- **/
- int HIGH_SetJPGQuality(int nJPGQuality);
- /**
- *@brief 获取高拍仪像素个数
- *@param[in] 无
- *@param[out] 无
- *@return 成功返回像素个数,失败返回其他
- **/
- int HIGH_GetPixelNum();
- /**
- *@brief 根据像素获取高拍仪像素宽度
- *@param[in] nIndex
- * 像素索引
- *@param[out] 无
- *@return 成功返回像素索引对应的宽度,失败返回其他
- **/
- int HIGH_GetHPixelByIndex(int nIndex);
- /**
- *@brief 根据像素获取高拍仪像素高度
- *@param[in] nIndex
- * 像素索引
- *@param[out] 无
- *@return 成功返回像素索引对应的高度,失败返回其他
- **/
- int HIGH_GetVPixelByIndex(int nIndex);
- /**
- * @brief 创建预览窗口,并开始预览。调用此函数表示需要驱动库实现窗口显示
- * 该接口为非阻塞接口,上层可随时调用HIGH_CloseWindow函数来关闭窗口。
- * @param[in] iX
- * 窗口左上角X坐标,ulWndHandle为空表示X坐标相对于屏幕,否则X坐标相对于预览窗口;
- * @param[in] iY
- * 窗口左上角Y坐标,ulWndHandle为空表示Y坐标相对于屏幕,否则Y坐标相对于预览窗口;
- * @param[in] iWidth
- * 窗口宽度;
- * @param[in] iHeight
- * 窗口高度;
- * @return 参考函数返回结果宏定义
- **/
- int HIGH_CreateWindow(int iX, int iY, int iWidth, int iHeight);
- /**
- * @brief 关闭预览窗口。
- * @return 参考函数返回结果宏定义
- **/
- int HIGH_CloseWindow();
- /**
- * @brief 预览暂停/恢复
- * @param[in] isPause true 暂停,false 恢复
- * @param[out] 无
- * @return 成功返回0,失败返回其他
- **/
- int HIGH_PauseAndPlay(bool isPause);
- /**
- * @brief 拍照,如果在HIGH_PauseAndPlay之后调用,拍的是暂停时的那一帧照片
- * @param[in] strFilePath 图片路径
- * @param[out] 无
- * @return 成功返回0,失败返回其他
- **/
- int HIGH_TakePicture(const char* strFilePath);
- // 设备
- typedef int (*lpHIGH_StartCamera)();
- typedef int (*lpHIGH_GetFirmwareVersion)(char szVersion[64]);
- typedef void (*lpHIGH_GetStatus)(int* piStatus);
- typedef int (*lpHIGH_StopCamera)();
- typedef int (*lpHIGH_SetAutoCrop)(bool bAuto);
- typedef int (*lpHIGH_SetCameraPixel)(int nHPixel, int nVPixel);
- typedef int (*lpHIGH_SetRotateSize)(int nRotateSize);
- typedef int (*lpHIGH_SetColorType)(int nColorType);
- typedef int (*lpHIGH_SetJPGQuality)(int nJPGQuality);
- typedef int (*lpHIGH_GetPixelNum)();
- typedef int (*lpHIGH_GetHPixelByIndex)(int nIndex);
- typedef int (*lpHIGH_GetVPixelByIndex)(int nIndex);
- typedef int (*lpHIGH_CreateWindow)(int iX, int iY, int iWidth, int iHeight);
- typedef int (*lpHIGH_HideWindow)(bool isPause);
- typedef int (*lpHIGH_CloseWindow)();
- typedef int (*lpHIGH_PauseAndPlay)(bool isPause);
- typedef int (*lpHIGH_TakePicture)(const char* strFilePath);
- class CDevDllLoad
- {
- public:
- CDevDllLoad(char * dllpath);
- virtual ~CDevDllLoad();
- public:
- int InitDLL();
- int FreeDLL();
- private:
- char m_dllpath[260];
- void *dp_dev=nullptr;
- lpHIGH_StartCamera apiHIGH_StartCamera;
- lpHIGH_GetFirmwareVersion apiHIGH_GetFirmwareVersion;
- lpHIGH_GetStatus apiHIGH_GetStatus;
- lpHIGH_StopCamera apiHIGH_StopCamera;
- lpHIGH_SetAutoCrop apiHIGH_SetAutoCrop;
- lpHIGH_SetCameraPixel apiHIGH_SetCameraPixel;
- lpHIGH_SetRotateSize apiHIGH_SetRotateSize;
- lpHIGH_SetColorType apiHIGH_SetColorType;
- lpHIGH_SetJPGQuality apiHIGH_SetJPGQuality;
- lpHIGH_GetPixelNum apiHIGH_GetPixelNum;
- lpHIGH_GetHPixelByIndex apiHIGH_GetHPixelByIndex;
- lpHIGH_GetVPixelByIndex apiHIGH_GetVPixelByIndex;
- lpHIGH_CreateWindow apiHIGH_CreateWindow;
- lpHIGH_HideWindow apiHIGH_HideWindow;
- lpHIGH_CloseWindow apiHIGH_CloseWindow;
- lpHIGH_PauseAndPlay apiHIGH_PauseAndPlay;
- lpHIGH_TakePicture apiHIGH_TakePicture;
- public:
- int HIGH_StartCamera();
- int HIGH_GetFirmwareVersion(char szVersion[64]);
- void HIGH_GetStatus(int* piStatus);
- int HIGH_StopCamera();
- int HIGH_SetAutoCrop(bool bAuto);
- int HIGH_SetCameraPixel(int nHPixel, int nVPixel);
- int HIGH_SetRotateSize(int nRotateSize);
- int HIGH_SetColorType(int nColorType);
- int HIGH_SetJPGQuality(int nJPGQuality);
- int HIGH_GetPixelNum();
- int HIGH_GetHPixelByIndex(int nIndex);
- int HIGH_GetVPixelByIndex(int nIndex);
- int HIGH_CreateWindow(int iX, int iY, int iWidth, int iHeight);
- int HIGH_HideWindow(bool isPause);
- int HIGH_CloseWindow();
- int HIGH_PauseAndPlay(bool isPause);
- int HIGH_TakePicture(const char* strFilePath);
- };
- #endif
- /**
- * 主要方法调用顺序
- * 方法名 功能
- HIGH_StartCamera 打开高拍仪
- HIGH_GetFirmwareVersion 获取固件版本
- HIGH_GetStatus 获取设备状态
- HIGH_SetAutoCrop 设置拍照自动纠编
- HIGH_SetCameraPixel 设置高拍仪分辨率
- HIGH_CreateWindow 创建预览窗口,并开始预览。
- HIGH_TakePicture 拍照
- HIGH_CloseWindow 关闭预览窗口
- HIGH_StopCamera 关闭高拍仪
- **/
|