GrabBag/Device/GlLineLaserDevice/Inc/IGlLineLaserDevice.h

87 lines
2.3 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.

#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