87 lines
2.3 KiB
C++
87 lines
2.3 KiB
C++
#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
|