123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- #pragma once
- #include <vector>
- #include <string>
- #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:
- /// <summary>
- /// 设置红光
- /// </summary>
- /// <param name="iCameraId">相机Id</param>
- /// <param name="LightValue">灯光值</param>
- /// <returns>成功返回0,否则返回错误码</returns>
- long SetRedLight(int iCameraId,int LightValue);
- /// <summary>
- /// 设置绿光
- /// </summary>
- /// <param name="LightValue">灯光值</param>
- /// <returns>成功返回0,否则返回错误码</returns>
- ///
- long SetGreenLight(int iCameraId, int LightValue);
- /// <summary>
- /// 设置蓝光
- /// </summary>
- /// <param name="iCameraId">相机Id</param>
- /// <param name="LightValue">灯光值</param>
- /// <returns>成功返回0,否则返回错误码</returns>
- long SetBlueLight(int iCameraId, int LightValue);
- /// <summary>
- /// 设置点光
- /// </summary>
- /// <param name="iCameraId">相机Id</param>
- /// <param name="LightValue">灯光值</param>
- /// <returns>成功返回0,否则返回错误码</returns>
- long SetPointLight(int iCameraId, int LightValue);
- /// <summary>
- /// 获取灯光值
- /// </summary>
- /// <param name="iCameraId">相机Id</param>
- /// <param name="redLightValue">红光。值为-1时,表示没有该灯</param>
- /// <param name="greenLightValue">绿光。值为-1时,表示没有该灯</param>
- /// <param name="blueLightValue">蓝光。值为-1时,表示没有该灯</param>
- /// <param name="pointLightValue">点光。值为-1时,表示没有该灯</param>
- /// <returns>成功返回0,否则返回错误码</returns>
- long GetLight(int iCameraId, int &redLightValue, int &greenLightValue, int &blueLightValue,int &pointLightValue);
-
- /// <summary>
- /// 获取相机图像。调用后会阻塞,直到有新的相机图像时才返回
- /// </summary>
- /// <param name="iCameraId">相机Id</param>
- /// <param name="image"></param>
- /// <returns>成功返回0,否则返回错误码</returns>
- long GrabImage(int iCameraId, ImageInfo& image);
- /// <summary>
- /// 获取CPK数据信息
- /// </summary>
- /// <param name="CpkList">CPK数据</param>
- /// <returns>成功返回0,否则返回错误码</returns>
- long GetCpkList(std::vector<CPK_LIST_STRUCT> &CpkList);
- /// <summary>
- /// 读取表中指定GroupId的配置信息
- /// </summary>
- /// <param name="iGroupId">组Id</param>
- /// <param name="strTableName">表名</param>
- /// <param name="vecConfig">返回的配置信息</param>
- /// <returns>成功返回0,否则返回错误码</returns>
- long LoadConfigDB(string strTableName, vector<int> iGroupId, vector<CONFIG_BASE_STRUCT>& vecConfig);
- /// <summary>
- /// 保存配置信息
- /// </summary>
- /// <param name="strTableName">表名</param>
- /// <param name="vecConfig">要保存的配置信息</param>
- /// <returns>成功返回0,否则返回错误码</returns>
- long SaveConfigDB(string strTableName, vector<CONFIG_BASE_STRUCT> vecConfig);
- };
|