#pragma once #include #include #ifdef INTERFACE_DLL #define INTERFACE_API __declspec(dllexport) #else #define INTERFACE_API #endif using namespace std; // 图像数据类型,指向内存中的图像二进制数据 typedef unsigned char* ImageDataPtr; enum ImageFormat { GRAY8 = 0, // 灰度图,色值0~255 Format_Grayscale8 RGB888, // 每个像素 24 位,顺序是 0xRRGGBB,没有 Alpha 通道 Format_RGB888 ARGB8888, // 带有 Alpha 通道的 32 位像素格式,顺序是 0xAARRGGBB RGB32, // 每个像素 32 位,其中包含了 RGB 颜色信息,顺序通常是 0xAARRGGBB(最高字节为 Alpha 通道,但被忽略,因为 Alpha 通道总是视为 0xFF) YUV422, // YUV4:2:2 }; /** * @brief 存储图像信息的结构 */ typedef struct { int width; // 图像宽度 int height; // 图像高度 int channel; // 图像通道数 ImageFormat format; // 图像格式 ImageDataPtr data; // 图像数据 }ImageInfo; typedef struct { int Lot; //批次号 int PtIndex; //固晶点编号 int Attribute; //0表示正常数据;1表示接手动允许数据;2表示跳过数据。其它无意义 int X_Offset; //X方向偏差 int X_RefMin; //X方向参考范围小值 int X_RefMax; //X方向参考范围大值 int Y_Offset; //Y方向偏差 int Y_RefMin; //Y方向参考范围小值 int Y_RefMax; //Y方向参考范围大值 int Theta_Offset; //Theta方向偏差 int Theta_RefMin; //Theta方向参考范围小值 int Theta_RefMax; //Theta方向参考范围大值 long Time; //加工时间 } CPK_LIST_STRUCT; typedef struct _CONFIG_BASE_STRUCT { int iGroupId; string strName; string strDescribe; int iUserGradee; int iChangeFlag; string strValue; string strType; string strDefult; string strLowerLimit; string strUpperLimit; string strUnit; }CONFIG_BASE_STRUCT; class INTERFACE_API CInterface { public: /// /// 设置红光 /// /// 相机Id /// 灯光值 /// 成功返回0,否则返回错误码 long SetRedLight(int iCameraId,int LightValue); /// /// 设置绿光 /// /// 灯光值 /// 成功返回0,否则返回错误码 /// long SetGreenLight(int iCameraId, int LightValue); /// /// 设置蓝光 /// /// 相机Id /// 灯光值 /// 成功返回0,否则返回错误码 long SetBlueLight(int iCameraId, int LightValue); /// /// 设置点光 /// /// 相机Id /// 灯光值 /// 成功返回0,否则返回错误码 long SetPointLight(int iCameraId, int LightValue); /// /// 获取灯光值 /// /// 相机Id /// 红光。值为-1时,表示没有该灯 /// 绿光。值为-1时,表示没有该灯 /// 蓝光。值为-1时,表示没有该灯 /// 点光。值为-1时,表示没有该灯 /// 成功返回0,否则返回错误码 long GetLight(int iCameraId, int &redLightValue, int &greenLightValue, int &blueLightValue,int &pointLightValue); /// /// 获取相机图像。调用后会阻塞,直到有新的相机图像时才返回 /// /// 相机Id /// /// 成功返回0,否则返回错误码 long GrabImage(int iCameraId, ImageInfo& image); /// /// 获取CPK数据信息 /// /// CPK数据 /// 成功返回0,否则返回错误码 long GetCpkList(std::vector &CpkList); /// /// 读取表中指定GroupId的配置信息 /// /// 组Id /// 表名 /// 返回的配置信息 /// 成功返回0,否则返回错误码 long LoadConfigDB(string strTableName, vector iGroupId, vector& vecConfig); /// /// 保存配置信息 /// /// 表名 /// 要保存的配置信息 /// 成功返回0,否则返回错误码 long SaveConfigDB(string strTableName, vector vecConfig); };