Przeglądaj źródła

EDS can work smoothly.

gsp 4 lat temu
rodzic
commit
36591a131a

+ 92 - 47
ExtenderControl/Extender.cs

@@ -1,31 +1,24 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Drawing;
-using System.Drawing.Imaging;
-using System.IO;
-
-//显示弹出信息
-using System.Windows.Forms;
-
-using OINA.Extender;
-using OINA.Extender.MicroscopeControl;
+using OINA.Extender;
 using OINA.Extender.Acquisition;
+using OINA.Extender.Acquisition.Ed;
 using OINA.Extender.Acquisition.Image;
 using OINA.Extender.Data;
+using OINA.Extender.Data.Ed;
 using OINA.Extender.Data.Image;
-
-using OINA.Extender.Acquisition.Ed;
-using OINA.Extender.Acquisition.Quant;
+using OINA.Extender.MicroscopeControl;
 using OINA.Extender.Processing;
 using OINA.Extender.Processing.Ed;
 using OINA.Extender.Processing.Quant;
-
-using System.ComponentModel;
-using OINA.Extender.Data.Ed;
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.Drawing.Imaging;
+using System.IO;
+using System.Linq;
+using System.Text;
 using System.Threading;
+//显示弹出信息
+using System.Windows.Forms;
 namespace Extender
 {
     enum OxfordCommand
@@ -85,6 +78,8 @@ namespace Extender
 
         //面采集
         XrayAreaCollectiong = 30,
+        BeginMultipleAquisition=31,
+        EndMultipleAquisition=32,
         Exit=100,
 
     }
@@ -159,17 +154,19 @@ namespace Extender
             }
             log = NLog.LogManager.GetCurrentClassLogger();
             controlThread = new Thread(this.ControlerThread);
-            controlThread.IsBackground = true;
+            //controlThread.IsBackground = true;
             controlThread.Start();
-            Thread.Sleep(100);//wait untill the new thread has been started
+            //Thread.Sleep(100);//wait untill the new thread has been started
         }
         public void CloseExtender()
         {
             if (myExtender != null)
             {
-            myExtender.CloseExtender();
+                myExtender.CloseExtender();
                 currentCommand.commandType = OxfordCommand.Exit;
                 startEvent.Set();
+                controlThread.Join();
+
             }
            
         }
@@ -270,15 +267,31 @@ namespace Extender
                             endEvent.Set();
                         }
                         break;
+                    case OxfordCommand.BeginMultipleAquisition:
+                        {
+                            myExtender.BeginMultipleAquisition();
+                            endEvent.Set();
+                           
+                        }
+                        break;
+                    case OxfordCommand.EndMultipleAquisition:
+                        {
+                            myExtender.EndMultipleAquisition();
+                            endEvent.Set();
+
+                        }
+                        break;
                     case OxfordCommand.Exit:
                         {
-                         endEvent.Set();                         
+                         endEvent.Set();
+                            log.Info("receive exit command");
                         }
                        break;
 
                 }
                 if (currentCommand.commandType == OxfordCommand.Exit)
                 {
+                    log.Info("exiting the thread");
                     break;
                 }
             }
@@ -536,9 +549,37 @@ namespace Extender
             }
         }
 
-        public bool XrayPointCollectiong1(double dMilliSecondsTime, int x, int y, out long[] XrayData, out Dictionary<string, double> a_listElement)
+       
+
+        public void BeginMultipleAquisition()
         {
-            return myExtender.XrayPointCollectiong(dMilliSecondsTime, x, y, out XrayData, out a_listElement);
+            currentCommand.commandType = OxfordCommand.BeginMultipleAquisition;
+            startEvent.Set();
+            while (true)
+            {
+                if (endEvent.WaitOne(0, false))
+                {
+                    break;
+                }
+                Application.DoEvents();
+            }
+           
+
+           
+        }
+
+        public void EndMultipleAquisition()
+        {
+            currentCommand.commandType = OxfordCommand.EndMultipleAquisition;
+            startEvent.Set();
+            while (true)
+            {
+                if (endEvent.WaitOne(0, false))
+                {
+                    break;
+                }
+                Application.DoEvents();
+            }
         }
     }
     public class Extender : IExtenderControl
@@ -1266,7 +1307,7 @@ namespace Extender
                 NLog.Logger log = NLog.LogManager.GetCurrentClassLogger();
                 log.Info("拍图开始");
                 
-                imageAcquisitionController.BeginMultipleAcquisition();
+                //imageAcquisitionController.BeginMultipleAcquisition();
                 IEnumerable<IElectronImage> images = imageAcquisitionController.StartAcquisition(imageAcquisitionSettings);
                
                 log.Info("startAcquisition 完成");
@@ -1548,13 +1589,13 @@ namespace Extender
           
             IEdSpectrumAcquisitionController edSpectrumAcquisitionController = sender as IEdSpectrumAcquisitionController;
 
-            if (edSpectrumAcquisitionController != null)
-            {
-                // This only used for multiple acquisition:
-                //      If this is the last experiment, call EndMultipleAcquisition on the Acquisition 
-                //      controller, to re-enable external scan switching
-                edSpectrumAcquisitionController.EndMultipleAcquisition();                
-            }
+            //if (edSpectrumAcquisitionController != null)
+            //{
+            //    // This only used for multiple acquisition:
+            //    //      If this is the last experiment, call EndMultipleAcquisition on the Acquisition 
+            //    //      controller, to re-enable external scan switching
+            //    edSpectrumAcquisitionController.EndMultipleAcquisition();                
+            //}
 
             IEdSpectrum edSpectrum = e.Value;
 
@@ -1685,10 +1726,10 @@ namespace Extender
                 //      if this is the first acquisition, call BeginMultipleAcquisition 
                 //      on the IEdSpectrumAcquisitionController to suppress external scan switching
                
-                if (m_bXrayDone)
-                {
-                    EdSpectrumAcquisitionController.BeginMultipleAcquisition();
-                }
+                //if (m_bXrayDone)
+                //{
+                //    EdSpectrumAcquisitionController.BeginMultipleAcquisition();
+                //}
                 
                 // Start spectrum acquisition
                 try
@@ -1715,7 +1756,7 @@ namespace Extender
                         lastingTime += 100;
                         if (lastingTime > EDSColletionTimeOut)
                         {
-                            EdSpectrumAcquisitionController.EndMultipleAcquisition();
+                            //EdSpectrumAcquisitionController.EndMultipleAcquisition();
                             return false;
                         }
                     }
@@ -1764,8 +1805,8 @@ namespace Extender
                 // This only used for multiple acquisition:
                 //      if this is the first acquisition, call BeginMultipleAcquisition 
                 //      on the IEdSpectrumAcquisitionController to suppress external scan switching
-                if (m_bXrayDone)
-                    EdSpectrumAcquisitionController.BeginMultipleAcquisition();
+                //if (m_bXrayDone)
+                //    EdSpectrumAcquisitionController.BeginMultipleAcquisition();
 
                 // Start spectrum acquisition
                 try
@@ -1788,7 +1829,7 @@ namespace Extender
                         lastingTime += 100;
                         if (lastingTime > EDSColletionTimeOut)
                         {
-                            EdSpectrumAcquisitionController.EndMultipleAcquisition();
+                            //EdSpectrumAcquisitionController.EndMultipleAcquisition();
                             return false;
                         }
                     }
@@ -1810,12 +1851,16 @@ namespace Extender
             return true;
         }
 
-        public bool XrayPointCollectiong1(double dMilliSecondsTime, int x, int y, out long[] XrayData, out Dictionary<string, double> a_listElement)
+
+
+        public void BeginMultipleAquisition()
         {
-           //var XrayData1 = new long[XRayChannelLength];
-           //var a_listElement1 = new Dictionary<string, double>();
-           var ret=  XrayPointCollectiong(dMilliSecondsTime, x, y,out XrayData,out a_listElement);
-            return ret;
+            EdSpectrumAcquisitionController.BeginMultipleAcquisition();
+        }
+
+        public void EndMultipleAquisition()
+        {
+            EdSpectrumAcquisitionController.EndMultipleAcquisition();
         }
 
 

+ 4 - 2
ExtenderControl/ExtenderInterface.cs

@@ -41,7 +41,7 @@ namespace Extender
             get {
                 if (m_iExtender == null)
                 {
-                    m_iExtender = new Extender();
+                    m_iExtender = new ExtenderWrapper();
                 }
                 return m_iExtender;
 
@@ -157,9 +157,11 @@ namespace Extender
         //X-ray
         //点采集
         Boolean XrayPointCollectiong(double dMilliSecondsTime, int x, int y, out long[] XrayData, out Dictionary<string, double> a_listElement);
-        Boolean XrayPointCollectiong1(double dMilliSecondsTime, int x, int y, out long[] XrayData, out Dictionary<string, double> a_listElement);
+        //Boolean XrayPointCollectiong1(double dMilliSecondsTime, int x, int y, out long[] XrayData, out Dictionary<string, double> a_listElement);
         //面采集
         Boolean XrayAreaCollectiong(double dMilliSecondsTime, List<Segment> a_listChord, out long[] XrayData, out Dictionary<string, double> a_listElement);
         void CloseExtender();
+        void BeginMultipleAquisition();
+        void EndMultipleAquisition();
     }
 }

+ 2 - 0
HOZProject/FormHOZMain.Designer.cs

@@ -505,6 +505,8 @@
             this.Name = "FormHOZMain";
             this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
             this.Text = "FormHOZMain";
+            this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FormHOZMain_FormClosing);
+           
             this.Load += new System.EventHandler(this.FormHOZMain_Load);
             this.Paint += new System.Windows.Forms.PaintEventHandler(this.FormHOZMain_Paint);
             this.Resize += new System.EventHandler(this.FormHOZMain_Resize);

+ 16 - 0
HOZProject/FormHOZMain.cs

@@ -478,6 +478,9 @@ namespace HOZProject
                 }
                 if (MessageBox.Show("是否关闭此窗体?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                 {
+                   
+                   
+                   
                     m_MeasureFile.Save();
                     this.Close();
                 }
@@ -1154,5 +1157,18 @@ namespace HOZProject
                 #endregion
         }
 
+   
+
+        private void FormHOZMain_FormClosing(object sender, FormClosingEventArgs e)
+        {
+            if (m_Ms != null)
+            {
+
+                if (m_Ms.iExtender != null)
+                {
+                    m_Ms.iExtender.CloseExtender();
+                }
+            }
+        }
     }
 }

+ 2 - 0
HOZProject/UserControls/UControl_Init.Designer.cs

@@ -550,6 +550,7 @@
             // 
             this.txtYPSCur.Location = new System.Drawing.Point(502, 285);
             this.txtYPSCur.Name = "txtYPSCur";
+            this.txtYPSCur.ReadOnly = true;
             this.txtYPSCur.Size = new System.Drawing.Size(155, 27);
             this.txtYPSCur.TabIndex = 117;
             this.txtYPSCur.TextChanged += new System.EventHandler(this.txtYPSCur_TextChanged);
@@ -1020,6 +1021,7 @@
             // 
             this.txtScanRotCur.Location = new System.Drawing.Point(174, 285);
             this.txtScanRotCur.Name = "txtScanRotCur";
+            this.txtScanRotCur.ReadOnly = true;
             this.txtScanRotCur.Size = new System.Drawing.Size(155, 27);
             this.txtScanRotCur.TabIndex = 136;
             // 

+ 13 - 0
HOZProject/UserControls/UControl_Init.cs

@@ -966,6 +966,19 @@ namespace HOZProject
         /// <param name="e"></param>
         private void btnSaveDefalutPara_Click(object sender, EventArgs e)
         {
+            if(chkWPT.Checked)
+            {
+                if (txtWPTF.Text=="")
+                {
+                    MessageBox.Show("PT文件路径不能为空");
+                    return;
+                }
+            }
+            if(txtWFIBF.Text=="")
+            {
+                MessageBox.Show("FIB文件路径不能为空");
+                return;
+            }
             if (EditConfig())
             {
                 //MessageBox.Show("保存成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

+ 26 - 11
MeasureThread/Measure.cs

@@ -1806,7 +1806,7 @@ namespace MeasureThread
                     //arg.Message = "SEM拍照失败";
                     //SendMsg("1-25");
                     //return false;
-                    log.Info("测量线程报错:找到已切割的位置拍照失败", true);
+                    log.Error("测量线程报错:找到已切割的位置拍照失败", false);
                 }
 
                 iSEM.CmdFocusScanSpeed(m_measureFile.MParam.ScanSpeedNormal);//CmdFocusRate(4);
@@ -2270,7 +2270,7 @@ namespace MeasureThread
                     //自动对焦
                     if (!ImageFocus1(true))
                     {
-                        log.Info("========测量线程:6000倍自动聚焦失败!", true);
+                        log.Error("========测量线程:6000倍自动聚焦失败!", false);
                         return false;
                     }
                     log.Info("========测量线程:6000倍自动聚焦成功!", true);
@@ -2779,7 +2779,8 @@ namespace MeasureThread
                 //17.自动控制SEM拍截面照
                 if (!ShotSection(ref limg_path, ref lsize))
                 {
-                    //return false;
+                    log.Error("拍截面照失败!");
+                    return false;
                 }
                 log.Info("测量线程:第一个孔的测试过程-17.自动控制SEM拍截面照结束!", true);
                 //判断是否停止进程
@@ -3200,7 +3201,7 @@ namespace MeasureThread
 
             //1、自动对焦
             log.Info("测量线程报错:拉直操作前自动对焦开始", true);
-            iSEM.SetReduced(402, 128, 340, 256);
+            iSEM.SetReduced(402, 128, 400, 400);
             Thread.Sleep(200);
             //add by sun 2020-12-15
             iSEM.CmdFocusScanSpeed(m_measureFile.MParam.ScanSpeedFocus);//CmdFocusRate(5);
@@ -3592,7 +3593,7 @@ namespace MeasureThread
                     string focusstig = XmlRpcClient.autofocusstig(10, 3, 3, 3, 0.7, snumstr);
                     if (focusstig != "success")
                     {
-                        log.Info("对焦失败" + focusstig , true);
+                        log.Error("对焦失败" + focusstig , false);
                         return false;
                     }
                 }
@@ -5752,7 +5753,7 @@ namespace MeasureThread
         #region 能谱所有参数
         //全局只有一个Extender
         static ExtenderInterface factoryExtender = ExtenderInterface.Instance;
-        IExtenderControl iExtender;
+       public IExtenderControl iExtender=null;
         MeasureDB m_MeasDB = null;
         int m_nXrayId = 0;
         const String ImageNameEDS = @"EDSImage.tif"; //EDS能谱图片
@@ -5787,7 +5788,7 @@ namespace MeasureThread
                 string path = EDS_path;
                 string edsfn = path + "\\" + num.ToString() + "_" + ImageNameEDS;
                 log.Info("EDS_PATH=" + edsfn, true);
-                iSEM.SetMagnification(5000);
+                iSEM.SetMagnification(10000);
               
                 Thread.Sleep(500);
 
@@ -5927,7 +5928,7 @@ namespace MeasureThread
                 int AreasNo = 0;
                 long[] XrayData = new long[2000];
                 Dictionary<string, double> listElement = new Dictionary<string, double>();
-
+                iExtender.BeginMultipleAquisition();
                 //点采集
                 foreach (System.Drawing.Point pt in listPoints)
                 {
@@ -5956,6 +5957,7 @@ namespace MeasureThread
                     }
 
                 }
+                iExtender.EndMultipleAquisition();
                 //面采集
                 //foreach (List<Segment> listSeg in listFeature)
                 //{
@@ -5975,6 +5977,7 @@ namespace MeasureThread
             }
             catch (Exception e)
             {
+                iExtender.EndMultipleAquisition();
                 log.Error(e.Message, false);
                 return false;
             }
@@ -6006,6 +6009,12 @@ namespace MeasureThread
                 m_TempBrightness = 48.0f;
                 m_TempContrast = 29.0f;
             }
+            else if (m_measureFile.MParam.SampleName == "0")
+            {
+                m_TempBrightness = 50.0f;
+                m_TempContrast = 28.0f;
+            }                        
+
             //add by sun 2020-12-17 解决3大类样品FIB下亮度过白导致无法识别问题    
             iSEM.SetAutoVideoOff();
             Thread.Sleep(200);
@@ -6805,7 +6814,13 @@ namespace MeasureThread
             if (m_measureFile.MParam.SampleName == "3")
             {
                 m_TempBrightness = 50f;
-                m_TempContrast = 29f;                
+                m_TempContrast = 29f;
+            }
+            else if (m_measureFile.MParam.SampleName == "0")
+            {
+                m_TempBrightness = 50f;
+                m_TempContrast = 28f;
+
             }
             iSEM.SetBrightness(m_TempBrightness); //50.0f
             Thread.Sleep(200);
@@ -6843,7 +6858,7 @@ namespace MeasureThread
             {
                 return false;
             }
-
+            Thread.Sleep(500);
             //7.调用171步过程
             
             log.Warn("开始打能谱图和打Xray!");
@@ -6947,7 +6962,7 @@ namespace MeasureThread
                 {
                     //Bitmap bmp = new Bitmap(img.Width, img.Height);
                     // add by zjx 2020-12-24 根据客户要求把标尺的图片修改成8位颜色
-                    Bitmap bmp = new Bitmap(img.Width, img.Height, System.Drawing.Imaging.PixelFormat.Format8bppIndexed);
+                    Bitmap bmp = new Bitmap(img.Width, img.Height);
                     // add by zjx 2020-12-24 根据客户要求把标尺的图片修改成8位颜色 end
                     using (Graphics g = Graphics.FromImage(bmp))
                     {

+ 21 - 20
OxfordTest/Form1.Designer.cs

@@ -29,10 +29,10 @@
         private void InitializeComponent()
         {
             System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
-            System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea1 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
-            System.Windows.Forms.DataVisualization.Charting.Legend legend1 = new System.Windows.Forms.DataVisualization.Charting.Legend();
-            System.Windows.Forms.DataVisualization.Charting.Series series1 = new System.Windows.Forms.DataVisualization.Charting.Series();
-            System.Windows.Forms.DataVisualization.Charting.Series series2 = new System.Windows.Forms.DataVisualization.Charting.Series();
+            System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea2 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
+            System.Windows.Forms.DataVisualization.Charting.Legend legend2 = new System.Windows.Forms.DataVisualization.Charting.Legend();
+            System.Windows.Forms.DataVisualization.Charting.Series series3 = new System.Windows.Forms.DataVisualization.Charting.Series();
+            System.Windows.Forms.DataVisualization.Charting.Series series4 = new System.Windows.Forms.DataVisualization.Charting.Series();
             this.label1 = new System.Windows.Forms.Label();
             this.label2 = new System.Windows.Forms.Label();
             this.label3 = new System.Windows.Forms.Label();
@@ -991,24 +991,24 @@
             // 
             // chart1
             // 
-            chartArea1.Name = "ChartArea1";
-            this.chart1.ChartAreas.Add(chartArea1);
-            legend1.Alignment = System.Drawing.StringAlignment.Center;
-            legend1.Docking = System.Windows.Forms.DataVisualization.Charting.Docking.Top;
-            legend1.Name = "Legend1";
-            this.chart1.Legends.Add(legend1);
+            chartArea2.Name = "ChartArea1";
+            this.chart1.ChartAreas.Add(chartArea2);
+            legend2.Alignment = System.Drawing.StringAlignment.Center;
+            legend2.Docking = System.Windows.Forms.DataVisualization.Charting.Docking.Top;
+            legend2.Name = "Legend1";
+            this.chart1.Legends.Add(legend2);
             resources.ApplyResources(this.chart1, "chart1");
             this.chart1.Name = "chart1";
-            series1.ChartArea = "ChartArea1";
-            series1.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;
-            series1.Legend = "Legend1";
-            series1.Name = "Series1";
-            series2.ChartArea = "ChartArea1";
-            series2.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;
-            series2.Legend = "Legend1";
-            series2.Name = "Series2";
-            this.chart1.Series.Add(series1);
-            this.chart1.Series.Add(series2);
+            series3.ChartArea = "ChartArea1";
+            series3.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;
+            series3.Legend = "Legend1";
+            series3.Name = "Series1";
+            series4.ChartArea = "ChartArea1";
+            series4.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;
+            series4.Legend = "Legend1";
+            series4.Name = "Series2";
+            this.chart1.Series.Add(series3);
+            this.chart1.Series.Add(series4);
             // 
             // button26
             // 
@@ -1033,6 +1033,7 @@
             this.Controls.Add(this.groupBox1);
             this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
             this.Name = "Form1";
+            this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing);
             this.Load += new System.EventHandler(this.Form1_Load);
             this.groupBox1.ResumeLayout(false);
             this.groupBox1.PerformLayout();

+ 8 - 0
OxfordTest/Form1.cs

@@ -575,5 +575,13 @@ namespace OxfordTest
             var log = NLog.LogManager.GetCurrentClassLogger();
             log.Info("sfdasdfasdsafgasddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",false);
         }
+
+        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
+        {
+            if (iExtender != null)
+            {
+               iExtender.CloseExtender();
+            }
+        }
     }
 }

+ 697 - 139
OxfordTest/Form1.resx

@@ -2058,6 +2058,60 @@
   <data name="&gt;&gt;button23.ZOrder" xml:space="preserve">
     <value>3</value>
   </data>
+  <data name="&gt;&gt;button27.Name" xml:space="preserve">
+    <value>button27</value>
+  </data>
+  <data name="&gt;&gt;button27.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;button27.Parent" xml:space="preserve">
+    <value>groupBox1</value>
+  </data>
+  <data name="&gt;&gt;button27.ZOrder" xml:space="preserve">
+    <value>0</value>
+  </data>
+  <data name="&gt;&gt;btnCreateDB.Name" xml:space="preserve">
+    <value>btnCreateDB</value>
+  </data>
+  <data name="&gt;&gt;btnCreateDB.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;btnCreateDB.Parent" xml:space="preserve">
+    <value>groupBox1</value>
+  </data>
+  <data name="&gt;&gt;btnCreateDB.ZOrder" xml:space="preserve">
+    <value>1</value>
+  </data>
+  <data name="groupBox1.Location" type="System.Drawing.Point, System.Drawing">
+    <value>11, 10</value>
+  </data>
+  <data name="groupBox1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>3, 2, 3, 2</value>
+  </data>
+  <data name="groupBox1.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>3, 2, 3, 2</value>
+  </data>
+  <data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
+    <value>655, 480</value>
+  </data>
+  <data name="groupBox1.TabIndex" type="System.Int32, mscorlib">
+    <value>76</value>
+  </data>
+  <data name="groupBox1.Text" xml:space="preserve">
+    <value>电镜和样品台控制</value>
+  </data>
+  <data name="&gt;&gt;groupBox1.Name" xml:space="preserve">
+    <value>groupBox1</value>
+  </data>
+  <data name="&gt;&gt;groupBox1.Type" xml:space="preserve">
+    <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;groupBox1.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;groupBox1.ZOrder" xml:space="preserve">
+    <value>2</value>
+  </data>
   <data name="button27.Location" type="System.Drawing.Point, System.Drawing">
     <value>143, -1</value>
   </data>
@@ -2085,167 +2139,695 @@
   <data name="btnCreateDB.Location" type="System.Drawing.Point, System.Drawing">
     <value>6, 434</value>
   </data>
-  <data name="btnCreateDB.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
-    <value>3, 2, 3, 2</value>
+  <data name="btnCreateDB.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>3, 2, 3, 2</value>
+  </data>
+  <data name="btnCreateDB.Size" type="System.Drawing.Size, System.Drawing">
+    <value>141, 32</value>
+  </data>
+  <data name="btnCreateDB.TabIndex" type="System.Int32, mscorlib">
+    <value>76</value>
+  </data>
+  <data name="btnCreateDB.Text" xml:space="preserve">
+    <value>创建数据库</value>
+  </data>
+  <data name="&gt;&gt;btnCreateDB.Name" xml:space="preserve">
+    <value>btnCreateDB</value>
+  </data>
+  <data name="&gt;&gt;btnCreateDB.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;btnCreateDB.Parent" xml:space="preserve">
+    <value>groupBox1</value>
+  </data>
+  <data name="&gt;&gt;btnCreateDB.ZOrder" xml:space="preserve">
+    <value>1</value>
+  </data>
+  <data name="&gt;&gt;button28.Name" xml:space="preserve">
+    <value>button28</value>
+  </data>
+  <data name="&gt;&gt;button28.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;button28.Parent" xml:space="preserve">
+    <value>拍图</value>
+  </data>
+  <data name="&gt;&gt;button28.ZOrder" xml:space="preserve">
+    <value>0</value>
+  </data>
+  <data name="&gt;&gt;pBImage.Name" xml:space="preserve">
+    <value>pBImage</value>
+  </data>
+  <data name="&gt;&gt;pBImage.Type" xml:space="preserve">
+    <value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;pBImage.Parent" xml:space="preserve">
+    <value>拍图</value>
+  </data>
+  <data name="&gt;&gt;pBImage.ZOrder" xml:space="preserve">
+    <value>1</value>
+  </data>
+  <data name="&gt;&gt;button24.Name" xml:space="preserve">
+    <value>button24</value>
+  </data>
+  <data name="&gt;&gt;button24.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;button24.Parent" xml:space="preserve">
+    <value>拍图</value>
+  </data>
+  <data name="&gt;&gt;button24.ZOrder" xml:space="preserve">
+    <value>2</value>
+  </data>
+  <data name="拍图.Location" type="System.Drawing.Point, System.Drawing">
+    <value>702, 10</value>
+  </data>
+  <data name="拍图.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>3, 2, 3, 2</value>
+  </data>
+  <data name="拍图.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>3, 2, 3, 2</value>
+  </data>
+  <data name="拍图.Size" type="System.Drawing.Size, System.Drawing">
+    <value>791, 480</value>
+  </data>
+  <data name="拍图.TabIndex" type="System.Int32, mscorlib">
+    <value>77</value>
+  </data>
+  <data name="拍图.Text" xml:space="preserve">
+    <value>拍图</value>
+  </data>
+  <data name="&gt;&gt;拍图.Name" xml:space="preserve">
+    <value>拍图</value>
+  </data>
+  <data name="&gt;&gt;拍图.Type" xml:space="preserve">
+    <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;拍图.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;拍图.ZOrder" xml:space="preserve">
+    <value>1</value>
+  </data>
+  <data name="button28.Location" type="System.Drawing.Point, System.Drawing">
+    <value>138, 24</value>
+  </data>
+  <data name="button28.Size" type="System.Drawing.Size, System.Drawing">
+    <value>179, 36</value>
+  </data>
+  <data name="button28.TabIndex" type="System.Int32, mscorlib">
+    <value>2</value>
+  </data>
+  <data name="button28.Text" xml:space="preserve">
+    <value>button28</value>
+  </data>
+  <data name="&gt;&gt;button28.Name" xml:space="preserve">
+    <value>button28</value>
+  </data>
+  <data name="&gt;&gt;button28.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;button28.Parent" xml:space="preserve">
+    <value>拍图</value>
+  </data>
+  <data name="&gt;&gt;button28.ZOrder" xml:space="preserve">
+    <value>0</value>
+  </data>
+  <data name="pBImage.Location" type="System.Drawing.Point, System.Drawing">
+    <value>5, 64</value>
+  </data>
+  <data name="pBImage.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>3, 2, 3, 2</value>
+  </data>
+  <data name="pBImage.Size" type="System.Drawing.Size, System.Drawing">
+    <value>780, 411</value>
+  </data>
+  <data name="pBImage.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
+    <value>Zoom</value>
+  </data>
+  <data name="pBImage.TabIndex" type="System.Int32, mscorlib">
+    <value>1</value>
+  </data>
+  <data name="&gt;&gt;pBImage.Name" xml:space="preserve">
+    <value>pBImage</value>
+  </data>
+  <data name="&gt;&gt;pBImage.Type" xml:space="preserve">
+    <value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;pBImage.Parent" xml:space="preserve">
+    <value>拍图</value>
+  </data>
+  <data name="&gt;&gt;pBImage.ZOrder" xml:space="preserve">
+    <value>1</value>
+  </data>
+  <data name="button24.Location" type="System.Drawing.Point, System.Drawing">
+    <value>35, 22</value>
+  </data>
+  <data name="button24.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>3, 2, 3, 2</value>
+  </data>
+  <data name="button24.Size" type="System.Drawing.Size, System.Drawing">
+    <value>67, 33</value>
+  </data>
+  <data name="button24.TabIndex" type="System.Int32, mscorlib">
+    <value>0</value>
+  </data>
+  <data name="button24.Text" xml:space="preserve">
+    <value>拍图</value>
+  </data>
+  <data name="&gt;&gt;button24.Name" xml:space="preserve">
+    <value>button24</value>
+  </data>
+  <data name="&gt;&gt;button24.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;button24.Parent" xml:space="preserve">
+    <value>拍图</value>
+  </data>
+  <data name="&gt;&gt;button24.ZOrder" xml:space="preserve">
+    <value>2</value>
+  </data>
+  <data name="&gt;&gt;btnTest.Name" xml:space="preserve">
+    <value>btnTest</value>
+  </data>
+  <data name="&gt;&gt;btnTest.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;btnTest.Parent" xml:space="preserve">
+    <value>groupBox2</value>
+  </data>
+  <data name="&gt;&gt;btnTest.ZOrder" xml:space="preserve">
+    <value>0</value>
+  </data>
+  <data name="&gt;&gt;label37.Name" xml:space="preserve">
+    <value>label37</value>
+  </data>
+  <data name="&gt;&gt;label37.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;label37.Parent" xml:space="preserve">
+    <value>groupBox2</value>
+  </data>
+  <data name="&gt;&gt;label37.ZOrder" xml:space="preserve">
+    <value>1</value>
+  </data>
+  <data name="&gt;&gt;txtarea2l3.Name" xml:space="preserve">
+    <value>txtarea2l3</value>
+  </data>
+  <data name="&gt;&gt;txtarea2l3.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;txtarea2l3.Parent" xml:space="preserve">
+    <value>groupBox2</value>
+  </data>
+  <data name="&gt;&gt;txtarea2l3.ZOrder" xml:space="preserve">
+    <value>2</value>
+  </data>
+  <data name="&gt;&gt;txtarea2l2.Name" xml:space="preserve">
+    <value>txtarea2l2</value>
+  </data>
+  <data name="&gt;&gt;txtarea2l2.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;txtarea2l2.Parent" xml:space="preserve">
+    <value>groupBox2</value>
+  </data>
+  <data name="&gt;&gt;txtarea2l2.ZOrder" xml:space="preserve">
+    <value>3</value>
+  </data>
+  <data name="&gt;&gt;txtarea2y3.Name" xml:space="preserve">
+    <value>txtarea2y3</value>
+  </data>
+  <data name="&gt;&gt;txtarea2y3.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;txtarea2y3.Parent" xml:space="preserve">
+    <value>groupBox2</value>
+  </data>
+  <data name="&gt;&gt;txtarea2y3.ZOrder" xml:space="preserve">
+    <value>4</value>
+  </data>
+  <data name="&gt;&gt;txtarea2x3.Name" xml:space="preserve">
+    <value>txtarea2x3</value>
+  </data>
+  <data name="&gt;&gt;txtarea2x3.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;txtarea2x3.Parent" xml:space="preserve">
+    <value>groupBox2</value>
+  </data>
+  <data name="&gt;&gt;txtarea2x3.ZOrder" xml:space="preserve">
+    <value>5</value>
+  </data>
+  <data name="&gt;&gt;txtarea2y2.Name" xml:space="preserve">
+    <value>txtarea2y2</value>
+  </data>
+  <data name="&gt;&gt;txtarea2y2.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;txtarea2y2.Parent" xml:space="preserve">
+    <value>groupBox2</value>
+  </data>
+  <data name="&gt;&gt;txtarea2y2.ZOrder" xml:space="preserve">
+    <value>6</value>
+  </data>
+  <data name="&gt;&gt;txtarea2x2.Name" xml:space="preserve">
+    <value>txtarea2x2</value>
+  </data>
+  <data name="&gt;&gt;txtarea2x2.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;txtarea2x2.Parent" xml:space="preserve">
+    <value>groupBox2</value>
+  </data>
+  <data name="&gt;&gt;txtarea2x2.ZOrder" xml:space="preserve">
+    <value>7</value>
+  </data>
+  <data name="&gt;&gt;txtarea2l1.Name" xml:space="preserve">
+    <value>txtarea2l1</value>
+  </data>
+  <data name="&gt;&gt;txtarea2l1.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;txtarea2l1.Parent" xml:space="preserve">
+    <value>groupBox2</value>
+  </data>
+  <data name="&gt;&gt;txtarea2l1.ZOrder" xml:space="preserve">
+    <value>8</value>
+  </data>
+  <data name="&gt;&gt;txtarea1l3.Name" xml:space="preserve">
+    <value>txtarea1l3</value>
+  </data>
+  <data name="&gt;&gt;txtarea1l3.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;txtarea1l3.Parent" xml:space="preserve">
+    <value>groupBox2</value>
+  </data>
+  <data name="&gt;&gt;txtarea1l3.ZOrder" xml:space="preserve">
+    <value>9</value>
+  </data>
+  <data name="&gt;&gt;txtarea2y1.Name" xml:space="preserve">
+    <value>txtarea2y1</value>
+  </data>
+  <data name="&gt;&gt;txtarea2y1.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;txtarea2y1.Parent" xml:space="preserve">
+    <value>groupBox2</value>
+  </data>
+  <data name="&gt;&gt;txtarea2y1.ZOrder" xml:space="preserve">
+    <value>10</value>
+  </data>
+  <data name="&gt;&gt;txtarea2x1.Name" xml:space="preserve">
+    <value>txtarea2x1</value>
+  </data>
+  <data name="&gt;&gt;txtarea2x1.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;txtarea2x1.Parent" xml:space="preserve">
+    <value>groupBox2</value>
+  </data>
+  <data name="&gt;&gt;txtarea2x1.ZOrder" xml:space="preserve">
+    <value>11</value>
+  </data>
+  <data name="&gt;&gt;txtarea1y3.Name" xml:space="preserve">
+    <value>txtarea1y3</value>
+  </data>
+  <data name="&gt;&gt;txtarea1y3.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;txtarea1y3.Parent" xml:space="preserve">
+    <value>groupBox2</value>
+  </data>
+  <data name="&gt;&gt;txtarea1y3.ZOrder" xml:space="preserve">
+    <value>12</value>
+  </data>
+  <data name="&gt;&gt;txtarea1x3.Name" xml:space="preserve">
+    <value>txtarea1x3</value>
+  </data>
+  <data name="&gt;&gt;txtarea1x3.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;txtarea1x3.Parent" xml:space="preserve">
+    <value>groupBox2</value>
+  </data>
+  <data name="&gt;&gt;txtarea1x3.ZOrder" xml:space="preserve">
+    <value>13</value>
+  </data>
+  <data name="&gt;&gt;txtarea1l2.Name" xml:space="preserve">
+    <value>txtarea1l2</value>
+  </data>
+  <data name="&gt;&gt;txtarea1l2.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;txtarea1l2.Parent" xml:space="preserve">
+    <value>groupBox2</value>
+  </data>
+  <data name="&gt;&gt;txtarea1l2.ZOrder" xml:space="preserve">
+    <value>14</value>
+  </data>
+  <data name="&gt;&gt;txtarea1l1.Name" xml:space="preserve">
+    <value>txtarea1l1</value>
+  </data>
+  <data name="&gt;&gt;txtarea1l1.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;txtarea1l1.Parent" xml:space="preserve">
+    <value>groupBox2</value>
+  </data>
+  <data name="&gt;&gt;txtarea1l1.ZOrder" xml:space="preserve">
+    <value>15</value>
+  </data>
+  <data name="&gt;&gt;txtarea1y2.Name" xml:space="preserve">
+    <value>txtarea1y2</value>
+  </data>
+  <data name="&gt;&gt;txtarea1y2.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;txtarea1y2.Parent" xml:space="preserve">
+    <value>groupBox2</value>
+  </data>
+  <data name="&gt;&gt;txtarea1y2.ZOrder" xml:space="preserve">
+    <value>16</value>
+  </data>
+  <data name="&gt;&gt;txtarea1x2.Name" xml:space="preserve">
+    <value>txtarea1x2</value>
+  </data>
+  <data name="&gt;&gt;txtarea1x2.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;txtarea1x2.Parent" xml:space="preserve">
+    <value>groupBox2</value>
+  </data>
+  <data name="&gt;&gt;txtarea1x2.ZOrder" xml:space="preserve">
+    <value>17</value>
+  </data>
+  <data name="&gt;&gt;txtarea1y1.Name" xml:space="preserve">
+    <value>txtarea1y1</value>
+  </data>
+  <data name="&gt;&gt;txtarea1y1.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;txtarea1y1.Parent" xml:space="preserve">
+    <value>groupBox2</value>
+  </data>
+  <data name="&gt;&gt;txtarea1y1.ZOrder" xml:space="preserve">
+    <value>18</value>
+  </data>
+  <data name="&gt;&gt;txtarea1x1.Name" xml:space="preserve">
+    <value>txtarea1x1</value>
+  </data>
+  <data name="&gt;&gt;txtarea1x1.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;txtarea1x1.Parent" xml:space="preserve">
+    <value>groupBox2</value>
+  </data>
+  <data name="&gt;&gt;txtarea1x1.ZOrder" xml:space="preserve">
+    <value>19</value>
+  </data>
+  <data name="&gt;&gt;label36.Name" xml:space="preserve">
+    <value>label36</value>
+  </data>
+  <data name="&gt;&gt;label36.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;label36.Parent" xml:space="preserve">
+    <value>groupBox2</value>
+  </data>
+  <data name="&gt;&gt;label36.ZOrder" xml:space="preserve">
+    <value>20</value>
+  </data>
+  <data name="&gt;&gt;txtpy5.Name" xml:space="preserve">
+    <value>txtpy5</value>
+  </data>
+  <data name="&gt;&gt;txtpy5.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;txtpy5.Parent" xml:space="preserve">
+    <value>groupBox2</value>
+  </data>
+  <data name="&gt;&gt;txtpy5.ZOrder" xml:space="preserve">
+    <value>21</value>
+  </data>
+  <data name="&gt;&gt;txtpx5.Name" xml:space="preserve">
+    <value>txtpx5</value>
+  </data>
+  <data name="&gt;&gt;txtpx5.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;txtpx5.Parent" xml:space="preserve">
+    <value>groupBox2</value>
+  </data>
+  <data name="&gt;&gt;txtpx5.ZOrder" xml:space="preserve">
+    <value>22</value>
+  </data>
+  <data name="&gt;&gt;txtpy4.Name" xml:space="preserve">
+    <value>txtpy4</value>
+  </data>
+  <data name="&gt;&gt;txtpy4.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;txtpy4.Parent" xml:space="preserve">
+    <value>groupBox2</value>
+  </data>
+  <data name="&gt;&gt;txtpy4.ZOrder" xml:space="preserve">
+    <value>23</value>
+  </data>
+  <data name="&gt;&gt;txtpx4.Name" xml:space="preserve">
+    <value>txtpx4</value>
+  </data>
+  <data name="&gt;&gt;txtpx4.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;txtpx4.Parent" xml:space="preserve">
+    <value>groupBox2</value>
+  </data>
+  <data name="&gt;&gt;txtpx4.ZOrder" xml:space="preserve">
+    <value>24</value>
+  </data>
+  <data name="&gt;&gt;txtpy3.Name" xml:space="preserve">
+    <value>txtpy3</value>
+  </data>
+  <data name="&gt;&gt;txtpy3.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;txtpy3.Parent" xml:space="preserve">
+    <value>groupBox2</value>
+  </data>
+  <data name="&gt;&gt;txtpy3.ZOrder" xml:space="preserve">
+    <value>25</value>
+  </data>
+  <data name="&gt;&gt;txtpx3.Name" xml:space="preserve">
+    <value>txtpx3</value>
+  </data>
+  <data name="&gt;&gt;txtpx3.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;txtpx3.Parent" xml:space="preserve">
+    <value>groupBox2</value>
+  </data>
+  <data name="&gt;&gt;txtpx3.ZOrder" xml:space="preserve">
+    <value>26</value>
+  </data>
+  <data name="&gt;&gt;txtpy2.Name" xml:space="preserve">
+    <value>txtpy2</value>
+  </data>
+  <data name="&gt;&gt;txtpy2.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;txtpy2.Parent" xml:space="preserve">
+    <value>groupBox2</value>
+  </data>
+  <data name="&gt;&gt;txtpy2.ZOrder" xml:space="preserve">
+    <value>27</value>
+  </data>
+  <data name="&gt;&gt;txtpx2.Name" xml:space="preserve">
+    <value>txtpx2</value>
+  </data>
+  <data name="&gt;&gt;txtpx2.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;txtpx2.Parent" xml:space="preserve">
+    <value>groupBox2</value>
+  </data>
+  <data name="&gt;&gt;txtpx2.ZOrder" xml:space="preserve">
+    <value>28</value>
+  </data>
+  <data name="&gt;&gt;label35.Name" xml:space="preserve">
+    <value>label35</value>
+  </data>
+  <data name="&gt;&gt;label35.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;label35.Parent" xml:space="preserve">
+    <value>groupBox2</value>
+  </data>
+  <data name="&gt;&gt;label35.ZOrder" xml:space="preserve">
+    <value>29</value>
+  </data>
+  <data name="&gt;&gt;label34.Name" xml:space="preserve">
+    <value>label34</value>
   </data>
-  <data name="btnCreateDB.Size" type="System.Drawing.Size, System.Drawing">
-    <value>141, 32</value>
+  <data name="&gt;&gt;label34.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
-  <data name="btnCreateDB.TabIndex" type="System.Int32, mscorlib">
-    <value>76</value>
+  <data name="&gt;&gt;label34.Parent" xml:space="preserve">
+    <value>groupBox2</value>
   </data>
-  <data name="btnCreateDB.Text" xml:space="preserve">
-    <value>创建数据库</value>
+  <data name="&gt;&gt;label34.ZOrder" xml:space="preserve">
+    <value>30</value>
   </data>
-  <data name="&gt;&gt;btnCreateDB.Name" xml:space="preserve">
-    <value>btnCreateDB</value>
+  <data name="&gt;&gt;label33.Name" xml:space="preserve">
+    <value>label33</value>
   </data>
-  <data name="&gt;&gt;btnCreateDB.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  <data name="&gt;&gt;label33.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
-  <data name="&gt;&gt;btnCreateDB.Parent" xml:space="preserve">
-    <value>groupBox1</value>
+  <data name="&gt;&gt;label33.Parent" xml:space="preserve">
+    <value>groupBox2</value>
   </data>
-  <data name="&gt;&gt;btnCreateDB.ZOrder" xml:space="preserve">
-    <value>1</value>
+  <data name="&gt;&gt;label33.ZOrder" xml:space="preserve">
+    <value>31</value>
   </data>
-  <data name="groupBox1.Location" type="System.Drawing.Point, System.Drawing">
-    <value>11, 10</value>
+  <data name="&gt;&gt;txtpy1.Name" xml:space="preserve">
+    <value>txtpy1</value>
   </data>
-  <data name="groupBox1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
-    <value>3, 2, 3, 2</value>
+  <data name="&gt;&gt;txtpy1.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
-  <data name="groupBox1.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
-    <value>3, 2, 3, 2</value>
+  <data name="&gt;&gt;txtpy1.Parent" xml:space="preserve">
+    <value>groupBox2</value>
   </data>
-  <data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
-    <value>655, 480</value>
+  <data name="&gt;&gt;txtpy1.ZOrder" xml:space="preserve">
+    <value>32</value>
   </data>
-  <data name="groupBox1.TabIndex" type="System.Int32, mscorlib">
-    <value>76</value>
+  <data name="&gt;&gt;txtpx1.Name" xml:space="preserve">
+    <value>txtpx1</value>
   </data>
-  <data name="groupBox1.Text" xml:space="preserve">
-    <value>电镜和样品台控制</value>
+  <data name="&gt;&gt;txtpx1.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
-  <data name="&gt;&gt;groupBox1.Name" xml:space="preserve">
-    <value>groupBox1</value>
+  <data name="&gt;&gt;txtpx1.Parent" xml:space="preserve">
+    <value>groupBox2</value>
   </data>
-  <data name="&gt;&gt;groupBox1.Type" xml:space="preserve">
-    <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  <data name="&gt;&gt;txtpx1.ZOrder" xml:space="preserve">
+    <value>33</value>
   </data>
-  <data name="&gt;&gt;groupBox1.Parent" xml:space="preserve">
-    <value>$this</value>
+  <data name="&gt;&gt;label32.Name" xml:space="preserve">
+    <value>label32</value>
   </data>
-  <data name="&gt;&gt;groupBox1.ZOrder" xml:space="preserve">
-    <value>2</value>
+  <data name="&gt;&gt;label32.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
-  <data name="button28.Location" type="System.Drawing.Point, System.Drawing">
-    <value>138, 24</value>
+  <data name="&gt;&gt;label32.Parent" xml:space="preserve">
+    <value>groupBox2</value>
   </data>
-  <data name="button28.Size" type="System.Drawing.Size, System.Drawing">
-    <value>179, 36</value>
+  <data name="&gt;&gt;label32.ZOrder" xml:space="preserve">
+    <value>34</value>
   </data>
-  <data name="button28.TabIndex" type="System.Int32, mscorlib">
-    <value>2</value>
+  <data name="&gt;&gt;NUDNum.Name" xml:space="preserve">
+    <value>NUDNum</value>
   </data>
-  <data name="button28.Text" xml:space="preserve">
-    <value>button28</value>
+  <data name="&gt;&gt;NUDNum.Type" xml:space="preserve">
+    <value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
-  <data name="&gt;&gt;button28.Name" xml:space="preserve">
-    <value>button28</value>
+  <data name="&gt;&gt;NUDNum.Parent" xml:space="preserve">
+    <value>groupBox2</value>
   </data>
-  <data name="&gt;&gt;button28.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  <data name="&gt;&gt;NUDNum.ZOrder" xml:space="preserve">
+    <value>35</value>
   </data>
-  <data name="&gt;&gt;button28.Parent" xml:space="preserve">
-    <value>拍图</value>
+  <data name="&gt;&gt;btnReadP.Name" xml:space="preserve">
+    <value>btnReadP</value>
   </data>
-  <data name="&gt;&gt;button28.ZOrder" xml:space="preserve">
-    <value>0</value>
+  <data name="&gt;&gt;btnReadP.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
-  <data name="pBImage.Location" type="System.Drawing.Point, System.Drawing">
-    <value>5, 64</value>
+  <data name="&gt;&gt;btnReadP.Parent" xml:space="preserve">
+    <value>groupBox2</value>
   </data>
-  <data name="pBImage.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
-    <value>3, 2, 3, 2</value>
+  <data name="&gt;&gt;btnReadP.ZOrder" xml:space="preserve">
+    <value>36</value>
   </data>
-  <data name="pBImage.Size" type="System.Drawing.Size, System.Drawing">
-    <value>780, 411</value>
+  <data name="&gt;&gt;dataGridView1.Name" xml:space="preserve">
+    <value>dataGridView1</value>
   </data>
-  <data name="pBImage.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
-    <value>Zoom</value>
+  <data name="&gt;&gt;dataGridView1.Type" xml:space="preserve">
+    <value>System.Windows.Forms.DataGridView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
-  <data name="pBImage.TabIndex" type="System.Int32, mscorlib">
-    <value>1</value>
+  <data name="&gt;&gt;dataGridView1.Parent" xml:space="preserve">
+    <value>groupBox2</value>
   </data>
-  <data name="&gt;&gt;pBImage.Name" xml:space="preserve">
-    <value>pBImage</value>
+  <data name="&gt;&gt;dataGridView1.ZOrder" xml:space="preserve">
+    <value>37</value>
   </data>
-  <data name="&gt;&gt;pBImage.Type" xml:space="preserve">
-    <value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  <data name="&gt;&gt;chart1.Name" xml:space="preserve">
+    <value>chart1</value>
   </data>
-  <data name="&gt;&gt;pBImage.Parent" xml:space="preserve">
-    <value>拍图</value>
+  <data name="&gt;&gt;chart1.Type" xml:space="preserve">
+    <value>System.Windows.Forms.DataVisualization.Charting.Chart, System.Windows.Forms.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35</value>
   </data>
-  <data name="&gt;&gt;pBImage.ZOrder" xml:space="preserve">
-    <value>1</value>
+  <data name="&gt;&gt;chart1.Parent" xml:space="preserve">
+    <value>groupBox2</value>
   </data>
-  <data name="button24.Location" type="System.Drawing.Point, System.Drawing">
-    <value>35, 22</value>
+  <data name="&gt;&gt;chart1.ZOrder" xml:space="preserve">
+    <value>38</value>
   </data>
-  <data name="button24.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
-    <value>3, 2, 3, 2</value>
+  <data name="&gt;&gt;button26.Name" xml:space="preserve">
+    <value>button26</value>
   </data>
-  <data name="button24.Size" type="System.Drawing.Size, System.Drawing">
-    <value>67, 33</value>
+  <data name="&gt;&gt;button26.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
-  <data name="button24.TabIndex" type="System.Int32, mscorlib">
-    <value>0</value>
+  <data name="&gt;&gt;button26.Parent" xml:space="preserve">
+    <value>groupBox2</value>
   </data>
-  <data name="button24.Text" xml:space="preserve">
-    <value>拍图</value>
+  <data name="&gt;&gt;button26.ZOrder" xml:space="preserve">
+    <value>39</value>
   </data>
-  <data name="&gt;&gt;button24.Name" xml:space="preserve">
-    <value>button24</value>
+  <data name="&gt;&gt;button25.Name" xml:space="preserve">
+    <value>button25</value>
   </data>
-  <data name="&gt;&gt;button24.Type" xml:space="preserve">
+  <data name="&gt;&gt;button25.Type" xml:space="preserve">
     <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
-  <data name="&gt;&gt;button24.Parent" xml:space="preserve">
-    <value>拍图</value>
+  <data name="&gt;&gt;button25.Parent" xml:space="preserve">
+    <value>groupBox2</value>
   </data>
-  <data name="&gt;&gt;button24.ZOrder" xml:space="preserve">
-    <value>2</value>
+  <data name="&gt;&gt;button25.ZOrder" xml:space="preserve">
+    <value>40</value>
   </data>
-  <data name="拍图.Location" type="System.Drawing.Point, System.Drawing">
-    <value>702, 10</value>
+  <data name="groupBox2.Location" type="System.Drawing.Point, System.Drawing">
+    <value>12, 495</value>
   </data>
-  <data name="拍图.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+  <data name="groupBox2.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
     <value>3, 2, 3, 2</value>
   </data>
-  <data name="拍图.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
+  <data name="groupBox2.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
     <value>3, 2, 3, 2</value>
   </data>
-  <data name="拍图.Size" type="System.Drawing.Size, System.Drawing">
-    <value>791, 480</value>
+  <data name="groupBox2.Size" type="System.Drawing.Size, System.Drawing">
+    <value>1470, 373</value>
   </data>
-  <data name="拍图.TabIndex" type="System.Int32, mscorlib">
-    <value>77</value>
+  <data name="groupBox2.TabIndex" type="System.Int32, mscorlib">
+    <value>78</value>
   </data>
-  <data name="拍图.Text" xml:space="preserve">
-    <value>拍图</value>
+  <data name="groupBox2.Text" xml:space="preserve">
+    <value>能谱</value>
   </data>
-  <data name="&gt;&gt;拍图.Name" xml:space="preserve">
-    <value>拍图</value>
+  <data name="&gt;&gt;groupBox2.Name" xml:space="preserve">
+    <value>groupBox2</value>
   </data>
-  <data name="&gt;&gt;拍图.Type" xml:space="preserve">
+  <data name="&gt;&gt;groupBox2.Type" xml:space="preserve">
     <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
-  <data name="&gt;&gt;拍图.Parent" xml:space="preserve">
+  <data name="&gt;&gt;groupBox2.Parent" xml:space="preserve">
     <value>$this</value>
   </data>
-  <data name="&gt;&gt;拍图.ZOrder" xml:space="preserve">
-    <value>1</value>
+  <data name="&gt;&gt;groupBox2.ZOrder" xml:space="preserve">
+    <value>0</value>
   </data>
   <data name="btnTest.Font" type="System.Drawing.Font, System.Drawing">
     <value>微软雅黑, 12pt</value>
@@ -3252,15 +3834,9 @@
   <metadata name="元素.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>
-  <data name="元素.HeaderText" xml:space="preserve">
-    <value>元素</value>
-  </data>
   <metadata name="含量.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>
-  <data name="含量.HeaderText" xml:space="preserve">
-    <value>含量</value>
-  </data>
   <data name="dataGridView1.Location" type="System.Drawing.Point, System.Drawing">
     <value>24, 87</value>
   </data>
@@ -3285,6 +3861,18 @@
   <data name="&gt;&gt;dataGridView1.ZOrder" xml:space="preserve">
     <value>37</value>
   </data>
+  <metadata name="元素.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <data name="元素.HeaderText" xml:space="preserve">
+    <value>元素</value>
+  </data>
+  <metadata name="含量.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <data name="含量.HeaderText" xml:space="preserve">
+    <value>含量</value>
+  </data>
   <data name="chart1.Location" type="System.Drawing.Point, System.Drawing">
     <value>602, 33</value>
   </data>
@@ -3366,36 +3954,6 @@
   <data name="&gt;&gt;button25.ZOrder" xml:space="preserve">
     <value>40</value>
   </data>
-  <data name="groupBox2.Location" type="System.Drawing.Point, System.Drawing">
-    <value>12, 495</value>
-  </data>
-  <data name="groupBox2.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
-    <value>3, 2, 3, 2</value>
-  </data>
-  <data name="groupBox2.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
-    <value>3, 2, 3, 2</value>
-  </data>
-  <data name="groupBox2.Size" type="System.Drawing.Size, System.Drawing">
-    <value>1470, 373</value>
-  </data>
-  <data name="groupBox2.TabIndex" type="System.Int32, mscorlib">
-    <value>78</value>
-  </data>
-  <data name="groupBox2.Text" xml:space="preserve">
-    <value>能谱</value>
-  </data>
-  <data name="&gt;&gt;groupBox2.Name" xml:space="preserve">
-    <value>groupBox2</value>
-  </data>
-  <data name="&gt;&gt;groupBox2.Type" xml:space="preserve">
-    <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;groupBox2.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;groupBox2.ZOrder" xml:space="preserve">
-    <value>0</value>
-  </data>
   <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>

+ 1 - 1
SmartSEMControl/SmartSEMControl.csproj

@@ -41,7 +41,7 @@
     </Reference>
     <Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
-      <HintPath>E:\OTSSoftWare\OTS2_0\OTS\Bin\Win32\Debug\NLog.dll</HintPath>
+      <HintPath>..\bin\Debug\NLog.dll</HintPath>
     </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core" />