#ifndef SOFT_VISION_APP_H #define SOFT_VISION_APP_H #include #include #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 vPoints, CRect roiRect, int nThres, int nOffset, int nBinThres, int szType, int xFzSize, int yFzSize, CRect* aryResult); //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, int nType); }; #endif