Sfoglia il codice sorgente

Patch add oncontroller_ Pixelprocessed and oncontroller_ Experimentfinished function

zhangjiaxin 4 anni fa
parent
commit
b271d12c78

+ 233 - 19
ExtenderControl/Extender.cs

@@ -21,7 +21,36 @@ using System.Threading;
 using System.Windows.Forms;
 namespace Extender
 {
-    enum OxfordCommand
+    enum  OxfordControllerState
+    {
+        READY = 0,
+		WORKING = 1,
+		SUCCEEDED = 2,
+		FAILED = 3,
+		ABORT = 4
+	};
+
+    /// <summary>
+    /// Enum EDSConst definition.
+    /// </summary>
+    enum  EDSConst
+    {
+        MAX_XRAY_BATCH = 1024,
+			XANA_CHANNELS = 2000,
+			XANA_CHANNELS_MAX = 4192,
+			MAX_AMPTIME_CONSTANTS = 10,
+			MAX_EV_PER_CHANNELS = 5,
+			MAX_ANALYZERS = 5,
+			MAX_LEN_ANALYZER_NAME = 16
+		};
+    struct OxfordChord
+    {
+        public long m_nX;
+        public long m_nY;
+        public long m_nLength;
+
+    };
+enum OxfordCommand
     {
         //缩放
         GetMagnification = 0,
@@ -1481,10 +1510,28 @@ namespace Extender
         private IAutoIdSettings autoIdSettings = null;
         private ISEMQuantSettings quantSettings = null;
 
+        private IEdChordListAcquisitionController _edsChordListController = null;
+        private OxfordControllerState m_nState;
+        private IEdChordListSettings _edsChordListSetting;
         private int XRayChannelLength = 2000;
         private long[] m_XrayData = null;
         private bool m_bXrayDone = false;
         private int EDSColletionTimeOut=10000;
+        private AutoResetEvent m_endControllerEvent;
+
+        //当前feature的pixel数控制 
+        private long m_nCollectedPixelCounts;
+        private long m_nPixelNum;
+        private List<Element> m_listElementResult;
+        private OxfordXrayData[] m_pXrayDataList;
+
+        const int g_nOxfordControllerProcessTime = 4;
+        const int g_nOxfordControllerEnergyRange = 20;
+
+
+        // feature计数控制
+        private long m_nXrayDataCount;
+        private long m_nCollectedXrayCounts;
         /// <summary>
         /// List of EdSpectrum objects
         /// </summary>
@@ -1509,7 +1556,7 @@ namespace Extender
             //EdSpectrumAcquisitionController.ExperimentStarted -= this.OnEdSpectrumExperimentStarted;
         }
 
-        void SetXrayAcquisitionParam(ref double a_dMilliSecondsTime)
+        void SetXrayAcquisitionParam( double a_dMilliSecondsTime)
         {
             EdSpectrumSettings.EdSettings.AcquisitionMode = EdAcquireMode.LiveTime; // RealTime or LiveTime
 
@@ -1526,7 +1573,23 @@ namespace Extender
 
            // EdSpectrumSettings.ScanSettings.AcquisitionRegion.CreateFullFieldRegion(1.0 / 1024.0);
         }
+        void SetAreaXrayAcquisitionParam(IEdChordListSettings EdSpectrumSettings,  double a_dMilliSecondsTime)
+        {
+            EdSpectrumSettings.EdSettings.AcquisitionMode = EdAcquireMode.LiveTime; // RealTime or LiveTime
+
+            if (a_dMilliSecondsTime < 100)
+            {
+                a_dMilliSecondsTime = 100;
+            }
+
+            EdSpectrumSettings.EdSettings.AcquisitionTime = TimeSpan.FromMilliseconds(a_dMilliSecondsTime);
 
+            EdSpectrumSettings.EdSettings.ProcessTime = 4;
+            EdSpectrumSettings.EdSettings.EnergyRange = 20;
+            EdSpectrumSettings.EdSettings.NumberOfChannels = 4096;
+
+            // EdSpectrumSettings.ScanSettings.AcquisitionRegion.CreateFullFieldRegion(1.0 / 1024.0);
+        }
         void SetPointAcquistionRegion(double a_nX, double a_nY)
         {
             
@@ -1536,14 +1599,7 @@ namespace Extender
         void SetAreaAcquistionRegion(List<Chord> a_nChords)
         {
             ChordList chordsList = null;
-            if (m_nImageWidth != 0)
-            {
-                chordsList = new ChordList(a_nChords, 1 / (double)m_nImageWidth);
-            }
-            else
-            {
-                chordsList = new ChordList(a_nChords, 1 / 1024.0);
-            }
+            chordsList = new ChordList(a_nChords, m_dImagePixelsize);
             EdSpectrumSettings.ScanSettings.AcquisitionRegion.CreateChordListRegion(chordsList);
         }
 
@@ -1573,6 +1629,163 @@ namespace Extender
         private void OnEdSpectrumExperimentStarted(object sender, AcquisitionStartedEventArgs<IEdSpectrum> e)
         {            
         }
+        private IEdChordListSettings GetChordlistSettings()
+        {
+            if(_edsChordListSetting == null)
+            {
+                _edsChordListSetting = AcquireFactory.CreateEdChordListSettings();
+                if (_edsChordListSetting!=null)
+                {
+                    _edsChordListSetting.EdSettings.AcquisitionMode = EdAcquireMode.LiveTime;
+                    _edsChordListSetting.EdSettings.NumberOfChannels = 1024;
+                    _edsChordListSetting.EdSettings.ProcessTime = g_nOxfordControllerProcessTime;
+                    _edsChordListSetting.EdSettings.EnergyRange = g_nOxfordControllerEnergyRange;
+
+                    _edsChordListSetting.AutoIdSettings.SetKnownElement(79, true);
+                    _edsChordListSetting.NumberOfProcessingThreads = 1;
+                }
+                else
+                {
+                    NLog.Logger log = NLog.LogManager.GetCurrentClassLogger();
+                    log.Error("Create EDS chordlist setting failed.");
+                }
+            }
+            return _edsChordListSetting;
+        }
+        private IEdChordListAcquisitionController CreateChordlistController()
+        {
+            if (_edsChordListController==null)
+            {
+                _edsChordListController = AcquireFactory.CreateEdChordListServer();
+                _edsChordListController.PixelProcessed += new EventHandler<OINA.Extender.EventArgs<OINA.Extender.Processing.Quant.IPixelSEMQuantStatus>>(this.OnController_PixelProcessed);
+                _edsChordListController.ExperimentFinished += new EventHandler<OINA.Extender.Acquisition.AcquisitionFinishedEventArgs>(this.OnController_ExperimentFinished);
+
+                var edsChordListSettings = GetChordlistSettings();
+                while (true)
+                {
+                    if(_edsChordListController.IsEdHardwareReady(edsChordListSettings))
+                    {
+                        if(edsChordListSettings.EdCapabilities.HasHardwareConnection)
+                        {
+                            break;
+                        }
+                    }
+                }
+            }
+            return _edsChordListController;
+        }
+
+          struct Element
+        {
+            public int m_nAotomaticNo;
+            public double m_dWeight;
+        }
+        private struct OxfordXrayData
+        {
+            public long m_nPosX;
+            public long m_nPosY;
+            public static readonly long[] m_pXrayData = new long[(int)EDSConst.XANA_CHANNELS];
+            public static readonly char[] vs =new char[1024];
+            
+            public static readonly OxfordChord[] m_ChordList = new OxfordChord[1024];
+            public long m_nChordNum;
+            public long m_nPixelNum;
+            internal char[] m_strElementResult;
+        }
+        private void OnController_ExperimentFinished(Object sender,OINA.Extender.Acquisition.AcquisitionFinishedEventArgs e)
+        {
+            if(m_nCollectedXrayCounts== m_nXrayDataCount)
+            {
+                m_nState = OxfordControllerState.SUCCEEDED;
+            }
+            else
+            {
+                m_nState = OxfordControllerState.FAILED;
+            }
+            m_endControllerEvent.Set();
+        }
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void OnController_PixelProcessed(object sender,EventArgs<IPixelSEMQuantStatus>e)
+        {
+            m_nCollectedPixelCounts = m_nCollectedPixelCounts++;
+            //更新当前feature的元素成分
+
+            //获取单点的元素结果
+            var ie = e.Value.QuantStatus.Results.GetEnumerator();
+            while(ie.MoveNext())
+            {
+                ISEMQuantResult result = ie.Current;
+                if (result.WeightPercent!=0)
+                {
+                    Element Quant = new Element();
+                    Quant.m_nAotomaticNo = result.AtomicNumber;
+                    Quant.m_dWeight = result.WeightPercent;
+                    
+                    if (m_listElementResult==null)
+                    {
+                        m_listElementResult = new List<Element>
+                        {
+                            Quant
+                        };
+                    }
+                    else
+                    {
+                        bool bFind = false;
+                        for (int i=0;i< m_listElementResult.Count;i++)
+                        {
+                            Element element= m_listElementResult[i];
+                            if (Quant.m_nAotomaticNo== element.m_nAotomaticNo)
+                            {
+                                element.m_dWeight += Quant.m_dWeight;
+                                bFind = true;
+                            }
+                        }
+                        if (!bFind)
+                        {
+                            m_listElementResult.Add(Quant);
+                        }
+                    }
+
+                }
+            }
+
+            //当前的chord数据中pixel没有采集完整
+            if(m_nCollectedPixelCounts==m_nPixelNum)
+            {
+                //形成quant数据
+                String Quant = "";
+                for (int i = 0; i < m_listElementResult.Count; i++)
+                {
+                    Element result = m_listElementResult[i];
+                    Quant += "Quant=";
+                    String strAoto=ElementProperties.GetElementSymbol(result.m_nAotomaticNo);
+                    Quant += strAoto;
+                    Quant += ",";
+                    Quant += "K-serials";
+                    Quant += ",";
+                    String strWeight = (result.m_dWeight / Convert.ToDouble(m_nPixelNum)).ToString();
+                    Quant += strWeight;
+                    Quant += "\n";
+                }
+                String msg = Quant;
+                char[] dst = m_pXrayDataList[m_nCollectedXrayCounts].m_strElementResult;
+                for (int i=0;i<msg.Length;i++)
+                {
+                    dst[i] = (char)msg[i];
+                }
+                m_nCollectedXrayCounts++;
+                if (m_nCollectedXrayCounts<m_nXrayDataCount)
+                {
+                    m_nPixelNum = m_pXrayDataList[m_nCollectedXrayCounts].m_nPixelNum;
+                    m_nCollectedPixelCounts = 0;
+                    m_listElementResult.Clear();
+                }
+            }
+        }
 
         /// <summary>
         /// Called when IEdSpectrumAcquisitionController Experiment Finished
@@ -1709,16 +1922,14 @@ namespace Extender
             XrayData = new long[XRayChannelLength];
             a_listElement = new Dictionary<string, double>();
            
-            SetXrayAcquisitionParam(ref dMilliSecondsTime);
+            SetXrayAcquisitionParam( dMilliSecondsTime);
           
             SetPointAcquistionRegion(x*m_dImagePixelsize, y*m_dImagePixelsize);
             NLog.Logger log = NLog.LogManager.GetCurrentClassLogger();
             log.Info("开始XrayStartAcquisition:t="+dMilliSecondsTime.ToString()+"pos="+"("+x.ToString()+","+y.ToString()+")");
 
-
             if (EdSpectrumAcquisitionController.IsEdHardwareReady(EdSpectrumSettings))
             {
-
                 // Start spectrum acquisition
                 try
                 {
@@ -1777,8 +1988,8 @@ namespace Extender
 
             XrayData = new long[XRayChannelLength];
             a_listElement = new Dictionary<string, double>();
-
-            SetXrayAcquisitionParam(ref dMilliSecondsTime);
+            var edsAreaSpectrumSettings = AcquireFactory.CreateEdChordListSettings();
+            SetAreaXrayAcquisitionParam(edsAreaSpectrumSettings, dMilliSecondsTime);
             List<Chord> Chords = new List<Chord>();
 
             foreach (Segment seg in a_listChord)
@@ -1786,10 +1997,12 @@ namespace Extender
                 Chord chord = new Chord(seg.X, seg.Y, seg.Length);
                 Chords.Add(chord);
             }
+           
             SetAreaAcquistionRegion(Chords);
-
+            var edsSpectrumController = CreateChordlistController();
+          
             // IEdSpectrumSettings.EdCapabilities will validate settings and hardware availability.
-            if (EdSpectrumAcquisitionController.IsEdHardwareReady(EdSpectrumSettings))
+            if (edsSpectrumController.IsEdHardwareReady(edsAreaSpectrumSettings))
             {
                 // This only used for multiple acquisition:
                 //      if this is the first acquisition, call BeginMultipleAcquisition 
@@ -1801,8 +2014,9 @@ namespace Extender
                 try
                 {
                     int lastingTime = 0;
-                    IEdSpectrum edSpectrum = EdSpectrumAcquisitionController.StartAcquisition(EdSpectrumSettings);
-                    edSpectrum.Label = string.Format(@"chord");
+                    //IEdSpectrum edSpectrum =
+                    edsSpectrumController.StartAcquisition(edsAreaSpectrumSettings);
+                    //edSpectrum.Label = string.Format(@"chord");
 
                     while (true)
                     {

+ 3 - 0
ExtenderControl/HOZExtender.csproj

@@ -50,6 +50,9 @@
     <Reference Include="System" />
     <Reference Include="System.Core" />
     <Reference Include="System.Drawing" />
+    <Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
+      <HintPath>..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll</HintPath>
+    </Reference>
     <Reference Include="System.Windows.Forms" />
     <Reference Include="System.Xml.Linq" />
     <Reference Include="Microsoft.CSharp" />

+ 1 - 0
ExtenderControl/packages.config

@@ -6,4 +6,5 @@
   <package id="System.Data.SQLite.Core" version="1.0.113.6" targetFramework="net462" />
   <package id="System.Data.SQLite.EF6" version="1.0.113.0" targetFramework="net462" />
   <package id="System.Data.SQLite.Linq" version="1.0.113.0" targetFramework="net462" />
+  <package id="System.ValueTuple" version="4.5.0" targetFramework="net462" />
 </packages>

+ 31 - 25
HOZProject/App.config

@@ -1,74 +1,74 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <configuration>
     <startup> 
-        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2"/>
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
     </startup>
     <appSettings>
       <!--厂商_数据源-->
-      <add key="Firms" value="Noah-BOE,LG,SDC,Ocean-BOE"/>
+      <add key="Firms" value="Noah-BOE,LG,SDC,Ocean-BOE" />
 
       
       <!--PT使用的ELY文件-->
-      <add key="PT_ELYFile" value=""/>
+      <add key="PT_ELYFile" value="" />
       <!--FIB使用的ELY文件-->
-      <add key="FIB_ELYFile" value=""/>
+      <add key="FIB_ELYFile" value="" />
 
    
       <!--样品类型-->
-      <add key="LastSampleType" value="1"/>
+      <add key="LastSampleType" value="1" />
       <!--厂商-->
-      <add key="LastSelectFirm" value="Ocean-BOE"/>
+      <add key="LastSelectFirm" value="Ocean-BOE" />
       <!--是否倾斜样品台-->
-      <add key="Is_Title" value="True"/>
+      <add key="Is_Title" value="True" />
       <!--是否仅拍照-->
-      <add key="Is_Photograph" value="False"/>
+      <add key="Is_Photograph" value="False" />
       <!--是否PT沉积-->
-      <add key="PT_Depostion" value="False"/>
+      <add key="PT_Depostion" value="False" />
       <!--是否能谱测量-->
-      <add key="Is_EDS" value="True"/>
+      <add key="Is_EDS" value="True" />
       <!--能谱移动Z轴位置-->
-      <add key="EDS_Z" value="37.241"/>
+      <add key="EDS_Z" value="37.241" />
       <!--能谱电压设置值-->
-      <add key="EDS_V" value="7000"/>
+      <add key="EDS_V" value="7000" />
       <!--能谱电流设置值-->
-      <add key="EDS_A" value="0.5"/>
+      <add key="EDS_A" value="0.5" />
       <!--能谱Xray Mode 0:point mode 1: line mode 2: area mode-->
-      <add key="EDS_XrayMode" value="1"/>
+      <add key="EDS_XrayMode" value="1" />
     
   
       <!--ScanRotate角度补偿参数-->
-      <add key="ScanRotCur" value="1"/>
+      <add key="ScanRotCur" value="1" />
       <!--Title角度补偿后Y轴方向PixelSize修正值-->
-      <add key="PixelSize_Y_Cur" value="1.236"/>
+      <add key="PixelSize_Y_Cur" value="1.236" />
       
       
       
       <!--图像接口模式,人工干预-1,自动运算-2-->
-      <add key="Hand_Intervene" value="2"/>
+      <add key="Hand_Intervene" value="2" />
 
       <!--远程IP地址-->
-      <add key="WebServerIP" value="127.0.0.1"/>
+      <add key="WebServerIP" value="127.0.0.1" />
       <!--远程IP端口-->
-      <add key="WebServerPort" value="8009"/>
+      <add key="WebServerPort" value="8009" />
       <!--远程算法地址-->
-      <add key="WebServerUrl" value="FIB_degree_recognize,FIB_cal_cut_location,FIB_verify,FIB_cut_center_location,FIB_sharpness,FIB_sharpness,FIB_degree_recognize_trap,FIB_measure_location,FIB_measure_parameter,FIB_EDS_points,FIB_EDS_lines,FIB_EDS_areas"/>
+      <add key="WebServerUrl" value="FIB_degree_recognize,FIB_cal_cut_location,FIB_verify,FIB_cut_center_location,FIB_sharpness,FIB_sharpness,FIB_degree_recognize_trap,FIB_measure_location,FIB_measure_parameter,FIB_EDS_points,FIB_EDS_lines,FIB_EDS_areas" />
 
 
       
      
 
-      <add key="RemoteELYPath" value="\\192.168.1.101\Carl Zeiss\SmartFIB\API\Drop\"/>
-      <add key="RemoteMLFPath" value="\\192.168.1.101\Carl Zeiss\SmartSEM\User\Service\"/>
+      <add key="RemoteELYPath" value="\\192.168.1.101\Carl Zeiss\SmartFIB\API\Drop\" />
+      <add key="RemoteMLFPath" value="\\192.168.1.101\Carl Zeiss\SmartSEM\User\Service\" />
 
 
      
       
       <!--add by sun 2020-12-17 增加调试时是否切割开关-->
-      <add key="IsCutingForDebug" value="true"/>
+      <add key="IsCutingForDebug" value="true" />
       <!--add by sun 2020-12-17 增加调试时是否切割开关-->
 
       <!--add by zjx 2020-12-18 为了测试只做能谱部分-->
-      <add key="IsonlyEDSForDebug" value="true"/>
+      <add key="IsonlyEDSForDebug" value="true" />
       <!--add by zjx 2020-12-18 为了测试只做能谱部分-->
       
       
@@ -83,5 +83,11 @@
         <bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="10.0.0.0" />
       </dependentAssembly>
     </assemblyBinding>
+    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+      <dependentAssembly>
+        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
+        <bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
+      </dependentAssembly>
+    </assemblyBinding>
   </runtime>
 </configuration>

+ 3 - 3
MeasureThread/Measure.cs

@@ -1707,7 +1707,7 @@ namespace MeasureThread
                             for (int i = 0; i < LinesStartPoint.Count; i++)
                             {
                                 int wholeHeight = lines_height[i];
-                                int singleHeight = 5;//每5高度形成一个单元
+                                int singleHeight = 20;//每5高度形成一个单元
 
                                 for (int k = 0; k < wholeHeight; k += singleHeight)
                                 {
@@ -1744,14 +1744,14 @@ namespace MeasureThread
                             listElement = new Dictionary<string, double>();
 
 
-                            if (iExtender.XrayAreaCollectiong(300, listSeg, out XrayData, out listElement))
+                            if (iExtender.XrayAreaCollectiong(5000, listSeg, out XrayData, out listElement))
                             {
                                 string ele = "";
                                 foreach (var s in listElement)
                                 {
                                     ele += s.ToString();
                                 }
-                                log.Info("采集时间=300" , true);
+                                log.Info("采集时间=5000" , true);
                                 log.Info("(" + listSeg[0].X + "," + listSeg[0].Y + ") height=5"  + " 元素:" + ele);
                                 log.Info("线采集结束,写入数据库开始", true);
                                 //写入数据库

+ 68 - 84
OxfordTest/Form1.Designer.cs

@@ -130,6 +130,11 @@
             this.txtarea1y3 = new System.Windows.Forms.TextBox();
             this.txtarea1x3 = new System.Windows.Forms.TextBox();
             this.txtarea1l2 = new System.Windows.Forms.TextBox();
+            this.textRegionHeight = new System.Windows.Forms.TextBox();
+            this.textTime = new System.Windows.Forms.TextBox();
+            this.textRegionwidth1 = new System.Windows.Forms.TextBox();
+            this.textRegionY1 = new System.Windows.Forms.TextBox();
+            this.textRegionX1 = new System.Windows.Forms.TextBox();
             this.txtarea1l1 = new System.Windows.Forms.TextBox();
             this.txtarea1y2 = new System.Windows.Forms.TextBox();
             this.txtarea1x2 = new System.Windows.Forms.TextBox();
@@ -149,6 +154,11 @@
             this.label33 = new System.Windows.Forms.Label();
             this.txtpy1 = new System.Windows.Forms.TextBox();
             this.txtpx1 = new System.Windows.Forms.TextBox();
+            this.label39 = new System.Windows.Forms.Label();
+            this.label41 = new System.Windows.Forms.Label();
+            this.label42 = new System.Windows.Forms.Label();
+            this.label40 = new System.Windows.Forms.Label();
+            this.label38 = new System.Windows.Forms.Label();
             this.label32 = new System.Windows.Forms.Label();
             this.NUDNum = new System.Windows.Forms.NumericUpDown();
             this.btnReadP = new System.Windows.Forms.Button();
@@ -156,21 +166,9 @@
             this.元素 = new System.Windows.Forms.DataGridViewTextBoxColumn();
             this.含量 = new System.Windows.Forms.DataGridViewTextBoxColumn();
             this.chart1 = new System.Windows.Forms.DataVisualization.Charting.Chart();
+            this.button29 = new System.Windows.Forms.Button();
             this.button26 = new System.Windows.Forms.Button();
             this.button25 = new System.Windows.Forms.Button();
-            this.textRegionX1 = new System.Windows.Forms.TextBox();
-            this.textRegionY1 = new System.Windows.Forms.TextBox();
-            this.textRegionwidth1 = new System.Windows.Forms.TextBox();
-            this.textRegionHeight = new System.Windows.Forms.TextBox();
-            this.textTime = new System.Windows.Forms.TextBox();
-            this.button29 = new System.Windows.Forms.Button();
-            this.label38 = new System.Windows.Forms.Label();
-            this.label39 = new System.Windows.Forms.Label();
-            this.label40 = new System.Windows.Forms.Label();
-            this.label41 = new System.Windows.Forms.Label();
-            this.label42 = new System.Windows.Forms.Label();
-            this.textPixel = new System.Windows.Forms.TextBox();
-            this.label43 = new System.Windows.Forms.Label();
             this.groupBox1.SuspendLayout();
             this.拍图.SuspendLayout();
             ((System.ComponentModel.ISupportInitialize)(this.pBImage)).BeginInit();
@@ -759,7 +757,6 @@
             this.groupBox2.Controls.Add(this.txtarea1x3);
             this.groupBox2.Controls.Add(this.txtarea1l2);
             this.groupBox2.Controls.Add(this.textRegionHeight);
-            this.groupBox2.Controls.Add(this.textPixel);
             this.groupBox2.Controls.Add(this.textTime);
             this.groupBox2.Controls.Add(this.textRegionwidth1);
             this.groupBox2.Controls.Add(this.textRegionY1);
@@ -785,7 +782,6 @@
             this.groupBox2.Controls.Add(this.txtpx1);
             this.groupBox2.Controls.Add(this.label39);
             this.groupBox2.Controls.Add(this.label41);
-            this.groupBox2.Controls.Add(this.label43);
             this.groupBox2.Controls.Add(this.label42);
             this.groupBox2.Controls.Add(this.label40);
             this.groupBox2.Controls.Add(this.label38);
@@ -878,6 +874,31 @@
             resources.ApplyResources(this.txtarea1l2, "txtarea1l2");
             this.txtarea1l2.Name = "txtarea1l2";
             // 
+            // textRegionHeight
+            // 
+            resources.ApplyResources(this.textRegionHeight, "textRegionHeight");
+            this.textRegionHeight.Name = "textRegionHeight";
+            // 
+            // textTime
+            // 
+            resources.ApplyResources(this.textTime, "textTime");
+            this.textTime.Name = "textTime";
+            // 
+            // textRegionwidth1
+            // 
+            resources.ApplyResources(this.textRegionwidth1, "textRegionwidth1");
+            this.textRegionwidth1.Name = "textRegionwidth1";
+            // 
+            // textRegionY1
+            // 
+            resources.ApplyResources(this.textRegionY1, "textRegionY1");
+            this.textRegionY1.Name = "textRegionY1";
+            // 
+            // textRegionX1
+            // 
+            resources.ApplyResources(this.textRegionX1, "textRegionX1");
+            this.textRegionX1.Name = "textRegionX1";
+            // 
             // txtarea1l1
             // 
             resources.ApplyResources(this.txtarea1l1, "txtarea1l1");
@@ -973,6 +994,31 @@
             resources.ApplyResources(this.txtpx1, "txtpx1");
             this.txtpx1.Name = "txtpx1";
             // 
+            // label39
+            // 
+            resources.ApplyResources(this.label39, "label39");
+            this.label39.Name = "label39";
+            // 
+            // label41
+            // 
+            resources.ApplyResources(this.label41, "label41");
+            this.label41.Name = "label41";
+            // 
+            // label42
+            // 
+            resources.ApplyResources(this.label42, "label42");
+            this.label42.Name = "label42";
+            // 
+            // label40
+            // 
+            resources.ApplyResources(this.label40, "label40");
+            this.label40.Name = "label40";
+            // 
+            // label38
+            // 
+            resources.ApplyResources(this.label38, "label38");
+            this.label38.Name = "label38";
+            // 
             // label32
             // 
             resources.ApplyResources(this.label32, "label32");
@@ -1036,6 +1082,13 @@
             this.chart1.Series.Add(series1);
             this.chart1.Series.Add(series2);
             // 
+            // button29
+            // 
+            resources.ApplyResources(this.button29, "button29");
+            this.button29.Name = "button29";
+            this.button29.UseVisualStyleBackColor = true;
+            this.button29.Click += new System.EventHandler(this.button29_Click);
+            // 
             // button26
             // 
             resources.ApplyResources(this.button26, "button26");
@@ -1050,73 +1103,6 @@
             this.button25.UseVisualStyleBackColor = true;
             this.button25.Click += new System.EventHandler(this.button25_Click);
             // 
-            // textRegionX1
-            // 
-            resources.ApplyResources(this.textRegionX1, "textRegionX1");
-            this.textRegionX1.Name = "textRegionX1";
-            // 
-            // textRegionY1
-            // 
-            resources.ApplyResources(this.textRegionY1, "textRegionY1");
-            this.textRegionY1.Name = "textRegionY1";
-            // 
-            // textRegionLebgth1
-            // 
-            resources.ApplyResources(this.textRegionwidth1, "textRegionLebgth1");
-            this.textRegionwidth1.Name = "textRegionLebgth1";
-            // 
-            // textRegionY2
-            // 
-            resources.ApplyResources(this.textRegionHeight, "textRegionY2");
-            this.textRegionHeight.Name = "textRegionY2";
-            // 
-            // textTime
-            // 
-            resources.ApplyResources(this.textTime, "textTime");
-            this.textTime.Name = "textTime";
-            // 
-            // button29
-            // 
-            resources.ApplyResources(this.button29, "button29");
-            this.button29.Name = "button29";
-            this.button29.UseVisualStyleBackColor = true;
-            this.button29.Click += new System.EventHandler(this.button29_Click);
-            // 
-            // label38
-            // 
-            resources.ApplyResources(this.label38, "label38");
-            this.label38.Name = "label38";
-            // 
-            // label39
-            // 
-            resources.ApplyResources(this.label39, "label39");
-            this.label39.Name = "label39";
-            // 
-            // label40
-            // 
-            resources.ApplyResources(this.label40, "label40");
-            this.label40.Name = "label40";
-            // 
-            // label41
-            // 
-            resources.ApplyResources(this.label41, "label41");
-            this.label41.Name = "label41";
-            // 
-            // label42
-            // 
-            resources.ApplyResources(this.label42, "label42");
-            this.label42.Name = "label42";
-            // 
-            // textPixel
-            // 
-            resources.ApplyResources(this.textPixel, "textPixel");
-            this.textPixel.Name = "textPixel";
-            // 
-            // label43
-            // 
-            resources.ApplyResources(this.label43, "label43");
-            this.label43.Name = "label43";
-            // 
             // Form1
             // 
             resources.ApplyResources(this, "$this");
@@ -1279,8 +1265,6 @@
         private System.Windows.Forms.Label label40;
         private System.Windows.Forms.Label label38;
         private System.Windows.Forms.Button button29;
-        private System.Windows.Forms.TextBox textPixel;
-        private System.Windows.Forms.Label label43;
     }
 }
 

+ 1 - 29
OxfordTest/Form1.cs

@@ -533,35 +533,7 @@ namespace OxfordTest
 
         private void button29_Click(object sender, EventArgs e)
         {
-            //List<List<Segment>> Features = new List<List<Segment>>();
-            //Segment seg1 = new Segment();
-            //seg1.X = Convert.ToInt32(textRegionX1.Text);//1
-            //seg1.Y = Convert.ToInt32(textRegionY1.Text);//1
-
-            //int stingHeight = Convert.ToInt32(textPixel.Text);
-            //for (int i=0; i< Convert.ToInt32(textRegionHeight.Text);i+= stingHeight)
-            //{
-            //    List<Segment> feature = new List<Segment>();
-            //    for (int k=0;k<=stingHeight;k++)
-            //    {
-            //        Segment segment = new Segment();
-            //        segment.X = seg1.X;
-            //        segment.Y = seg1.Y + 1;
-            //        segment.Length = Convert.ToInt32(textRegionwidth1.Text);
-            //        feature.Add(segment);
-            //    }
-            //    Features.Add(feature);
-            //}
-
-
-            //for (int i=0; i<Features.Count;i++)
-            //{
-            //    List<Segment> listSeg = Features[i];
-            //    long[] XrayData = new long[2000];
-            //    Dictionary<string, double> listElement = new Dictionary<string, double>();
-            //    iExtender.XrayAreaCollectiong(Convert.ToInt32(textTime.Text), listSeg, out XrayData, out listElement);
-            //    ShowData(XrayData, listElement);
-            //}
+            
 
 
             long[] XrayData = new long[2000];

+ 62 - 125
OxfordTest/Form1.resx

@@ -2796,65 +2796,35 @@
   <data name="&gt;&gt;txtarea1l2.ZOrder" xml:space="preserve">
     <value>14</value>
   </data>
-  <data name="textRegionY2.Location" type="System.Drawing.Point, System.Drawing">
+  <data name="textRegionHeight.Location" type="System.Drawing.Point, System.Drawing">
     <value>517, 146</value>
   </data>
-  <data name="textRegionY2.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+  <data name="textRegionHeight.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
     <value>2, 2, 2, 2</value>
   </data>
-  <data name="textRegionY2.Size" type="System.Drawing.Size, System.Drawing">
+  <data name="textRegionHeight.Size" type="System.Drawing.Size, System.Drawing">
     <value>42, 21</value>
   </data>
-  <data name="textRegionY2.TabIndex" type="System.Int32, mscorlib">
+  <data name="textRegionHeight.TabIndex" type="System.Int32, mscorlib">
     <value>101</value>
   </data>
-  <data name="textRegionY2.Text" xml:space="preserve">
-    <value>20</value>
-  </data>
-  <data name="textRegionY2.TextAlign" type="System.Windows.Forms.HorizontalAlignment, System.Windows.Forms">
-    <value>Center</value>
-  </data>
-  <data name="&gt;&gt;textRegionY2.Name" xml:space="preserve">
-    <value>textRegionY2</value>
-  </data>
-  <data name="&gt;&gt;textRegionY2.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;textRegionY2.Parent" xml:space="preserve">
-    <value>groupBox2</value>
-  </data>
-  <data name="&gt;&gt;textRegionY2.ZOrder" xml:space="preserve">
-    <value>15</value>
-  </data>
-  <data name="textPixel.Location" type="System.Drawing.Point, System.Drawing">
-    <value>517, 189</value>
-  </data>
-  <data name="textPixel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
-    <value>2, 2, 2, 2</value>
-  </data>
-  <data name="textPixel.Size" type="System.Drawing.Size, System.Drawing">
-    <value>42, 21</value>
-  </data>
-  <data name="textPixel.TabIndex" type="System.Int32, mscorlib">
-    <value>101</value>
-  </data>
-  <data name="textPixel.Text" xml:space="preserve">
+  <data name="textRegionHeight.Text" xml:space="preserve">
     <value>5</value>
   </data>
-  <data name="textPixel.TextAlign" type="System.Windows.Forms.HorizontalAlignment, System.Windows.Forms">
+  <data name="textRegionHeight.TextAlign" type="System.Windows.Forms.HorizontalAlignment, System.Windows.Forms">
     <value>Center</value>
   </data>
-  <data name="&gt;&gt;textPixel.Name" xml:space="preserve">
-    <value>textPixel</value>
+  <data name="&gt;&gt;textRegionHeight.Name" xml:space="preserve">
+    <value>textRegionHeight</value>
   </data>
-  <data name="&gt;&gt;textPixel.Type" xml:space="preserve">
+  <data name="&gt;&gt;textRegionHeight.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;textPixel.Parent" xml:space="preserve">
+  <data name="&gt;&gt;textRegionHeight.Parent" xml:space="preserve">
     <value>groupBox2</value>
   </data>
-  <data name="&gt;&gt;textPixel.ZOrder" xml:space="preserve">
-    <value>16</value>
+  <data name="&gt;&gt;textRegionHeight.ZOrder" xml:space="preserve">
+    <value>15</value>
   </data>
   <data name="textTime.Location" type="System.Drawing.Point, System.Drawing">
     <value>464, 189</value>
@@ -2869,7 +2839,7 @@
     <value>101</value>
   </data>
   <data name="textTime.Text" xml:space="preserve">
-    <value>200</value>
+    <value>1500</value>
   </data>
   <data name="textTime.TextAlign" type="System.Windows.Forms.HorizontalAlignment, System.Windows.Forms">
     <value>Center</value>
@@ -2884,37 +2854,37 @@
     <value>groupBox2</value>
   </data>
   <data name="&gt;&gt;textTime.ZOrder" xml:space="preserve">
-    <value>17</value>
+    <value>16</value>
   </data>
-  <data name="textRegionLebgth1.Location" type="System.Drawing.Point, System.Drawing">
+  <data name="textRegionwidth1.Location" type="System.Drawing.Point, System.Drawing">
     <value>464, 146</value>
   </data>
-  <data name="textRegionLebgth1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+  <data name="textRegionwidth1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
     <value>2, 2, 2, 2</value>
   </data>
-  <data name="textRegionLebgth1.Size" type="System.Drawing.Size, System.Drawing">
+  <data name="textRegionwidth1.Size" type="System.Drawing.Size, System.Drawing">
     <value>42, 21</value>
   </data>
-  <data name="textRegionLebgth1.TabIndex" type="System.Int32, mscorlib">
+  <data name="textRegionwidth1.TabIndex" type="System.Int32, mscorlib">
     <value>101</value>
   </data>
-  <data name="textRegionLebgth1.Text" xml:space="preserve">
+  <data name="textRegionwidth1.Text" xml:space="preserve">
     <value>2</value>
   </data>
-  <data name="textRegionLebgth1.TextAlign" type="System.Windows.Forms.HorizontalAlignment, System.Windows.Forms">
+  <data name="textRegionwidth1.TextAlign" type="System.Windows.Forms.HorizontalAlignment, System.Windows.Forms">
     <value>Center</value>
   </data>
-  <data name="&gt;&gt;textRegionLebgth1.Name" xml:space="preserve">
-    <value>textRegionLebgth1</value>
+  <data name="&gt;&gt;textRegionwidth1.Name" xml:space="preserve">
+    <value>textRegionwidth1</value>
   </data>
-  <data name="&gt;&gt;textRegionLebgth1.Type" xml:space="preserve">
+  <data name="&gt;&gt;textRegionwidth1.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;textRegionLebgth1.Parent" xml:space="preserve">
+  <data name="&gt;&gt;textRegionwidth1.Parent" xml:space="preserve">
     <value>groupBox2</value>
   </data>
-  <data name="&gt;&gt;textRegionLebgth1.ZOrder" xml:space="preserve">
-    <value>18</value>
+  <data name="&gt;&gt;textRegionwidth1.ZOrder" xml:space="preserve">
+    <value>17</value>
   </data>
   <data name="textRegionY1.Location" type="System.Drawing.Point, System.Drawing">
     <value>517, 92</value>
@@ -2944,7 +2914,7 @@
     <value>groupBox2</value>
   </data>
   <data name="&gt;&gt;textRegionY1.ZOrder" xml:space="preserve">
-    <value>19</value>
+    <value>18</value>
   </data>
   <data name="textRegionX1.Location" type="System.Drawing.Point, System.Drawing">
     <value>464, 92</value>
@@ -2974,7 +2944,7 @@
     <value>groupBox2</value>
   </data>
   <data name="&gt;&gt;textRegionX1.ZOrder" xml:space="preserve">
-    <value>20</value>
+    <value>19</value>
   </data>
   <data name="txtarea1l1.Location" type="System.Drawing.Point, System.Drawing">
     <value>377, 153</value>
@@ -3004,7 +2974,7 @@
     <value>groupBox2</value>
   </data>
   <data name="&gt;&gt;txtarea1l1.ZOrder" xml:space="preserve">
-    <value>21</value>
+    <value>20</value>
   </data>
   <data name="txtarea1y2.Location" type="System.Drawing.Point, System.Drawing">
     <value>323, 176</value>
@@ -3034,7 +3004,7 @@
     <value>groupBox2</value>
   </data>
   <data name="&gt;&gt;txtarea1y2.ZOrder" xml:space="preserve">
-    <value>22</value>
+    <value>21</value>
   </data>
   <data name="txtarea1x2.Location" type="System.Drawing.Point, System.Drawing">
     <value>276, 176</value>
@@ -3064,7 +3034,7 @@
     <value>groupBox2</value>
   </data>
   <data name="&gt;&gt;txtarea1x2.ZOrder" xml:space="preserve">
-    <value>23</value>
+    <value>22</value>
   </data>
   <data name="txtarea1y1.Location" type="System.Drawing.Point, System.Drawing">
     <value>323, 153</value>
@@ -3094,7 +3064,7 @@
     <value>groupBox2</value>
   </data>
   <data name="&gt;&gt;txtarea1y1.ZOrder" xml:space="preserve">
-    <value>24</value>
+    <value>23</value>
   </data>
   <data name="txtarea1x1.Location" type="System.Drawing.Point, System.Drawing">
     <value>276, 153</value>
@@ -3124,7 +3094,7 @@
     <value>groupBox2</value>
   </data>
   <data name="&gt;&gt;txtarea1x1.ZOrder" xml:space="preserve">
-    <value>25</value>
+    <value>24</value>
   </data>
   <data name="label36.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
@@ -3154,7 +3124,7 @@
     <value>groupBox2</value>
   </data>
   <data name="&gt;&gt;label36.ZOrder" xml:space="preserve">
-    <value>26</value>
+    <value>25</value>
   </data>
   <data name="txtpy5.Location" type="System.Drawing.Point, System.Drawing">
     <value>323, 127</value>
@@ -3184,7 +3154,7 @@
     <value>groupBox2</value>
   </data>
   <data name="&gt;&gt;txtpy5.ZOrder" xml:space="preserve">
-    <value>27</value>
+    <value>26</value>
   </data>
   <data name="txtpx5.Location" type="System.Drawing.Point, System.Drawing">
     <value>276, 127</value>
@@ -3214,7 +3184,7 @@
     <value>groupBox2</value>
   </data>
   <data name="&gt;&gt;txtpx5.ZOrder" xml:space="preserve">
-    <value>28</value>
+    <value>27</value>
   </data>
   <data name="txtpy4.Location" type="System.Drawing.Point, System.Drawing">
     <value>323, 102</value>
@@ -3244,7 +3214,7 @@
     <value>groupBox2</value>
   </data>
   <data name="&gt;&gt;txtpy4.ZOrder" xml:space="preserve">
-    <value>29</value>
+    <value>28</value>
   </data>
   <data name="txtpx4.Location" type="System.Drawing.Point, System.Drawing">
     <value>276, 102</value>
@@ -3274,7 +3244,7 @@
     <value>groupBox2</value>
   </data>
   <data name="&gt;&gt;txtpx4.ZOrder" xml:space="preserve">
-    <value>30</value>
+    <value>29</value>
   </data>
   <data name="txtpy3.Location" type="System.Drawing.Point, System.Drawing">
     <value>323, 78</value>
@@ -3304,7 +3274,7 @@
     <value>groupBox2</value>
   </data>
   <data name="&gt;&gt;txtpy3.ZOrder" xml:space="preserve">
-    <value>31</value>
+    <value>30</value>
   </data>
   <data name="txtpx3.Location" type="System.Drawing.Point, System.Drawing">
     <value>276, 78</value>
@@ -3334,7 +3304,7 @@
     <value>groupBox2</value>
   </data>
   <data name="&gt;&gt;txtpx3.ZOrder" xml:space="preserve">
-    <value>32</value>
+    <value>31</value>
   </data>
   <data name="txtpy2.Location" type="System.Drawing.Point, System.Drawing">
     <value>323, 53</value>
@@ -3364,7 +3334,7 @@
     <value>groupBox2</value>
   </data>
   <data name="&gt;&gt;txtpy2.ZOrder" xml:space="preserve">
-    <value>33</value>
+    <value>32</value>
   </data>
   <data name="txtpx2.Location" type="System.Drawing.Point, System.Drawing">
     <value>276, 53</value>
@@ -3394,7 +3364,7 @@
     <value>groupBox2</value>
   </data>
   <data name="&gt;&gt;txtpx2.ZOrder" xml:space="preserve">
-    <value>34</value>
+    <value>33</value>
   </data>
   <data name="label35.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
@@ -3424,7 +3394,7 @@
     <value>groupBox2</value>
   </data>
   <data name="&gt;&gt;label35.ZOrder" xml:space="preserve">
-    <value>35</value>
+    <value>34</value>
   </data>
   <data name="label34.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
@@ -3454,7 +3424,7 @@
     <value>groupBox2</value>
   </data>
   <data name="&gt;&gt;label34.ZOrder" xml:space="preserve">
-    <value>36</value>
+    <value>35</value>
   </data>
   <data name="label33.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
@@ -3484,7 +3454,7 @@
     <value>groupBox2</value>
   </data>
   <data name="&gt;&gt;label33.ZOrder" xml:space="preserve">
-    <value>37</value>
+    <value>36</value>
   </data>
   <data name="txtpy1.Location" type="System.Drawing.Point, System.Drawing">
     <value>323, 28</value>
@@ -3514,7 +3484,7 @@
     <value>groupBox2</value>
   </data>
   <data name="&gt;&gt;txtpy1.ZOrder" xml:space="preserve">
-    <value>38</value>
+    <value>37</value>
   </data>
   <data name="txtpx1.Location" type="System.Drawing.Point, System.Drawing">
     <value>276, 28</value>
@@ -3544,7 +3514,7 @@
     <value>groupBox2</value>
   </data>
   <data name="&gt;&gt;txtpx1.ZOrder" xml:space="preserve">
-    <value>39</value>
+    <value>38</value>
   </data>
   <data name="label39.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
@@ -3577,7 +3547,7 @@
     <value>groupBox2</value>
   </data>
   <data name="&gt;&gt;label39.ZOrder" xml:space="preserve">
-    <value>40</value>
+    <value>39</value>
   </data>
   <data name="label41.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
@@ -3610,40 +3580,7 @@
     <value>groupBox2</value>
   </data>
   <data name="&gt;&gt;label41.ZOrder" xml:space="preserve">
-    <value>41</value>
-  </data>
-  <data name="label43.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <data name="label43.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
-    <value>NoControl</value>
-  </data>
-  <data name="label43.Location" type="System.Drawing.Point, System.Drawing">
-    <value>519, 175</value>
-  </data>
-  <data name="label43.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
-    <value>2, 0, 2, 0</value>
-  </data>
-  <data name="label43.Size" type="System.Drawing.Size, System.Drawing">
-    <value>35, 12</value>
-  </data>
-  <data name="label43.TabIndex" type="System.Int32, mscorlib">
-    <value>82</value>
-  </data>
-  <data name="label43.Text" xml:space="preserve">
-    <value>Pixel</value>
-  </data>
-  <data name="&gt;&gt;label43.Name" xml:space="preserve">
-    <value>label43</value>
-  </data>
-  <data name="&gt;&gt;label43.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;label43.Parent" xml:space="preserve">
-    <value>groupBox2</value>
-  </data>
-  <data name="&gt;&gt;label43.ZOrder" xml:space="preserve">
-    <value>42</value>
+    <value>40</value>
   </data>
   <data name="label42.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
@@ -3676,7 +3613,7 @@
     <value>groupBox2</value>
   </data>
   <data name="&gt;&gt;label42.ZOrder" xml:space="preserve">
-    <value>43</value>
+    <value>41</value>
   </data>
   <data name="label40.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
@@ -3691,13 +3628,13 @@
     <value>2, 0, 2, 0</value>
   </data>
   <data name="label40.Size" type="System.Drawing.Size, System.Drawing">
-    <value>41, 12</value>
+    <value>29, 12</value>
   </data>
   <data name="label40.TabIndex" type="System.Int32, mscorlib">
     <value>82</value>
   </data>
   <data name="label40.Text" xml:space="preserve">
-    <value>Lebght</value>
+    <value>Wide</value>
   </data>
   <data name="&gt;&gt;label40.Name" xml:space="preserve">
     <value>label40</value>
@@ -3709,7 +3646,7 @@
     <value>groupBox2</value>
   </data>
   <data name="&gt;&gt;label40.ZOrder" xml:space="preserve">
-    <value>44</value>
+    <value>42</value>
   </data>
   <data name="label38.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
@@ -3742,7 +3679,7 @@
     <value>groupBox2</value>
   </data>
   <data name="&gt;&gt;label38.ZOrder" xml:space="preserve">
-    <value>45</value>
+    <value>43</value>
   </data>
   <data name="label32.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
@@ -3772,7 +3709,7 @@
     <value>groupBox2</value>
   </data>
   <data name="&gt;&gt;label32.ZOrder" xml:space="preserve">
-    <value>46</value>
+    <value>44</value>
   </data>
   <data name="NUDNum.Font" type="System.Drawing.Font, System.Drawing">
     <value>宋体, 12pt</value>
@@ -3802,7 +3739,7 @@
     <value>groupBox2</value>
   </data>
   <data name="&gt;&gt;NUDNum.ZOrder" xml:space="preserve">
-    <value>47</value>
+    <value>45</value>
   </data>
   <data name="btnReadP.Location" type="System.Drawing.Point, System.Drawing">
     <value>124, 254</value>
@@ -3829,7 +3766,7 @@
     <value>groupBox2</value>
   </data>
   <data name="&gt;&gt;btnReadP.ZOrder" xml:space="preserve">
-    <value>48</value>
+    <value>46</value>
   </data>
   <metadata name="元素.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
@@ -3865,7 +3802,7 @@
     <value>groupBox2</value>
   </data>
   <data name="&gt;&gt;dataGridView1.ZOrder" xml:space="preserve">
-    <value>49</value>
+    <value>47</value>
   </data>
   <data name="chart1.Location" type="System.Drawing.Point, System.Drawing">
     <value>659, 25</value>
@@ -3892,7 +3829,7 @@
     <value>groupBox2</value>
   </data>
   <data name="&gt;&gt;chart1.ZOrder" xml:space="preserve">
-    <value>50</value>
+    <value>48</value>
   </data>
   <data name="button29.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
     <value>NoControl</value>
@@ -3922,7 +3859,7 @@
     <value>groupBox2</value>
   </data>
   <data name="&gt;&gt;button29.ZOrder" xml:space="preserve">
-    <value>51</value>
+    <value>49</value>
   </data>
   <data name="button26.Location" type="System.Drawing.Point, System.Drawing">
     <value>117, 26</value>
@@ -3949,7 +3886,7 @@
     <value>groupBox2</value>
   </data>
   <data name="&gt;&gt;button26.ZOrder" xml:space="preserve">
-    <value>52</value>
+    <value>50</value>
   </data>
   <data name="button25.Location" type="System.Drawing.Point, System.Drawing">
     <value>18, 26</value>
@@ -3976,7 +3913,7 @@
     <value>groupBox2</value>
   </data>
   <data name="&gt;&gt;button25.ZOrder" xml:space="preserve">
-    <value>53</value>
+    <value>51</value>
   </data>
   <data name="groupBox2.Location" type="System.Drawing.Point, System.Drawing">
     <value>9, 396</value>

+ 1 - 0
OxfordTest/OxfordTest.csproj

@@ -101,6 +101,7 @@
       <AutoGen>True</AutoGen>
       <DependentUpon>Resources.resx</DependentUpon>
     </Compile>
+    <None Include="app.manifest" />
     <None Include="packages.config" />
     <None Include="Properties\Settings.settings">
       <Generator>SettingsSingleFileGenerator</Generator>