gsp 1 год назад
Родитель
Сommit
48036b3c07
20 измененных файлов с 540 добавлено и 311 удалено
  1. 6 12
      Bin/x64/Debug/Resources/XMLData/ResourceForMeasureSourceGrid-EN.xml
  2. 6 7
      Bin/x64/Debug/Resources/XMLData/ResourceForMeasureSourceGrid-ZH.xml
  3. 4 4
      OTSCPP/OTSControl/Simulate/OTSSemSim.cpp
  4. 12 0
      OTSIncAMeasureApp/0-OTSModel/OTSDataType/COTSSample.cs
  5. 21 1
      OTSIncAMeasureApp/0-OTSModel/OTSDataType/CSEMDataMsr.cs
  6. 19 7
      OTSIncAMeasureApp/1-OTSMeasure/Measure/3-MeasureFlow/CSmplMeasure.cs
  7. 33 62
      OTSIncAMeasureApp/2-OTSMeasureParamManage/COTSMeasureParam.cs
  8. 76 4
      OTSIncAMeasureApp/3-OTSDisplaySourceGridData/OTSSampleVisualPropertyInfo.cs
  9. 145 99
      OTSIncAMeasureApp/4-OTSSamplespaceGraphicsPanel/OTSSamplespaceWindow.cs
  10. 136 1
      OTSIncAMeasureApp/4-OTSSamplespaceGraphicsPanel/SEMDATAFieldManage.cs
  11. 2 2
      OTSIncAMeasureApp/4-OTSSamplespaceGraphicsPanel/VisualGDIObjects/CDisplayGDIObject.cs
  12. 1 0
      OTSIncAMeasureApp/4-OTSSamplespaceGraphicsPanel/VisualGDIObjects/CVisualFieldGDIObject.cs
  13. 0 3
      OTSIncAMeasureApp/4-OTSSamplespaceGraphicsPanel/VisualGDIObjects/CVisualSampleArea.cs
  14. 1 1
      OTSIncAMeasureApp/4-OTSSamplespaceGraphicsPanel/VisualGDIObjects/CVisualStage.cs
  15. 5 2
      OTSIncAMeasureApp/5-OTSMeasureStatuImageFun/OTSMeasureStatusWindow.cs
  16. 59 95
      OTSIncAMeasureApp/OTSIncAMeasureAppForm.Designer.cs
  17. 1 1
      OTSIncAMeasureApp/OTSIncAMeasureAppForm.cs
  18. 7 7
      OTSIncAMeasureApp/OTSIncAMeasureAppForm.resx
  19. 5 2
      OTSIncAMeasureApp/ResourceManage/ResourceData.cs
  20. 1 1
      OTSIncAMeasureApp/ServiceCenter/CPP(Bruker)API/SemController.cs

+ 6 - 12
Bin/x64/Debug/Resources/XMLData/ResourceForMeasureSourceGrid-EN.xml

@@ -63,19 +63,13 @@
 			<member itemKey="20040" itemName="" itemText="Magnification"/>
 			<member itemKey="20041" itemName="" itemText="PixcelSize(um)"/>
 			<member itemKey="20042" itemName="" itemText="WorkingDistance(mm)"/>
-			<member itemKey="20043" itemName="" itemText="TOTALFIELDS"/>
-			<member itemKey="20044" itemName="" itemText="TOTAL_TO_MEASURE_AREA(mm2)"/>
+			<member itemKey="20043" itemName="" itemText="Brightness" description=""/>
+			<member itemKey="20044" itemName="" itemText="Contrast" description=""/>
+			<member itemKey="20045" itemName="" itemText="HT" description=""/>
+			<member itemKey="20046" itemName="" itemText="TOTALFIELDS"/>
+			<member itemKey="20047" itemName="" itemText="TOTAL_TO_MEASURE_AREA(mm2)"/>
 			
-			 <member itemKey="20110" itemName="" itemText="magnification"/>
-        <member itemKey="20111" itemName="" itemText="pixcel size(um)"/>
-        <member itemKey="20112" itemName="" itemText="working distance(mm)"/>
-        <member itemKey="20113" itemName="" itemText="the needed analysis field numbers that can cover all the measure area"/>
-        <member itemKey="20114" itemName="" itemText="Measured area(mm2)"/>
-        <member itemKey="20115" itemName="" itemText="spare"/>
-        <member itemKey="20116" itemName="" itemText="spare"/>
-        <member itemKey="20117" itemName="" itemText="spare"/>
-        <member itemKey="20118" itemName="" itemText="spare"/>
-        <member itemKey="20119" itemName="" itemText="spare"/>
+
 		</collection>
        <collection RegName="ResGrp" grpKey="5" text="MeasureState" description="">
 			<member itemKey="20050" itemName="" itemText="MeasureState"/>

+ 6 - 7
Bin/x64/Debug/Resources/XMLData/ResourceForMeasureSourceGrid-ZH.xml

@@ -64,14 +64,13 @@
 			<member itemKey="20040" itemName="" itemText="放大倍数" description="放大倍数。"/>
 			<member itemKey="20041" itemName="" itemText="像素尺寸(微米)" description="像素尺寸(微米)。"/>
 			<member itemKey="20042" itemName="" itemText="工作距离(毫米)" description="工作距离(毫米)。"/>
-			<member itemKey="20043" itemName="" itemText="覆盖测量区域帧图数" description="覆盖测量区域帧所需要的分析帧图数。"/>
-			<member itemKey="20044" itemName="" itemText="测量区域面积(平方毫米)" description="测量区域的面积(平方毫米)。"/>
+			<member itemKey="20043" itemName="" itemText="亮度" description=""/>
+			<member itemKey="20044" itemName="" itemText="对比度" description=""/>
+			<member itemKey="20045" itemName="" itemText="加速电压" description=""/>
+			<member itemKey="20046" itemName="" itemText="覆盖测量区域帧图数" description="覆盖测量区域帧所需要的分析帧图数。"/>
+			<member itemKey="20047" itemName="" itemText="测量区域面积(平方毫米)" description="测量区域的面积(平方毫米)。"/>
 			 
-			<member itemKey="20110" itemName="" itemText="放大倍数。"/>
-			<member itemKey="20111" itemName="" itemText="像素尺寸(微米)。"/>
-			<member itemKey="20112" itemName="" itemText="工作距离(毫米)。"/>
-			<member itemKey="20113" itemName="" itemText="覆盖测量区域帧所需要的分析帧图数。"/>
-			<member itemKey="20114" itemName="" itemText="测量区域的面积(平方毫米)。"/>
+		
 
 		</collection>
        <collection RegName="ResGrp" grpKey="5" text="测量状态" description="">

+ 4 - 4
OTSCPP/OTSControl/Simulate/OTSSemSim.cpp

@@ -9,14 +9,14 @@ namespace OTSController {
 		m_bBeamOn = TRUE;
 		m_nBeamBlank = 2;
 
-		m_dBrightness = 20;
-		m_dContrast = 30;
+		m_dBrightness = 50.5;
+		m_dContrast = 40.6;
 		m_dSpotSize = 40;
 
-		m_dWorkingDistance = 10;
+		m_dWorkingDistance = 9.8;
 		m_dMagnification = 100;
 		
-		m_dKV = 30;
+		m_dKV = 15;
 		m_dCurrentPositionX = 0;
 		m_dCurrentPositionY = 0;
 		m_dCurrentPositionR = 0;

+ 12 - 0
OTSIncAMeasureApp/0-OTSModel/OTSDataType/COTSSample.cs

@@ -194,6 +194,18 @@ namespace OTSDataType
         {
             m_listFieldData.Clear();
         }
+        public void SetFieldEnable(Point OTScoord, bool enable)
+        {
+            foreach (var fld in m_listFieldData)
+            {
+                if (fld.GetOTSRect().PointInRect(OTScoord))
+                { 
+                   fld.Enable = enable;
+                }
+            
+            }
+        
+        }
         public int GetIdForANewField()
         {
             List<COTSField> listFieldData = GetFieldsData();

+ 21 - 1
OTSIncAMeasureApp/0-OTSModel/OTSDataType/CSEMDataMsr.cs

@@ -18,6 +18,14 @@ namespace OTSDataType
         private int m_nScanFieldHeight100;
         private double m_magnification;
 
+        private double m_KV=0;
+        private double m_Brightness=0;
+        private double m_Contrast = 0;
+
+        public double KV { get => m_KV; set => m_KV = value; }
+        public double Brightness { get => m_Brightness; set => m_Brightness = value; }
+        public double Contrast { get => m_Contrast; set => m_Contrast = value; }
+
         public CSEMDataMsr()
 	{
 		// initialization
@@ -99,13 +107,19 @@ namespace OTSDataType
            xInt xnScanFieldHeight = new xInt();
            xInt xnScanFieldSize100=new xInt();
            xDouble xdWorkingDistance=new xDouble();
+            xDouble xdKV = new xDouble();
+            xDouble xdBrightness = new xDouble();
+            xDouble xdConstrast = new xDouble();
             xDouble xMag = new xDouble();
            xInt xnTotalFields=new xInt();
            Slo slo=new Slo();
             slo.Register("ScanFieldSize", xnScanFieldSize);
             slo.Register("ScanFieldHeight", xnScanFieldHeight);
             slo.Register("ScanFieldSize100", xnScanFieldSize100);
-            slo.Register("WorkingDistance", xdWorkingDistance);
+            slo.Register("WorkingDistance", xdWorkingDistance);           
+            slo.Register("Brightness", xdBrightness);
+            slo.Register("Constrast", xdConstrast);
+            slo.Register("KV", xdKV);
             slo.Register("Magnification", xMag);
             slo.Register("TotalFields", xnTotalFields);
 
@@ -115,6 +129,9 @@ namespace OTSDataType
                 xnScanFieldHeight.AssignValue(m_nScanFieldHeight);
                 xnScanFieldSize100.AssignValue(m_nScanFieldSize100);
                 xdWorkingDistance.AssignValue(m_dWorkingDistance);
+                xdKV.AssignValue(m_KV);
+                xdBrightness.AssignValue(m_Brightness);
+                xdConstrast.AssignValue(m_Contrast);
                 xMag.AssignValue(m_magnification);
                 xnTotalFields.AssignValue(m_nTotalFields);
 
@@ -128,6 +145,9 @@ namespace OTSDataType
                 m_nScanFieldWidth = xnScanFieldSize.value();
                 m_nScanFieldSize100 = xnScanFieldSize100.value();
                 m_dWorkingDistance = xdWorkingDistance.value();
+                m_KV = xdKV.value();
+                m_Brightness = xdBrightness.value();
+                m_Contrast = xdConstrast.value();
                 m_magnification = xMag.value();
                 m_nTotalFields = xnTotalFields.value();
             }

+ 19 - 7
OTSIncAMeasureApp/1-OTSMeasure/Measure/3-MeasureFlow/CSmplMeasure.cs

@@ -100,13 +100,26 @@ namespace OTSModelSharp
           
             double dMag = pSEMDataMsr.GetMagnification();
             double dWorkDis = pSEMDataMsr.GetWorkingDistance();
+            double bri=pSEMDataMsr.Brightness;
+            double contra = pSEMDataMsr.Contrast;
+            try
+            {
+                var pSEMCtrl = m_pMsrThread.GetSEMController();
 
-           
-            var pSEMCtrl = m_pMsrThread.GetSEMController();
-   
-          
-            pSEMCtrl.SetMagnification(dMag);
-            pSEMCtrl.SetWorkingDistance(dWorkDis);
+
+                pSEMCtrl.SetMagnification(dMag);
+                pSEMCtrl.SetWorkingDistance(dWorkDis);
+                pSEMCtrl.SetSemBrightness(bri);
+                pSEMCtrl.SetSemContrast(contra);
+
+
+            }
+            catch (Exception e) 
+            { 
+            log.Error(e.Message);
+            
+            }
+            
 
 
             return true;
@@ -560,7 +573,6 @@ namespace OTSModelSharp
         }
         public void DoMeasureForOneSample()
         {
-            //using (AutoResetSEMControl autoReset = new AutoResetSEMControl(this)) //when this method exit ,the SetSEMExternalOff and ResetScan will be called automatically.
             try
             {
                 // let the main thread to know that this sample measurement starts

+ 33 - 62
OTSIncAMeasureApp/2-OTSMeasureParamManage/COTSMeasureParam.cs

@@ -1117,56 +1117,36 @@ namespace OTSMeasureApp
         //int iScanFieldSize: Field扫描参数
         //int iWDistance: 电镜工作距离
         //double dMagni: 放大倍数
-        public void SetWorkingSampleSEMData(double iWDistance, double dMagni)
+        public void SetWorkingSampleSEMData(double iWDistance, double dMagni,double bri,double contra,double kv)
         {
-           
-                GetResultData().GetWorkingSample().GetSEMDataMsr().SetWorkingDistance(iWDistance);
-                GetResultData().GetWorkingSample().GetSEMDataMsr().SetMagnification(dMagni);
+            var semdata = GetResultData().GetWorkingSample().GetSEMDataMsr();
+            semdata.SetWorkingDistance(iWDistance);
+            semdata.SetMagnification(dMagni);
+            semdata.Brightness = bri;
+            semdata.Contrast = contra;
+            semdata.KV = kv;
            
         }
-        //public void SetFliedsCount(int FliedsCount)
-        //{
-        //    GetResultData().GetWorkingSample().GetSEMDataMsr().SetTotalFields(FliedsCount);
-        //}
+       
 
-        public void GetWorkingSampleSEMData(ref double iWDistance, ref double dMagni)
+      public  bool   GetWorkingSampleSEMData(ref double iWDistance, ref double dMagni, ref double bri, ref double contra, ref double kv)
         {
-            iWDistance = GetResultData().GetWorkingSample().GetSEMDataMsr().GetWorkingDistance();
-            dMagni = GetResultData().GetWorkingSample().GetSEMDataMsr().GetMagnification();
+            COTSSample WSample = GetResultData().GetWorkingSample();
+            if (null == WSample)
+            {
+                return false;
+            }
+            var semdata = GetResultData().GetWorkingSample().GetSEMDataMsr();
+            iWDistance = semdata.GetWorkingDistance();
+            dMagni = semdata.GetMagnification();
+            bri = semdata.Brightness;
+            contra = semdata.Contrast;
+            kv = semdata.KV;
+            return true;
         }
 
-        //public int GetTotalFieldsCount()
-        //{
-        //    int icount = GetResultData().GetWorkingSample().GetSEMDataMsr().GetTotalFields();
-        //    return icount;
-        //}
-
-        //获取工作样品的测量区域
-        //int iShape :测量区域形状
-        //Rectangle Srect: 测量区域大小
-        //public bool GetWorkSampleMrsArea(ref int iShape, ref RectangleF Srect)
-        //{
-        //    COTSSample WSample = GetResultData().GetWorkingSample();
-        //    if (null == WSample)
-        //    {
-        //        return false;
-        //    }
-
-        //    CDomain pMsrArea = new CDomain();
-        //    pMsrArea = WSample.GetMsrDomain();
-        //    if (null == pMsrArea)
-        //    {
-        //        return false;
-        //    }
-
-        //    iShape = (int)pMsrArea.GetShape();
-
+       
         
-        //    Srect = pMsrArea.GetRectDomain();
-         
-        //    return true;
-        //}
-
 
 
 
@@ -1236,33 +1216,24 @@ namespace OTSMeasureApp
         }
 
         //获取放大倍数和工作距离
-        public bool GetMagAndDistance(ref double SemMag, ref double dDistance)
-        {
+        //public bool GetMagAndDistance(ref double SemMag, ref double dDistance)
+        //{
           
-                COTSSample WSample = GetResultData().GetWorkingSample();
-                if (null == WSample)
-                {
-                    return false;
-                }
+        //        COTSSample WSample = GetResultData().GetWorkingSample();
+        //        if (null == WSample)
+        //        {
+        //            return false;
+        //        }
            
-            GetWorkingSampleSEMData(ref dDistance, ref SemMag);
-            return true;
+        //    GetWorkingSampleSEMData(ref dDistance, ref SemMag);
+        //    return true;
            
-        }
+        //}
 
        
 
 
-        //保存测量样品的
-        //public bool SaveMeasureSampleInfo()
-        //{
-
-        //    if (!GetResultData().Save())
-        //    {
-        //        return false;
-        //    }
-        //    return true;
-        //}
+       
 
         //获取测量Sample的开始时间
         public bool GetMsrSampleStartTime(ref DateTime MsrFieldStartTime)

+ 76 - 4
OTSIncAMeasureApp/3-OTSDisplaySourceGridData/OTSSampleVisualPropertyInfo.cs

@@ -7,7 +7,7 @@ using static OTSDataType.otsdataconst;
 using OTSModelSharp.ResourceManage;
 using OTSModelSharp;
 using System.IO;
-using OTSMeasureApp._4_OTSSamplespaceGraphicsPanel.VisualGDIObjects;
+
 
 namespace OTSMeasureApp
 {
@@ -1163,7 +1163,21 @@ namespace OTSMeasureApp
                                 nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.WORKING_DISTANCE;
                                 poPropItem.InitialSmplParameter(a_nId, nItemId, OTS_ITEM_TYPES.STRING, true, true);
                                 a_listPropItems.Add(poPropItem);
-
+                                //brightness
+                                poPropItem = new CPropItem();
+                                nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.BRIGHTNESS;
+                                poPropItem.InitialSmplParameter(a_nId, nItemId, OTS_ITEM_TYPES.DOUBLE, true, true);
+                                a_listPropItems.Add(poPropItem);
+                                //contrast
+                                poPropItem = new CPropItem();
+                                nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.CONTRAST;
+                                poPropItem.InitialSmplParameter(a_nId, nItemId, OTS_ITEM_TYPES.DOUBLE, true, true);
+                                a_listPropItems.Add(poPropItem);
+                                //HV
+                                poPropItem = new CPropItem();
+                                nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.HV;
+                                poPropItem.InitialSmplParameter(a_nId, nItemId, OTS_ITEM_TYPES.DOUBLE, true, true);
+                                a_listPropItems.Add(poPropItem);
                                 // total field
                                 poPropItem = new CPropItem();
                                 nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_FIELDS;
@@ -1195,6 +1209,21 @@ namespace OTSMeasureApp
                                 nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.WORKING_DISTANCE;
                                 poPropItem.InitialSmplParameter(a_nId, nItemId, OTS_ITEM_TYPES.DOUBLE, true, true);
                                 a_listPropItems.Add(poPropItem);
+                                //brightness
+                                poPropItem = new CPropItem();
+                                nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.BRIGHTNESS;
+                                poPropItem.InitialSmplParameter(a_nId, nItemId, OTS_ITEM_TYPES.DOUBLE, true, true);
+                                a_listPropItems.Add(poPropItem);
+                                //contrast
+                                poPropItem = new CPropItem();
+                                nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.CONTRAST;
+                                poPropItem.InitialSmplParameter(a_nId, nItemId, OTS_ITEM_TYPES.DOUBLE, true, true);
+                                a_listPropItems.Add(poPropItem);
+                                //HV
+                                poPropItem = new CPropItem();
+                                nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.HV;
+                                poPropItem.InitialSmplParameter(a_nId, nItemId, OTS_ITEM_TYPES.DOUBLE, true, true);
+                                a_listPropItems.Add(poPropItem);
 
                                 // total field
                                 poPropItem = new CPropItem();
@@ -1621,7 +1650,21 @@ namespace OTSMeasureApp
                                 nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.WORKING_DISTANCE;
                                 poPropItem.InitialSmplParameter(a_nId, nItemId, OTS_ITEM_TYPES.STRING, true, true);
                                 a_listPropItems.Add(poPropItem);
-
+                                //brightness
+                                poPropItem = new CPropItem();
+                                nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.BRIGHTNESS;
+                                poPropItem.InitialSmplParameter(a_nId, nItemId, OTS_ITEM_TYPES.DOUBLE, true, true);
+                                a_listPropItems.Add(poPropItem);
+                                //contrast
+                                poPropItem = new CPropItem();
+                                nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.CONTRAST;
+                                poPropItem.InitialSmplParameter(a_nId, nItemId, OTS_ITEM_TYPES.DOUBLE, true, true);
+                                a_listPropItems.Add(poPropItem);
+                                //HV
+                                poPropItem = new CPropItem();
+                                nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.HV;
+                                poPropItem.InitialSmplParameter(a_nId, nItemId, OTS_ITEM_TYPES.DOUBLE, true, true);
+                                a_listPropItems.Add(poPropItem);
                                 // total field
                                 poPropItem = new CPropItem();
                                 nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_FIELDS;
@@ -1653,7 +1696,21 @@ namespace OTSMeasureApp
                                 nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.WORKING_DISTANCE;
                                 poPropItem.InitialSmplParameter(a_nId, nItemId, OTS_ITEM_TYPES.DOUBLE, true, true);
                                 a_listPropItems.Add(poPropItem);
-
+                                //brightness
+                                poPropItem = new CPropItem();
+                                nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.BRIGHTNESS;
+                                poPropItem.InitialSmplParameter(a_nId, nItemId, OTS_ITEM_TYPES.DOUBLE, true, true);
+                                a_listPropItems.Add(poPropItem);
+                                //contrast
+                                poPropItem = new CPropItem();
+                                nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.CONTRAST;
+                                poPropItem.InitialSmplParameter(a_nId, nItemId, OTS_ITEM_TYPES.DOUBLE, true, true);
+                                a_listPropItems.Add(poPropItem);
+                                //HV
+                                poPropItem = new CPropItem();
+                                nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.HV;
+                                poPropItem.InitialSmplParameter(a_nId, nItemId, OTS_ITEM_TYPES.DOUBLE, true, true);
+                                a_listPropItems.Add(poPropItem);
                                 // total field
                                 poPropItem = new CPropItem();
                                 nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_FIELDS;
@@ -1917,6 +1974,21 @@ namespace OTSMeasureApp
                         a_dValue = m_poSEMDataMsr.GetWorkingDistance();
                     }
                     break;
+                case OTS_SAMPLE_PROP_GRID_ITEMS.BRIGHTNESS:
+                    {
+                        a_dValue = m_poSEMDataMsr.Brightness;
+                    }
+                    break;
+                case OTS_SAMPLE_PROP_GRID_ITEMS.CONTRAST:
+                    {
+                        a_dValue = m_poSEMDataMsr.Contrast;
+                    }
+                    break;
+                case OTS_SAMPLE_PROP_GRID_ITEMS.HV:
+                    {
+                        a_dValue = m_poSEMDataMsr.KV;
+                    }
+                    break;
 
                 case OTS_SAMPLE_PROP_GRID_ITEMS.RATIO:
                     {

+ 145 - 99
OTSIncAMeasureApp/4-OTSSamplespaceGraphicsPanel/OTSSamplespaceWindow.cs

@@ -65,22 +65,24 @@ namespace OTSMeasureApp
 
     public enum DrawMeasureAreaActionType
     {
-        NoAction=1,
+        NoAction = 1,
         //圆形
         Circle = 2,
-        
-       
+
+
         Rectangle = 3,
-       
-       
-      
+
+
+
         //多边形
         Polygon = 4,
-       
+
         //圆形三点法
-        CircleByThreePoints = 5
+        CircleByThreePoints = 5,
+
+        InverseSelection = 6
+
 
-       
     }
     public partial class OTSSamplespaceWindow : DockContent
     {
@@ -234,11 +236,14 @@ namespace OTSMeasureApp
                 case "SetSemData":
                     double SemMag = 0;
                     double dDistance = 0;
-                    if (m_MeasureAppForm.m_ProjParam.GetMagAndDistance(ref SemMag, ref dDistance))
+                    double bri = 0;
+                    double contra = 0;
+                    double kv = 0;
+                    if (m_MeasureAppForm.m_ProjParam.GetWorkingSampleSEMData(ref dDistance, ref SemMag, ref bri, ref contra, ref kv))
                     {
                         //设置SEM数据
 
-                        if (!SetSEMDATAMParameter(SemMag, dDistance))
+                        if (!SetSEMDATAMParameter(SemMag, dDistance, bri, contra))
                         {
                             log.Error("Failed SetSemData:--Mag:" + SemMag + "--Distance:" + dDistance + "--");
                         }
@@ -347,7 +352,7 @@ namespace OTSMeasureApp
             m_DrawMeasureType = DrawMeasureAreaActionType.Polygon;
             m_IsDrawMeasure = true;
             //m_DrawMeasureGDIObject = null;
-            m_DrawMeasureGDIObject = new CMeasureArea(new List<PointF>(),  ShapeType.POLYGON, "", "", Color.Red);
+            m_DrawMeasureGDIObject = new CMeasureArea(new List<PointF>(), ShapeType.POLYGON, "", "", Color.Red);
 
             this.Cursor = Cursors.Hand;
         }
@@ -487,7 +492,7 @@ namespace OTSMeasureApp
 
                             }
 
-                            CMeasureArea polygonGdi = new CMeasureArea(ps,  ShapeType.POLYGON, SMeasrueArea.sampleHoleName, SMeasrueArea.sSampleName, Color.Red);
+                            CMeasureArea polygonGdi = new CMeasureArea(ps, ShapeType.POLYGON, SMeasrueArea.sampleHoleName, SMeasrueArea.sSampleName, Color.Red);
 
 
                             sam.SetMeasureGDIObject(polygonGdi);
@@ -541,13 +546,13 @@ namespace OTSMeasureApp
                         }
 
                         sam.GetMeasureGDIObject().SubItems().Clear();
-                     
-                     
+
+
                         foreach (var r in visualfieldRects)
                         {
-                            
-                                sam.AddFieldGDIObject(r);
-                          
+
+                            sam.AddFieldGDIObject(r);
+
                         }
 
                         COTSMsrPrjResultData cProjMgr = m_MeasureAppForm.m_ProjParam.GetResultData();
@@ -1148,8 +1153,8 @@ namespace OTSMeasureApp
             //判断当前是否手绘
             if (m_IsDrawMeasure && !runflag)
             {
-                var measureArea = new Rectangle(this.m_MouseDownPoint, new Size(2, 2));
-                if (m_visualStage.CheckMeasureAreaIsBeyondStageArea(measureArea))
+                var measurepoint = new Rectangle(this.m_MouseDownPoint, new Size(2, 2));
+                if (m_visualStage.CheckMeasureAreaIsBeyondStageArea(measurepoint))
                 {
                     m_IsDrawMeasure = true;
                 }
@@ -1184,7 +1189,7 @@ namespace OTSMeasureApp
                         {
                             Point startPoint = new Point((int)(polygonPoints[0].X), (int)(polygonPoints[0].Y));//the last point is the first point too.we get the first point as the last point.
                             polygonPoints.Add(startPoint);
-                            CMeasureArea polygonGdi = new CMeasureArea(polygonPoints,  ShapeType.POLYGON, sampleHoleName, sampleName, Color.Red);
+                            CMeasureArea polygonGdi = new CMeasureArea(polygonPoints, ShapeType.POLYGON, sampleHoleName, sampleName, Color.Red);
 
 
                             polygonGdi.SetZoomNumber(m_visualStage.GetZoomNum());
@@ -1246,14 +1251,14 @@ namespace OTSMeasureApp
                     var m_ThreePointCirclePoints = m_DrawMeasureGDIObject.GetPolygonPointFList();
 
                     m_ThreePointCirclePoints.Add(m_MouseDownPoint);
-                   
-                   
+
+
 
 
                     if (m_ThreePointCirclePoints.Count == 3)//three point can make a circle .
                     {
 
-                        
+
                         float r;
                         PointF Centerpoint;
                         GetTriangleExcenterRadius(m_ThreePointCirclePoints[0], m_ThreePointCirclePoints[1], m_ThreePointCirclePoints[2], out r, out Centerpoint);
@@ -1271,7 +1276,7 @@ namespace OTSMeasureApp
                             return;
                         }
                         Color MeasureColor = Color.Red;
-                        CMeasureArea CRectangleGDI = new CMeasureArea(rectangleThree,  ShapeType.CIRCLE, sampleHoleName, sampleName, MeasureColor);
+                        CMeasureArea CRectangleGDI = new CMeasureArea(rectangleThree, ShapeType.CIRCLE, sampleHoleName, sampleName, MeasureColor);
 
 
                         m_DrawMeasureGDIObject = CRectangleGDI;
@@ -1301,18 +1306,18 @@ namespace OTSMeasureApp
                     Invalidate();
                     return;
                 }
-                else if(m_DrawMeasureType == DrawMeasureAreaActionType.Rectangle)
+                else if (m_DrawMeasureType == DrawMeasureAreaActionType.Rectangle)
                 {
 
 
-                    
+
                     int sizeWH = 5;
                     Size size = new Size(sizeWH, sizeWH);
                     Rectangle rectangle = new Rectangle(m_MouseDownPoint, size);
                     Color MeasureColor = Color.Red;
-                    CMeasureArea  newGDI;
+                    CMeasureArea newGDI;
 
-                    newGDI = new CMeasureArea(rectangle,  ShapeType.RECTANGLE, sampleName, sampleName, MeasureColor);
+                    newGDI = new CMeasureArea(rectangle, ShapeType.RECTANGLE, sampleName, sampleName, MeasureColor);
 
                     newGDI.SetZoomNumber(m_visualStage.GetZoomNum());
                     newGDI.SetDisplayRefPoint(m_visualStage.GetDisplayRefPoint());
@@ -1341,6 +1346,27 @@ namespace OTSMeasureApp
                     m_DrawMeasureGDIObject = newGDI;
 
 
+                    return;
+                }
+                else if (m_DrawMeasureType == DrawMeasureAreaActionType.InverseSelection)
+                {
+
+
+
+                    int sizeWH = 5;
+                    Size size = new Size(sizeWH, sizeWH);
+                    Rectangle rectangle = new Rectangle(m_MouseDownPoint, size);
+                    Color MeasureColor = Color.Red;
+                    CMeasureArea newGDI;
+
+                    newGDI = new CMeasureArea(rectangle, ShapeType.RECTANGLE, sampleName, sampleName, MeasureColor);
+
+                    newGDI.SetZoomNumber(m_visualStage.GetZoomNum());
+                    newGDI.SetDisplayRefPoint(m_visualStage.GetDisplayRefPoint());
+
+                    m_DrawMeasureGDIObject = newGDI;
+
+
                     return;
                 }
             }
@@ -1740,7 +1766,7 @@ namespace OTSMeasureApp
                     switch (enumMouse)
                     {
                         case EnumMousePointPosition.MouseSizeTopLeft:
-                            if (m_DrawMeasureType == (int)GDIType.StageBoundary_Circle)
+                            if (m_DrawMeasureType == DrawMeasureAreaActionType.Circle)
                             {
                                 LTPoint.X = m_MouseDownPoint.X - tmp;
                                 LTPoint.Y = m_MouseDownPoint.Y - tmp;
@@ -1758,7 +1784,7 @@ namespace OTSMeasureApp
                             }
                             break;
                         case EnumMousePointPosition.MouseSizeTopRight:
-                            if (m_DrawMeasureType == (int)GDIType.StageBoundary_Circle)
+                            if (m_DrawMeasureType == DrawMeasureAreaActionType.Circle)
                             {
                                 LTPoint.X = m_MouseDownPoint.X;
                                 LTPoint.Y = m_MouseDownPoint.Y - tmp;
@@ -1776,7 +1802,7 @@ namespace OTSMeasureApp
                             }
                             break;
                         case EnumMousePointPosition.MouseSizeBottomLeft:
-                            if (m_DrawMeasureType == (int)GDIType.StageBoundary_Circle)
+                            if (m_DrawMeasureType == DrawMeasureAreaActionType.Circle)
                             {
                                 LTPoint.X = m_MouseDownPoint.X - tmp;
                                 LTPoint.Y = m_MouseDownPoint.Y;
@@ -1794,7 +1820,7 @@ namespace OTSMeasureApp
                             }
                             break;
                         case EnumMousePointPosition.MouseSizeBottomRight:
-                            if (m_DrawMeasureType == (int)GDIType.StageBoundary_Circle)
+                            if (m_DrawMeasureType == DrawMeasureAreaActionType.Circle)
                             {
                                 LTPoint.X = m_MouseDownPoint.X;
                                 LTPoint.Y = m_MouseDownPoint.Y;
@@ -2025,37 +2051,64 @@ namespace OTSMeasureApp
             if (m_IsDrawMeasure && !runflag)
             {
 
-               
-                if (m_DrawMeasureType != DrawMeasureAreaActionType.Polygon && m_DrawMeasureType != DrawMeasureAreaActionType.CircleByThreePoints)
-                {
 
-                    var item = m_DrawMeasureGDIObject;
+                 if (m_DrawMeasureType == DrawMeasureAreaActionType.InverseSelection)
+                    {
+                    var workspl = m_MeasureAppForm.m_ProjParam.GetWorkSample();
+                        foreach (var gdi in sam.GetMeasureFieldGDIObjects())
+                        {
+                            if (m_DrawMeasureGDIObject.IfContains(new Point((int)gdi.GetCenterPoint().X, (int)gdi.GetCenterPoint().Y)))
+                            {
+                               gdi.Enable=!gdi.Enable;
+                               
+                              workspl.SetFieldEnable(new Point(gdi.OTSX,gdi.OTSY),gdi.Enable);
+                            }
+
+                        
+                        }
+                    
+                        
+                   m_DrawMeasureGDIObject = null;
+
+                        this.Cursor = Cursors.Default;
+                        //设置手绘标识
 
+                        m_IsDrawMeasure = false;
 
-                    item.NameOrHoleName = sam.GetMeasureGDIObject().NameOrHoleName;
+                    }
+                    else if(m_DrawMeasureType == DrawMeasureAreaActionType.Rectangle || m_DrawMeasureType == DrawMeasureAreaActionType.Circle)
+                    {
+                        var item = m_DrawMeasureGDIObject;
 
-                    item.IsWorkSample = sam.GetMeasureGDIObject().IsWorkSample;
 
-                    sam.GetMeasureFieldGDIObjects().Clear();
-                    sam.SetMeasureGDIObject(item);
+                        item.NameOrHoleName = sam.GetMeasureGDIObject().NameOrHoleName;
 
-                    var para = m_visualStage.GetSampleMeasurePara(item);
+                        item.IsWorkSample = sam.GetMeasureGDIObject().IsWorkSample;
 
-                    m_MeasureAppForm.m_ProjParam.SetWorkSampleHoleAndMeasureArea(para);
+                        sam.GetMeasureFieldGDIObjects().Clear();
+                        sam.SetMeasureGDIObject(item);
 
+                        var para = m_visualStage.GetSampleMeasurePara(item);
 
-                    m_MeasureAppForm.SetRunType(MSR_RUN_TYPE.RUNMEASURE);
+                        m_MeasureAppForm.m_ProjParam.SetWorkSampleHoleAndMeasureArea(para);
 
-                    PrepareMeasureField(sam, MSR_RUN_TYPE.RUNMEASURE);
 
+                        m_MeasureAppForm.SetRunType(MSR_RUN_TYPE.RUNMEASURE);
 
-                    m_DrawMeasureGDIObject = null;
+                        PrepareMeasureField(sam, MSR_RUN_TYPE.RUNMEASURE);
 
-                    this.Cursor = Cursors.Default;
-                    //设置手绘标识
 
-                    m_IsDrawMeasure = false;
-                }
+                        m_DrawMeasureGDIObject = null;
+
+                        this.Cursor = Cursors.Default;
+                        //设置手绘标识
+
+                        m_IsDrawMeasure = false;
+
+
+                    }
+                    
+               
 
             }
 
@@ -2085,7 +2138,7 @@ namespace OTSMeasureApp
                     measureItem.IsAltering = false;
                     measureItem.IsDragging = false;
                     Invalidate();
-                   
+
                 }
             }
             //only moving the whole stage
@@ -2126,7 +2179,7 @@ namespace OTSMeasureApp
                 e.Graphics.DrawImage(sampleHoleImageBuffer.BSEImage, sampleHoleImageBuffer.GetZoomedRegionF());
 
             }
-            
+
 
 
 
@@ -2601,7 +2654,7 @@ namespace OTSMeasureApp
                         CDisplayGDIObject gdi = m_visualStage.GetCtrlCoordRect(xHole, yHole, (GDIType)SMeasrueArea.iShape, "", "");
                         gdi.SampleName = SMeasrueArea.sSampleName;
                         gdi.NameOrHoleName = SMeasrueArea.sampleHoleName;
-                        //gdi.Shape = SMeasrueArea.iShape;
+
                         CMeasureArea measureGdi;
                         if (m_visualStage.GetMeasureGdiObjectFromSampleGdi(gdi, out measureGdi))
                         {
@@ -2645,14 +2698,17 @@ namespace OTSMeasureApp
             //判断是否连接电镜
             if (m_SEMDATAFieldManage.InitAndConnection())
             {
-                //获取电镜参数 放大倍数与工作距离 [Magnification]:放大倍数 [WorkingDistance]工作距离
+                //获取电镜参数 放大倍数与工作距离 等参数
                 semParameters = m_SEMDATAFieldManage.GetSEMMagAndWDParameter();
                 double mag = semParameters[0];
                 double wd = semParameters[1];
+                double bri = semParameters[2];
+                double contra = semParameters[3];
+                double kv = semParameters[4];
                 if (mag != 0 && wd != 0)
                 {
                     //设置样品文件中的电镜参数 
-                    m_MeasureAppForm.m_ProjParam.SetWorkingSampleSEMData(wd, mag);
+                    m_MeasureAppForm.m_ProjParam.SetWorkingSampleSEMData(wd, mag, bri, contra, kv);
 
                     //将右键SEM数据菜单设置为可编辑状态
                     CMStrip.Items[(int)MenuIndex.SetSemData].Enabled = true;
@@ -2823,14 +2879,14 @@ namespace OTSMeasureApp
                 {
 
                     visualsam.GetMeasureGDIObject().SubItems().Clear();
-                
-                  
+
+
                     for (int i = 0; i < visualfieldRects.Count; i++)
                     {
 
 
                         visualsam.AddFieldGDIObject(visualfieldRects[i]);
-                       
+
 
                     }
 
@@ -2873,7 +2929,7 @@ namespace OTSMeasureApp
         #endregion
 
         #region 设置SEM数据
-        public bool SetSEMDATAMParameter(double magnification, double semWorkingDistance)
+        public bool SetSEMDATAMParameter(double magnification, double semWorkingDistance, double bri, double contra)
         {
             #region 获取电镜参数
 
@@ -2891,8 +2947,15 @@ namespace OTSMeasureApp
                 bool wFlag;
 
                 mFlag = m_SEMDATAFieldManage.SetGMagnification(magnification);
+
+                log.Warn("Set Magnification:" + magnification.ToString("F2"));
                 wFlag = m_SEMDATAFieldManage.SetSemWorkingDistance(semWorkingDistance);
-                if (mFlag || wFlag)
+                log.Warn("Set WD:" + semWorkingDistance.ToString("F2"));
+                bool c = m_SEMDATAFieldManage.SetSembrightness(bri);
+                log.Warn("Set Brightness:" + bri.ToString("F2"));
+                bool d = m_SEMDATAFieldManage.SetSemContrast(contra);
+                log.Warn("Set Contrast:" + contra.ToString("F2"));
+                if (mFlag && wFlag && c && d)
                 {
                     return true;
                 }
@@ -2902,28 +2965,7 @@ namespace OTSMeasureApp
             #endregion
         }
 
-        public bool GetSEMDATAMParameter(ref double magnification, ref double WorkingDistance)
-        {
-            #region 获取电镜参数
-            //获取Field操作类对象
-            if (m_SEMDATAFieldManage == null)
-            {
-                m_SEMDATAFieldManage = new SEMDATAFieldManage(m_MeasureAppForm.m_ProjParam);
-            }
-            //判断是否连接电镜
-            if (m_SEMDATAFieldManage.InitAndConnection())
-            {
-                //获取电镜参数
-                List<double> semParameters = m_SEMDATAFieldManage.GetSEMMagAndWDParameter();
-                //放大倍数
-                magnification = semParameters[0];
-                WorkingDistance = semParameters[1];
 
-                return true;
-            }
-            return false;
-            #endregion
-        }
         #endregion
 
         #region 驱动到SEM当前位置
@@ -3178,32 +3220,36 @@ namespace OTSMeasureApp
             return MeasureGDIObjects;
 
         }
-        public void ResetWorkSampleMeasure()
+        public void InverseSelectWorkSampleMeasure()
         {
-            COTSSample WSample = m_MeasureAppForm.m_ProjParam.GetWorkSample();
-            var stype = m_MeasureAppForm.m_ProjParam.GetDefaultParam().GetSysType();
-            OTSSampleVisualPropertyInfo MeasureInfo = new OTSSampleVisualPropertyInfo(WSample, stype);
+            //COTSSample WSample = m_MeasureAppForm.m_ProjParam.GetWorkSample();
+            //var stype = m_MeasureAppForm.m_ProjParam.GetDefaultParam().GetSysType();
+            //OTSSampleVisualPropertyInfo MeasureInfo = new OTSSampleVisualPropertyInfo(WSample, stype);
 
-            RectangleF measureSize = m_MeasureAppForm.m_ProjParam.CalculateMsrArea(MeasureInfo.SMeasurePara.sampleHoleName);
-            //获取位置与尺寸
-            MeasureInfo.SMeasurePara.MeasureRect.Location = measureSize.Location;
-            MeasureInfo.SMeasurePara.MeasureRect.Size = measureSize.Size;
-            //获取样品信息
-            PointF xHole = new PointF(MeasureInfo.SMeasurePara.MeasureRect.Left, MeasureInfo.SMeasurePara.MeasureRect.Top);
-            PointF yHole = new PointF(MeasureInfo.SMeasurePara.MeasureRect.Right, MeasureInfo.SMeasurePara.MeasureRect.Bottom);
+            //RectangleF measureSize = m_MeasureAppForm.m_ProjParam.CalculateMsrArea(MeasureInfo.SMeasurePara.sampleHoleName);
+            ////获取位置与尺寸
+            //MeasureInfo.SMeasurePara.MeasureRect.Location = measureSize.Location;
+            //MeasureInfo.SMeasurePara.MeasureRect.Size = measureSize.Size;
+            ////获取样品信息
+            //PointF xHole = new PointF(MeasureInfo.SMeasurePara.MeasureRect.Left, MeasureInfo.SMeasurePara.MeasureRect.Top);
+            //PointF yHole = new PointF(MeasureInfo.SMeasurePara.MeasureRect.Right, MeasureInfo.SMeasurePara.MeasureRect.Bottom);
 
 
-            //定义测量区域
-            RectangleF SampleRectangleF = m_visualStage.GetCtrlCoordRectF(xHole, yHole);
-            CDisplayGDIObject m_MeasureGDIObject = m_visualStage.GetCtrlCoordRect(xHole, yHole, (GDIType)MeasureInfo.SMeasurePara.iShape, "", "");
-            m_MeasureGDIObject.SetInitRegionF(SampleRectangleF);
+            ////定义测量区域
+            //RectangleF SampleRectangleF = m_visualStage.GetCtrlCoordRectF(xHole, yHole);
+            //CDisplayGDIObject m_MeasureGDIObject = m_visualStage.GetCtrlCoordRect(xHole, yHole, (GDIType)MeasureInfo.SMeasurePara.iShape, "", "");
+            //m_MeasureGDIObject.SetInitRegionF(SampleRectangleF);
 
-            var sam = GetWorkingVisualSample();
-            var mea = sam.GetMeasureGDIObject();
+            //var sam = GetWorkingVisualSample();
+            //var mea = sam.GetMeasureGDIObject();
             //CMeasureArea m_ResetMeasureGDIobjects = ResetMeasure(sam.GetSampleGDIObject(), m_MeasureGDIObject);
             //mea.SetInitRegionF(m_ResetMeasureGDIobjects.GetOrigionalDrawRegionF());
             //mea.Shape = m_ResetMeasureGDIobjects.Shape;
-            Invalidate();
+            m_DrawMeasureType = DrawMeasureAreaActionType.InverseSelection;
+            m_IsDrawMeasure = true;
+            m_DrawMeasureGDIObject = null;
+            this.Cursor = Cursors.Hand;
+            //Invalidate();
 
         }
 

+ 136 - 1
OTSIncAMeasureApp/4-OTSSamplespaceGraphicsPanel/SEMDATAFieldManage.cs

@@ -134,6 +134,90 @@ namespace OTSMeasureApp
                 return 0;
             }
         }
+        private double GetSemBrightness()
+        {
+            try
+            {
+                double brightness = 0;
+
+                //获取工作距离
+                bool result = cSemfun.GetSemBrightness(ref brightness);
+
+                if (result)
+                {
+
+                    //赋值 显示
+                    return brightness;
+                }
+                else
+                {
+
+                    //配置结果提示
+                    return 0;
+                }
+            }
+            catch (Exception ex)
+            {
+                log.Error(ex.ToString());
+                return 0;
+            }
+        }
+        private double GetSemContrast()
+        {
+            try
+            {
+                double contrast = 0;
+
+                //获取工作距离
+                bool result = cSemfun.GetSemContrast(ref contrast);
+
+                if (result)
+                {
+
+                    //赋值 显示
+                    return contrast;
+                }
+                else
+                {
+
+                    //配置结果提示
+                    return 0;
+                }
+            }
+            catch (Exception ex)
+            {
+                log.Error(ex.ToString());
+                return 0;
+            }
+        }
+        private double GetSemKv()
+        {
+            try
+            {
+                double kv = 0;
+
+                //获取工作距离
+                bool result = cSemfun.GetSemHighTension(ref kv);
+
+                if (result)
+                {
+
+                    //赋值 显示
+                    return kv;
+                }
+                else
+                {
+
+                    //配置结果提示
+                    return 0;
+                }
+            }
+            catch (Exception ex)
+            {
+                log.Error(ex.ToString());
+                return 0;
+            }
+        }
         #endregion
 
         #region 设置放大倍数
@@ -172,8 +256,52 @@ namespace OTSMeasureApp
             }
         }
         #endregion
+        public bool SetSembrightness(double bri)
+        {
+            try
+            {
+
+                bool result = cSemfun.SetSemBrightness(bri);
+
+                return result;
+            }
+            catch (Exception ex)
+            {
+                log.Error(ex.ToString());
+                return false;
+            }
+        }
+        public bool SetSemContrast(double contra)
+        {
+            try
+            {
+
+                bool result = cSemfun.SetSemContrast(contra);
+
+                return result;
+            }
+            catch (Exception ex)
+            {
+                log.Error(ex.ToString());
+                return false;
+            }
+        }
+        public bool SetSemHT(double ht)
+        {
+            try
+            {
+
+                bool result = cSemfun.SetSemHighTension(ht);
+
+                return result;
+            }
+            catch (Exception ex)
+            {
+                log.Error(ex.ToString());
+                return false;
+            }
+        }
 
-     
 
         #region 获取电镜参数 放大倍数与工作距离
         public List<double> GetSEMMagAndWDParameter()
@@ -183,9 +311,16 @@ namespace OTSMeasureApp
             double magnification = GetGMagnification();
             //工作距离
             double semWorkingDistance = GetSemWorkingDistance();
+
+            double bri = GetSemBrightness();
+            double contra=GetSemContrast();
+            double kv=GetSemKv();   
             //添加 放大倍数、工作距离
             semParameter.Add(magnification);
             semParameter.Add(semWorkingDistance);
+            semParameter.Add(bri);
+            semParameter.Add(contra);
+            semParameter.Add(kv);
             return semParameter;
         }
         #endregion

+ 2 - 2
OTSIncAMeasureApp/4-OTSSamplespaceGraphicsPanel/VisualGDIObjects/CDisplayGDIObject.cs

@@ -49,7 +49,7 @@ namespace OTSMeasureApp
             SetInitRegionF(m_OrigineRegionF);
             GDIType = cType;
             ID = System.Guid.NewGuid().ToString();
-       
+           selColor=Color.White;
             OTSX = -1;
             OTSY = -1;
         }
@@ -146,7 +146,7 @@ namespace OTSMeasureApp
             //圆形
             else if (createType == GDIType.StageBoundary_Circle)
             {
-                System.Drawing.SolidBrush sampleBrush = new System.Drawing.SolidBrush(System.Drawing.Color.White);
+                System.Drawing.SolidBrush sampleBrush = new System.Drawing.SolidBrush(this.selColor);
                 e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;  //图片柔顺模式选择
                 e.Graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;//高质量
                 e.Graphics.CompositingQuality = CompositingQuality.HighQuality;//再加一点

+ 1 - 0
OTSIncAMeasureApp/4-OTSSamplespaceGraphicsPanel/VisualGDIObjects/CVisualFieldGDIObject.cs

@@ -36,6 +36,7 @@ namespace OTSMeasureApp._4_OTSSamplespaceGraphicsPanel
             }
             else
             {
+                sampleBrush = new System.Drawing.SolidBrush(Color.Gray);
                 pen = new Pen(new SolidBrush(Color.Gray), 0.01f);
             }
 

+ 0 - 3
OTSIncAMeasureApp/4-OTSSamplespaceGraphicsPanel/VisualGDIObjects/CVisualSampleArea.cs

@@ -15,9 +15,6 @@ namespace OTSMeasureApp._4_OTSSamplespaceGraphicsPanel
           CDisplayGDIObject m_SampleHoleGDIObject;//
           CMeasureArea m_MeasureGDIObject;//path
        
-   
-
-        //private List<Point> polygonPathPoints;
         public float GetZoomNum()
         {
             return m_SampleHoleGDIObject.GetZoomNumber();

+ 1 - 1
OTSIncAMeasureApp/4-OTSSamplespaceGraphicsPanel/VisualGDIObjects/CVisualStage.cs

@@ -267,7 +267,7 @@ namespace OTSMeasureApp._4_OTSSamplespaceGraphicsPanel
                 //sampleHoleImageBuffer = new Bitmap((int)Bourary.Width, (int)Bourary.Height);
                 CDisplayGDIObject CreateBourary;
                 //0:圆角矩形 1:圆形 2:文字 3:矩形
-                if (SData.bStageShape == (ShapeType.RECTANGLE))
+                if (SData.bStageShape == ShapeType.RECTANGLE)
                 {
                     CreateBourary = new CDisplayGDIObject(Bourary, GDIType.StageBoundary_RoundedRectangle);
                 }

+ 5 - 2
OTSIncAMeasureApp/5-OTSMeasureStatuImageFun/OTSMeasureStatusWindow.cs

@@ -1021,8 +1021,11 @@ namespace OTSMeasureApp
                 }
                 double iWDistance = 0;
                 double dMagni = 0;
-                m_MeasureAppForm.m_ProjParam.GetWorkingSampleSEMData(ref iWDistance, ref dMagni);
-                if (iWDistance != 0 && dMagni != 0)
+                double bri = 0;
+                double contra = 0;
+                double kv = 0;
+                m_MeasureAppForm.m_ProjParam.GetWorkingSampleSEMData(ref iWDistance, ref dMagni,ref bri,ref contra,ref kv);
+                if (iWDistance != 0 && dMagni != 0 && bri!=0 && contra!=0)
                 {
                     contextMenuStrip1.Items[(int)MeasureStateMenuType.ReadBSEPic].Enabled = true;
                 }

+ 59 - 95
OTSIncAMeasureApp/OTSIncAMeasureAppForm.Designer.cs

@@ -29,21 +29,21 @@
         private void InitializeComponent()
         {
             System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(OTSIncAMeasureAppForm));
-            OTS.WinFormsUI.Docking.DockPanelSkin dockPanelSkin2 = new OTS.WinFormsUI.Docking.DockPanelSkin();
-            OTS.WinFormsUI.Docking.AutoHideStripSkin autoHideStripSkin2 = new OTS.WinFormsUI.Docking.AutoHideStripSkin();
-            OTS.WinFormsUI.Docking.DockPanelGradient dockPanelGradient4 = new OTS.WinFormsUI.Docking.DockPanelGradient();
-            OTS.WinFormsUI.Docking.TabGradient tabGradient8 = new OTS.WinFormsUI.Docking.TabGradient();
-            OTS.WinFormsUI.Docking.DockPaneStripSkin dockPaneStripSkin2 = new OTS.WinFormsUI.Docking.DockPaneStripSkin();
-            OTS.WinFormsUI.Docking.DockPaneStripGradient dockPaneStripGradient2 = new OTS.WinFormsUI.Docking.DockPaneStripGradient();
-            OTS.WinFormsUI.Docking.TabGradient tabGradient9 = new OTS.WinFormsUI.Docking.TabGradient();
-            OTS.WinFormsUI.Docking.DockPanelGradient dockPanelGradient5 = new OTS.WinFormsUI.Docking.DockPanelGradient();
-            OTS.WinFormsUI.Docking.TabGradient tabGradient10 = new OTS.WinFormsUI.Docking.TabGradient();
-            OTS.WinFormsUI.Docking.DockPaneStripToolWindowGradient dockPaneStripToolWindowGradient2 = new OTS.WinFormsUI.Docking.DockPaneStripToolWindowGradient();
-            OTS.WinFormsUI.Docking.TabGradient tabGradient11 = new OTS.WinFormsUI.Docking.TabGradient();
-            OTS.WinFormsUI.Docking.TabGradient tabGradient12 = new OTS.WinFormsUI.Docking.TabGradient();
-            OTS.WinFormsUI.Docking.DockPanelGradient dockPanelGradient6 = new OTS.WinFormsUI.Docking.DockPanelGradient();
-            OTS.WinFormsUI.Docking.TabGradient tabGradient13 = new OTS.WinFormsUI.Docking.TabGradient();
-            OTS.WinFormsUI.Docking.TabGradient tabGradient14 = new OTS.WinFormsUI.Docking.TabGradient();
+            OTS.WinFormsUI.Docking.DockPanelSkin dockPanelSkin1 = new OTS.WinFormsUI.Docking.DockPanelSkin();
+            OTS.WinFormsUI.Docking.AutoHideStripSkin autoHideStripSkin1 = new OTS.WinFormsUI.Docking.AutoHideStripSkin();
+            OTS.WinFormsUI.Docking.DockPanelGradient dockPanelGradient1 = new OTS.WinFormsUI.Docking.DockPanelGradient();
+            OTS.WinFormsUI.Docking.TabGradient tabGradient1 = new OTS.WinFormsUI.Docking.TabGradient();
+            OTS.WinFormsUI.Docking.DockPaneStripSkin dockPaneStripSkin1 = new OTS.WinFormsUI.Docking.DockPaneStripSkin();
+            OTS.WinFormsUI.Docking.DockPaneStripGradient dockPaneStripGradient1 = new OTS.WinFormsUI.Docking.DockPaneStripGradient();
+            OTS.WinFormsUI.Docking.TabGradient tabGradient2 = new OTS.WinFormsUI.Docking.TabGradient();
+            OTS.WinFormsUI.Docking.DockPanelGradient dockPanelGradient2 = new OTS.WinFormsUI.Docking.DockPanelGradient();
+            OTS.WinFormsUI.Docking.TabGradient tabGradient3 = new OTS.WinFormsUI.Docking.TabGradient();
+            OTS.WinFormsUI.Docking.DockPaneStripToolWindowGradient dockPaneStripToolWindowGradient1 = new OTS.WinFormsUI.Docking.DockPaneStripToolWindowGradient();
+            OTS.WinFormsUI.Docking.TabGradient tabGradient4 = new OTS.WinFormsUI.Docking.TabGradient();
+            OTS.WinFormsUI.Docking.TabGradient tabGradient5 = new OTS.WinFormsUI.Docking.TabGradient();
+            OTS.WinFormsUI.Docking.DockPanelGradient dockPanelGradient3 = new OTS.WinFormsUI.Docking.DockPanelGradient();
+            OTS.WinFormsUI.Docking.TabGradient tabGradient6 = new OTS.WinFormsUI.Docking.TabGradient();
+            OTS.WinFormsUI.Docking.TabGradient tabGradient7 = new OTS.WinFormsUI.Docking.TabGradient();
             this.rbNew = new System.Windows.Forms.RibbonButton();
             this.rbOpen = new System.Windows.Forms.RibbonButton();
             this.rbSave = new System.Windows.Forms.RibbonButton();
@@ -67,8 +67,6 @@
             this.rbAddSample = new System.Windows.Forms.RibbonButton();
             this.rbDeleteSample = new System.Windows.Forms.RibbonButton();
             this.ribReset = new System.Windows.Forms.RibbonButton();
-            this.rbMeasureCircle = new System.Windows.Forms.RibbonButton();
-            this.rbMeasureRectangle = new System.Windows.Forms.RibbonButton();
             this.ribCircle = new System.Windows.Forms.RibbonButton();
             this.rbCircleCenter = new System.Windows.Forms.RibbonButton();
             this.rbThreePoints = new System.Windows.Forms.RibbonButton();
@@ -440,8 +438,6 @@
             this.ribReset.AltKey = null;
             this.ribReset.DropDownArrowDirection = System.Windows.Forms.RibbonArrowDirection.Down;
             this.ribReset.DropDownArrowSize = new System.Drawing.Size(5, 3);
-            this.ribReset.DropDownItems.Add(this.rbMeasureCircle);
-            this.ribReset.DropDownItems.Add(this.rbMeasureRectangle);
             this.ribReset.Image = global::OTSMeasureApp.Properties.Resources.复位32;
             this.ribReset.SmallImage = global::OTSMeasureApp.Properties.Resources.复位;
             this.ribReset.Style = System.Windows.Forms.RibbonButtonStyle.SplitDropDown;
@@ -452,36 +448,6 @@
             this.ribReset.ToolTipTitle = null;
             this.ribReset.Click += new System.EventHandler(this.ribReset_Click);
             // 
-            // rbMeasureCircle
-            // 
-            this.rbMeasureCircle.AltKey = null;
-            this.rbMeasureCircle.DropDownArrowDirection = System.Windows.Forms.RibbonArrowDirection.Left;
-            this.rbMeasureCircle.DropDownArrowSize = new System.Drawing.Size(5, 3);
-            this.rbMeasureCircle.Image = global::OTSMeasureApp.Properties.Resources.画圆;
-            this.rbMeasureCircle.SmallImage = global::OTSMeasureApp.Properties.Resources.Circle16;
-            this.rbMeasureCircle.Style = System.Windows.Forms.RibbonButtonStyle.Normal;
-            this.rbMeasureCircle.Tag = "rbMeasureCircle";
-            this.rbMeasureCircle.Text = "圆形";
-            this.rbMeasureCircle.ToolTip = null;
-            this.rbMeasureCircle.ToolTipImage = null;
-            this.rbMeasureCircle.ToolTipTitle = null;
-            this.rbMeasureCircle.Click += new System.EventHandler(this.rbMeasureCircle_Click);
-            // 
-            // rbMeasureRectangle
-            // 
-            this.rbMeasureRectangle.AltKey = null;
-            this.rbMeasureRectangle.DropDownArrowDirection = System.Windows.Forms.RibbonArrowDirection.Left;
-            this.rbMeasureRectangle.DropDownArrowSize = new System.Drawing.Size(5, 3);
-            this.rbMeasureRectangle.Image = global::OTSMeasureApp.Properties.Resources.画方;
-            this.rbMeasureRectangle.SmallImage = global::OTSMeasureApp.Properties.Resources.Rectangle16;
-            this.rbMeasureRectangle.Style = System.Windows.Forms.RibbonButtonStyle.Normal;
-            this.rbMeasureRectangle.Tag = "rbMeasureRectangle";
-            this.rbMeasureRectangle.Text = "矩形";
-            this.rbMeasureRectangle.ToolTip = null;
-            this.rbMeasureRectangle.ToolTipImage = null;
-            this.rbMeasureRectangle.ToolTipTitle = null;
-            this.rbMeasureRectangle.Click += new System.EventHandler(this.rbMeasureRectangle_Click);
-            // 
             // ribCircle
             // 
             this.ribCircle.AltKey = null;
@@ -908,50 +874,50 @@
             this.dockPanel.Margin = new System.Windows.Forms.Padding(6, 7, 6, 7);
             this.dockPanel.Name = "dockPanel";
             this.dockPanel.Size = new System.Drawing.Size(1277, 541);
-            dockPanelGradient4.EndColor = System.Drawing.SystemColors.ControlLight;
-            dockPanelGradient4.StartColor = System.Drawing.SystemColors.ControlLight;
-            autoHideStripSkin2.DockStripGradient = dockPanelGradient4;
-            tabGradient8.EndColor = System.Drawing.SystemColors.Control;
-            tabGradient8.StartColor = System.Drawing.SystemColors.Control;
-            tabGradient8.TextColor = System.Drawing.SystemColors.ControlDarkDark;
-            autoHideStripSkin2.TabGradient = tabGradient8;
-            dockPanelSkin2.AutoHideStripSkin = autoHideStripSkin2;
-            tabGradient9.EndColor = System.Drawing.SystemColors.ControlLightLight;
-            tabGradient9.StartColor = System.Drawing.SystemColors.ControlLightLight;
-            tabGradient9.TextColor = System.Drawing.SystemColors.ControlText;
-            dockPaneStripGradient2.ActiveTabGradient = tabGradient9;
-            dockPanelGradient5.EndColor = System.Drawing.SystemColors.Control;
-            dockPanelGradient5.StartColor = System.Drawing.SystemColors.Control;
-            dockPaneStripGradient2.DockStripGradient = dockPanelGradient5;
-            tabGradient10.EndColor = System.Drawing.SystemColors.ControlLight;
-            tabGradient10.StartColor = System.Drawing.SystemColors.ControlLight;
-            tabGradient10.TextColor = System.Drawing.SystemColors.ControlText;
-            dockPaneStripGradient2.InactiveTabGradient = tabGradient10;
-            dockPaneStripSkin2.DocumentGradient = dockPaneStripGradient2;
-            tabGradient11.EndColor = System.Drawing.SystemColors.ActiveCaption;
-            tabGradient11.LinearGradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
-            tabGradient11.StartColor = System.Drawing.SystemColors.GradientActiveCaption;
-            tabGradient11.TextColor = System.Drawing.SystemColors.ActiveCaptionText;
-            dockPaneStripToolWindowGradient2.ActiveCaptionGradient = tabGradient11;
-            tabGradient12.EndColor = System.Drawing.SystemColors.Control;
-            tabGradient12.StartColor = System.Drawing.SystemColors.Control;
-            tabGradient12.TextColor = System.Drawing.SystemColors.ControlText;
-            dockPaneStripToolWindowGradient2.ActiveTabGradient = tabGradient12;
-            dockPanelGradient6.EndColor = System.Drawing.SystemColors.ControlLight;
-            dockPanelGradient6.StartColor = System.Drawing.SystemColors.ControlLight;
-            dockPaneStripToolWindowGradient2.DockStripGradient = dockPanelGradient6;
-            tabGradient13.EndColor = System.Drawing.SystemColors.GradientInactiveCaption;
-            tabGradient13.LinearGradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
-            tabGradient13.StartColor = System.Drawing.SystemColors.GradientInactiveCaption;
-            tabGradient13.TextColor = System.Drawing.SystemColors.ControlText;
-            dockPaneStripToolWindowGradient2.InactiveCaptionGradient = tabGradient13;
-            tabGradient14.EndColor = System.Drawing.Color.Transparent;
-            tabGradient14.StartColor = System.Drawing.Color.Transparent;
-            tabGradient14.TextColor = System.Drawing.SystemColors.ControlDarkDark;
-            dockPaneStripToolWindowGradient2.InactiveTabGradient = tabGradient14;
-            dockPaneStripSkin2.ToolWindowGradient = dockPaneStripToolWindowGradient2;
-            dockPanelSkin2.DockPaneStripSkin = dockPaneStripSkin2;
-            this.dockPanel.Skin = dockPanelSkin2;
+            dockPanelGradient1.EndColor = System.Drawing.SystemColors.ControlLight;
+            dockPanelGradient1.StartColor = System.Drawing.SystemColors.ControlLight;
+            autoHideStripSkin1.DockStripGradient = dockPanelGradient1;
+            tabGradient1.EndColor = System.Drawing.SystemColors.Control;
+            tabGradient1.StartColor = System.Drawing.SystemColors.Control;
+            tabGradient1.TextColor = System.Drawing.SystemColors.ControlDarkDark;
+            autoHideStripSkin1.TabGradient = tabGradient1;
+            dockPanelSkin1.AutoHideStripSkin = autoHideStripSkin1;
+            tabGradient2.EndColor = System.Drawing.SystemColors.ControlLightLight;
+            tabGradient2.StartColor = System.Drawing.SystemColors.ControlLightLight;
+            tabGradient2.TextColor = System.Drawing.SystemColors.ControlText;
+            dockPaneStripGradient1.ActiveTabGradient = tabGradient2;
+            dockPanelGradient2.EndColor = System.Drawing.SystemColors.Control;
+            dockPanelGradient2.StartColor = System.Drawing.SystemColors.Control;
+            dockPaneStripGradient1.DockStripGradient = dockPanelGradient2;
+            tabGradient3.EndColor = System.Drawing.SystemColors.ControlLight;
+            tabGradient3.StartColor = System.Drawing.SystemColors.ControlLight;
+            tabGradient3.TextColor = System.Drawing.SystemColors.ControlText;
+            dockPaneStripGradient1.InactiveTabGradient = tabGradient3;
+            dockPaneStripSkin1.DocumentGradient = dockPaneStripGradient1;
+            tabGradient4.EndColor = System.Drawing.SystemColors.ActiveCaption;
+            tabGradient4.LinearGradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
+            tabGradient4.StartColor = System.Drawing.SystemColors.GradientActiveCaption;
+            tabGradient4.TextColor = System.Drawing.SystemColors.ActiveCaptionText;
+            dockPaneStripToolWindowGradient1.ActiveCaptionGradient = tabGradient4;
+            tabGradient5.EndColor = System.Drawing.SystemColors.Control;
+            tabGradient5.StartColor = System.Drawing.SystemColors.Control;
+            tabGradient5.TextColor = System.Drawing.SystemColors.ControlText;
+            dockPaneStripToolWindowGradient1.ActiveTabGradient = tabGradient5;
+            dockPanelGradient3.EndColor = System.Drawing.SystemColors.ControlLight;
+            dockPanelGradient3.StartColor = System.Drawing.SystemColors.ControlLight;
+            dockPaneStripToolWindowGradient1.DockStripGradient = dockPanelGradient3;
+            tabGradient6.EndColor = System.Drawing.SystemColors.GradientInactiveCaption;
+            tabGradient6.LinearGradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
+            tabGradient6.StartColor = System.Drawing.SystemColors.GradientInactiveCaption;
+            tabGradient6.TextColor = System.Drawing.SystemColors.ControlText;
+            dockPaneStripToolWindowGradient1.InactiveCaptionGradient = tabGradient6;
+            tabGradient7.EndColor = System.Drawing.Color.Transparent;
+            tabGradient7.StartColor = System.Drawing.Color.Transparent;
+            tabGradient7.TextColor = System.Drawing.SystemColors.ControlDarkDark;
+            dockPaneStripToolWindowGradient1.InactiveTabGradient = tabGradient7;
+            dockPaneStripSkin1.ToolWindowGradient = dockPaneStripToolWindowGradient1;
+            dockPanelSkin1.DockPaneStripSkin = dockPaneStripSkin1;
+            this.dockPanel.Skin = dockPanelSkin1;
             this.dockPanel.TabIndex = 4;
             // 
             // ribbonButton3
@@ -1056,8 +1022,6 @@
         public System.Windows.Forms.RibbonButton ribCircle;
         public System.Windows.Forms.RibbonButton ribRectangle;
         public System.Windows.Forms.RibbonPanel rbPanelFile;
-        private System.Windows.Forms.RibbonButton rbMeasureCircle;
-        private System.Windows.Forms.RibbonButton rbMeasureRectangle;
         private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel1;
         public System.Windows.Forms.RibbonButton ribbonButton1;
         public System.Windows.Forms.RibbonPanel rbPReport;

+ 1 - 1
OTSIncAMeasureApp/OTSIncAMeasureAppForm.cs

@@ -889,7 +889,7 @@ namespace OTSMeasureApp
         private void ribReset_Click(object sender, EventArgs e)
         {
             //调用样品台窗口中的复位方法
-            m_SamplepaceWindow.ResetWorkSampleMeasure();
+            m_SamplepaceWindow.InverseSelectWorkSampleMeasure();
         }
 
         //绘制圆形测量区域

+ 7 - 7
OTSIncAMeasureApp/OTSIncAMeasureAppForm.resx

@@ -152,12 +152,6 @@
     <value>
         iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAW
         JQAAFiUBSVIk8AAAABNJREFUOE9jGAWjYBSMAjBgYAAABBAAAadEfGMAAAAASUVORK5CYII=
-</value>
-  </data>
-  <data name="ribCircle.SmallImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-    <value>
-        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
-        vAAADrwBlbxySQAAABNJREFUOE9jGAWjYBSMAjBgYAAABBAAAadEfGMAAAAASUVORK5CYII=
 </value>
   </data>
   <data name="rbCircleCenter.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@@ -194,6 +188,12 @@
     <value>
         iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAW
         JQAAFiUBSVIk8AAAABNJREFUOE9jGAWjYBSMAjBgYAAABBAAAadEfGMAAAAASUVORK5CYII=
+</value>
+  </data>
+  <data name="ribCircle.SmallImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+        vAAADrwBlbxySQAAABNJREFUOE9jGAWjYBSMAjBgYAAABBAAAadEfGMAAAAASUVORK5CYII=
 </value>
   </data>
   <data name="ribRectangle.SmallImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@@ -205,7 +205,7 @@
   <data name="ribPolygon.SmallImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
-        wwAADsMBx2+oZAAAABNJREFUOE9jGAWjYBSMAjBgYAAABBAAAadEfGMAAAAASUVORK5CYII=
+        wgAADsIBFShKgAAAABNJREFUOE9jGAWjYBSMAjBgYAAABBAAAadEfGMAAAAASUVORK5CYII=
 </value>
   </data>
   <data name="ribbonButton5.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">

+ 5 - 2
OTSIncAMeasureApp/ResourceManage/ResourceData.cs

@@ -65,8 +65,11 @@ namespace OTSModelSharp.ResourceManage
         MAGNIFICATION = 20040,
         PIXEL_SIZE = 20041,
         WORKING_DISTANCE = 20042,
-        TOTAL_FIELDS = 20043,
-        TOTAL_TO_MEASURE_AREA = 20044,
+        BRIGHTNESS=20043,
+        CONTRAST=20044,
+        HV=20045,
+        TOTAL_FIELDS = 20046,
+        TOTAL_TO_MEASURE_AREA = 20047,
        
         MEASURE_STATAU = 20050,
         START_TIME = 20051,

+ 1 - 1
OTSIncAMeasureApp/ServiceCenter/CPP(Bruker)API/SemController.cs

@@ -157,7 +157,7 @@ namespace OTSModelSharp.ServiceCenter
                 {
                     return false;
                 }
-                NLog.LogManager.GetCurrentClassLogger().Warn("Set Magnification:" + a_dMagnification.ToString("F2"));
+                
                 hw.SetSemMagnification(a_dMagnification);
                 return true;