Bläddra i källkod

fix the _int16** of bruker feature scan function to _int16* in Bruker.API.Esprit.cpp. that is a bug of bruker code.

beijing 1 år sedan
förälder
incheckning
4f1aeda6bf

+ 2 - 2
OTSCPP/OTSControl/Bruker/Bruker.API.Esprit.cpp

@@ -32,7 +32,7 @@ namespace BrukerDll
 	typedef int32_t (WINAPI *PGetPointListSpectrum)(uint32_t CID, int32_t Index, PRTSpectrumHeaderRec SpectrumBuf, int32_t BufSize);
 	typedef int32_t (WINAPI *PQuantifyPointListSpectrum)(uint32_t CID, int32_t Index, char* MethodName, char* Params, char* ResultBuf, int32_t ResultBufSize, PRTSpectrumHeaderRec SpectrumBuf, int32_t BufSize);
 	typedef int32_t (WINAPI *PSavePointListSpectrum)(uint32_t CID, int32_t Buffer, char* FileName);
-	typedef int32_t (WINAPI *PStartFeatureListMeasurement)(uint32_t CID, int32_t SPU, uint32_t FeatureCount, PFeatureDataList Features, __int16** PixelTimes);
+	typedef int32_t (WINAPI *PStartFeatureListMeasurement)(uint32_t CID, int32_t SPU, uint32_t FeatureCount, PFeatureDataList Features, __int16* PixelTimes);
 	typedef int32_t (WINAPI *PGetFeatureListSpectrum)(uint32_t CID, int32_t Index, PRTSpectrumHeaderRec SpectrumBuf, int32_t BufSize);
 	typedef int32_t (WINAPI *PQuantifyFeatureListSpectrum)(uint32_t CID, int32_t Index, char* MethodName, char* Params, char* ResultBuf, int32_t ResultBufSize, PRTSpectrumHeaderRec SpectrumBuf, int32_t BufSize);
 	typedef int32_t (WINAPI *PSaveFeatureListSpectrum)(uint32_t CID, int32_t Buffer, char* FileName);
@@ -647,7 +647,7 @@ namespace BrukerDll
 	///////////////////////////////////////////////////////////
 	// functions to deal with object lists                  ///
 	///////////////////////////////////////////////////////////
-	int32_t StartFeatureListMeasurement(uint32_t CID, int32_t SPU, uint32_t FeatureCount, PFeatureDataList Features, __int16** PixelTimes)
+	int32_t StartFeatureListMeasurement(uint32_t CID, int32_t SPU, uint32_t FeatureCount, PFeatureDataList Features, __int16* PixelTimes)
 	{
 		if (pStartFeatureListMeasurement)
 			return pStartFeatureListMeasurement(CID, SPU, FeatureCount, Features, PixelTimes);

+ 1 - 1
OTSCPP/OTSControl/Bruker/Bruker.API.Esprit.h

@@ -133,7 +133,7 @@ namespace BrukerDll
 	///////////////////////////////////////////////////////////
 	// functions to deal with object lists                  ///
 	///////////////////////////////////////////////////////////
-	int32_t StartFeatureListMeasurement(uint32_t CID, int32_t SPU, uint32_t FeatureCount, PFeatureDataList Features, __int16** PixelTimes);
+	int32_t StartFeatureListMeasurement(uint32_t CID, int32_t SPU, uint32_t FeatureCount, PFeatureDataList Features, __int16* PixelTimes);
 
 	int32_t GetFeatureListSpectrum(uint32_t CID, int32_t Index, PRTSpectrumHeaderRec SpectrumBuf, int32_t BufSize);
 

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

@@ -80,29 +80,6 @@ namespace OTSController {
 			
 		}
 
-		// initialized? 
-		//if (!m_bConnected)
-		//{
-
-		//
-		//	if (QueryBrukerServers() && OpenClient())
-		//	{
-		//		LogTrace(__FILE__, __LINE__, "open bruker client success!");
-		//		if (!m_psRTSpectrumBuffer)
-		//		{
-		//			m_psRTSpectrumBuffer.reset(new char[(int)BRUKER_PARAM::RT_SPECTRUM_BUFFER_SIZE]);
-		//		}
-		//		memset(m_psRTSpectrumBuffer.get(), 0, (int)BRUKER_PARAM::RT_SPECTRUM_BUFFER_SIZE);
-		//		// ok, return true
-		//		m_bConnected = true;
-		//	}
-		//	else
-		//	{
-		//		m_bConnected = false;
-		//	}
-		//}
-		
-
 				// control type?
 				switch (a_nControlType)
 				{
@@ -123,11 +100,7 @@ namespace OTSController {
 				// x-ray control
 				case CONTROL_TYPE::BRUKER_XRAY:
 				{
-					// check detector states and set m_nSPU
-					/*if (!SetSPU())
-					{
-						return FALSE;
-					}*/
+			
 
 					m_bXRAyControllerInst = TRUE;
 				}
@@ -182,28 +155,7 @@ namespace OTSController {
 		return true;
 	}
 
-	// check connection
-	//BOOL COTSBrukerImpl::CheckConnection(BOOL& a_bConnected)
-	//{
-
-	//	if (BrukerDll::CheckConnection(m_nClientID)== 0)
-	//	{
-	//		// connected
-	//		a_bConnected = TRUE;
-
-	//		// ok, return true
-	//		return TRUE;
-	//	}
-	//	else
-	//	{
-	//		
-	//		a_bConnected = FALSE;
-
-	//			//LogErrorTrace(__FILE__, __LINE__, _T("COTSBrukerImpl::CheckConnection: no hardware connected."));
-
-	//		return FALSE;
-	//	}
-	//}
+	
 
 	void COTSBrukerImpl::SetExpectCount(int expectCount)
 	{
@@ -1241,10 +1193,10 @@ namespace OTSController {
 	{
 
 		// first attempt to open client 
-		BOOL bStartNew = TRUE;
-		BOOL bGUI = FALSE;
+		bool bStartNew = FALSE;
+		bool bGUI = FALSE;
 		BOOL bConnected = FALSE;
-		auto bRet = BrukerDll::OpenClient(m_psServerName.get(), "edx", "edx", static_cast<BYTE>(bStartNew), static_cast<BYTE>(bGUI), m_nClientID);
+		auto bRet = BrukerDll::OpenClient(m_psServerName.get(), "edx", "edx", bStartNew, bGUI, m_nClientID);//static_cast<BYTE>(bStartNew)
 		//CheckConnection(bConnected);
 		if (bRet)
 		{
@@ -2494,12 +2446,9 @@ BOOL COTSBrukerImpl::GetXRayByFeatures(CPosXrayList& a_vXPoints, std::vector<Bru
 	long nCollectCount = (long)a_vXPoints.size();
 	long nTotalPixelCount = 0;
 
-	SHORT* pixelTimes(new SHORT[nCollectCount]);
+	SHORT* pixelTimes=new SHORT[nCollectCount];
 	BrukerDll::PFeatureDataList features = new BrukerDll::TFeatureData[nCollectCount];
 	
-	/*boost::scoped_array<SHORT*> pixelTimes(new SHORT *[nCollectCount]);
-	boost::scoped_array<BrukerDll::TFeatureData> features(new BrukerDll::TFeatureData[nCollectCount]);
-	std::vector<BrukerDll::TSegment> extraSegments;*/
 
 	for (size_t i = 0; i < nCollectCount; i++)
 	{
@@ -2526,7 +2475,8 @@ BOOL COTSBrukerImpl::GetXRayByFeatures(CPosXrayList& a_vXPoints, std::vector<Bru
 			{
 				nPixelCount += ofeature.pSegment[j].XCount;
 			}
-			pixelTimes[i] = (SHORT)(ceil((double)a_nACTimeMS * 1000.0 / (double)nPixelCount));
+			SHORT pt= (SHORT)(ceil((double)a_nACTimeMS * 1000.0 / (double)nPixelCount));
+			pixelTimes[i] = pt;
 
 			nTotalPixelCount += nPixelCount;
 		}
@@ -2535,21 +2485,21 @@ BOOL COTSBrukerImpl::GetXRayByFeatures(CPosXrayList& a_vXPoints, std::vector<Bru
 			// will generate according to the x-ray position
 			// this shouldn't happen
 			
-			//BrukerDll::PFeatureDataList features = new BrukerDll::TFeatureData[nCollectCount];
+		
 			BrukerDll::TSegment* extraSegments=new BrukerDll::TSegment[1];
-			//extraSegments.push_back(BrukerDll::TSegment());
+			
 			extraSegments[0].XStart = a_vXPoints[i]->GetPosition().x;
 			extraSegments[0].Y = a_vXPoints[i]->GetPosition().y;
 			extraSegments[0].XCount = 1;
 			features[i].SegmentCount = 1;
-			features[i].Segments = &extraSegments[0];
+			features[i].Segments = extraSegments;
 			pixelTimes[i] = (SHORT)(a_nACTimeMS * 1000);
 			
 		}
 	}
 
 	// ask bruker to collect a set of x-ray data
-	if (BrukerDll::StartFeatureListMeasurement(m_nClientID, m_nSPU, nCollectCount, features, &pixelTimes) != 0)
+	if (BrukerDll::StartFeatureListMeasurement(m_nClientID, m_nSPU, nCollectCount, features, pixelTimes) != 0)
 	{
 		LogErrorTrace(__FILE__, __LINE__, _T("COTSBrukerImpl::StartFeatureListMeasurement:Call StartFeatureListMeasurement failed: client id is %d"), m_nClientID);
 		return FALSE;
@@ -2596,7 +2546,7 @@ BOOL COTSBrukerImpl::SetXRayPointsByFeature(CPosXrayList& a_vXPoints, const DWOR
 			memset(cResult, 0, 10000);
 			if (BrukerDll::QuantifyFeatureListSpectrum(m_nClientID, index, pcMethod, pcParams, cResult, 10000, (BrukerDll::PRTSpectrumHeaderRec)m_psRTSpectrumBuffer.get(), (int)BRUKER_PARAM::RT_SPECTRUM_BUFFER_SIZE) != 0)
 			{
-				LogErrorTrace(__FILE__, __LINE__, _T("COTSBrukerImpl::SetXRayPoints failed to call QuantifyPointListSpectrum method, error code %d"), -1);
+				LogErrorTrace(__FILE__, __LINE__, _T("COTSBrukerImpl::SetXRayPointsByFeature failed to call QuantifyFeatureListSpectrum method, error code %d"), -1);
 				//return FALSE;
 			}
 

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

@@ -146,8 +146,6 @@ namespace OTSController {
 	private:
 
 		BOOL ReadSpectrum(long* a_pnCounts, DWORD a_nBufferSize);
-		//BOOL CollectXRayPoints(CPosXrayList& a_listXrayPois, DWORD a_nACTimeMS);
-		//BOOL CollectXRayPointsByFeatures(std::vector<CPosXray*>& a_vXPoints, std::vector<BrukerFeature>& a_vFeatures, DWORD a_nACTimeMS);
 
 
 		BOOL ReadXRayPoints(CPosXrayList& a_listXrayPois, const DWORD a_nACTimeMS);
@@ -193,16 +191,14 @@ namespace OTSController {
 
 		BOOL GetFeatureListSpectrum(long a_nIndex, long* a_pnSpec);
 
-		//BOOL StartPointListMeasurement(DWORD a_nSegmentCount, BrukerDll::PSegmentList a_poSegment, DWORD m_nMilliseconds);
 
-		//BOOL StartFeatureListMeasurement(DWORD a_nFeatureCount, BrukerDll::PFeatureDataList a_poFeature, SHORT** a_pwdPixelTimes);
 
 		BOOL CheckDetectorState(long a_nDetectorId, BOOL& a_bState, uint32_t& a_nMaxEnergy);
 
 	
 		// open client
 		BOOL OpenClient(void);
-		//BOOL OpenClient(char*, char*, char*, BYTE, BYTE, uint32_t&);
+