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