gsp 4 年之前
父節點
當前提交
4dc8a5bbe5
共有 6 個文件被更改,包括 93 次插入43 次删除
  1. 24 13
      ExtenderControl/Extender.cs
  2. 4 0
      HOZProject/App.config
  3. 4 1
      HOZProject/FormHOZMain.cs
  4. 9 0
      MeasureData/MeasureParam.cs
  5. 51 28
      MeasureThread/Measure.cs
  6. 1 1
      OxfordTest/Form1.cs

+ 24 - 13
ExtenderControl/Extender.cs

@@ -85,6 +85,7 @@ namespace Extender
 
         //面采集
         XrayAreaCollectiong = 30,
+        Exit=100,
 
     }
     public struct GrabImageParam
@@ -160,7 +161,8 @@ namespace Extender
             if (myExtender != null)
             {
             myExtender.CloseExtender();
-            controlThread.Abort();
+                currentCommand.commandType = OxfordCommand.Exit;
+                startEvent.Set();
             }
            
         }
@@ -181,7 +183,7 @@ namespace Extender
 
                         break;
                     }
-
+                    Thread.Sleep(50);
                     Application.DoEvents();
                 }
 
@@ -245,9 +247,17 @@ namespace Extender
                             endEvent.Set();
                         }
                         break;
-
+                    case OxfordCommand.Exit:
+                        {
+                         endEvent.Set();                         
+                        }
+                       break;
 
                 }
+                if (currentCommand.commandType == OxfordCommand.Exit)
+                {
+                    break;
+                }
             }
 
 
@@ -438,11 +448,11 @@ namespace Extender
 
         public bool XrayAreaCollectiong(double dMilliSecondsTime, List<Segment> a_listChord, out long[] XrayData, out Dictionary<string, double> a_listElement)
         {
-            currentCommand.areaXrayPrm = new AreaXrayParam();
-            var p = currentCommand.areaXrayPrm;
+            var p = new AreaXrayParam();
+             p = currentCommand.areaXrayPrm;
             p.dMilliSecondsTime = dMilliSecondsTime;
             p.a_listChord = a_listChord;
-            
+            currentCommand.areaXrayPrm = p;
             currentCommand.commandType = OxfordCommand.XrayAreaCollectiong;
             startEvent.Set();
             while (true)
@@ -454,8 +464,8 @@ namespace Extender
             }
             if (currentCommand.returnType == true)
             {
-                XrayData=p.XrayData  ;
-                 a_listElement=p.a_listElement ;
+                XrayData= currentCommand.areaXrayPrm.XrayData  ;
+                 a_listElement= currentCommand.areaXrayPrm.a_listElement ;
                 return true;
             }
             else
@@ -468,12 +478,12 @@ namespace Extender
 
         public bool XrayPointCollectiong(double dMilliSecondsTime, int x, int y, out long[] XrayData, out Dictionary<string, double> a_listElement)
         {
-            currentCommand.pointXrayPrm = new PointXrayParam();
-            var p = currentCommand.pointXrayPrm;
+            var p = new PointXrayParam();
+             
             p.dMilliSecondsTime = dMilliSecondsTime;
             p.x = x;
             p.y = y;
-          
+            currentCommand.pointXrayPrm = p;
             currentCommand.commandType = OxfordCommand.XrayPointCollectiong;
             startEvent.Set();
             while (true)
@@ -485,8 +495,8 @@ namespace Extender
             }
             if (currentCommand.returnType == true)
             {
-                XrayData=p.XrayData  ;
-                a_listElement=p.listElement  ;
+                XrayData= currentCommand.pointXrayPrm.XrayData  ;
+                a_listElement= currentCommand.pointXrayPrm.listElement  ;
                 return true;
             }
             else
@@ -803,6 +813,7 @@ namespace Extender
         //亮度
         public float GetBrightness()
         {
+           
             return (float)m_dBirghtness;
         }
         public Boolean SetBrightness(float set)

+ 4 - 0
HOZProject/App.config

@@ -178,5 +178,9 @@
       <add key="ScanSpeedHigh_3" value="CMD_SCANRATE7"/>
       <!--add by sun 2020-12-15 增加不同样品扫描速度参数,每大类样品3种扫描速度 end-->
       
+      <!--add by sun 2020-12-17 增加调试时是否切割开关-->
+      <add key="IsCutingForDebug" value="true"/>
+      <!--add by sun 2020-12-17 增加调试时是否切割开关-->
+      
     </appSettings>
 </configuration>

+ 4 - 1
HOZProject/FormHOZMain.cs

@@ -215,6 +215,9 @@ namespace HOZProject
                 m_MeasureFile.MParam.ScanSpeedHigh = Convert.ToString(ConfigurationManager.AppSettings["ScanSpeedHigh_" + m_MeasureFile.MParam.SampleName]);
                 LogManager.AddHardwareLog("==============="+ ConfigurationManager.AppSettings["ScanSpeedNormal_3"] + "========="+ m_MeasureFile.MParam.SampleName, true);
                 //add by sun 2020-12-15 增加不同样品扫描速度参数 end
+                //add by sun 2020-12-17 增加调试时是否切割开关
+                m_MeasureFile.MParam.IsCutingForDebug = Convert.ToBoolean(ConfigurationManager.AppSettings["IsCutingForDebug"]);
+                //add by sun 2020-12-17 增加调试时是否切割开关 end
 
                 m_Ms.InitMeas(m_MeasureFile);
                 //注册事件
@@ -228,7 +231,7 @@ namespace HOZProject
             }
             catch (Exception ex)
             {
-                LogManager.LogError(ex.ToString());
+                LogManager.AddHardwareLog(ex.ToString(),true);
             }
         }
 

+ 9 - 0
MeasureData/MeasureParam.cs

@@ -405,6 +405,15 @@ namespace MeasureData
         }
         #endregion add by sun 2020-12-15 增加不同样品扫描速度参数end
 
+        //add by sun 2020-12-17 增加调试时是否切割开关
+        private bool m_IsCutingForDebug;
+        public bool IsCutingForDebug
+        {
+            get { return this.m_IsCutingForDebug; }
+            set { this.m_IsCutingForDebug = value; }
+        }
+        //add by sun 2020-12-17 增加调试时是否切割开关 end
+
         #endregion
 
 

+ 51 - 28
MeasureThread/Measure.cs

@@ -2211,7 +2211,7 @@ namespace MeasureThread
                     //add by sun 2020-12-16 解决第5/6类样品 6000倍对焦不好问题
                     if ( m_measureFile.MParam.SampleName == "3")
                     {
-                        iSEM.SetReduced(402, 128, 500, 500);
+                        iSEM.SetReduced(402, 128, 400, 256);
                     }else
                     {
                         iSEM.SetReduced(402, 128, 340, 256);
@@ -2702,16 +2702,19 @@ namespace MeasureThread
             }
 
             //14.自动控制FIB切割    del by sun 2020-12-15 temp            
-            //if (m_measureFile.MParam.Is_Photograph == false)
-            //{
-            //    LogManager.AddHardwareLog("测量线程:第一个孔的测试过程-14.自动控制FIB切割开始!", true);
-            //    if (!FIBCross())
-            //    {
-            //        LogManager.AddHardwareLog("测量线程报错:自动控制FIB切割失败。", false);
-            //        return false;
-            //    }
-            //    LogManager.AddHardwareLog("测量线程:第一个孔的测试过程-14.自动控制FIB切割结束!", true);
-            //}
+            if (m_measureFile.MParam.Is_Photograph == false)
+            {
+                if (m_measureFile.MParam.IsCutingForDebug)
+                { 
+                    LogManager.AddHardwareLog("测量线程:第一个孔的测试过程-14.自动控制FIB切割开始!=="+ m_measureFile.MParam.IsCutingForDebug, true);
+                    if (!FIBCross())
+                    {
+                        LogManager.AddHardwareLog("测量线程报错:自动控制FIB切割失败。", false);
+                        return false;
+                    }
+                    LogManager.AddHardwareLog("测量线程:第一个孔的测试过程-14.自动控制FIB切割结束!", true);
+                }
+            }
             //del by sun 2020-12-15 temp end
             //判断是否停止进程
             if (key_stop)
@@ -6610,20 +6613,19 @@ namespace MeasureThread
         /// <returns></returns>
         public bool EDSAnalysis()
         {
-            //1.先降Z轴
+            //1.先降Z轴  37.241左右使工作距离从5mm 变为 10mm,这样方便能谱工作,麻烦是需要从新对焦。由于移动样品台会有误差,容易造成图像偏移,最好从新定位
             if (m_measureFile.MParam.EDSZ < Z_Min || m_measureFile.MParam.EDSZ > Z_Max)
             {
                 LogManager.AddHardwareLog("Z轴位置设置超出范围.", true);
+                return false;
             }
             LogManager.AddHardwareLog("将Z轴位置指定到:" + m_measureFile.MParam.EDSZ.ToString(), true);
-            //if (!iSEM.SetStageGotoZ(m_measureFile.MParam.EDSZ))
-            //{
-            //    LogManager.AddHardwareLog("测量线程报错:样品台Z回到安全位置失败", false);
-            //    return false;
-            //}
-            //设置WD  add by sun 2020-12-16 能谱设置工作距离为10mm
-            iSEM.SetWorkingDistance(m_measureFile.MParam.EDSZ);
-            Thread.Sleep(1000);
+            if (!iSEM.SetStageGotoZ(m_measureFile.MParam.EDSZ))
+            {
+                LogManager.AddHardwareLog("测量线程报错:样品台Z回到安全位置失败", false);
+                return false;
+            }
+            
 
             while (true)
             {
@@ -6633,6 +6635,8 @@ namespace MeasureThread
                     break;
                 }
             }
+            
+
             //判断是否停止进程
             if (key_stop)
             {
@@ -6650,17 +6654,36 @@ namespace MeasureThread
             iSEM.SetSEMIPROBE(m_measureFile.MParam.EDSA);
             Thread.Sleep(500);
 
-            //4.自动亮度对比度
-            iSEM.SetAutoBright(100);
-            Thread.Sleep(200);
-            iSEM.SetAutoContrast(100);
-            Thread.Sleep(200);
-            if (!iSEM.SetAutoVideoBrightnessAndContrast())
+            //4.自动亮度对比度   del by sun 2020-12-17
+            //iSEM.SetAutoBright(100);
+            //Thread.Sleep(200);
+            //iSEM.SetAutoContrast(100);
+            //Thread.Sleep(200);
+            //if (!iSEM.SetAutoVideoBrightnessAndContrast())
+            //{
+            //    LogManager.AddHardwareLog("测量线程报错:开始设置自动亮度、对比度失败。", false);
+            //    return false;
+            //}
+            //Thread.Sleep(5000);
+            //del by sun 2020-12-17
+
+            //add by sun 2020-12-17 解决3大类样品FIB下亮度过白导致无法识别问题
+            //关闭自动亮度对比度
+            iSEM.SetAutoVideoOff();
+            Thread.Sleep(2000);            
+            float m_TempBrightness = 50f;
+            float m_TempContrast = 29f;
+            if (m_measureFile.MParam.SampleName == "3")
             {
-                LogManager.AddHardwareLog("测量线程报错:开始设置自动亮度、对比度失败。", false);
-                return false;
+                m_TempBrightness = 50f;
+                m_TempContrast = 29f;                
             }
+            iSEM.SetBrightness(m_TempBrightness); //50.0f
+            Thread.Sleep(200);
+            iSEM.SetContrast(m_TempContrast); //30.0f
             Thread.Sleep(5000);
+            //add by sun 2020-12-17 解决3大类样品FIB下亮度过白导致无法识别问题 end
+
 
             //5.自动对焦
             iSEM.SetReduced(256, 192, 512, 512);

+ 1 - 1
OxfordTest/Form1.cs

@@ -559,7 +559,7 @@ namespace OxfordTest
         {
             try
             {
-                IExtenderControl iExtender = factoryExtender.IExtender;
+                 iExtender = factoryExtender.IExtender;
                 MessageBox.Show("连接能谱成功");
             }
             catch (Exception x)