Announcement

Collapse
No announcement yet.

Visual C# in Chart die x-Achse in millisekunde anzeigen lassen bei Start der Messung

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Visual C# in Chart die x-Achse in millisekunde anzeigen lassen bei Start der Messung

    Hallo,

    ich weiß nicht wie ich bei Chart die x-Achse in millisekunde anzeigen lassen kann. Das heißt, nicht die Zeit beim Start der Arduino soll angezeigt werden, sondern erst bei Start der Button soll es ab 0 ms zählen. Hat irgendeiner eine Idee wie man es realisieren kann?

    Danke im Voraus

  • #2
    Weiß nicht, was das mit Arduino zu tun hat, aber wenn Du einen bestimmten Null Punkt in Deinen Daten brauchst, musst Du halt einen Offset subtrahieren.

    Darstellwert := Messwert - Offset

    Ggf. hat die Chart Komponente auch ein Attribut für den X Offset. Du musst natürlich den passenden Offset ermitteln.

    Comment


    • #3
      Ich meine mit 0, das die x-Achse mit Zeit angegeben werden, es soll bei messung immer in millisekunde anzeigen

      Comment


      • #4
        Du musst mehr Details rausrücken über das was du da tust und womit. Wir schauen dir nicht gerade über die Schulter und kennen alle Details.

        - Was für eine Chart Komponente?
        - Was in Winforms/WPF/WebForms/ASP.NET etc. ?
        - Ein selbgemachtes Control, Standard Control, was dazu gekauftes oder sonstiges im Netz gefundenes?
        - Redest du von einer statischen Anzeige in einem Chart oder was animiertes?
        - Ist das Problem absolute Zeit vs. relative Zeit oder was aus der Einheitenecke? (Du siehst was in Stunden, Tagen, Wochen möchtest aber Millisekunden als Einheit)

        Comment


        • #5
          ich möchte gerne wissen, wie ich bei Visual studio c# die Messzeit ermitteln kann? Ich hab ein button für Überdruck und eins für unterdruck.
          Wenn ich diese betätige, soll er anfangen in millisekunden zu zählen. Wenn diese button nicht aktiv ist, beendet der Meszeit.

          Zurzeit zählt er die Messzeit beim Start von Arduino Board. Ich messe Druck mit Arduino und habe ein Benutzeroberfläche erstellt. Leider wird in Textbox und in Chart die gesamte startzeit von arduino angegeben anstatt nur die Messzeit der Button betätigung. Kan mir einer helfen oder tipp geben, wie ich das gewünschte ziel erreiche?

          Danke

          Also ich muss jeweils unter folgende button schreiben:
          [HTML
          private void motorSteuerungON_Button_Click(object sender, EventArgs e) { motorSteuerungON_Button.Enabled = false; motorSteuerungOff_Button.Enabled = true; if (port.IsOpen) port.Write("motorOn"); } private void motorSteuerungOff_Button_Click(object sender, EventArgs e) { motorSteuerungON_Button.Enabled = true; motorSteuerungOff_Button.Enabled = false; if (port.IsOpen) port.Write("motorOff"); } ][/HTML]

          ich möchte das er ab 0 in millisekunde zählt. In arduino hab ich 250millisekunde als delay eingestellt. das würde heißen, das er 0, 250, 500.... zählt.
          Was muss ich dann in Chart machen? weil ich gebe den wert einmal in textbox und einmal als Chart (live-stream)aus
          HTML Code:
            private void chart1Thread(double sensor, int time) {   //Console.WriteLine("Sensor 1: {0}", sensor);   chart1.Invoke(new Action(() =>   {     chart1.Series["Sensor1"].Points.AddXY(time, sensor);      if (chart1.ChartAreas[0].AxisX.Maximum > chart1.ChartAreas[0].AxisX.ScaleView.Size)       chart1.ChartAreas[0].AxisX.ScaleView.Scroll(chart1.ChartAreas[0].AxisX.Maximum);   })); }  private void chart2Thread(double sensor, int time) {   //Console.WriteLine("Sensor 2: {0}", sensor);   chart1.Invoke(new Action(() =>   {     chart1.Series["Sensor2"].Points.AddXY(time, sensor);   })); }  private void chart3Thread(double sensor, int time) {   //Console.WriteLine("Sensor 3: {0}", sensor);   chart1.Invoke(new Action(() =>   {     chart1.Series["Sensor3"].Points.AddXY(time, sensor);   })); }
          Kann mir bitte jemand dabei helfen, wie ich die Messeit in millisekunde in x-Achse laufen lasse, bei betätigung der Button Motor on (Überdruck) und off (Unterdruck). In delay(250) für Arduino hab ich 250millisekunde angegeben. Das heißt er würde ab 0, 250, 500 zählen.

          Danke im Voraus

          Also ich muss jeweils unter folgende button schreiben: private void motorSteuerungON_Button_Click(object sender, EventArgs e) { motorSteuerungON_Button.Enabled = false; motorSteuerungOff_Button.Enabled = true; if (port.IsOpen) port.Write("motorOn"); } private void motorSteuerungOff_Button_Click(object sender, EventArgs e) { motorSteuerungON_Button.Enabled = true; motorSteuerungOff_Button.Enabled = false; if (port.IsOpen) port.Write("motorOff"); }
          private void chart1Thread(double sensor, int time) { //Console.WriteLine("Sensor 1: {0}", sensor); chart1.Invoke(new Action(() => { chart1.Series["Sensor1"].Points.AddXY(time, sensor); if (chart1.ChartAreas[0].AxisX.Maximum > chart1.ChartAreas[0].AxisX.ScaleView.Size) chart1.ChartAreas[0].AxisX.ScaleView.Scroll(chart1.ChartAreas[0].AxisX.Maximum); })); } private void chart2Thread(double sensor, int time) { //Console.WriteLine("Sensor 2: {0}", sensor); chart1.Invoke(new Action(() => { chart1.Series["Sensor2"].Points.AddXY(time, sensor); })); } private void chart3Thread(double sensor, int time) { //Console.WriteLine("Sensor 3: {0}", sensor); chart1.Invoke(new Action(() => { chart1.Series["Sensor3"].Points.AddXY(time, sensor); })); }

          irgendwie lässt sich hier das code nicht gut posten?
          Code:
           private void motorSteuerungON_Button_Click(object sender, EventArgs e) {   motorSteuerungON_Button.Enabled = false;   motorSteuerungOff_Button.Enabled = true;   if (port.IsOpen)     port.Write("motorOn"); }  private void motorSteuerungOff_Button_Click(object sender, EventArgs e) {   motorSteuerungON_Button.Enabled = true;   motorSteuerungOff_Button.Enabled = false;    if (port.IsOpen)     port.Write("motorOff"); }
          Code:
           private void chart1Thread(double sensor, int time) {   //Console.WriteLine("Sensor 1: {0}", sensor);   chart1.Invoke(new Action(() =>   {     chart1.Series["Sensor1"].Points.AddXY(time, sensor);      if (chart1.ChartAreas[0].AxisX.Maximum > chart1.ChartAreas[0].AxisX.ScaleView.Size)       chart1.ChartAreas[0].AxisX.ScaleView.Scroll(chart1.ChartAreas[0].AxisX.Maximum);   })); }  private void chart2Thread(double sensor, int time) {   //Console.WriteLine("Sensor 2: {0}", sensor);   chart1.Invoke(new Action(() =>   {     chart1.Series["Sensor2"].Points.AddXY(time, sensor);   })); }  private void chart3Thread(double sensor, int time) {   //Console.WriteLine("Sensor 3: {0}", sensor);   chart1.Invoke(new Action(() =>   {     chart1.Series["Sensor3"].Points.AddXY(time, sensor);   })); }
          Zuletzt editiert von Christian Marquardt; 04.03.2019, 18:42. Reason: Posts zusammengefasst

          Comment


          • #6
            Hallo Zusammen, die Stopwatch funktion funktioniert, leider wird die Zeit Millisekunde nicht von arduino ans Visual richtig übertragen. Kann es sein das es mit dem Befehl splitt zu tun hat, weil er drt von der Schnittstelle Daten empfängt und splittet?
            HTML Code:
            serialMonitor.Invoke(new Action(() =>
                            {
                                //serialMonitor.AppendText(receivedText);
                                //serialMonitor.ScrollToCaret();
            
                                string[] decimalarray = receivedText.Split(' ');
                                if (decimalarray.Length == 4)
                                {
                                   // string monitorText = "     " + decimalarray[0] + "              " + decimalarray[1] + "               " + decimalarray[2] + "             " + decimalarray[3];
                                    string monitorText = "     " + decimalarray[0] + "              " + decimalarray[1] + "               " + decimalarray[2] + "             " + stopWatch.ElapsedMilliseconds.ToString() + "\n";
                                    serialMonitor.AppendText(monitorText);
                                    //serialMonitor.AppendText(stopw);
                                    serialMonitor.ScrollToCaret();
            
                                }
            Zuletzt editiert von Christian Marquardt; 07.03.2019, 15:01. Reason: Wieder mal Beiträge zusammengefasst

            Comment

            Working...
            X