#ifndef SOFT_VISION_APP_H
|
#define SOFT_VISION_APP_H
|
|
#include <iostream>
|
#include <stdio.h>
|
#include "ISoftVisionApp.h"
|
class CSoftVisionApp : public ISoftVisionApp
|
{
|
public:
|
CSoftVisionApp();
|
~CSoftVisionApp();
|
|
static CSoftVisionApp* getInstance(void);
|
|
public:
|
//1. ´ò¿ªÊÓ¾õ´°Ìå
|
virtual int OpenVisionWindow(void);
|
virtual CDialogEx* CreateVisionWindow(void);
|
virtual int ReleaseWindow(CDialogEx *pDlg);
|
virtual void ChangeDimension(CDialogEx *pDlg, int nDir);
|
virtual void SetVisionOpen(BOOL isOpen);
|
|
//2. ÉèÖÃÆÁ±Î
|
virtual void OpenKeySetWindow(void);
|
|
//3. ×ø±êת»»
|
virtual Point2I getPose(int eDir, int xPoxPxl, int yPosPxl);
|
|
//4. Ö´ÐÐÊÓ¾õ´¦Àí
|
virtual int Execute(int eDir, NgInfo *ngArray);
|
//5. ÉèÖûص÷ʱ¼ä
|
virtual void setImageEventSignal(IVisionEvent *pEvent);
|
//6. ×ø±êϵת»»
|
virtual bool transformToStandard(int eDir, Point2I point, Point2I &result, Point2I &topResult, Point2I &botResult);
|
//7. ¼ì²âCutÏß
|
virtual bool findCutLine(int eDir, int toTopY, int toLineDist, int nEndThres, Point2I& result);
|
virtual double DistancePL(Point2D pose, Line2D line);
|
|
//8. ¼ì²âNorchȱÏÝ
|
virtual int findNorchDefect(int eDir, std::vector<Point2D> vPoints, CRect roiRect, int nThres, int nOffset, int nBinThres,
|
int szType, int xFzSize, int yFzSize, CRect* aryResult);
|
|
//9. ÉèÖÃÆ½Ì¨£¬0ÊÇÆ½Ì¨1£¬ 1ÊÇÆ½Ì¨2
|
virtual void setStage(int nStage);
|
|
//5. »ñÈ¡¾àÀëµÄ½á¹û
|
int getDistResult(DimensionDir eDir, NgInfo *ngResult);
|
|
//6. »ñÈ¡RCUTµÄȱÏÝ
|
int getRcutResult(DimensionDir eDir, NgInfo *ngResult);
|
|
//6.1 »ñÈ¡THres½á¹û
|
int getThresResult(DimensionDir eDir, NgInfo *ngResult);
|
|
//6. »ñÈ¡Hole½á¹û
|
int getHoleResult(DimensionDir eDir, NgInfo *ngResult);
|
|
//7. »ñÈ¡Grind½á¹û
|
int getGrindResult(DimensionDir eDir, NgInfo *ngResult);
|
|
//8. »ñÈ¡Cut½á¹û
|
int getCutResult(DimensionDir eDir, NgInfo *ngResult);
|
|
//9 ÉèÖûص÷ÐÅÏ¢
|
void sendMessage(int code, int eDir);
|
|
//10. ´òÓ¡ÈÕÖ¾
|
void Log(int level, std::string strText);
|
|
private:
|
IVisionEvent *m_pEvent;
|
CRITICAL_SECTION m_criticalSection;
|
|
private:
|
inline void Lock() { EnterCriticalSection(&m_criticalSection); }
|
inline void Unlock() { LeaveCriticalSection(&m_criticalSection); }
|
|
//1. Ö´ÐÐÊÓ¾õ¶¨Î»
|
int ExecuteLoc(DimensionDir eDir);
|
|
//2. GrendSize
|
int ExecuteGrind(DimensionDir eDir);
|
|
//3. ÊÓ¾õ¶¨Î»
|
int ExecuteDist(DimensionDir eDir);
|
|
//4. Cut¼ì²â
|
int ExecuteCut(DimensionDir eDir);
|
|
//5. RCUT¼ì²â
|
int ExecuteRCUT(DimensionDir eDir);
|
|
//6. ÊÓ¾õ¼ì²â
|
int ExecuteThres(DimensionDir eDir);
|
|
//7. Hole¼ì²â
|
int ExecuteHole(DimensionDir eDir);
|
|
//6. Êý¾Ý½á¹ûºÏ²¢
|
int addResultToTotal(NgInfo *ngInfo, int nCount, NgInfo *ngTotal, int nTotal);
|
|
//7. »ñÈ¡¾àÀë
|
Point2I getPointCoor(DimensionDir dir, Point2I point, Point2I ptTop, Point2I ptBot, Point2I bzTopPoint, Point2I bzBotPoint, int nType);
|
|
};
|
|
#endif
|