|
@@ -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;
|