Pārlūkot izejas kodu

fix some bugs(1 photo hole image display error filed info,2 don't restore the resolution infomation after photo the holeimage.)

gsp 3 gadi atpakaļ
vecāks
revīzija
b4363d8a44

+ 2 - 2
Bin/x64/Debug/Config/ProData/HardwareConfig.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <XMLData PathName="HardwareConfig.xml" ID="1">
-  <Member RegName="SemControllerName" Value="OffLine" ImageInputSources="BSE" />
-  <Member RegName="EDSName" Value="OffLine" />
+  <Member RegName="SemControllerName" Value="FEI" ImageInputSources="BSE" />
+  <Member RegName="EDSName" Value="FEI" />
   <Member RegName="BrukerDllVersion" Version="Bruker.API.Esprit2.2.dll" />
   <Member RegName="FEIIP" Value="192.168.0.1" />
   <Member RegName="FEIPORT" Value="7520" />

+ 1 - 1
OTSIncAMeasureApp/0-OTSModel/Measure/3-MeasureFlow/CMeasure.cs

@@ -139,7 +139,7 @@ namespace OTSModelSharp
         }
 
        
-            public COTSMsrPrjResultData GetProjResultData()
+        public COTSMsrPrjResultData GetProjResultData()
         {
             return m_pProjData;
         }

+ 5 - 1
OTSIncAMeasureApp/0-OTSModel/Measure/3-MeasureFlow/CSmplMeasure.cs

@@ -549,11 +549,13 @@ namespace OTSModelSharp
             private PointF pos;
             private double workingDistance;
             private CSEMDataGnr semdata;
+            private COTSSample originalSample;
             private double magnification;
             public PointF Pos { get => pos; set => pos = value; }
             public double WorkingDistance { get => workingDistance; set => workingDistance = value; }
             public CSEMDataGnr Semdata { get => semdata; set => semdata = value; }
             public double Magnification { get => magnification; set => magnification = value; }
+            public COTSSample OriginalSample { get => originalSample; set => originalSample = value; }
         }
         private class AutoResetSEMControl:IDisposable
         {
@@ -577,7 +579,7 @@ namespace OTSModelSharp
                     sm.MoveSEMToPoint(semState.Pos);
                     sm.m_SemHardwareMgr.SetMagnification(semState.Magnification);
                     sm.m_SemHardwareMgr.SetWorkingDistance(semState.WorkingDistance);
-
+                    sm.SetBSEParam();
 
                 }
                 sm.SetSEMExteralOff();
@@ -1135,6 +1137,8 @@ namespace OTSModelSharp
                 semstate.WorkingDistance = wd;
 
                 autoReset.SemState = semstate;
+
+
                 //-------------------------------------
                 // let the main thread to know that this sample measurement starts
                 CMsrSampleStatus pStatus = m_HolePreviewSample.GetMsrStatus();

+ 0 - 1
OTSIncAMeasureApp/0-OTSModel/Measure/ParamData/COTSMsrPrjResultData.cs

@@ -1038,7 +1038,6 @@ namespace OTSModelSharp
         public COTSSample GetWorkingSample()
         {
          
-
             return GetSampleByIndex(m_nWorkingSampeIndex);
         }
 

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

@@ -426,6 +426,9 @@ namespace OTSDataType
             {
                 m_listFieldData[i].SetId(i);
             }
+            var mySemdata = GetSEMDataMsr();
+
+            mySemdata.SetTotalFields(m_listFieldData.Count);
         }
        
         public void AddFieldData(PointF centerPoint )
@@ -442,6 +445,13 @@ namespace OTSDataType
            
             m_listFieldData.Add(newfld);
 
+
+            //int iFieldCount = pFieldMgr.GetTotalFields();
+            var mySemdata = GetSEMDataMsr();
+
+            mySemdata.SetTotalFields(m_listFieldData.Count);
+          
+
         }
         public void ClearFields()
         {

+ 11 - 8
OTSIncAMeasureApp/1-OTSMeasure/OTSMeasureDisplayResult.cs

@@ -390,11 +390,12 @@ namespace OTSMeasureApp
                                      
                                 }
                                 ////判断信息来源  拍摄样品孔图片 或是 测量开始 
-                                //if (m_MeasureApp.m_RunType == MSR_THREAD_RunSTATUS.RUNSampleHoleImage)
-                                //{
-                                //    //根据放大倍数、重新绘制帧图信息
-                                //    m_MeasureApp.m_SamplepaceWindow.DrawMeasureField();
-                                //}
+                                if (m_MeasureApp.m_RunType == MSR_THREAD_RunSTATUS.RUNSampleHoleImage)
+                                {
+                                    //根据放大倍数、重新绘制帧图信息
+                                    var sam = m_MeasureApp.m_SamplepaceWindow.GetWorkingVisualSample();
+                                    m_MeasureApp.m_SamplepaceWindow.PrepareMeasureField(sam);
+                                }
                                 break;
                             //测量状态已完成
                             case OTS_MSR_THREAD_STATUS.COMPLETED:
@@ -409,11 +410,12 @@ namespace OTSMeasureApp
                                     //激活跳转至报告程序按钮
                                     m_MeasureApp.rbPReport.Enabled = true;
                                     m_MeasureApp.rbReport.Enabled = true;
+                                    m_MeasureApp.m_SPropertyWindows.DisplaySampleMeasureInfo(MeasureInfo);
                                 }
                           
 
                                 //测量完成,更新Grid显示的测量信息
-                                m_MeasureApp.m_SPropertyWindows.DisplaySampleMeasureInfo(MeasureInfo);
+                             
                                 break;
                             //测量状态已失败
                             case OTS_MSR_THREAD_STATUS.FAILED:
@@ -443,11 +445,12 @@ namespace OTSMeasureApp
                                     //激活跳转至报告程序按钮
                                     m_MeasureApp.rbPReport.Enabled = true;
                                     m_MeasureApp.rbReport.Enabled = true;
+                                    //测量停止,更新Grid显示的测量信息
+                                    m_MeasureApp.m_SPropertyWindows.DisplaySampleMeasureInfo(MeasureInfo);
                                 }
                           
 
-                                //测量停止,更新Grid显示的测量信息
-                                m_MeasureApp.m_SPropertyWindows.DisplaySampleMeasureInfo(MeasureInfo);
+                             
                                 break;
                         }
                         break;

+ 3 - 10
OTSIncAMeasureApp/2-OTSMeasureParamManage/COTSMeasureParam.cs

@@ -1220,23 +1220,16 @@ namespace OTSMeasureApp
         //double dMagni: 放大倍数
         public void SetWorkingSampleSEMData(double iWDistance, double dMagni)
         {
-            try
-            {
+           
                 GetResultData().GetWorkingSample().GetSEMDataMsr().SetWorkingDistance(iWDistance);
                 GetResultData().GetWorkingSample().GetSEMDataMsr().SetMagnification(dMagni);
-            }
-            catch (Exception)
-            {
-            }
+           
         }
         public void SetFliedsCount(int FliedsCount)
         {
             GetResultData().GetWorkingSample().GetSEMDataMsr().SetTotalFields(FliedsCount);
         }
-        //获取电镜参数
-        //int iScanFieldSize: Field扫描参数
-        //int iWDistance: 电镜工作距离
-        //double dMagni: 放大倍数
+
         public void GetWorkingSampleSEMData(ref double iWDistance, ref double dMagni)
         {
             iWDistance = GetResultData().GetWorkingSample().GetSEMDataMsr().GetWorkingDistance();

+ 19 - 15
OTSIncAMeasureApp/4-OTSSamplespaceGraphicsPanel/OTSSamplespaceWindow.cs

@@ -255,7 +255,7 @@ namespace OTSMeasureApp
                     m_MeasureAppForm.m_RunType = MSR_THREAD_RunSTATUS.RUNMEASURE;
                     //设定SEM数据
                     CMeasureThreadWrapper.DoRunType = MSR_THREAD_RunSTATUS.RUNMEASURE;
-                    GetSEMData();
+                   
                     PrepareMeasureField(GetWorkingVisualSample());
                   
                     break;
@@ -275,11 +275,12 @@ namespace OTSMeasureApp
                 case "ShootBSEPicture":
                     //设置消息类型 拍摄样品孔
                     m_MeasureAppForm.m_RunType = MSR_THREAD_RunSTATUS.RUNSampleHoleImage;
+                    CMeasureThreadWrapper.DoRunType = MSR_THREAD_RunSTATUS.RUNSampleHoleImage;
                     //清除原图片信息
                     DeleteHoleBSEImageDataNoMessageBox();
                   
                     PrepareMeasureField(GetWorkingVisualSample());
-                    GetSEMData();
+                  
                     GetBSEPictures();
                     break;
                 case "DeleteBSEPicture":
@@ -1078,15 +1079,15 @@ namespace OTSMeasureApp
 
                             var para = m_visualStage.GetSampleMeasurePara(sam.GetMeasureGDIObject());
 
-                            m_MeasureAppForm.m_ProjParam.SetWorkSampleHoleAndMeasureArea(para);
-
-
-                            m_MeasureAppForm.m_RunType = MSR_THREAD_RunSTATUS.RUNMEASURE;
-                            CMeasureThreadWrapper.DoRunType = MSR_THREAD_RunSTATUS.RUNMEASURE;
+                            m_MeasureAppForm.m_ProjParam.SetWorkSampleHoleAndMeasureArea(para);                          
                         
                             m_MeasureAppForm.SwitchWSample(m_SampleSelectName);
 
+                            //--------------------read sem data draw measrue field and save these data to sample
+                            m_MeasureAppForm.m_RunType = MSR_THREAD_RunSTATUS.RUNMEASURE;
+                            CMeasureThreadWrapper.DoRunType = MSR_THREAD_RunSTATUS.RUNMEASURE;
                             PrepareMeasureField(sam);
+                            //--------------------
 
                             Invalidate();
                                
@@ -1731,6 +1732,7 @@ namespace OTSMeasureApp
             {
 
                     var sam = GetWorkingVisualSample();
+                     
                     var curMeasureGdi = sam.GetMeasureGDIObject();
 
                       
@@ -2609,7 +2611,7 @@ namespace OTSMeasureApp
             }
             pFields = pFieldMgr.GetFieldCentrePoints();
 
-            int iFieldCount = pFieldMgr.GetTotalFields();
+          
 
             var oValue = new Rectangle();
             if (!pFieldMgr.GetFieldRectByIndex(0, ref oValue))
@@ -2617,10 +2619,9 @@ namespace OTSMeasureApp
                 return false;
             }
             iSzie = oValue.Size;
-           
-            WSample.GetSEMDataMsr().SetTotalFields(iFieldCount);
+      
 
-            return true;
+                return true;
         }
         #endregion
         public void PrepareMeasureField(CVisualSampleArea sam)
@@ -2628,7 +2629,9 @@ namespace OTSMeasureApp
           
             try
             {
-               
+
+                GetSEMData();
+
                 List<CRectangleGDIObject> visualfieldRects = null;
 
                 visualfieldRects = GetOTSFieldVisualRects(sam);//get all the possible field rects through C++ code.
@@ -2659,11 +2662,12 @@ namespace OTSMeasureApp
                         }
                        
                     }
-                    
+
+                    SaveFieldPositionInfoToSample(sam);
+                    m_MeasureAppForm.UpdatePropertyVal();
                 }
 
-                SaveFieldPositionInfoToSample(sam);
-                m_MeasureAppForm.UpdatePropertyVal();
+               
             }
             catch (Exception ex)
             {

+ 1 - 7
OTSIncAMeasureApp/5-OTSMeasureStatuImageFun/OTSMeasureStatusWindow.cs

@@ -1504,13 +1504,7 @@ namespace OTSMeasureApp
                     break;
             }
         }
-        //[Serializable]
-        //public class ShowElementInfo
-        //{
-        //    public string ElementName;
-        //    public double Percentage;//实际能谱返回的质量百分比
-        //    public double dKF;//K峰,元素周期表中固定值
-        //}
+
         private void PointScanElementMenuItem_Click(object sender, EventArgs e)
         {
             MenuItemLineScam.Checked = false;

+ 3 - 2
OTSIncAMeasureApp/OTSIncAMeasureAppForm.cs

@@ -710,8 +710,7 @@ namespace OTSMeasureApp
             m_RibbonFun.SetSampleRibbonButnStatus();
             //清空帧图信息
             m_RunType = MSR_THREAD_RunSTATUS.RUNMEASURE;
-            //m_SamplepaceWindow.ClearImageAndFieldGDIObjects();
-            //m_SamplepaceWindow.Invalidate();
+         
         }
 
       
@@ -893,6 +892,8 @@ namespace OTSMeasureApp
             }
             else //thread is in pausing state
             {
+                m_RunType = MSR_THREAD_RunSTATUS.RUNMEASURE;
+                m_MsrThreadWrapper.SetDoRunType(MSR_THREAD_RunSTATUS.RUNMEASURE);
                 m_MsrThreadWrapper.SetMeasureThreadStatus(OTS_MSR_THREAD_STATUS.INPROCESS);
                 m_RibbonFun.SetMeasureRibbonButnStatu();
             }