Bladeren bron

更改测量线程,需要增加的一些参数

@wang_qi0307 5 jaren geleden
bovenliggende
commit
a303af2333

+ 8 - 0
HOZProject/App.config

@@ -43,5 +43,13 @@
       <add key="Is_Photograph" value="True"/>
       <!--是否PT沉积-->
       <add key="PT_Depostion" value="False"/>
+      
+      <!--自动对焦模式,手动1,自有2,客户3-->
+      <add key="Focus_Mode" value="2"/>
+
+      <!--远程IP地址-->
+      <add key="WebServerIP" value="127.0.0.1"/>
+      <!--远程IP端口-->
+      <add key="WebServerPort" value="12345"/>
     </appSettings>
 </configuration>

+ 1 - 1
HOZProject/FormUnitControl.cs

@@ -686,7 +686,7 @@ namespace HOZProject
             md.PT = true;
             md.PTTemp = "bbbbb";
             md.FIBTemp = "cccc";
-            md.FocusMode = false;
+            md.FocusMode = 2;
 
             mf.MParam = md;
 

+ 5 - 4
MeasureData/MeasureParam.cs

@@ -59,9 +59,9 @@ namespace MeasureData
             set { this.m_ptTemp = value; }
         }
 
-        //对焦方式,自动对焦还是手动对焦,手动对焦是1,自动对焦0
-        private bool m_fMode;
-        public bool FocusMode
+        //对焦方式,自动对焦还是手动对焦,手动对焦是1,自有自动对焦2,客户自动对焦3
+        private int m_fMode;
+        public int FocusMode
         {
             get { return m_fMode; }
             set { m_fMode = value; }
@@ -147,6 +147,7 @@ namespace MeasureData
             this.PT = false;
             this.FIBTemp = @"";
             this.PTTemp = @"";
+            this.FocusMode = 2;
             this.AutoFocus = new FocusParam();
         }
 
@@ -172,7 +173,7 @@ namespace MeasureData
             sFile.Register("FIB_ELYFile", fibELYFile);
 
             //对焦方式
-            xBool focusmode = new xBool();
+            xInt focusmode = new xInt();
             focusmode.AssignValue(this.m_fMode);
             sFile.Register("FocusMode", focusmode);
 

+ 36 - 54
MeasureThread/Measure.cs

@@ -14,6 +14,7 @@ using System.IO;
 using SmartSEMControl;
 using MeasureData;
 using FileManager;
+using WebManager;
 
 namespace MeasureThread
 {
@@ -401,6 +402,8 @@ namespace MeasureThread
             }
         }
 
+        public WebResult wr = new WebResult("127.0.0.1", "18080");
+
         public event ThreadStatusHandler SendThreadStatus;  // 声明事件
         public event CutHolesStatusHandler SendCutHolesStatus;  // 声明事件
 
@@ -476,7 +479,7 @@ namespace MeasureThread
         }
 
         //构造函数
-        public Measure()
+        public Measure(String webServerIP, String webServerPort)
         {
             Init();
         }
@@ -544,6 +547,7 @@ namespace MeasureThread
             }
             SendThreadStatus(this, arg);
         }
+
         public void SendCutHoleMsg(string a_state, string a_holeName)
         {
             CutHolesStatusEventArgs arg = new CutHolesStatusEventArgs(a_state, a_holeName);
@@ -625,39 +629,8 @@ namespace MeasureThread
         //设置工作文件夹
         public bool SetWorkingFolderStr()
         {
-
             WorkingFolder = m_measureFile.FilePath;
-
             return true;
-            ////获取工作文件路径
-            //string pathName = m_measureFile.FilePath;
-
-            ////判断工作文件路径是否为空或无效
-            //if (string.IsNullOrEmpty(pathName))
-            //{
-            //    SendMsg("路径无效");
-            //    return false;
-            //}
-            ////文件未保存
-            //else if (pathName.CompareTo(MeasureFile.UNTITLED_FILE_NAME) == 0)
-            //{
-            //    SendMsg("工程文件未保存");
-            //    return false;
-            //}
-
-            ////获取工作文件所在文件夹
-            //string folder = System.IO.Path.GetDirectoryName(pathName);
-            //if (string.IsNullOrEmpty(folder))
-            //{
-            //    SendMsg("工程文件无效");
-            //    return false;
-            //}
-
-            //WorkingFolder += @"\\";
-
-            //LogManager.Init(WorkingFolder);
-
-            //return false;
         }
 
         //插入PT针
@@ -759,11 +732,12 @@ namespace MeasureThread
 
             return true;
         }
+
         /// <summary>
         ///13. 自动 定位功能
         /// </summary>
         /// <returns></returns>
-        public bool GetPoistion()
+        public bool GetPoistion(Boolean isFirst)
         {
             //SendMsg("自动定位");
             //13.自动定位切割
@@ -771,13 +745,15 @@ namespace MeasureThread
                 //1.控制SEM放大600X
                 if (!iSEM.SetMagnification(m_measureFile.MParam.Photograph_Magnification))
                 {
+                    arg.Message = "放大" + m_measureFile.MParam.Photograph_Magnification.ToString("0.0") + "倍失败";
+                    SendMsg("1-1");
                     return false;
                 }
-                arg.Message = "放大" + m_measureFile.MParam.Photograph_Magnification.ToString("0.0") + "倍";
+                arg.Message = "放大" + m_measureFile.MParam.Photograph_Magnification.ToString("0.0") + "倍成功";
                 SendMsg("1-1");
 
                 //2.控制SEM自动对焦、亮度、对比度
-                // if (!MeasParam.FocusMode)
+                if (m_measureFile.MParam.FocusMode==1)//手动
                 {
                     if (DialogResult.Yes == MessageBox.Show("图像自动对焦已完成?", "确认消息", MessageBoxButtons.YesNo))
                     {
@@ -791,31 +767,37 @@ namespace MeasureThread
                         SendMsg("1-2");
                         return false;
                     }
-                    //弹出手动对焦的窗口
                 }
-                //else
-                //{
-                //    //调用自动对焦模块
-                //}
+                else if (m_measureFile.MParam.FocusMode == 2)//自有自动
+                {
+                    //郝工增加自动对焦算法
+                }
+                else     //客户自动
+                {
+                    //后期和客户对接接口
+                    
+                }
 
-                //3.设置SEM进行角度补偿54度
-                //if (!TiltCorrection(54))
-                //{
-                //    SendMsg("设置SEM进行角度补偿54度");
-                //    return false;
-                //}
-                //arg.Message = "设置校正54度";
-                //SendMsg("1-15");
-                //Thread.Sleep(5000);
+                //3.第一次不需要进行角度补偿,其他需要设置SEM进行角度补偿54度
+                if (!isFirst)
+                {
+                    if (!TiltCorrection(m_measureFile.MParam.Correction_Angle))
+                    {
+                        arg.Message = "设置SEM进行角度补偿" + m_measureFile.MParam.Correction_Angle.ToString("0") + "度失败";
+                        SendMsg("1-15");
+                        return false;
+                    }
+                    arg.Message = "设置SEM进行角度补偿" + m_measureFile.MParam.Correction_Angle.ToString("0") + "度成功";
+                    SendMsg("1-15");
+                    Thread.Sleep(5000);
+                }
 
                 //4.控制SEM拍照
-                
                 //5.保存照片
                 {
                     //1. 创建目录,已经完成
                     //2. 设置图片名称
                     //3. 保存图片1
-                    WorkingFolder = m_measureFile.FilePath;
                     String fileName1 = WorkingFolder + "\\" + m_nWorkHoleNo.ToString() + "Hole" + ImageName1;
                     arg.Picture_Information.Picture_FullPath = fileName1;
                     if (!GetImage(ImageMode.SEM, fileName1))
@@ -980,7 +962,7 @@ namespace MeasureThread
                     return false;
                 }
                 //2.控制SEM自动对焦、亮度、对比度-接口
-                if (!MeasParam.FocusMode)
+                if (MeasParam.FocusMode==1)
                 {
                     //弹出手动对焦的窗口
                 }
@@ -1040,7 +1022,7 @@ namespace MeasureThread
 
             //13. 自动 定位功能
             SendMsg("自动定位切割位置");
-            if (!GetPoistion())
+            if (!GetPoistion(false))
             {
                 SendMsg("自动定位切割位置失败");
                 return false;
@@ -1189,7 +1171,7 @@ namespace MeasureThread
 
             //13. 自动 定位功能
             SendMsg("自动定位切割位置");
-            if (!GetPoistion())
+            if (!GetPoistion(true))
             {
                 SendMsg("自动定位切割位置失败");
                 return false;

+ 4 - 0
MeasureThread/MeasureThread.csproj

@@ -60,6 +60,10 @@
       <Project>{bf7f80b0-a6da-4470-a331-4c96057fc7fa}</Project>
       <Name>SmartSEMControl</Name>
     </ProjectReference>
+    <ProjectReference Include="..\WebManager\WebManager.csproj">
+      <Project>{00319b6f-fad0-46b5-b76b-7164dc5ca0d5}</Project>
+      <Name>WebManager</Name>
+    </ProjectReference>
   </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
 </Project>