#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矩阵信息 /// [in]设备句柄 /// [out]Q矩阵信息 /// 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; };