Pārlūkot izejas kodu

improve bruker driver

gsp 1 gadu atpakaļ
vecāks
revīzija
9937f81e4c

+ 19 - 9
OTSCPP/OTSControl/Bruker/OTSBrukerImpl.cpp

@@ -11,7 +11,7 @@ namespace OTSController {
 	unsigned int DEFAULT_MAX_WAIT_TIME_COLLECT_COUNTS = 5000;
 
 	const CString DllXMLFileName = "./Config/ProData/HardwareConfig.xml";
-
+	const int STATE_WAS_RUNNING_BEFORE = -201;
 	// constructor
 	COTSBrukerImpl::COTSBrukerImpl()
 		: m_bInit(false)
@@ -1196,10 +1196,23 @@ namespace OTSController {
 		bool bStartNew = FALSE;
 		bool bGUI = FALSE;
 		BOOL bConnected = FALSE;
-		auto bRet = BrukerDll::OpenClient(m_psServerName.get(), "edx", "edx", bStartNew, bGUI, m_nClientID);//static_cast<BYTE>(bStartNew)
+		auto nRet = BrukerDll::OpenClient(m_psServerName.get(), "edx", "edx", bStartNew, bGUI, m_nClientID);//static_cast<BYTE>(bStartNew)
 		//CheckConnection(bConnected);
-		if (bRet)
+		if (nRet!=0)
 		{
+			/*long nRet = BrukerDll::GetLastReturn();*/
+			if (nRet == STATE_WAS_RUNNING_BEFORE)
+			{
+				// -201 -- there is an opened instance.
+				bConnected = TRUE;
+				//m_bCloseClient = FALSE;			// FALSE, do not close the interface when the controller is deleted
+				LogTrace(__FILE__, __LINE__, _T("COTSBrukerImpl::OpenClient: client dll is in used."));
+			}
+			else
+			{
+				bConnected = FALSE;
+				LogErrorTrace(__FILE__, __LINE__, _T("COTSBrukerImpl::OpenClient: failed to open client dll."));
+			}
 			LogErrorTrace(__FILE__, __LINE__, _T("COTSBrukerImpl::OpenClient: call OpenClient failed at the first attempt."));
 			bConnected = FALSE;
 		}
@@ -1224,19 +1237,16 @@ namespace OTSController {
 			
 				// second attempt to open client 
 				
-				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", static_cast<BYTE>(bStartNew), static_cast<BYTE>(bGUI), m_nClientID);
 			
-				if (bRet)
+				if (bRet!=0)
 				{
 					LogErrorTrace(__FILE__, __LINE__, _T("COTSBrukerImpl::OpenClient: call OpenClient failed at the second attempt."));
 					bConnected = false;
 				}
 			}
 		}
-		/*if (!bRet)
-		{
-			m_bConnected = true;
-		}*/
+		
 		
 		// return method return flag
 		m_bConnected = bConnected;

+ 5 - 4
OTSIncAMeasureApp/OTSIncAMeasureApp.csproj

@@ -227,10 +227,6 @@
       <HintPath>..\OpenDll\WordApiDll\OTS.WinFormsUI.Docking.dll</HintPath>
       <Private>False</Private>
     </Reference>
-    <Reference Include="OxfordExtenderWrapper">
-      <HintPath>..\Bin\x64\Debug\OxfordExtender\OxfordExtenderWrapper.exe</HintPath>
-      <Private>False</Private>
-    </Reference>
     <Reference Include="SlmRuntimeCSharp, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
       <HintPath>..\OpenDll\SlmRuntimeCSharp\SlmRuntimeCSharp.dll</HintPath>
@@ -945,6 +941,11 @@
       <Name>OTSClrInterface</Name>
       <Private>False</Private>
     </ProjectReference>
+    <ProjectReference Include="..\OxfordExtenderWrapper\OxfordExtenderWrapper.csproj">
+      <Project>{b2683648-c829-40e7-a479-ac90b1b80286}</Project>
+      <Name>OxfordExtenderWrapper</Name>
+      <Private>False</Private>
+    </ProjectReference>
   </ItemGroup>
   <ItemGroup />
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />