Browse Source

Merge branch 'Release2.4' of http://36.129.163.148:10080/gaoshipeng/OTS2_0 into Release2.4

cxs 3 years ago
parent
commit
e9c4ddd596

+ 8 - 0
Bin/x64/Debug/Config/ProData/HardwareConfig.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<XMLData PathName="HardwareConfig.xml" ID="1">
+  <Member RegName="SemControllerName" Value="OffLine" ImageInputSources="BSE" />
+  <Member RegName="EDSName" Value="OffLine" />
+  <Member RegName="BrukerDllVersion" Version="Bruker.API.Esprit2.2.dll" />
+  <Member RegName="FEIIP" Value="192.168.0.1" />
+  <Member RegName="FEIPORT" Value="7520" />
+</XMLData>

+ 49 - 25
OTSCPP/OTSControl/Oxford/OxfordWrapper/OxfordControllerWrapper.cpp

@@ -99,7 +99,8 @@ void OxfordControllerWrapper::ControllerThreadFunction()
 {
 	if (_microscopeController == nullptr)
 	{
-		CreateMicroscopeController();
+		auto ctrl=CreateMicroscopeController();
+		if (ctrl == nullptr) return;
 	}
 
 	if (_edSpectrumController == nullptr)
@@ -2054,7 +2055,7 @@ IMicroscopeController^ OxfordControllerWrapper::CreateMicroscopeController()
 		CString sErrorMessage = ex->Message;
 		AfxMessageBox(_T("oxford eds cann't work,you can change work mode to offline in the sysMgrApp to run offline mode!\nerror:")+ sErrorMessage);	
 		LogErrorTrace(__FILE__, __LINE__, sErrorMessage);
-		exit(0);
+		return nullptr;
 	}
 
 	if (_microscopeController == nullptr)
@@ -2062,7 +2063,7 @@ IMicroscopeController^ OxfordControllerWrapper::CreateMicroscopeController()
 		CString sErrorMessage ="";
 		AfxMessageBox(_T("oxford eds cann't work,you can change work mode to offline in the sysMgrApp to run offline mode!\nerror:") + sErrorMessage);
 		LogErrorTrace(__FILE__, __LINE__, sErrorMessage);
-		exit(0);
+		return nullptr;
 	}
 
 	_microscopeController->ColumnChange += gcnew EventHandler<OINA::Extender::MicroscopeControl::ColumnEventArgs^>(this, &OxfordControllerWrapper::OnMicroscopeColumnUpdated);
@@ -2092,21 +2093,32 @@ IEdSpectrumAcquisitionController^ OxfordControllerWrapper::CreateEdsSpectrumCont
 	if (_edSpectrumController == nullptr)
 	{
 		LogTrace(__FILE__, __LINE__, _T("CreateEdSpectrumServer..."));
-		_edSpectrumController = AcquireFactory::CreateEdSpectrumServer();
+		try
+		{
+			_edSpectrumController = AcquireFactory::CreateEdSpectrumServer();
 
-		_edSpectrumController->ExperimentFinished += gcnew EventHandler<OINA::Extender::Acquisition::AcquisitionFinishedEventArgs<OINA::Extender::Data::Ed::IEdSpectrum^>^>(this, &OxfordControllerWrapper::OnXrayAcquisitionFinished);
+			_edSpectrumController->ExperimentFinished += gcnew EventHandler<OINA::Extender::Acquisition::AcquisitionFinishedEventArgs<OINA::Extender::Data::Ed::IEdSpectrum^>^>(this, &OxfordControllerWrapper::OnXrayAcquisitionFinished);
 
-		auto edsSpectrumSettings = GetEdsSpectrumSettings();
-		while (true)
-		{
-			if (_edSpectrumController->IsEdHardwareReady(edsSpectrumSettings))
+			auto edsSpectrumSettings = GetEdsSpectrumSettings();
+			while (true)
 			{
-				if (edsSpectrumSettings->EdCapabilities->HasHardwareConnection)
+				if (_edSpectrumController->IsEdHardwareReady(edsSpectrumSettings))
 				{
-					break;
+					if (edsSpectrumSettings->EdCapabilities->HasHardwareConnection)
+					{
+						break;
+					}
 				}
 			}
+
+		}
+		catch (const std::exception& e)
+		{
+			CString msg(e.what());
+			LogTrace(__FILE__, __LINE__,msg);
+			return nullptr;
 		}
+		
 	}
 
 	return _edSpectrumController;
@@ -2165,10 +2177,10 @@ IImageAcquisitionController^ OxfordControllerWrapper::CreateImageAcqusitionContr
 		catch (Exception^ ex)
 		{
 			CString sMessage = ex->Message;
-			CString sErrorMessage;
-		
-			LogErrorTrace(__FILE__, __LINE__, sErrorMessage);
 			
+		
+			LogErrorTrace(__FILE__, __LINE__, sMessage);
+			return nullptr;
 		}
 	}
 
@@ -2237,23 +2249,35 @@ IEdChordListAcquisitionController^ OxfordControllerWrapper::CreateChordlistContr
 {
 	if (_edsChordListController == nullptr)
 	{
-		LogTrace(__FILE__, __LINE__, _T("CreateEdChordListServer..."));
-		_edsChordListController = AcquireFactory::CreateEdChordListServer();
-
-		_edsChordListController->PixelProcessed += gcnew EventHandler<OINA::Extender::EventArgs<OINA::Extender::Processing::Quant::IPixelSEMQuantStatus^>^>(this, &OxfordControllerWrapper::OnController_PixelProcessed); 
-		_edsChordListController->ExperimentFinished += gcnew EventHandler<OINA::Extender::Acquisition::AcquisitionFinishedEventArgs^>(this, &OxfordControllerWrapper::OnController_ExperimentFinished); 
-		
-		auto edsChordListSettings = GetChordlistSettings();
-		while (true)
+		try
 		{
-			if (_edsChordListController->IsEdHardwareReady(edsChordListSettings))
+			LogTrace(__FILE__, __LINE__, _T("CreateEdChordListServer..."));
+			_edsChordListController = AcquireFactory::CreateEdChordListServer();
+
+			_edsChordListController->PixelProcessed += gcnew EventHandler<OINA::Extender::EventArgs<OINA::Extender::Processing::Quant::IPixelSEMQuantStatus^>^>(this, &OxfordControllerWrapper::OnController_PixelProcessed);
+			_edsChordListController->ExperimentFinished += gcnew EventHandler<OINA::Extender::Acquisition::AcquisitionFinishedEventArgs^>(this, &OxfordControllerWrapper::OnController_ExperimentFinished);
+
+			auto edsChordListSettings = GetChordlistSettings();
+			while (true)
 			{
-				if (edsChordListSettings->EdCapabilities->HasHardwareConnection)
+				if (_edsChordListController->IsEdHardwareReady(edsChordListSettings))
 				{
-					break;
+					if (edsChordListSettings->EdCapabilities->HasHardwareConnection)
+					{
+						break;
+					}
 				}
 			}
+		}catch(Exception^ ex)
+		{
+
+			CString sMessage = ex->Message;
+
+
+			LogErrorTrace(__FILE__, __LINE__, sMessage);
+			return nullptr;
 		}
+		
 	}
 
 	return _edsChordListController;

+ 8 - 26
OTSIncAMeasureApp/0-OTSModel/Measure/3-MeasureFlow/CSmplMeasure.cs

@@ -95,7 +95,7 @@ namespace OTSModelSharp
             double dMag = pSEMDataMsr.GetMagnification();
             double dWorkDis = pSEMDataMsr.GetWorkingDistance();
 
-            //CSemBasePtr pSEMCtrlPtr = GetSEMControl();
+           
             var pSEMCtrl = m_pMsrThread.GetSEMController();
             // get SEM controller
             if (!pSEMCtrl.IsConnected())
@@ -293,7 +293,7 @@ namespace OTSModelSharp
             if (!pScanController.SetImageSize(sizePixelImage.Width/2, sizePixelImage.Height/2))
             {
                 // failed to set dwell time
-                log.Error("SetBSEParam: failed to set dwell time (%d).", sizePixelImage.Height);
+                log.Error("SetBSEParam: failed to set ImageSize");
                 return false;
             }
 
@@ -1098,12 +1098,10 @@ namespace OTSModelSharp
                 Point pos = new Point((int)posX, (int)posY);
                 Point otsPos = new Point(0, 0);
 
-                if (!a_pCSEMStageData.ConverSEMToOTSPoint(pos, ref otsPos)) ;
+                if (!a_pCSEMStageData.ConverSEMToOTSPoint(pos, ref otsPos)) 
                 {
                     return;
                 }
-
-                  
                 semstate.Pos = otsPos;
                 semstate.Magnification = dMagnification;
                 semstate.WorkingDistance = wd;
@@ -1112,6 +1110,7 @@ namespace OTSModelSharp
                 //-------------------------------------
 
 
+
                 // let the main thread to know that this sample measurement starts
                 CMsrSampleStatus pStatus = m_Sample.GetMsrStatus();
                 pStatus.SetStatus(OTS_MSR_SAMPLE_STATUS.INPROCESS);
@@ -1151,16 +1150,6 @@ namespace OTSModelSharp
 
             
 
-                // check if measurement is aborted
-                if (IsAborted())
-                {// measurement aborted
-                    log.Trace("DoHolePreview: measurement aborted before get SEM condition.");
-                    pStatus.SetStatus(OTS_MSR_SAMPLE_STATUS.STOPPED);
-                    // record end time
-                    pStatus.ComputeTime(OTS_MSR_TIME_TYPE.STOPPED);
-
-                    return;
-                }
 
                 // calculate field centers
                 List<System.Drawing.Point> listFieldCenter=new List<System.Drawing.Point>();
@@ -1194,13 +1183,6 @@ namespace OTSModelSharp
                
  
 
-                    //if (IsSampleOver(pScanParam))
-                    //{
-                    //    pStatus.ComputeTime(OTS_MSR_TIME_TYPE.STOPPED);
-
-                    //    break;
-                    //}
-
                     // get a field center 
                     System.Drawing.Point poiFieldCentre = listFieldCenter[i];
 
@@ -1243,11 +1225,11 @@ namespace OTSModelSharp
 
                     //BSEData
                     ST_MSTMsg MsgFieldBSE=new ST_MSTMsg();
-                   // memset(&MsgFieldBSE, 0, sizeof(ST_MSTMsg));
+                  
                     MsgFieldBSE.iMsgType = ENUM_MSG_TYPE.MSAMPLERESULT;
                     MsgFieldBSE.STMSampleRetData.iRetDataType = MSAMPLE_RET.BSE_DATA;
                     MsgFieldBSE.STMSampleRetData.BSEData.pos = poiFieldCentre;
-                    //MsgFieldBSE.STMSampleRetData.BSEData.pos.y = poiFieldCentre.y;
+                 
                     MsgFieldBSE.STMSampleRetData.BSEData.iBSEDataHeight = pBSEIamge.GetHeight();
                     MsgFieldBSE.STMSampleRetData.BSEData.iBSEDataWidth = pBSEIamge.GetWidth();
                     byte[] pImgData = pBSEIamge.GetImageDataPtr();
@@ -1275,8 +1257,8 @@ namespace OTSModelSharp
 
                     m_listHoleBSEImg.Add(pHoleBSEImg);
 
-                    COTSMsrPrjResultData pProjMgrFile = m_pMsrThread.GetProjResultData();
-                    pProjMgrFile.SetHoleBESImgList(m_listHoleBSEImg,true);
+                    //COTSMsrPrjResultData pProjMgrFile = m_pMsrThread.GetProjResultData();
+                    //pProjMgrFile.SetHoleBESImgList(m_listHoleBSEImg,true);
 
                     // prepare for the next
                     ++nNewFieldId;

+ 4 - 4
OTSIncAMeasureApp/0-OTSModel/Measure/ParamData/COTSMsrPrjResultData.cs

@@ -1082,10 +1082,10 @@ namespace OTSModelSharp
 
             m_listHoleBSEImg = a_listHoleBSEImg;
 
-            if (m_nWorkingSampeIndex != -1)
-            {
-                COTSSample pSample = GetWorkingSample();
-            }
+            //if (m_nWorkingSampeIndex != -1)
+            //{
+            //    COTSSample pSample = GetWorkingSample();
+            //}
         }
 
         // get modify flag