55 lines
1.5 KiB
C++
55 lines
1.5 KiB
C++
#pragma once
|
||
|
||
#include "VZNL_Types.h"
|
||
|
||
// 协议定义
|
||
enum ProtocolDef
|
||
{
|
||
PROTOCOL_HEADER = 0xAA55, // 协议头
|
||
PROTOCOL_TAIL = 0x55AA // 协议尾
|
||
};
|
||
|
||
// Feature标志位定义
|
||
enum FeatureFlags
|
||
{
|
||
FEATURE_RGB_CAMERA = 0x01, // RGB相机
|
||
FEATURE_SWING_MECHANISM = 0x02, // 摆动机构
|
||
FEATURE_DUAL_OUTPUT = 0x04, // 双端出图
|
||
FEATURE_STEREO_COLOR = 0x08, // 双目彩色
|
||
FEATURE_WELDING_CAMERA = 0x10 // 焊接相机
|
||
};
|
||
|
||
// Feature数据结构
|
||
struct FeatureData
|
||
{
|
||
unsigned short version; // 版本号
|
||
unsigned short flags; // 特性标志位
|
||
unsigned short pupilDistance; // 相机瞳距配置
|
||
};
|
||
|
||
/// @brief 极光眼信息接口
|
||
class IVzLaserEyeInfoInterface
|
||
{
|
||
public:
|
||
/// @brief 获取Q矩阵信息
|
||
/// <param name = "hDevice">[in]设备句柄</param>
|
||
/// <param name = "dQMatrix">[out]Q矩阵信息</param>
|
||
/// Tip: C Mode 下是 C Mode 的 Q
|
||
/// Ori Mode 是 Ori Mode 下的 Q
|
||
virtual int QueryQMatrix(VZNLHANDLE hDevice, double dQMatrix[4][4]) = 0;
|
||
|
||
/// @brief 获取原始Q矩阵
|
||
virtual int QueryOriQMatrix(VZNLHANDLE hDevice, double dQMatrix[4][4]) = 0;
|
||
|
||
/// @brief 获取固定视察
|
||
virtual int QueryFixedDistance(VZNLHANDLE hDevice, int& nFixedDistance) = 0;
|
||
|
||
/// @brief 获取原始图像固定视察
|
||
virtual int QueryOriFixedDistance(VZNLHANDLE hDevice, int& nFixedDistance) = 0;
|
||
|
||
// Feature数据序列化(包含协议头尾、长度、CRC校验)
|
||
virtual int SerializeFeature(const FeatureData& feature, unsigned char* data) = 0;
|
||
|
||
// Feature数据反序列化(验证协议头尾、长度、CRC校验)
|
||
virtual int DeserializeFeature(const unsigned char* data, int dataLen, FeatureData& feature) = 0;
|
||
}; |