Ver Fonte

20201218最新好用程序,7类样品跑多个孔没有问题

gsp há 4 anos atrás
pai
commit
86be13c0ab
4 ficheiros alterados com 152 adições e 148 exclusões
  1. 143 143
      MeasureThread/Measure.cs
  2. 7 1
      WebManager/App.config
  3. 1 4
      WebManager/WebManager.csproj
  4. 1 0
      WebManager/WebResult.cs

+ 143 - 143
MeasureThread/Measure.cs

@@ -2608,189 +2608,189 @@ namespace MeasureThread
         public bool FirstHole()
         {
             // add by zjx 2020-12-18 为了测试只做能谱部分
-            if (m_measureFile.MParam.IsonlyEDSForDebug == true)
+            if (m_measureFile.MParam.IsonlyEDSForDebug == false)
             {
                 //add by sun 2020-12-17 不同样品电压、电流不一致,应设置灵活。123456类电压2000V电流200pA,7类5000V 500pA,能谱 7000V 500pA 
                 LogManager.AddHardwareLog("测量线程:第一孔=====设置拍照电压 123456类电压2000V电流200pA,7类5000V 500pA,能谱 7000V 500pA  目前是第 " + m_measureFile.MParam.SampleName + " 类!", true);
-            if (!SetVoltageAndIPROBE())
-            {
-                LogManager.AddHardwareLog("测量线程:第一孔=====设置电压电流失败!目前是第 " + m_measureFile.MParam.SampleName + " 类!", true);
-                return false;
-            }
-            //add by sun 2020-12-17 不同样品电压、电流不一致,应设置灵活。123456类电压2000V电流200pA,7类5000V 500pA,能谱 7000V 500pA end
+                if (!SetVoltageAndIPROBE())
+                {
+                    LogManager.AddHardwareLog("测量线程:第一孔=====设置电压电流失败!目前是第 " + m_measureFile.MParam.SampleName + " 类!", true);
+                    return false;
+                }
+                //add by sun 2020-12-17 不同样品电压、电流不一致,应设置灵活。123456类电压2000V电流200pA,7类5000V 500pA,能谱 7000V 500pA end
 
-            //设置拉直的放大倍数
-            LogManager.AddHardwareLog("测量线程:第一个孔的测试过程-设置SEM放大倍数为拉直放大倍数,放大倍数为" + m_measureFile.MParam.Stretch_Magnification.ToString(), true);
+                //设置拉直的放大倍数
+                LogManager.AddHardwareLog("测量线程:第一个孔的测试过程-设置SEM放大倍数为拉直放大倍数,放大倍数为" + m_measureFile.MParam.Stretch_Magnification.ToString(), true);
 
-            if (!iSEM.SetMagnification(m_measureFile.MParam.Stretch_Magnification))
-            {
-                LogManager.AddHardwareLog("测量线程报错:第一个孔的测试过程-设置SEM放大倍数为拉直放大倍数失败,放大倍数为" + m_measureFile.MParam.Stretch_Magnification.ToString(), false);
-                arg.Message = "测量线程报错:拉直放大倍数设置失败!";
-                arg.State = false;
+                if (!iSEM.SetMagnification(m_measureFile.MParam.Stretch_Magnification))
+                {
+                    LogManager.AddHardwareLog("测量线程报错:第一个孔的测试过程-设置SEM放大倍数为拉直放大倍数失败,放大倍数为" + m_measureFile.MParam.Stretch_Magnification.ToString(), false);
+                    arg.Message = "测量线程报错:拉直放大倍数设置失败!";
+                    arg.State = false;
+                    SendMsg("1-1");
+                    return false;
+                }
+                float current = iSEM.GetMagnification();
+                while (Math.Abs(current - m_measureFile.MParam.Stretch_Magnification) > 1)
+                {
+                    iSEM.SetMagnification(m_measureFile.MParam.Stretch_Magnification);
+                    Thread.Sleep(200);
+                    current = iSEM.GetMagnification();
+                }
+                arg.Message = "拉直放大倍数设置成功!";
+                arg.State = true;
                 SendMsg("1-1");
-                return false;
-            }
-            float current = iSEM.GetMagnification();
-            while (Math.Abs(current - m_measureFile.MParam.Stretch_Magnification) > 1)
-            {
-                iSEM.SetMagnification(m_measureFile.MParam.Stretch_Magnification);
-                Thread.Sleep(200);
-                current = iSEM.GetMagnification();
-            }
-            arg.Message = "拉直放大倍数设置成功!";
-            arg.State = true;
-            SendMsg("1-1");
-            Thread.Sleep(2000);
+                Thread.Sleep(2000);
 
-            //自动化流程-每个点都需要补偿54度
-            if (m_measureFile.MParam.Is_Photograph == false)
-            {
-                LogManager.AddHardwareLog("测量线程:第一个孔的测试过程-倾斜补偿角度为54度", true);
-                if (!TiltCorrection(54.0f))
+                //自动化流程-每个点都需要补偿54度
+                if (m_measureFile.MParam.Is_Photograph == false)
                 {
-                    LogManager.AddHardwareLog("测量线程报错:倾斜补偿角度为54度失败", false);
-                    arg.Message = "角度补偿54度失败!";
-                    arg.State = false;
+                    LogManager.AddHardwareLog("测量线程:第一个孔的测试过程-倾斜补偿角度为54度", true);
+                    if (!TiltCorrection(54.0f))
+                    {
+                        LogManager.AddHardwareLog("测量线程报错:倾斜补偿角度为54度失败", false);
+                        arg.Message = "角度补偿54度失败!";
+                        arg.State = false;
+                        SendMsg("1-2");
+                        return false;
+                    }
+                    arg.Message = "角度补偿54度成功!";
+                    arg.State = true;
                     SendMsg("1-2");
+                    Thread.Sleep(1000);
+                    //判断是否停止进程
+                    if (key_stop)
+                    {
+                        LogManager.AddHardwareLog("停止键按下", true);
+                        return false;
+                    }
+                }
+
+                // 2是5/6类样品,不需要拉直
+                if (m_measureFile.MParam.SampleName != "2")
+                {
+                    LogManager.AddHardwareLog("测量线程:第一个孔的测试过程-拉直操作开始!", true);
+                    if (!Straighten_Handle())
+                    {
+                        LogManager.AddHardwareLog("测量线程报错:第一个孔的测试过程-拉直操作失败。", true);
+                        return false;
+                    }
+                    LogManager.AddHardwareLog("测量线程:第一个孔的测试过程-拉直操作结束!", true);
+                    //判断是否停止进程
+                    if (key_stop)
+                    {
+                        LogManager.AddHardwareLog("停止键按下。", true);
+                        return false;
+                    }
+                }
+                else
+                {
+                    arg.Message = "拉直操作自动对焦成功!";
+                    arg.State = true;
+                    SendMsg("1-3");
+                    Thread.Sleep(1000);
+                    arg.Message = "拉直拍照成功!";
+                    arg.Picture_Information.Picture_FullPath = "";
+                    arg.State = true;
+                    SendMsg("1-4");
+                    Thread.Sleep(1000);
+                    arg.Message = "拉直操作完成";
+                    arg.State = true;
+                    SendMsg("1-5");
+                    Thread.Sleep(1000);
+                }
+
+                //13. 自动 定位功能  
+                LogManager.AddHardwareLog("测量线程:第一个孔的测试过程-自动定位开始!", true);
+                if (!GetPoistion())
+                {
+                    LogManager.AddHardwareLog("测量线程报错:自动定位失败,程序退出。", false);
                     return false;
                 }
-                arg.Message = "角度补偿54度成功!";
-                arg.State = true;
-                SendMsg("1-2");
-                Thread.Sleep(1000);
+                LogManager.AddHardwareLog("测量线程:第一个孔的测试过程-自动定位结束!", true);
                 //判断是否停止进程
                 if (key_stop)
                 {
-                    LogManager.AddHardwareLog("停止键按下", true);
+                    LogManager.AddHardwareLog("停止键按下", true);
                     return false;
                 }
-            }
 
-            // 2是5/6类样品,不需要拉直
-            if (m_measureFile.MParam.SampleName != "2")
-            {
-                LogManager.AddHardwareLog("测量线程:第一个孔的测试过程-拉直操作开始!", true);
-                if (!Straighten_Handle())
+                //14.自动控制FIB切割    del by sun 2020-12-15 temp            
+                if (m_measureFile.MParam.Is_Photograph == false)
                 {
-                    LogManager.AddHardwareLog("测量线程报错:第一个孔的测试过程-拉直操作失败。", true);
-                    return 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);
+                    }
                 }
-                LogManager.AddHardwareLog("测量线程:第一个孔的测试过程-拉直操作结束!", true);
+                //del by sun 2020-12-15 temp end
                 //判断是否停止进程
                 if (key_stop)
                 {
-                    LogManager.AddHardwareLog("停止键按下。", true);
                     return false;
                 }
-            }
-            else
-            {
-                arg.Message = "拉直操作自动对焦成功!";
-                arg.State = true;
-                SendMsg("1-3");
-                Thread.Sleep(1000);
-                arg.Message = "拉直拍照成功!";
-                arg.Picture_Information.Picture_FullPath = "";
-                arg.State = true;
-                SendMsg("1-4");
-                Thread.Sleep(1000);
-                arg.Message = "拉直操作完成";
-                arg.State = true;
-                SendMsg("1-5");
-                Thread.Sleep(1000);
-            }
 
-            //13. 自动 定位功能  
-            LogManager.AddHardwareLog("测量线程:第一个孔的测试过程-自动定位开始!", true);
-            if (!GetPoistion())
-            {
-                LogManager.AddHardwareLog("测量线程报错:自动定位失败,程序退出。", false);
-                return false;
-            }
-            LogManager.AddHardwareLog("测量线程:第一个孔的测试过程-自动定位结束!", true);
-            //判断是否停止进程
-            if (key_stop)
-            {
-                LogManager.AddHardwareLog("停止键按下。", true);
-                return false;
-            }
-
-            //14.自动控制FIB切割    del by sun 2020-12-15 temp            
-            if (m_measureFile.MParam.Is_Photograph == false)
-            {
-                if (m_measureFile.MParam.IsCutingForDebug)
-                { 
-                    LogManager.AddHardwareLog("测量线程:第一个孔的测试过程-14.自动控制FIB切割开始!=="+ m_measureFile.MParam.IsCutingForDebug, true);
-                    if (!FIBCross())
+                //16.找到切割位置
+                if (m_measureFile.MParam.Is_Photograph == false)
+                {
+                    LogManager.AddHardwareLog("测量线程:第一个孔的测试过程-16.找到切割位置开始!", true);
+                    if (!FindCross())
+                    {
+                        return false;
+                    }
+                    LogManager.AddHardwareLog("测量线程:第一个孔的测试过程-16.找到切割位置结束!", true);
+                    //判断是否停止进程
+                    if (key_stop)
                     {
-                        LogManager.AddHardwareLog("测量线程报错:自动控制FIB切割失败。", false);
                         return false;
                     }
-                    LogManager.AddHardwareLog("测量线程:第一个孔的测试过程-14.自动控制FIB切割结束!", true);
                 }
-            }
-            //del by sun 2020-12-15 temp end
-            //判断是否停止进程
-            if (key_stop)
-            {
-                return false;
-            }
-
-            //16.找到切割位置
-            if (m_measureFile.MParam.Is_Photograph == false)
-            {
-                LogManager.AddHardwareLog("测量线程:第一个孔的测试过程-16.找到切割位置开始!", true);
-                if (!FindCross())
+                LogManager.AddHardwareLog("测量线程:第一个孔的测试过程-17.自动控制SEM拍截面照开始", true);
+                //将过程17最后的拍照图片提出给18步进行调用
+                List<String> limg_path = new List<string>();
+                List<float> lsize = new List<float>();
+                //17.自动控制SEM拍截面照
+                if (!ShotSection(ref limg_path, ref lsize))
                 {
-                    return false;
+                    //return false;
                 }
-                LogManager.AddHardwareLog("测量线程:第一个孔的测试过程-16.找到切割位置结束!", true);
+                LogManager.AddHardwareLog("测量线程:第一个孔的测试过程-17.自动控制SEM拍截面照结束!", true);
                 //判断是否停止进程
                 if (key_stop)
                 {
                     return false;
                 }
-            }
-            LogManager.AddHardwareLog("测量线程:第一个孔的测试过程-17.自动控制SEM拍截面照开始", true);
-            //将过程17最后的拍照图片提出给18步进行调用
-            List<String> limg_path = new List<string>();
-            List<float> lsize = new List<float>();
-            //17.自动控制SEM拍截面照
-            if (!ShotSection(ref limg_path, ref lsize))
-            {
-                //return false;
-            }
-            LogManager.AddHardwareLog("测量线程:第一个孔的测试过程-17.自动控制SEM拍截面照结束!", true);
-            //判断是否停止进程
-            if (key_stop)
-            {
-                return false;
-            }
 
-            //这段是临时的
-            //arg.State = true;
-            //arg.Message = "测量尺寸成功";
-            //SendMsg("1-40");
-            
-            //18.自动层高分析
-            if (m_measureFile.MParam.Is_Photograph == false)
-            {
-                LogManager.AddHardwareLog("测量线程:第一个孔的测试过程-18.自动层高分析开始", true);
-                float size = iSEM.GetPixelSize();
-                int state = 1;
-                wr.Img_Measure_Height(limg_path, lsize, data_path + "\\", Convert.ToInt32(m_measureFile.MParam.SampleName), m_measureFile.MParam.Firm, out state);
-                if (state == 0)
+                //这段是临时的
+                //arg.State = true;
+                //arg.Message = "测量尺寸成功";
+                //SendMsg("1-40");
+
+                //18.自动层高分析
+                if (m_measureFile.MParam.Is_Photograph == false)
                 {
-                    arg.Message = "测量尺寸失败";
-                    arg.State = false;
+                    LogManager.AddHardwareLog("测量线程:第一个孔的测试过程-18.自动层高分析开始", true);
+                    float size = iSEM.GetPixelSize();
+                    int state = 1;
+                    wr.Img_Measure_Height(limg_path, lsize, data_path + "\\", Convert.ToInt32(m_measureFile.MParam.SampleName), m_measureFile.MParam.Firm, out state);
+                    if (state == 0)
+                    {
+                        arg.Message = "测量尺寸失败";
+                        arg.State = false;
+                        SendMsg("1-40");
+                        return false;
+                    }
+                    arg.State = true;
+                    arg.Message = "测量尺寸成功";
                     SendMsg("1-40");
-                    return false;
+                    LogManager.AddHardwareLog("测量线程:第一个孔的测试过程-18.自动层高分析结束!", true);
                 }
-                arg.State = true;
-                arg.Message = "测量尺寸成功";
-                SendMsg("1-40");
-                LogManager.AddHardwareLog("测量线程:第一个孔的测试过程-18.自动层高分析结束!", true);
-            }
             }
             //add by zjx 2020-12-18 为了测试只做能谱部分 end
             //19.能谱分析

+ 7 - 1
WebManager/App.config

@@ -16,4 +16,10 @@
       <add name="SQLite Data Provider (Entity Framework 6)" invariant="System.Data.SQLite.EF6" description=".NET Framework Data Provider for SQLite (Entity Framework 6)" type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6" />
     <remove invariant="System.Data.SQLite" /><add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".NET Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" /></DbProviderFactories>
   </system.data>
-</configuration>
+  <runtime>
+
+    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+      <probing privatePath="dll/NewtonSoft12"/>
+    </assemblyBinding>
+  </runtime>
+</configuration>

+ 1 - 4
WebManager/WebManager.csproj

@@ -38,6 +38,7 @@
     <Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
       <HintPath>..\bin\Debug\dll\NewtonSoft12\Newtonsoft.Json.dll</HintPath>
+      <Private>False</Private>
     </Reference>
     <Reference Include="System" />
     <Reference Include="System.ComponentModel.DataAnnotations" />
@@ -59,10 +60,6 @@
       <Project>{5674dd32-3a9f-4d74-b177-a693a75a0255}</Project>
       <Name>DBManager</Name>
     </ProjectReference>
-    <ProjectReference Include="..\ExtenderControl\HOZExtender.csproj">
-      <Project>{f5092f52-1fbd-4882-bb9c-399809d87779}</Project>
-      <Name>HOZExtender</Name>
-    </ProjectReference>
   </ItemGroup>
   <ItemGroup>
     <None Include="App.config" />

+ 1 - 0
WebManager/WebResult.cs

@@ -6,6 +6,7 @@ using System.Threading.Tasks;
 using Newtonsoft.Json.Linq;
 using Newtonsoft.Json;
 using System.Drawing;
+ 
 
 namespace WebManager
 {