#include "stdafx.h" #include "OTSProgMgrCLR.h" #include "DlgProgMgrInfo.h" namespace OTSINTERFACE { COTSProgMgrCLR::COTSProgMgrCLR() { m_LpRealProgMgr = new COTSProgMgrPtr(new COTSProgMgr()); } COTSProgMgrCLR::COTSProgMgrCLR(COTSProgMgr* a_pProgMgr) { ASSERT(a_pProgMgr); if (!a_pProgMgr) { LogErrorTrace(__FILE__, __LINE__, _T("COTSProgMgrCLR: Generate ProgMgr pointer failed.")); return; } m_LpRealProgMgr = new COTSProgMgrPtr(new COTSProgMgr()); } COTSProgMgrCLR::COTSProgMgrCLR(COTSProgMgrPtr a_pProgMgr) { ASSERT(a_pProgMgr); if (!a_pProgMgr) { LogErrorTrace(__FILE__, __LINE__, _T("COTSProgMgrCLR: invalid pointer")); return; } m_LpRealProgMgr = new COTSProgMgrPtr(a_pProgMgr); } COTSProgMgrCLR::!COTSProgMgrCLR() { if (m_LpRealProgMgr != nullptr) { delete m_LpRealProgMgr; m_LpRealProgMgr = nullptr; } } COTSProgMgrCLR::~COTSProgMgrCLR() { if (m_LpRealProgMgr != nullptr) { delete m_LpRealProgMgr; m_LpRealProgMgr = nullptr; } } COTSProgMgrPtr COTSProgMgrCLR::GetCOTSProgMgrPtr() { return *m_LpRealProgMgr; } // Read project manager information from project manager file COTSProgMgrParamFileClr^ COTSProgMgrCLR::LoadInfoFromProgMgrFile(int a_nPackId) { COTSProgMgrParamFilePtr pProgMgrParamFile = COTSProgMgr::LoadInfoFromProgMgrFile((OTS_SOFT_PACKAGE_ID)a_nPackId); ASSERT(pProgMgrParamFile); if (!pProgMgrParamFile) { LogErrorTrace(__FILE__, __LINE__, _T("LoadInfoFromProgMgrFile: invalid pointer.")); return nullptr; } COTSProgMgrParamFileClr^ pProgMgrParamFileClr = gcnew COTSProgMgrParamFileClr(pProgMgrParamFile); return pProgMgrParamFileClr; } // Save project manager information to project manager file bool COTSProgMgrCLR::SaveInfoToProgMgrFile(int a_nPackId, CSEMStageDataClr^ a_pStageData, CGenParamClr^ a_pGenParam, COTSImgScanPrmClr^ a_pImageScanParam, COTSImgProcPrmClr^ a_pImageProcParam, COTSXRayPrmClr^ a_pXRayParam) { ASSERT(a_pStageData); if (!a_pStageData) { LogErrorTrace(__FILE__, __LINE__, _T("SaveInfoToProgMgrFile: invalid stage data pointer.")); return false; } CSEMStageDataPtr pSEMStageData = a_pStageData->GetCSEMStageData(); ASSERT(pSEMStageData); if (!pSEMStageData) { LogErrorTrace(__FILE__, __LINE__, _T("SaveInfoToProgMgrFile: invalid stage data pointer.")); return false; } ASSERT(a_pGenParam); if (!a_pGenParam) { LogErrorTrace(__FILE__, __LINE__, _T("SaveInfoToProgMgrFile: invalid general param pointer.")); return false; } COTSGeneralParametersPtr pGenParam = a_pGenParam->GetCOTSGeneralParametersPtr(); ASSERT(pGenParam); if (!pGenParam) { LogErrorTrace(__FILE__, __LINE__, _T("SaveInfoToProgMgrFile: invalid general param pointer.")); return false; } ASSERT(a_pImageScanParam); if (!a_pImageScanParam) { LogErrorTrace(__FILE__, __LINE__, _T("SaveInfoToProgMgrFile: invalid image scan param pointer.")); return false; } COTSImageScanParamPtr pImageScanParam = a_pImageScanParam->GetImgScanPrmPtr(); ASSERT(pImageScanParam); if (!pImageScanParam) { LogErrorTrace(__FILE__, __LINE__, _T("SaveInfoToProgMgrFile: invalid image scan param pointer.")); return false; } ASSERT(a_pImageProcParam); if (!a_pImageProcParam) { LogErrorTrace(__FILE__, __LINE__, _T("SaveInfoToProgMgrFile: invalid image process param pointer.")); return false; } COTSImageProcessParamPtr pImageProcParam = a_pImageProcParam->GetImgPrcPrmPtr(); ASSERT(pImageProcParam); if (!pImageProcParam) { LogErrorTrace(__FILE__, __LINE__, _T("SaveInfoToProgMgrFile: invalid image process param pointer.")); return false; } ASSERT(a_pXRayParam); if (!a_pXRayParam) { LogErrorTrace(__FILE__, __LINE__, _T("SaveInfoToProgMgrFile: invalid x ray param pointer.")); return false; } COTSXRayParamPtr pXRayParam = a_pXRayParam->GetCOTSXRayPrmPtr(); ASSERT(pXRayParam); if (!pXRayParam) { LogErrorTrace(__FILE__, __LINE__, _T("SaveInfoToProgMgrFile: invalid x ray param pointer.")); return false; } bool bRet = COTSProgMgr::SaveInfoToProgMgrFile((OTS_SOFT_PACKAGE_ID)a_nPackId, pSEMStageData, pGenParam, pImageScanParam, pImageProcParam, pXRayParam); return bRet; } // Get stop mode id String^ COTSProgMgrCLR::GetStopModeIdString(int a_nStopMode) { CString str = COTSProgMgr::GetStopModeIdString(( OTSMODEL::OTS_MEASURE_STOP_MODE)a_nStopMode); String^ strClr = gcnew String(str); return strClr; } // get scan speed String^ COTSProgMgrCLR::GetScanSpeedString(int a_nScanSpeed) { CString str = COTSProgMgr::GetScanSpeedString(( OTSMODEL::OTS_THREE_TIES_OPTIONS)a_nScanSpeed); String^ strClr = gcnew String(str); return strClr; } // get image size id String^ COTSProgMgrCLR::GetImageSizeIdString(int a_nImageSize) { CString str = COTSProgMgr::GetImageSizeIdString(( OTSMODEL::OTS_FIVE_TIES_OPTIONS)a_nImageSize); String^ strClr = gcnew String(str); return strClr; } // get image mode id String^ COTSProgMgrCLR::GetGetImageIdString(int a_nGetImageMode) { CString str = COTSProgMgr::GetGetImageIdString(( OTSMODEL::OTS_GET_IMAGE_MODE)a_nGetImageMode); String^ strClr = gcnew String(str); return strClr; } // get XRay analysis speed id String^ COTSProgMgrCLR::GetXRayAnalySpeedIdString(int a_nXRayAnalySpeed) { CString str = COTSProgMgr::GetXRayAnalySpeedIdString(( OTSMODEL::OTS_THREE_TIES_OPTIONS)a_nXRayAnalySpeed); String^ strClr = gcnew String(str); return strClr; } // get XRay scan mode id String^ COTSProgMgrCLR::GetXRayScanModeIdString(int a_nXRayScanMode) { CString str = COTSProgMgr::GetXRayScanModeIdString(( OTSMODEL::OTS_X_RAY_SCAN_MODE)a_nXRayScanMode); String^ strClr = gcnew String(str); return strClr; } // get XRay search speed id String^ COTSProgMgrCLR::GetXRaySearchSpeedIdString(int a_nXRaySearchSpeed) { CString str = COTSProgMgr::GetXRaySearchSpeedIdString(( OTSMODEL::OTS_THREE_TIES_OPTIONS)a_nXRaySearchSpeed); String^ strClr = gcnew String(str); return strClr; } // get XAxis direction id String^ COTSProgMgrCLR::GetXAxisDirectionIdString(int a_nXAxisDirection) { CString str = COTSProgMgr::GetXAxisDirectionIdString(( OTSMODEL::OTS_X_AXIS_DIRECTION)a_nXAxisDirection); String^ strClr = gcnew String(str); return strClr; } // get YAxis direction id String^ COTSProgMgrCLR::GetYAxisDirectionIdString(int a_nYAxisDirection) { CString str = COTSProgMgr::GetYAxisDirectionIdString(( OTSMODEL::OTS_Y_AXIS_DIRECTION)a_nYAxisDirection); String^ strClr = gcnew String(str); return strClr; } String ^ COTSProgMgrCLR::GetSteelTechIdString(int a_nSteelTech) { CString str = COTSProgMgr::GetSteelTechIdString((OTSMODEL::STEEL_TECHNOLOGY)a_nSteelTech); String^ strClr = gcnew String(str); return strClr; } // get measure area shape String^ COTSProgMgrCLR::GetAreaShapeString(int a_nShape) { CString str = COTSProgMgr::GetAreaShapeString((OTSDATA::DOMAIN_SHAPE)a_nShape); String^ strClr = gcnew String(str); return strClr; } }