コード例 #1
0
        public void Update_Voltage_Plot_for_Sensitivity(Sensitvity_Measurement mySensitivity)
        {
            chartControl_DATA_Top.Invoke((MethodInvoker) delegate
            {
                //Punkte aktualisieren
                chartControl_DATA_Top.RefreshData();

                //Bei bedarf die y-Achse verlängern
                //Min und Max finden
                decimal help_min = decimal.MaxValue;
                decimal help_max = decimal.MinValue;

                foreach (var messreihe in mySensitivity.Voltage_Values)
                {
                    foreach (var messpunkt in messreihe)
                    {
                        if (messpunkt.Voltage < help_min)
                        {
                            help_min = messpunkt.Voltage;
                        }
                        if (messpunkt.Voltage > help_max)
                        {
                            help_max = messpunkt.Voltage;
                        }
                    }
                }

                XYDiagram test = (XYDiagram)chartControl_DATA_Top.Diagram;
                test.AxisY.WholeRange.MaxValue  = help_max;         //Zugelassener Bereich
                test.AxisY.VisualRange.MaxValue = help_max;         //Sichtbarrer Bereich
                test.AxisY.WholeRange.MinValue  = help_min;         //Zugelassener Bereich
                test.AxisY.VisualRange.MinValue = help_min;         //Sichtbarrer Bereich
            });
        }
コード例 #2
0
        /// <summary>
        /// Retruns true if no error occured while sending the settings
        /// </summary>
        public override bool Setting_for_Sensitivity(Sensitvity_Measurement mySensitivity)
        {
            //1. Error Counter zurücksetzen**************************************************************************************************************
            uint error_Sum = 0;

            //2. Mess-Einstellungen anpassen*************************************************************************************************************
            error_Sum += Activate_Chanel_0();
            error_Sum += Diff_Channel_0to1();
            error_Sum += Input_1MOhm_Channel_0();
            error_Sum += Input_1MOhm_Channel_1();
            error_Sum += Set_Range();
            error_Sum += Set_Frequency();                   //Eventuell Freuenz ändern
            error_Sum += Setting_for_Single_Measurment();

            //3. Parameter für Messlänge senden**********************************************************************************************************
            error_Sum += Set_Sample_Count(mySensitivity.Nr_of_samples);
            error_Sum += Set_Samples_PostTrigger(mySensitivity.Nr_of_samples);

            //4. Feld für die Messdaten generiern********************************************************************************************************
            mySensitivity.RawData = new short[mySensitivity.Nr_of_samples];                                 //Feld in der Länger definieren
            H_BufferHandle        = GCHandle.Alloc(mySensitivity.RawData, GCHandleType.Pinned);             //Speicherplatz sperren
            Daten_Pointer         = H_BufferHandle.AddrOfPinnedObject();                                    //Pointer für gesperten Speicherplatz suchen

            //5. Fehlerauswertung********************************************************************************************************
            if (error_Sum != 0)
            {
                MessageBox.Show("An error occured while sending the Settings!\n Look on LOG and try again.", "Warning",
                                MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return(false);
            }
            else
            {
                return(true);
            }
        }
コード例 #3
0
        public void Update_Temperature_Plot_for_Sensitivity(Sensitvity_Measurement mySensitivity)
        {
            chartControl_DATA_Bottom.Invoke((MethodInvoker) delegate
            {
                //Punkte aktualisieren
                chartControl_DATA_Bottom.RefreshData();


                //Bei bedarf die x-Achse verlängern (TempPlot ist immer Series 1)
                if (chartControl_DATA_Bottom.Series["TEC-Temperature"].Points.LastOrDefault().ArgumentX.NumericalArgument % 60 == 0)
                {
                    XYDiagram test    = (XYDiagram)chartControl_DATA_Bottom.Diagram;
                    int neues_Maximum = (int)chartControl_DATA_Bottom.Series["TEC-Temperature"].Points.LastOrDefault().ArgumentX.NumericalArgument + 60;
                    test.AxisX.WholeRange.MaxValue  = neues_Maximum;         //Zugelassener Bereich
                    test.AxisX.VisualRange.MaxValue = neues_Maximum;         //Sichtbarrer Bereich
                }
            });
        }
コード例 #4
0
        public void Add_Series_to_RAW(Sensitvity_Measurement mySensitivity)
        {
            //Daten in Passende Liste einfügen
            List <RAW_DataPoint> myRawDataList = new List <RAW_DataPoint>();

            //Daten umschreiben
            for (int sample = 0; sample < mySensitivity.RawData.Length; sample++)
            {
                myRawDataList.Add(
                    new RAW_DataPoint()
                {
                    Value = mySensitivity.RawData[sample],
                    Time  = (decimal)sample / mySensitivity.MySpectrum.Frequency,
                }
                    );
            }

            //Muss so kompliziert sein, da UI nicht im Thread liegt
            chartControl_RAW.Invoke((MethodInvoker) delegate
            {
                chartControl_RAW.Series.Clear();

                var neueSerie = new Series("RAW_Data", ViewType.Line)
                {
                    CheckableInLegend = true,



                    DataSource         = myRawDataList,
                    ArgumentScaleType  = ScaleType.Numerical,
                    ArgumentDataMember = "Time",
                    ValueScaleType     = ScaleType.Numerical,
                };

                neueSerie.ValueDataMembers.AddRange(new string[] { "Value" });

                chartControl_RAW.Series.Add(neueSerie);

                //Resize x-Achse

                //((LineSeriesView)neueSerie.View).LineMarkerOptions.Kind = MarkerKind.Triangle;
                //((LineSeriesView)neueSerie.View).MarkerVisibility = DevExpress.Utils.DefaultBoolean.True;
            });
        }
コード例 #5
0
        /// <summary>
        /// Retruns true if no error occured while sending the settings
        /// </summary>
        public override bool Measure_Sensitivity_DEMO(Sensitvity_Measurement mySensitivity)
        {
            //Mögliche Errors mitzählen
            uint error_Sum = 0;

            //Speicher definieren & Spreren
            mySensitivity.RawData = new short[mySensitivity.Nr_of_samples];
            H_BufferHandle        = GCHandle.Alloc(mySensitivity.RawData, GCHandleType.Pinned);
            Daten_Pointer         = H_BufferHandle.AddrOfPinnedObject();

            //Messung starten
            error_Sum += WaitTime_for_Trigger_inf();
            error_Sum += Adopt_Settings();
            error_Sum += Start_Card();
            error_Sum += Force_Trigger();

            //Daten abholen
            error_Sum += WaitTime_for_Trigger_inf();
            error_Sum += Wait_for_all_samples();

            //Datentransfer einstellen (Datapointer enspricht der Stelle des ersten Samples im Array)
            IntPtr aktuellerPointer = new IntPtr(Daten_Pointer.ToInt64());

            error_Sum += Send_Pointer_of_Array(aktuellerPointer, mySensitivity.Nr_of_samples);
            error_Sum += Get_Data();

            //Auf Errors checken
            if (error_Sum != 0)
            {
                MessageBox.Show("An Error occured while measurment!\n Look at LOG: .", "Warning",
                                MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return(false);
            }
            else
            {
                return(true);
            }
        }
コード例 #6
0
        /// <summary>
        /// Retruns true if no error occured while sending the settings
        /// </summary>
        public override bool Measure_Sensitivity(Sensitvity_Measurement mySensitivity, ATIM_MainWindow GUI)
        {
            //Mögliche Errors mitzählen
            uint error_Sum = 0;

            //Messung starten
            error_Sum += WaitTime_for_Trigger_inf();
            error_Sum += Adopt_Settings();
            error_Sum += Start_Card();
            error_Sum += Force_Trigger();

            //Daten abholen
            error_Sum += WaitTime_for_Trigger_inf();
            error_Sum += Wait_for_all_samples();

            //Datentransfer einstellen (Datapointer enspricht der Stelle des ersten Samples im Array)
            IntPtr aktuellerPointer = new IntPtr(Daten_Pointer.ToInt64());

            error_Sum += Send_Pointer_of_Array(aktuellerPointer, mySensitivity.Nr_of_samples);
            error_Sum += Get_Data();

            //Plot in Graph RAW
            GUI.Add_Series_to_RAW(mySensitivity);

            //Auf Errors checken
            if (error_Sum != 0)
            {
                MessageBox.Show("An Error occured while measurment!\n Look at LOG: .", "Warning",
                                MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return(false);
            }
            else
            {
                return(true);
            }
        }
コード例 #7
0
 public virtual bool Measure_Sensitivity_DEMO(Sensitvity_Measurement mySensitivity)
 {
     return(false);
 }
コード例 #8
0
 public virtual bool Measure_Sensitivity(Sensitvity_Measurement mySensitivity, ATIM_MainWindow GUI)
 {
     return(false);
 }
コード例 #9
0
 public virtual bool Setting_for_Sensitivity(Sensitvity_Measurement mySensitivity)
 {
     return(false);
 }
コード例 #10
0
ファイル: NI_USB6281.cs プロジェクト: schmidmaxi1/RthTEC_ATIM
 public override bool Measure_Sensitivity_DEMO(Sensitvity_Measurement mySensitivity)
 {
     return(true);
 }
コード例 #11
0
ファイル: NI_USB6281.cs プロジェクト: schmidmaxi1/RthTEC_ATIM
 public override bool Measure_Sensitivity(Sensitvity_Measurement mySensitivity, ATIM_MainWindow GUI)
 {
     return(true);
 }
コード例 #12
0
ファイル: NI_USB6281.cs プロジェクト: schmidmaxi1/RthTEC_ATIM
 public override bool Setting_for_Sensitivity(Sensitvity_Measurement mySensitivity)
 {
     return(true);
 }
コード例 #13
0
        public void Add_Series_to_Data(Sensitvity_Measurement mySensitivity)
        {
            chartControl_DATA_Top.Invoke((MethodInvoker) delegate
            {
                //*******************Haupt-Temperature-Graph************************************
                for (int i = 0; i < mySensitivity.Nr_of_LEDs; i++)
                {
                    var voltage_Series = new Series("DUT " + (i + 1).ToString(), ViewType.Line)
                    {
                        CheckableInLegend = true,

                        DataSource            = mySensitivity.Voltage_Values[i],
                        ArgumentScaleType     = ScaleType.Numerical,
                        ArgumentDataMember    = "Temperature",
                        ValueScaleType        = ScaleType.Numerical,
                        CrosshairLabelPattern = "{S} : {V:0.000} V"
                    };

                    voltage_Series.ValueDataMembers.AddRange(new string[] { "Voltage" });

                    chartControl_DATA_Top.Series.Add(voltage_Series);
                }
            });


            chartControl_DATA_Bottom.Invoke((MethodInvoker) delegate
            {
                //*******************Haupt-Temperature-Graph************************************
                var mainTemp_Series = new Series("TEC-Temperature", ViewType.Line)
                {
                    CheckableInLegend = true,
                    ShowInLegend      = true,

                    DataSource            = mySensitivity.Data_Temp_at_Time,
                    ArgumentScaleType     = ScaleType.Numerical,
                    ArgumentDataMember    = "Time_in_s",
                    ValueScaleType        = ScaleType.Numerical,
                    CrosshairLabelPattern = "{S} : {V:0.00} °C",
                };
                mainTemp_Series.View.Color = Color.Red;
                mainTemp_Series.ValueDataMembers.AddRange(new string[] { "Temperature" });
                chartControl_DATA_Bottom.Series.Add(mainTemp_Series);

                //*******************Markierungen für Messungen*********************************
                for (int i = 0; i < mySensitivity.TempSteps.Count; i++)
                {
                    var marking_Series = new Series("Meas.-Window " + (i + 1).ToString(), ViewType.Area)
                    {
                        CheckableInLegend  = true,
                        ShowInLegend       = true,
                        CrosshairEnabled   = DevExpress.Utils.DefaultBoolean.False,
                        DataSource         = mySensitivity.Data_MeasurementMarker[i],
                        ArgumentScaleType  = ScaleType.Numerical,
                        ArgumentDataMember = "Time_in_s",
                        ValueScaleType     = ScaleType.Numerical,
                    };
                    marking_Series.View.Color = Color.Gray;
                    ((AreaSeriesView)marking_Series.View).Transparency = 135;
                    marking_Series.ValueDataMembers.AddRange(new string[] { "Temperature" });
                    chartControl_DATA_Bottom.Series.Add(marking_Series);
                }
            });
        }
コード例 #14
0
        private void Graph_Init_for_Sensitivity(Sensitvity_Measurement mySen)
        {
            //Zwischenspeicher umschreiben
            akt_Graph_Setup = "Sensitivity";

            //Größe der Überschriften
            Font myFont_Headline = new Font("Tahoma", 12, FontStyle.Bold);
            Font myFont_Axis     = new Font("Tahoma", 10);

            DevExpress.XtraCharts.ChartTitle myChartTitle;

            //Ober Graph für RAW............................................................................
            chartControl_RAW.Series.Clear();

            myChartTitle = new DevExpress.XtraCharts.ChartTitle()
            {
                Text = "Raw Values DAC",
                Font = myFont_Headline,
                Dock = DevExpress.XtraCharts.ChartTitleDockStyle.Top,
            };

            chartControl_RAW.Titles.Clear();
            chartControl_RAW.Titles.Add(myChartTitle);

            //Diagramm erzeugen (Muss wegen laufzeit in Begin Init und EndInit)
            XYDiagram xyDigaram_RAW;

            ((System.ComponentModel.ISupportInitialize)(this.chartControl_RAW)).BeginInit();
            xyDigaram_RAW            = new XYDiagram();
            chartControl_RAW.Diagram = xyDigaram_RAW;


            //Achsen-Titel setzen
            xyDigaram_RAW.AxisX.Title.Text       = "Time in [s]";
            xyDigaram_RAW.AxisX.Title.Visibility = DevExpress.Utils.DefaultBoolean.True;
            xyDigaram_RAW.AxisX.Title.Font       = myFont_Axis;
            xyDigaram_RAW.AxisY.Title.Text       = "Bit-Value";
            xyDigaram_RAW.AxisY.Title.Visibility = DevExpress.Utils.DefaultBoolean.True;
            xyDigaram_RAW.AxisY.Title.Font       = myFont_Axis;

            //Min-Max - Achse
            double zeit_max = (double)mySen.Nr_of_samples / mySen.MySpectrum.Frequency;

            xyDigaram_RAW.AxisX.VisibleInPanesSerializable      = "-1";
            xyDigaram_RAW.AxisX.VisualRange.Auto                = false;
            xyDigaram_RAW.AxisX.WholeRange.MaxValue             = zeit_max; //Zugelassener Bereich
            xyDigaram_RAW.AxisX.WholeRange.MinValue             = 0;
            xyDigaram_RAW.AxisX.VisualRange.MaxValue            = zeit_max; //Sichtbarrer Bereich
            xyDigaram_RAW.AxisX.VisualRange.MinValue            = 0;
            xyDigaram_RAW.AxisX.VisualRange.SideMarginsValue    = 0;        //Überstand Links und rechts
            xyDigaram_RAW.AxisX.NumericScaleOptions.AutoGrid    = false;
            xyDigaram_RAW.AxisX.NumericScaleOptions.GridSpacing = zeit_max / 4;



            xyDigaram_RAW.AxisY.VisibleInPanesSerializable      = "-1";
            xyDigaram_RAW.AxisY.VisualRange.Auto                = false;
            xyDigaram_RAW.AxisY.WholeRange.MaxValue             = 32768;
            xyDigaram_RAW.AxisY.WholeRange.MinValue             = -32768;
            xyDigaram_RAW.AxisY.VisualRange.MaxValue            = 32768; //Sichtbarrer Bereich
            xyDigaram_RAW.AxisY.VisualRange.MinValue            = -32768;
            xyDigaram_RAW.AxisY.NumericScaleOptions.AutoGrid    = false;
            xyDigaram_RAW.AxisY.NumericScaleOptions.GridSpacing = 16384;
            xyDigaram_RAW.AxisY.Interlaced = true;
            xyDigaram_RAW.AxisY.VisualRange.SideMarginsValue = 1;     //Überstand Links und rechts

            ((System.ComponentModel.ISupportInitialize)(this.chartControl_RAW)).EndInit();

            //Label & Legend
            chartControl_RAW.CrosshairOptions.GroupHeaderPattern = "{A} sec";
            chartControl_RAW.CrosshairOptions.HighlightPoints    = false;

            chartControl_RAW.Legend.MarkerMode = LegendMarkerMode.CheckBox;

            //Hinzufügen leere unsichbare Serie (damit Achsen angezeigt werden)
            var neueSerie = new Series("Empty", ViewType.Line)
            {
                LabelsVisibility = DevExpress.Utils.DefaultBoolean.False,
                ShowInLegend     = false,
                Visible          = true,
            };

            chartControl_RAW.Series.Add(neueSerie);


            //Ober Graph für RAW................................................................................
            chartControl_DATA_Top.Series.Clear();

            myChartTitle = new DevExpress.XtraCharts.ChartTitle()
            {
                Text = "Voltage @ Temperature",
                Font = myFont_Headline,
                Dock = DevExpress.XtraCharts.ChartTitleDockStyle.Top
            };

            chartControl_DATA_Top.Titles.Clear();
            chartControl_DATA_Top.Titles.Add(myChartTitle);

            //Diagramm erzeugen (Muss wegen laufzeit in Begin Init und EndInit)
            XYDiagram xyDiagram_DATA_Top;

            ((System.ComponentModel.ISupportInitialize)(this.chartControl_DATA_Top)).BeginInit();
            xyDiagram_DATA_Top            = new XYDiagram();
            chartControl_DATA_Top.Diagram = xyDiagram_DATA_Top;


            //Achsen-Titel setzen
            xyDiagram_DATA_Top.AxisX.Title.Text       = "Temperature [°C]";
            xyDiagram_DATA_Top.AxisX.Title.Visibility = DevExpress.Utils.DefaultBoolean.True;
            xyDiagram_DATA_Top.AxisX.Title.Font       = myFont_Axis;
            xyDiagram_DATA_Top.AxisY.Title.Text       = "Voltage [V]";
            xyDiagram_DATA_Top.AxisY.Title.Visibility = DevExpress.Utils.DefaultBoolean.True;
            xyDiagram_DATA_Top.AxisY.Title.Font       = myFont_Axis;

            //Min-Max - Achse
            xyDiagram_DATA_Top.AxisX.VisibleInPanesSerializable      = "-1";
            xyDiagram_DATA_Top.AxisX.VisualRange.Auto                = false;
            xyDiagram_DATA_Top.AxisX.WholeRange.MaxValue             = (double)mySen.TempSteps[mySen.TempSteps.Count - 1]; //Zugelassener Bereich
            xyDiagram_DATA_Top.AxisX.WholeRange.MinValue             = (double)mySen.TempSteps[0];
            xyDiagram_DATA_Top.AxisX.VisualRange.MaxValue            = (double)mySen.TempSteps[mySen.TempSteps.Count - 1]; //Sichtbarrer Bereich
            xyDiagram_DATA_Top.AxisX.VisualRange.MinValue            = (double)mySen.TempSteps[0];
            xyDiagram_DATA_Top.AxisX.NumericScaleOptions.AutoGrid    = false;
            xyDiagram_DATA_Top.AxisX.NumericScaleOptions.GridSpacing = (double)Math.Abs(mySen.TempSteps[0] - mySen.TempSteps[1]); //Abstand
            xyDiagram_DATA_Top.AxisX.NumericScaleOptions.GridOffset  = 5;                                                         //Offset wegen Margin
            xyDiagram_DATA_Top.AxisX.VisualRange.SideMarginsValue    = 5;                                                         //Überstand Links und rechts
            xyDiagram_DATA_Top.AxisX.Logarithmic = false;


            xyDiagram_DATA_Top.AxisY.VisibleInPanesSerializable      = "-1";
            xyDiagram_DATA_Top.AxisY.VisualRange.Auto                = true;
            xyDiagram_DATA_Top.AxisY.WholeRange.MaxValue             = 10;
            xyDiagram_DATA_Top.AxisY.WholeRange.MinValue             = 0;
            xyDiagram_DATA_Top.AxisY.VisualRange.MaxValue            = 10; //Sichtbarrer Bereich
            xyDiagram_DATA_Top.AxisY.VisualRange.MinValue            = 0;
            xyDiagram_DATA_Top.AxisY.NumericScaleOptions.GridSpacing = 2;
            xyDiagram_DATA_Top.AxisY.VisualRange.SideMarginsValue    = 0;  //Überstand Links und rechts

            ((System.ComponentModel.ISupportInitialize)(this.chartControl_DATA_Top)).EndInit();

            //Label & Legend
            chartControl_DATA_Top.CrosshairOptions.GroupHeaderPattern = "{A} °C";
            chartControl_DATA_Top.CrosshairOptions.HighlightPoints    = false;

            chartControl_DATA_Top.Legend.MarkerMode = LegendMarkerMode.CheckBox;

            //Hinzufügen leere unsichbare Serie (damit Achsen angezeigt werden)
            neueSerie = new Series("Empty", ViewType.Line)
            {
                LabelsVisibility = DevExpress.Utils.DefaultBoolean.False,
                ShowInLegend     = false,
                Visible          = true,
            };
            chartControl_DATA_Top.Series.Add(neueSerie);


            //Ober Graph für RAW...................................................................................
            chartControl_DATA_Bottom.Series.Clear();

            myChartTitle = new DevExpress.XtraCharts.ChartTitle()
            {
                Text = "Temperature progress",
                Font = myFont_Headline,
                Dock = DevExpress.XtraCharts.ChartTitleDockStyle.Top
            };

            chartControl_DATA_Bottom.Titles.Clear();
            chartControl_DATA_Bottom.Titles.Add(myChartTitle);

            //Diagramm erzeugen (Muss wegen laufzeit in Begin Init und EndInit)
            XYDiagram xyDiagram_DATA_Bottom;

            ((System.ComponentModel.ISupportInitialize)(this.chartControl_DATA_Bottom)).BeginInit();
            xyDiagram_DATA_Bottom            = new XYDiagram();
            chartControl_DATA_Bottom.Diagram = xyDiagram_DATA_Bottom;
            ((System.ComponentModel.ISupportInitialize)(this.chartControl_DATA_Bottom)).EndInit();

            //Achsen-Titel setzen
            xyDiagram_DATA_Bottom.AxisX.Title.Text       = "Time in [min]";
            xyDiagram_DATA_Bottom.AxisX.Title.Visibility = DevExpress.Utils.DefaultBoolean.True;
            xyDiagram_DATA_Bottom.AxisX.Title.Font       = myFont_Axis;
            xyDiagram_DATA_Bottom.AxisY.Title.Text       = "Temperature [°C]";
            xyDiagram_DATA_Bottom.AxisY.Title.Visibility = DevExpress.Utils.DefaultBoolean.True;
            xyDiagram_DATA_Bottom.AxisY.Title.Font       = myFont_Axis;

            //Min-Max - Achse
            xyDiagram_DATA_Bottom.AxisX.VisibleInPanesSerializable   = "-1";
            xyDiagram_DATA_Bottom.AxisX.VisualRange.Auto             = false;
            xyDiagram_DATA_Bottom.AxisX.WholeRange.MaxValue          = 60;    //Zugelassener Bereich
            xyDiagram_DATA_Bottom.AxisX.WholeRange.MinValue          = 0;
            xyDiagram_DATA_Bottom.AxisX.VisualRange.MaxValue         = 60;    //Sichtbarrer Bereich
            xyDiagram_DATA_Bottom.AxisX.VisualRange.MinValue         = 0;
            xyDiagram_DATA_Bottom.AxisX.VisualRange.SideMarginsValue = 0;     //Überstand Links und rechts
            xyDiagram_DATA_Bottom.AxisX.Logarithmic = false;


            xyDiagram_DATA_Bottom.AxisY.VisibleInPanesSerializable      = "-1";
            xyDiagram_DATA_Bottom.AxisY.VisualRange.Auto                = true;
            xyDiagram_DATA_Bottom.AxisY.WholeRange.MaxValue             = 85;
            xyDiagram_DATA_Bottom.AxisY.WholeRange.MinValue             = 15;
            xyDiagram_DATA_Bottom.AxisY.VisualRange.MaxValue            = (double)mySen.TempSteps[mySen.TempSteps.Count - 1]; //Sichtbarrer Bereich
            xyDiagram_DATA_Bottom.AxisY.VisualRange.MinValue            = (double)mySen.TempSteps[0];
            xyDiagram_DATA_Bottom.AxisY.NumericScaleOptions.GridSpacing = 5;
            xyDiagram_DATA_Bottom.AxisY.VisualRange.SideMarginsValue    = 5;  //Überstand Links und rechts



            //Label & Legend
            chartControl_DATA_Bottom.CrosshairOptions.GroupHeaderPattern = "{A} sec";
            chartControl_DATA_Bottom.CrosshairOptions.HighlightPoints    = false;

            chartControl_DATA_Bottom.Legend.MarkerMode = LegendMarkerMode.CheckBox;

            //Hinzufügen leere unsichbare Serie (damit Achsen angezeigt werden)
            neueSerie = new Series("Empty", ViewType.Line)
            {
                LabelsVisibility = DevExpress.Utils.DefaultBoolean.False,
                ShowInLegend     = false,
                Visible          = true,
            };
            chartControl_DATA_Bottom.Series.Add(neueSerie);

            chartControl_DATA_Bottom.Update();
        }
コード例 #15
0
        private void Button_Auto_Sensitivity_Click(object sender, EventArgs e)
        {
            //Neues Mess-Klasse erzeugen
            mySensitivity = new Sensitvity_Measurement()
            {
                MyRack             = rthTEC_Rack1,
                MySpectrum         = DAQ_Unit,
                MyTEC              = myTEC,
                MyXYZ              = myXYZ,
                Output_File_Folder = myFileSetting.readBox_FileFolder1.MyPath,
                Output_File_Name   = myFileSetting.readBox_FileFolder1.MyFileName,
                GUI         = this,
                MyMovement  = myFileSetting.readBox_Movement1.Movements_XYA,
                MyFileNames = myFileSetting.readBox_Movement1.DUT_Name
            };


            //Temperatur-Schritte abfragen über Fenster
            Window_Sensitivity_TempStepSelect kFactorWindow = new Window_Sensitivity_TempStepSelect(this);

            kFactorWindow.ShowDialog();

            //Falls keine Temperatur-Schritte zurückgegeben werden, dann abbrechen
            if (mySensitivity.TempSteps.Count == 0)
            {
                return;
            }

            //Graphen anpassen
            if (akt_Graph_Setup != "Sensitivity")
            {
                //Graphen anpassen
                Graph_Init_for_Sensitivity(mySensitivity);
            }
            else
            {
                //Nur leeren (muss noch angepasst werden)
                Graph_Init_for_Sensitivity(mySensitivity);
            }

            //Spectrum einstellen
            mySensitivity.MySpectrum.Setting_for_Sensitivity(mySensitivity);

            //Backroundworker definieren
            myBackroundWorker = new BackgroundWorker()
            {
                WorkerSupportsCancellation = true,
            };

            //Aufgabe definieren
            myBackroundWorker.DoWork += new DoWorkEventHandler((state, args) =>
            {
                //Messen --> aktuell noch DEMO
                mySensitivity.Start_Measurement();

                //Daten konvertieren und abarbeiten


                //UI wieder aktiviern
                Set_Old_Enable_Status();
            }
                                                               );

            //Alle Knöpfe deaktiveren
            Disable_All_Controlls();

            //Backroundworker starten
            myBackroundWorker.RunWorkerAsync();
        }