Quellcode durchsuchen

Merge branch 'OTSRelease3_0' of http://36.129.163.148:30080/gogsadmin/OTS into OTSRelease3_0

zhangjiaxin vor 1 Jahr
Ursprung
Commit
da33d6cb43

+ 4 - 4
Bin/x64/Debug/Resources/XMLData/ResourceForMeasureSourceGrid-ZH.xml

@@ -16,7 +16,7 @@
 			<member itemKey="20079" itemName="" itemText="spare"/>
 		</collection>
 		<collection RegName="ResGrp" grpKey="1" text="扫描参数" description="">
-			<member itemKey="20010" itemName="" itemText="取图方式" comboContent="中心,自上而下,自下而上" description="选择从测量区域中心开始取图,或自上而下、自下而上取图,或随机取图。"/>
+			<member itemKey="20010" itemName="" itemText="取图方式" comboContent="螺旋,蛇形,Z字形" description="选择从测量区域中心开始取图,或自上而下、自下而上取图,或随机取图。"/>
 			<member itemKey="20011" itemName="" itemText="终止方式" description="选择颗粒数、帧图数、测量时间,或覆盖测量区域。"/>
 			<member itemKey="20012" itemName="" itemText="颗粒数" description="输入测量颗粒数。"/>
 			<member itemKey="20013" itemName="" itemText="帧图数" description="输入测量帧图数。"/>
@@ -369,9 +369,9 @@
         <member itemKey="12258" itemName="" itemText="空"/>
         <member itemKey="12259" itemName="" itemText="空"/>
         <member itemKey="12260" itemName="" itemText="空"/>
-        <member itemKey="12261" itemName="" itemText="中心"/>
-        <member itemKey="12262" itemName="" itemText="自上而下"/>
-        <member itemKey="12263" itemName="" itemText="自下而上"/>
+        <member itemKey="12261" itemName="" itemText="螺旋"/>
+        <member itemKey="12262" itemName="" itemText="蛇形"/>
+        <member itemKey="12263" itemName="" itemText="Z字形"/>
         <member itemKey="12264" itemName="" itemText="随机"/>
         <member itemKey="12265" itemName="" itemText="通用方法"/>
         <member itemKey="12266" itemName="" itemText="钙处理"/>

+ 4 - 13
OTSCPP/OTSControl/Bruker/OTSBrukerImpl.cpp

@@ -477,6 +477,8 @@ namespace OTSController {
 			LogErrorTrace(__FILE__, __LINE__, "ImageGetConfiguration::ImageSetConfiguration: failed to call ImageSetConfiguration method, client id = %d", m_nClientID);
 			return FALSE;
 		}
+		nWidth = a_nWidth;
+		nHeight = a_nHeight;
 
 		// ok, return TRUE
 		return TRUE;
@@ -496,25 +498,14 @@ namespace OTSController {
 				return CBSEImgPtr();
 			}
 
-			// Get the image config so we can allocate enough memory
-			DWORD nWidth = 0;
-			DWORD nHeight = 0;
-			DWORD nAverage;
-			BYTE bCh1;
-			BYTE bCh2;
-			if (!ImageGetConfiguration(nWidth, nHeight, nAverage, bCh1, bCh2))
-			{
-				// failed to call ImageGetConfiguration method 
-				LogErrorTrace(__FILE__, __LINE__, _T("COTSBrukerImpl::AcquireImage: failed to call ImageGetConfiguration method."));
-				return CBSEImgPtr();
-			}
+			
 
 			// SEM info
 			BrukerDll::TRTImageInfoEx imgInfo;
 			BrukerDll::PRTImageInfoEx oImageInfo=&imgInfo;
 
 			// the buffer returned is a bitmap stream, i.e. it contains the header information as well
-			int32_t nImageSize = nWidth * nHeight + 20000;
+			int32_t nImageSize = nWidth * nHeight + 2000;
 			std::vector<BYTE> vecImage(nImageSize, 0);
 
 			BYTE showProgress = false;

+ 2 - 1
OTSCPP/OTSControl/Bruker/OTSBrukerImpl.h

@@ -227,7 +227,8 @@ namespace OTSController {
 		BOOL m_bSEMExternal;
 		int m_nSPU;
 		BOOL m_bConnected;
-
+		DWORD nWidth = 0;
+		DWORD nHeight = 0;
 		BOOL m_bDoQuantification;                           // if do x-ray quantification
 
 		BOOL m_bShowQuantificationSpectrum;		

+ 1 - 22
OTSCPP/OTSControl/Bruker/OTSEDSBrucker.cpp

@@ -28,28 +28,7 @@ namespace OTSController {
 	// initialization
 	BOOL COTSEDSBrucker::Init()
 	{
-		// create bruker controller if necessary
-		//if (!m_pBrukerImpl)
-		//{
-		//	// create bruker controller
-		//	m_pBrukerImpl = COTSBrukerImpl::GetInstance();
-		//}
-
-		//// check if bruker controller is alright
-		//ASSERT(m_pBrukerImpl);
-		//if (!m_pBrukerImpl)
-		//{
-		//	LogErrorTrace(__FILE__, __LINE__, _T("COTSEDSBrucker::Init: failed to create bruker controller."));
-		//	return FALSE;
-		//}
-
-		//// initialize bruker controller (as xray controller)
-		//if (!m_pBrukerImpl->Init(CONTROL_TYPE::BRUKER_XRAY))
-		//{
-		//	// failed to initialize bruker controller 
-		//	LogErrorTrace(__FILE__, __LINE__, _T("COTSEDSBrucker::Init: failed to initialize bruker controller."));
-		//	return FALSE;
-		//}
+		
 		if (!m_pBrukerImpl->SetSPU())
 		{
 			return FALSE;

+ 32 - 120
OTSCPP/OTSControl/Bruker/OTSSEMBruker.cpp

@@ -34,29 +34,7 @@ namespace OTSController {
 	// connect client dll
 	BOOL COTSSEMBruker::Connect()
 	{
-		// doing nothing if m_pBrukerImplPtr is not nullptr 
-		//if (!m_pBrukerImplPtr)
-		//{
-		//	// get bruker initialize controller
-		//	m_pBrukerImplPtr = COTSBrukerImpl::GetInstance();
-		//}
-
-		// make sure m_pBrukerImplPtr is OK
-		/*if (m_pBrukerImplPtr)
-		{*/
-			// initialize the bruker controller as a SEM controller
 		
-			
-			// check connection
-		//m_pBrukerImplPtr->CheckConnection(m_bConnected);
-			/*if (!m_bConnected)
-			{
-
-				LogErrorTrace(__FILE__, __LINE__, _T("COTSSEMBruker::Connect: failed to call init."));
-				m_pBrukerImplPtr.reset();
-				m_bConnected = FALSE;
-				return FALSE;
-			}*/
 
 			// connection is ok?
 			if (!m_bConnected)
@@ -68,10 +46,11 @@ namespace OTSController {
 					m_pBrukerImplPtr.reset();
 					return FALSE;
 				}
-				
+			
 				m_bConnected = TRUE;
 			
 			}
+			
 		
 		return TRUE;
 	}
@@ -99,13 +78,7 @@ namespace OTSController {
 	// set beam blank
 	BOOL COTSSEMBruker::SetBeamBlank(long a_nBeamBlank)
 	{
-		// m_pBrukerImplPtr check
-		ASSERT(m_pBrukerImplPtr);
-		if (!m_pBrukerImplPtr)
-		{
-			LogErrorTrace(__FILE__, __LINE__, _T("COTSSEMBruker::SetBeamBlank: m_pBrukerImplPtr is invalid."));
-			return FALSE;
-		}
+		
 
 		// turn Bean off if a_nBeamBlank > 0
 		if (a_nBeamBlank > 0)
@@ -124,13 +97,7 @@ namespace OTSController {
 	// set beam blank
 	BOOL COTSSEMBruker::SetBeamCurrent(BOOL a_nBeamCurrent)
 	{
-		// m_pBrukerImplPtr check
-		ASSERT(m_pBrukerImplPtr);
-		if (!m_pBrukerImplPtr)
-		{
-			LogErrorTrace(__FILE__, __LINE__, _T("COTSSEMBruker::SetBeamBlank: m_pBrukerImplPtr is invalid."));
-			return FALSE;
-		}
+		
 
 		// turn Bean off if a_nBeamBlank > 0
 		if (a_nBeamCurrent )
@@ -149,13 +116,7 @@ namespace OTSController {
 	// brightness
 	BOOL COTSSEMBruker::GetBrightness(double& a_dBrightness)
 	{
-		// m_pBrukerImplPtr check
-		ASSERT(m_pBrukerImplPtr);
-		if (!m_pBrukerImplPtr)
-		{
-			LogErrorTrace(__FILE__, __LINE__, _T("COTSSEMBruker::GetBrightness: m_pBrukerImplPtr is invalid."));
-			return FALSE;
-		}
+		
 
 		// get brightness and contrast
 		double dBrightness, dContrast;
@@ -172,13 +133,7 @@ namespace OTSController {
 	}
 	BOOL COTSSEMBruker::SetBrightness(double a_dBrightness)
 	{
-		// m_pBrukerImplPtr check
-		ASSERT(m_pBrukerImplPtr);
-		if (!m_pBrukerImplPtr)
-		{
-			LogErrorTrace(__FILE__, __LINE__, _T("COTSSEMBruker::SetBrightness: m_pBrukerImplPtr is invalid."));
-			return FALSE;
-		}
+		
 
 		// get current brightness and contrast
 		double dBrightness, dContrast;
@@ -205,13 +160,7 @@ namespace OTSController {
 	// contrast
 	BOOL COTSSEMBruker::GetContrast(double& a_dContrast)
 	{
-		// m_pBrukerImplPtr check
-		ASSERT(m_pBrukerImplPtr);
-		if (!m_pBrukerImplPtr)
-		{
-			LogErrorTrace(__FILE__, __LINE__, _T("COTSSEMBruker::GetContrast: m_pBrukerImplPtr is invalid."));
-			return FALSE;
-		}
+		
 
 		// get brightness and contrast
 		double dBrightness, dContrast;
@@ -228,13 +177,7 @@ namespace OTSController {
 	}
 	BOOL COTSSEMBruker::SetContrast(double a_dContrast)
 	{
-		// m_pBrukerImplPtr check
-		ASSERT(m_pBrukerImplPtr);
-		if (!m_pBrukerImplPtr)
-		{
-			LogErrorTrace(__FILE__, __LINE__, _T("COTSSEMBruker::SetContrast: m_pBrukerImplPtr is invalid."));
-			return FALSE;
-		}
+		
 
 		// get current brightness and contrast
 		double dBrightness, dContrast;
@@ -261,14 +204,7 @@ namespace OTSController {
 	// working distance
 	BOOL COTSSEMBruker::GetWorkingDistance(double& a_dWorkingDistance)
 	{
-		// m_pBrukerImplPtr check
-		ASSERT(m_pBrukerImplPtr);
-		if (!m_pBrukerImplPtr)
-
-		{
-			LogErrorTrace(__FILE__, __LINE__, _T("COTSSEMBruker::GetWorkingDistance: m_pBrukerImplPtr is invalid."));
-			return FALSE;
-		}
+		
 
 		// get mag, KV and working distance
 		double dMagnification, dHighVoltage, dWorkingDistance;
@@ -285,13 +221,7 @@ namespace OTSController {
 	}
 	BOOL COTSSEMBruker::SetWorkingDistance(double a_dWorkingDistance)
 	{
-		// m_pBrukerImplPtr check
-		ASSERT(m_pBrukerImplPtr);
-		if (!m_pBrukerImplPtr)
-		{
-			LogErrorTrace(__FILE__, __LINE__, _T("COTSSEMBruker::SetWorkingDistance: m_pBrukerImplPtr is invalid."));
-			return FALSE;
-		}
+		
 
 		// get current mag, KV and working distance
 		double dMagnification, dHighVoltage, dWorkingDistance;
@@ -318,13 +248,8 @@ namespace OTSController {
 	// high tension (KV)
 	BOOL COTSSEMBruker::GetHighTension(double& a_dKV)
 	{
-		// m_pBrukerImplPtr check
-		ASSERT(m_pBrukerImplPtr);
-		if (!m_pBrukerImplPtr)
-		{
-			LogErrorTrace(__FILE__, __LINE__, _T("COTSSEMBruker::GetHighTension: m_pBrukerImplPtr is invalid."));
-			return FALSE;
-		}
+		
+		
 
 		// get mag, KV and working distance
 		double dMagnification, dHighVoltage, dWorkingDistance;
@@ -341,14 +266,7 @@ namespace OTSController {
 	}
 	BOOL COTSSEMBruker::SetHighTension(double a_dKV)
 	{
-		// m_pBrukerImplPtr check
-		ASSERT(m_pBrukerImplPtr);
-		if (!m_pBrukerImplPtr)
-		{
-			LogErrorTrace(__FILE__, __LINE__, _T("COTSSEMBruker::SetHighTension: m_pBrukerImplPtr is invalid."));
-			return FALSE;
-		}
-
+		
 		// get current mag, KV and working distance
 		double dMagnification, dHighVoltage, dWorkingDistance;
 		if (!m_pBrukerImplPtr->GetSEMData(dMagnification, dHighVoltage, dWorkingDistance))
@@ -374,13 +292,7 @@ namespace OTSController {
 	// magnification
 	BOOL COTSSEMBruker::GetMagnification(double& a_dMagnification)
 	{
-		// m_pBrukerImplPtr check
-		ASSERT(m_pBrukerImplPtr);
-		if (!m_pBrukerImplPtr)
-		{
-			LogErrorTrace(__FILE__, __LINE__, _T("COTSSEMBruker::GetMagnification: m_pBrukerImplPtr is invalid."));
-			return FALSE;
-		}
+		
 
 		// get mag, KV and working distance
 		double dMagnification, dHighVoltage, dWorkingDistance;
@@ -397,13 +309,7 @@ namespace OTSController {
 	}
 	BOOL COTSSEMBruker::SetMagnification(double a_dMagnification)
 	{
-		// m_pBrukerImplPtr check
-		ASSERT(m_pBrukerImplPtr);
-		if (!m_pBrukerImplPtr)
-		{
-			LogErrorTrace(__FILE__, __LINE__, _T("COTSSEMBruker::SetMagnification: m_pBrukerImplPtr is invalid."));
-			return FALSE;
-		}
+		
 
 		// get current mag, KV and working distance
 		double dMagnification, dHighVoltage, dWorkingDistance;
@@ -517,7 +423,7 @@ namespace OTSController {
 		}
 
 		// get position
-		double dPositionX, dPositionY, dPositionZ, dTilt, dRotation;
+		//double dPositionX, dPositionY, dPositionZ, dTilt, dRotation;
 		if (!m_pBrukerImplPtr->GetSEMStageData(dPositionX, dPositionY, dPositionZ, dTilt, dRotation))
 		{
 			// failed to call GetSEMStageData method
@@ -546,13 +452,17 @@ namespace OTSController {
 		}
 
 		// get position
-		double dPositionX, dPositionY, dPositionZ, dTilt, dRotation;
-		if (!m_pBrukerImplPtr->GetSEMStageData(dPositionX, dPositionY, dPositionZ, dTilt, dRotation))
+		//double dPositionX, dPositionY, dPositionZ, dTilt, dRotation;
+		if ((dPositionX == 0 && dPositionY == 0  && dTilt==0 && dRotation==0) || (dPositionZ==0))
 		{
-			// failed to call GetSEMStageData method
-			LogErrorTrace(__FILE__, __LINE__, _T("COTSSEMBruker::SetPositionXY : failed to call GetSEMStageData method."));
-			return FALSE;
+			if (!m_pBrukerImplPtr->GetSEMStageData(dPositionX, dPositionY, dPositionZ, dTilt, dRotation))
+			{
+				// failed to call GetSEMStageData method
+				LogErrorTrace(__FILE__, __LINE__, _T("COTSSEMBruker::SetPositionXY : failed to call GetSEMStageData method."));
+				return FALSE;
+			}
 		}
+		
 
 		// need to convert a_dPositionX, a_dPositionY from OTS position to SEM position
 
@@ -582,12 +492,14 @@ namespace OTSController {
 		}
 
 		// get position
-		double dPositionX, dPositionY, dPositionZ, dTilt, dRotation;
-		if (!m_pBrukerImplPtr->GetSEMStageData(dPositionX, dPositionY, dPositionZ, dTilt, dRotation))
+		if ((dPositionX == 0 && dPositionY == 0 && dTilt == 0 && dRotation == 0) || (dPositionZ == 0))
 		{
-			// failed to call GetSEMStageData method
-			LogErrorTrace(__FILE__, __LINE__, _T("COTSSEMBruker::SetPositionXY : failed to call GetSEMStageData method."));
-			return FALSE;
+			if (!m_pBrukerImplPtr->GetSEMStageData(dPositionX, dPositionY, dPositionZ, dTilt, dRotation))
+			{
+				// failed to call GetSEMStageData method
+				LogErrorTrace(__FILE__, __LINE__, _T("COTSSEMBruker::SetPositionXY : failed to call GetSEMStageData method."));
+				return FALSE;
+			}
 		}
 
 		// need to convert a_dPositionX, a_dPositionY from OTS position to SEM position

+ 1 - 0
OTSCPP/OTSControl/Bruker/OTSSEMBruker.h

@@ -67,6 +67,7 @@ namespace OTSController {
 
 		std::shared_ptr<COTSBrukerImpl> m_pBrukerImplPtr;
 		BOOL m_bConnected;
+		double dPositionX=0, dPositionY=0, dPositionZ=0, dTilt=0, dRotation=0;
 	};
 
 }

+ 3 - 64
OTSCPP/OTSControl/Bruker/OTSScanBrucker.cpp

@@ -28,31 +28,6 @@ namespace OTSController {
 	BOOL COTSScanBrucker::Init()
 	{
 
-		// create bruker initialize controller
-		//if (!m_pBrukerImpl)
-		//{
-		//	// get bruker controller
-		//m_pBrukerImpl = COTSBrukerImpl::GetInstance();
-		//}
-
-		//// initialize bruker scanner controller
-		//ASSERT(m_pBrukerImpl);
-		//if (!m_pBrukerImpl)
-		//{
-		//	// failed to create bruker controller
-		//	LogErrorTrace(__FILE__, __LINE__, _T("COTSScanBrucker::Init: failed to create bruker controller."));
-		//	return FALSE;
-		//}
-
-		// initialize bruker controller (as scanner)
-		//if (!m_pBrukerImpl->Init(CONTROL_TYPE::BRUKER_SCAN))
-		//{
-		//	// failed to call bruker controller init method
-		//	LogErrorTrace(__FILE__, __LINE__, _T("COTSScanBrucker::Init: failed to failed to call bruker controller init method."));
-		//	return FALSE;
-		//}
-
-		// ok, return TRUE
 		return TRUE;
 	}
 
@@ -63,16 +38,6 @@ namespace OTSController {
 		// BSE image
 		CBSEImgPtr poBSEImgPtr = nullptr;
 
-
-		// check bruker controller
-		ASSERT(m_pBrukerImpl);
-		if (!m_pBrukerImpl)
-		{
-			// invalid m_pBrukerImpl
-			LogErrorTrace(__FILE__, __LINE__, _T("COTSScanBrucker::AcquireBSEImage: invalid m_pBrukerImpl."));
-			return poBSEImgPtr;
-		}
-
 		// acquire BSE image
 		poBSEImgPtr = m_pBrukerImpl->AcquireImage();
 
@@ -93,14 +58,7 @@ namespace OTSController {
 	{
 
 
-		// check bruker controller
-		ASSERT(m_pBrukerImpl);
-		if (!m_pBrukerImpl)
-		{
-			// invalid m_pBrukerImpl
-			LogErrorTrace(__FILE__, __LINE__, _T("COTSScanBrucker::MoveBeamTo: invalid m_pBrukerImpl."));
-			return FALSE;
-		}
+		
 
 		// move beam to point
 		if (!m_pBrukerImpl->ImageSetPoint(a_beamPos))
@@ -120,19 +78,9 @@ namespace OTSController {
 	BOOL COTSScanBrucker::SetImageSize(long a_nImageSizeX,long a_Height)
 	{
 
-
-		// check bruker controller
-		ASSERT(m_pBrukerImpl);
-		if (!m_pBrukerImpl)
-		{
-			// invalid m_pBrukerImpl
-			LogErrorTrace(__FILE__, __LINE__, _T("COTSScanBrucker::SetImageSize: invalid m_pBrukerImpl."));
-			return FALSE;
-		}
-
 		// call ImageGetConfiguration to get the existing dimensions, dwell time and enabled channels
-		DWORD nWidth = 0;
-		DWORD nHeight = 0;
+		/*DWORD nWidth = 0;
+		DWORD nHeight = 0;*/
 		DWORD nAverage;
 		BYTE bCh1;
 		BYTE bCh2;
@@ -161,15 +109,6 @@ namespace OTSController {
 	BOOL COTSScanBrucker::SetDwellTime(long a_nDwellTime)
 	{
 
-		// check bruker controller
-		ASSERT(m_pBrukerImpl);
-		if (!m_pBrukerImpl)
-		{
-			// invalid m_pBrukerImpl
-			LogErrorTrace(__FILE__, __LINE__, _T("COTSScanBrucker::SetDwellTime: invalid m_pBrukerImpl."));
-			return FALSE;
-		}
-
 		// call ImageGetConfiguration to get the existing dimensions, dwell time and enabled channels
 		DWORD nWidth = 0;
 		DWORD nHeight = 0;

+ 2 - 1
OTSCPP/OTSControl/Bruker/OTSScanBrucker.h

@@ -40,7 +40,8 @@ namespace OTSController {
 
 		
 	private:
-		
+		DWORD nWidth = 0;
+		DWORD nHeight = 0;
 		std::shared_ptr<COTSBrukerImpl> m_pBrukerImpl;
 	};
 

+ 3 - 3
OTSCPP/OTSData/otsdataconst.h

@@ -150,9 +150,9 @@ namespace OTSDATA
 	{
 		INVALID = -1,
 		MIN = 0,
-		FROM_CENTER = 0,
-		UP_TO_DOWN = 1,
-		DOWN_TO_UP = 2,
+		SpiralSequnce = 0,
+		SnakeSequnce = 1,
+		ZShapeSequnce = 2,
 		RANDOM = 3,
 		MAX = 3
 	} OTS_GET_IMAGE_MODE;

+ 21 - 16
OTSCPP/OTSImagePro/FieldMgr.cpp

@@ -68,7 +68,7 @@ namespace OTSIMGPROC {
 			}
 
 		}
-		void getDownUpMeanderMatrics(std::vector <std::vector <int>>& arrays, int row, int col)
+		void getZShapeMatrics(std::vector <std::vector <int>>& arrays, int row, int col)
 		{
 			
 			arrays.resize(row, std::vector<int>(col));
@@ -78,14 +78,9 @@ namespace OTSIMGPROC {
 			{
 				for (int j = 0; j < col; j++)
 				{
-					if (i % 2 == 0)
-					{
-						arrays[i][j] = col * i + j+1;
-					}
-					else
-					{
-						arrays[i][j] = col * i+(col-  j);
-					}
+					
+						arrays[i][j] = col *(row- i) + j+1;
+					
 					
 				}
 			}
@@ -178,9 +173,6 @@ namespace OTSIMGPROC {
 			return FALSE;
 		}
 
-
-		// check member parameters
-		//ASSERT(m_pMeasureArea && m_poImageScanParam && m_poSEMDataMsr);
 		if (!m_pMeasureArea || m_ScanFieldSize==0)
 		{
 			// shouldn't happen
@@ -282,6 +274,12 @@ namespace OTSIMGPROC {
 		return nTotalFields;
 	}
 
+	std::vector<CPoint> CFieldMgr::GetFieldCentrePoints()
+	{
+		 auto m_listFieldCentrePoints = CalculateFieldCentrePoints1();
+		 return m_listFieldCentrePoints; 
+	}
+
 	// field centre points list
 	BOOL CFieldMgr::GetFieldRectByIndex(int a_nIndex, CRect& a_rectField)
 	{
@@ -309,6 +307,12 @@ namespace OTSIMGPROC {
 		return TRUE;
 	}
 
+	int CFieldMgr::GetTotalFields()
+	{
+		auto m_listFieldCentrePoints = CalculateFieldCentrePoints1();
+		return (int)m_listFieldCentrePoints.size();
+	}
+
 	
 
 
@@ -419,15 +423,16 @@ namespace OTSIMGPROC {
 				std::vector <std::vector <int>> sequenceMat; //construct an matrics map to the pointMatrics,but the content is the sequence number.
 				switch (nStartMode)
 				{
-				case OTS_GET_IMAGE_MODE::FROM_CENTER:
+				case OTS_GET_IMAGE_MODE::SpiralSequnce:
                     getSpiralMatrics(sequenceMat, nTotalRows,nTotalCols);
 					break;
-				case  OTS_GET_IMAGE_MODE::UP_TO_DOWN :
+				case  OTS_GET_IMAGE_MODE::SnakeSequnce :
 					getUpDownMeanderMatrics(sequenceMat, nTotalRows, nTotalCols);
 					break;
-				case OTS_GET_IMAGE_MODE::DOWN_TO_UP :
+				case OTS_GET_IMAGE_MODE::ZShapeSequnce :
+					getZShapeMatrics(sequenceMat, nTotalRows, nTotalCols);
 				case OTS_GET_IMAGE_MODE::RANDOM :
-					getDownUpMeanderMatrics(sequenceMat, nTotalRows, nTotalCols);
+					
 					break;
 				}	
 				

+ 2 - 2
OTSCPP/OTSImagePro/FieldMgr.h

@@ -38,10 +38,10 @@ namespace OTSIMGPROC {
 		static long CalculateTotalFields(CDomainPtr a_poMeasureArea, double a_dScanFieldSizeX, CSize a_sizeResolution);
 
 		// field centre points list
-		std::vector<CPoint> GetFieldCentrePoints() { auto m_listFieldCentrePoints = CalculateFieldCentrePoints1(); return m_listFieldCentrePoints; }
+		std::vector<CPoint> GetFieldCentrePoints();
 
 		BOOL GetFieldRectByIndex(int a_nIndex, CRect& a_rctField);
-		int GetTotalFields() { auto m_listFieldCentrePoints = CalculateFieldCentrePoints1(); return (int)m_listFieldCentrePoints.size(); }
+		int GetTotalFields();
 		
 		//overlap
 		int GetOverlap() { return m_Overlap; }

+ 1 - 1
OTSCPP/OTSImagePro/OTSImageScanParam.h

@@ -14,7 +14,7 @@ namespace OTSIMGPROC
 	__declspec(dllexport) const int DEFUALT_PARAM_PARTICLE = 5000;
 
 	// image mode
-	__declspec(dllexport) const OTS_GET_IMAGE_MODE DEFAULT_IMAGEMODE = OTS_GET_IMAGE_MODE::FROM_CENTER;
+	__declspec(dllexport) const OTS_GET_IMAGE_MODE DEFAULT_IMAGEMODE = OTS_GET_IMAGE_MODE::SpiralSequnce;
 
 	// scan speed
 	__declspec(dllexport) const OTS_THREE_TIES_OPTIONS DEFAULE_SCAN_SPEED = OTS_THREE_TIES_OPTIONS::TIE2;

+ 5 - 8
OTSIncAMeasureApp/1-OTSMeasure/Measure/3-MeasureFlow/CSmplMeasure.cs

@@ -454,7 +454,11 @@ namespace OTSModelSharp
 
               
             }
-            Thread.Sleep(hardWareDelay);
+            if (hardWareDelay > 0)
+            {
+                Thread.Sleep(hardWareDelay);
+            }
+           
             return true;
         }
         // Acquire a BSE image
@@ -762,18 +766,11 @@ namespace OTSModelSharp
 
                     }
 
-                    //m_SemHardwareMgr.SetScanExternal(false);
-
-
-
-
                     m_Sample.GetMsrStatus().SetStatus(OTS_MSR_SAMPLE_STATUS.SUCCESSED);
 
 
                     curFld.SetIsMeasureComplete(true);
 
-                   
-                 
                     log.Info("Begin to classify particles! particle num:" + curFld.GetListAnalysisParticles().Count);
                     ClassifyFieldParticles(curFld);
                     //start db save

+ 5 - 0
OTSIncAMeasureApp/ServiceCenter/FEIAutoScript/FEIEDSController.cs

@@ -78,6 +78,11 @@ namespace OTSMeasureApp.ServiceCenter
                 {
                     return false;
                 }
+                //Rectangle r = new Rectangle(point.X, point.Y, 0, 0);
+                //if (!ApiClass.GetXRayByRect(r, strResolution, a_nXRayAQTime, AnalyExpCount, a_bElementInfo, ref eleItems, ref spectrumItems))
+                //{
+                //    return false;
+                //}
                 var xray = a_listParticles[i].GetXray();
                 xray.SetXrayData(spectrumItems);
                 a_listParticles[i].SetXray(xray);

+ 2 - 2
OTSIncAMeasureApp/ServiceCenter/OxfordExtender/OxfordSemController.cs

@@ -125,14 +125,14 @@ namespace OTSMeasureApp.ServiceCenter
         {
            var b1= iExtender.MoveStageXY((float)a_dPositionX, (float)a_dPositionY);
             var b2=iExtender.SetStageGotoR((float)rotation);
-            Thread.Sleep(500);
+            //Thread.Sleep(500);
             return b1&b2;
         }
 
         public bool MoveSEMToPoint(double a_dPositionX, double a_dPositionY)
         {
             var b= iExtender.MoveStageXY((float)a_dPositionX, (float)a_dPositionY);
-            Thread.Sleep(500);
+            //Thread.Sleep(500);
             return b;
         }
 

+ 1 - 1
OTSInclusionsTraceability/App.config

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <configuration>
     <startup> 
-        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1"/>
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/>
     </startup>
   <runtime>
     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">

+ 1 - 1
OTSInclusionsTraceability/OTSInclusionsTraceability.csproj

@@ -8,7 +8,7 @@
     <OutputType>WinExe</OutputType>
     <RootNamespace>OTSInclusionsTraceability</RootNamespace>
     <AssemblyName>OTSInclusionsTraceability</AssemblyName>
-    <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
+    <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
     <FileAlignment>512</FileAlignment>
     <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
     <Deterministic>true</Deterministic>

+ 4 - 4
OxfordExtenderWrapper/ExtenderWrapper.cs

@@ -408,10 +408,10 @@ namespace OxfordExtenderWrapper
         }
         public bool MoveStageXY(float x, float y)
         {
-            if ((m_dStageX - x < 0.001) && (m_dStageY - y < 0.001))
-            {
-                return true;
-            }
+            //if ((m_dStageX - x < 0.001) && (m_dStageY - y < 0.001))
+            //{
+            //    return true;
+            //}
             currentCommand.moveStagePrm = new MoveStageParam();
             currentCommand.moveStagePrm.x = x;
             currentCommand.moveStagePrm.y = y;