|
@@ -176,6 +176,7 @@ namespace OTSModelSharp
|
|
|
int nResulotionId = RESOLUTION_ID_FIRST_TIE + (int)nImageSizeId;
|
|
|
Size sizePixelImage = RESOLUTION_VALUE[nResulotionId];
|
|
|
|
|
|
+
|
|
|
// get SEM controller
|
|
|
if (!pSEMController.IsConnected())
|
|
|
{
|
|
@@ -186,33 +187,98 @@ namespace OTSModelSharp
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // get scan field size
|
|
|
- double dScanFieldSizeX = sizePixelImage.Width;
|
|
|
- double dScanFieldSizeY = sizePixelImage.Height;
|
|
|
- if (!pSEMController.GetScanFieldSize(ref dScanFieldSizeX, ref dScanFieldSizeY))
|
|
|
+ // get dwell time
|
|
|
+ OTS_THREE_TIES_OPTIONS nDwellTime = pImgScanParam.GetScanImageSpeed();
|
|
|
+
|
|
|
+ // convert dwell time to bruker dwell time (8, 16, 32)
|
|
|
+ int nBrukerDwellTimeId=3;
|
|
|
+ switch (nDwellTime)
|
|
|
{
|
|
|
+ case OTS_THREE_TIES_OPTIONS.low:
|
|
|
+ nBrukerDwellTimeId = 3;
|
|
|
+ break;
|
|
|
+ case OTS_THREE_TIES_OPTIONS.meddium:
|
|
|
+ nBrukerDwellTimeId = 4;
|
|
|
+ break;
|
|
|
+ case OTS_THREE_TIES_OPTIONS.high:
|
|
|
+ nBrukerDwellTimeId = 5;
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ nBrukerDwellTimeId = 3;
|
|
|
+ break;
|
|
|
|
|
|
- log.Error("SetBSEParam: failed to call GetScanFieldSize method.");
|
|
|
+ }
|
|
|
+
|
|
|
+ long nBrukerDwellTime = OTSDataType.otsdataconst.DWELLTIME_BRUKER_VALUES[nBrukerDwellTimeId];
|
|
|
+
|
|
|
+
|
|
|
+ if (!pScanController.Init())
|
|
|
+ {
|
|
|
+ log.Error("SetBSEParam: failed to get scan control.");
|
|
|
+
|
|
|
return false;
|
|
|
+ }
|
|
|
|
|
|
+ // set dwell time
|
|
|
+ if (!pScanController.SetDwellTime(nBrukerDwellTime))
|
|
|
+ {
|
|
|
+ log.Error("SetBSEParam: failed to set dwell time (%d) for bruker system.", nBrukerDwellTime);
|
|
|
+ return false;
|
|
|
}
|
|
|
|
|
|
+ // set image size
|
|
|
+ if (!pScanController.SetImageSize(sizePixelImage.Width,sizePixelImage.Height))
|
|
|
+ {
|
|
|
+ // failed to set dwell time
|
|
|
+ log.Error("SetBSEParam: failed to set dwell time (%d).", sizePixelImage.Height);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ bool SetHoleBSEParam()
|
|
|
+ {
|
|
|
+
|
|
|
+
|
|
|
+ // get SEM controller
|
|
|
+ var pSEMController = m_SemHardwareMgr;
|
|
|
+
|
|
|
+ // get scan controller
|
|
|
+ var pScanController = m_ScanHardwareMgr;
|
|
|
+
|
|
|
+
|
|
|
+ // scan parameters
|
|
|
+ var pMsrParam = m_Sample.GetMsrParams();
|
|
|
+ var pImgScanParam = pMsrParam.GetImageScanParam();
|
|
|
+
|
|
|
+ // get image size
|
|
|
+ var nImageSizeId = pImgScanParam.GetImagePixelSize();
|
|
|
+ int nResulotionId = RESOLUTION_ID_FIRST_TIE + (int)nImageSizeId;
|
|
|
+ Size sizePixelImage = RESOLUTION_VALUE[nResulotionId];
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ // get SEM controller
|
|
|
+ if (!pSEMController.IsConnected())
|
|
|
+ {
|
|
|
+ if (!pSEMController.Connect())
|
|
|
+ {
|
|
|
+ log.Error("SetBSEParam: can't connect SEM.");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
// get dwell time
|
|
|
OTS_THREE_TIES_OPTIONS nDwellTime = pImgScanParam.GetScanImageSpeed();
|
|
|
|
|
|
// convert dwell time to bruker dwell time (6, 16, 32)
|
|
|
-
|
|
|
- const long DWELLTIME_BRUKER_ID_THREE_TIE_MIN = 3; // 8
|
|
|
- long nBrukerDwellTimeId = DWELLTIME_BRUKER_ID_THREE_TIE_MIN + (int)nDwellTime;
|
|
|
- int[] DWELLTIME_BRUKER_VALUES = { 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 };
|
|
|
- long nBrukerDwellTime = DWELLTIME_BRUKER_VALUES[nBrukerDwellTimeId];
|
|
|
+ long nBrukerDwellTime = DWELLTIME_BRUKER_VALUES[2];// choose the third option, so the dwell time will be 4 . there's no need to change here. it shoud be a const.
|
|
|
|
|
|
|
|
|
if (!pScanController.Init())
|
|
|
{
|
|
|
log.Error("SetBSEParam: failed to get scan control.");
|
|
|
-
|
|
|
+
|
|
|
return false;
|
|
|
}
|
|
|
|
|
@@ -224,7 +290,7 @@ namespace OTSModelSharp
|
|
|
}
|
|
|
|
|
|
// set image size
|
|
|
- if (!pScanController.SetImageSize(sizePixelImage.Width,sizePixelImage.Height))
|
|
|
+ if (!pScanController.SetImageSize(sizePixelImage.Width/2, sizePixelImage.Height/2))
|
|
|
{
|
|
|
// failed to set dwell time
|
|
|
log.Error("SetBSEParam: failed to set dwell time (%d).", sizePixelImage.Height);
|
|
@@ -234,8 +300,7 @@ namespace OTSModelSharp
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- public void SetWorkingFolder(String a_strWorkingFolder)
|
|
|
+ public void SetWorkingFolder(String a_strWorkingFolder)
|
|
|
{
|
|
|
// add "\\" at the string end if it is not "\\"
|
|
|
if (a_strWorkingFolder.PadRight(1)!="\\")
|
|
@@ -755,7 +820,7 @@ namespace OTSModelSharp
|
|
|
return;
|
|
|
}
|
|
|
// set the BSE scan param
|
|
|
- if (!SetBSEParam())
|
|
|
+ if (!SetHoleBSEParam())
|
|
|
{
|
|
|
log.Error("DoMeasure: fail to set BSE param.");
|
|
|
pStatus.SetStatus(OTS_MSR_SAMPLE_STATUS.FAILED);
|