123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- #pragma once
- #define C_MACHINE_EXPORTS
- #include "Machine.h"
- #include "CDieBondFsm.h"
- #include "CMessageBox.h"
- #include "CPrManage.h"
- #include "dt.h"
- namespace ns_module
- {
- class __declspec(dllexport) CCamerAndLamp
- {
- private:
- static CCamerAndLamp* m_instance;
- CManageDB* m_pCManageDB = nullptr;
- Machine* m_pMachine = nullptr;
- CCameraManage* m_pCameraManage = nullptr;
- CBondHead* m_pBondHead = nullptr;
- CWaferTable* m_pWaferTable = nullptr;
- CWaferHead* m_pWaferHead = nullptr;
- CTransferTable* m_pWaferTransferTable = nullptr;
- CTransferTable* m_pWaffleTransferTable = nullptr;
- CResources* m_pResource = nullptr;
- CDieBondFsm* m_pDieBondFsm = nullptr;
- public:
- static CCamerAndLamp* GetInstance();
- CCamerAndLamp();
- //设置图像为连续更新
- long VideoStart(int iCameraId);
- //设置图像为暂停更新
- long VideoStop(int iCameraId);
- /// <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>
- /// 获取相机列表
- /// </summary>
- /// <param name="vecCamera">相机列表</param>
- /// <returns>成功返回0,否则返回错误码</returns>
- long GetCameraList(vector<CameraInfo>& vecCamera);
- /// <summary>
- /// 相机移动到显示位置
- /// </summary>
- /// <param name="iCameraId"></param>
- /// <param name="x"></param>
- /// <param name="y"></param>
- /// <returns></returns>
- long CameraMove(int iCameraId, double x, double y);
- /**打开,关闭相机
- */
- long OpenOrCloseCamera(int iCameraId);
- //设置相机显示回调
- long SetVideoCallBackFunc(int iCameraId, CallVideoBack func);
- //获取模板图片
- long GetTemplateImage(int iTemplateId,ImageInfo& image);
- //获取所有Pr策略
- std::vector<PR_STRATEGY> GetPrStrategyList();
- //获取指定Pr策略中的Pr模板
- LONG GetPrTemplateList(UINT iStrategyId, std::vector<PR_TEMPLATE> vecTemplate);
- //获取模组中相机
- std::vector<CameraInfo> GetCameraIdList(MODULE_LIST iModuleType);
- //创建PR模板
- LONG CreatePrTemplate(MODULE_LIST iModuleType, UINT iCameraId, UINT& iTemplateId);
- //获取PR模板
- LONG GetPrTemplate(MODULE_LIST iModuleType, UINT iCameraId, UINT& iTemplateId);
- //模板匹配测试,传入策略对象,以及模板id,返回图像,像素结果,物理结果
- LONG TemplateMacthTest(MODULE_LIST iModuleType, UINT iTempId,ImageInfo& image,X_Y_ANGLE_STRUCT& PxielResult, X_Y_ANGLE_STRUCT& posResult);
- //创建空的PR策略
- LONG CreatePrStrategy(MODULE_LIST iModuleType, UINT& iStrategyId);
- //设置策略参考点
- LONG SetPrStrategyRef(MODULE_LIST iModuleType, UINT iStrategyId);
- //设置PR策略里的模板
- LONG SetPrStrategyTemplate(MODULE_LIST iModuleType, UINT iStrategyId, vector<MULTI_TEMP_STRUCT> vecTemplateId);
- LONG SaveImage2File(const JVision::ImageInfo& imageIn,const std::string& FilePath);
- };
- }
|