GrabBag/SDK/Device/VzNLSDK/_Inc/IVzLaserEyeInfoAPI.h
2026-03-17 22:27:58 +08:00

55 lines
1.5 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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;
};