#ifndef IGLLINELASERDEVICE_H #define IGLLINELASERDEVICE_H #include "IVrEyeDevice.h" /** * @brief IGlLineLaserDevice 接口 * * 继承自 IVrEyeDevice,为 GL 线激光传感器提供额外的专用接口。 * 实现类 CGlLineLaserDevice 将 gl_linelaser_sdk 的接口适配到 IVrEyeDevice。 */ class IGlLineLaserDevice : public IVrEyeDevice { public: virtual ~IGlLineLaserDevice() = default; // 创建 GL 线激光设备实例 static int CreateGlLineLaserObject(IGlLineLaserDevice** ppDevice); // ============ GL 线激光传感器专用接口 ============ /** * @brief 获取轮廓数据宽度(X方向点数) * @return 数据宽度 */ virtual int GetProfileDataWidth() = 0; /** * @brief 获取X方向点间距 (mm) * @return X间距 */ virtual double GetXPitch() = 0; /** * @brief 获取Y方向点间距 (mm) * @return Y间距 */ virtual double GetYPitch() = 0; /** * @brief 设置Y方向点间距 (mm) * @param pitch Y间距 * @return 0: 成功, 其他: 错误码 */ virtual int SetYPitch(double pitch) = 0; /** * @brief 设置批处理行数 * @param batchLines 批处理行数 * @return 0: 成功, 其他: 错误码 */ virtual int SetBatchLines(unsigned int batchLines) = 0; /** * @brief 获取批处理行数 * @return 批处理行数 */ virtual unsigned int GetBatchLines() = 0; /** * @brief 切换程序设定 * @param programNo 程序编号 * @return 0: 成功, 其他: 错误码 */ virtual int SwitchProgram(int programNo) = 0; /** * @brief 获取设备型号信息 * @param model 型号字符串(输出) * @param serialNumber 序列号(输出) * @return 0: 成功, 其他: 错误码 */ virtual int GetModelInfo(char* model, char* serialNumber) = 0; /** * @brief 获取测量范围 * @param xMin X最小值 (mm) * @param xMax X最大值 (mm) * @param zMin Z最小值 (mm) * @param zMax Z最大值 (mm) * @return 0: 成功, 其他: 错误码 */ virtual int GetMeasureRange(double& xMin, double& xMax, double& zMin, double& zMax) = 0; }; #endif // IGLLINELASERDEVICE_H