- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 13 von 13

Thema: Digitalmultimeter c# problem

  1. #11
    Benutzer Stammmitglied
    Registriert seit
    31.01.2009
    Ort
    schwabch
    Alter
    39
    Beiträge
    93
    Anzeige

    LiFePo4 Akku selber bauen - Video
    OK mach ich aber ich würde aber auch gerne mas sehn wie du die Daten von Comport holst. ( Event-Handler usw.. )

    Buffer erstellen:
    Code:
    byte[] M_byte_Buffer_01 = new byte[5];
    byte[] M_byte_Buffer_02 = new byte[5];
    Wenn du die Daten hast werden sie abwechselnd in M_byte_Buffer_01 / M_byte_Buffer_02 geschickt ! Und zu gleich holst du die Daten von M_byte_Buffer_01 / M_byte_Buffer_02. Aber nicht von den die gerade beschrieben werden

    PS: Wenn man es jetzt genau nimmt ist es 3 fach gepuffert! Ich hab vergessen das beim:
    ( serialPort1 System.IO.Ports.SerialPort ) Puffer dabei sind?
    Wie gross ist "ReadBufferSize" bei dir ?

    MFG Oliver G

  2. #12
    Neuer Benutzer Öfters hier
    Registriert seit
    02.02.2012
    Beiträge
    6
    Danke für die Antwort. Ich überlege aber auf USB umzusteigen, dann Hatte ich die Übertragungsprobleme nicht mehr. Kennt sich da jemand aus mit der USB-Kommunikation in C#. Und auch wie ich das mit einem USB-Fähigem Atmell µC mache?

  3. #13
    Neuer Benutzer Öfters hier
    Registriert seit
    02.02.2012
    Beiträge
    6
    Aber Vielleicht bleibe ich doch bei RS232. Hier ist mein Code. Hoffentlich weiß jemand, wie ich es verbessern könnte. Ich verwende einen 6 Byte buffer und das Data_Recive Event wird nach 5 empfangenen Bytes ausgelöst.
    Code:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.IO.Ports;
    using NationalInstruments;
    using NationalInstruments.UI;
    namespace WindowsFormsApplication2
    {
        public partial class Form1 : Form
        {
            public static double Messwert;
            public static int werte = 0;
            public static double[] dataValues = new double[200];
            public Form1()
            {
                InitializeComponent();
                serialPort1.Open();
            }
            
    
    
    private delegate void SetTextDeleg(double text);
    public void serialPort1_DataReceived_1(object sender, SerialDataReceivedEventArgs e)
    {
        double messval = messen();
        this.BeginInvoke(new SetTextDeleg(si_DataReceived), new object[] { messval });
            waveformGraph1.PlotY(dataValues, 0, 10, 0, 5);
    
    }
    
    
    private void si_DataReceived(double data) 
    {
        label1.Text = data.ToString();
        meter1.Value = data;
    }
    
    
    
    
    public double messen()
    {
        string mess = "";
        mess = serialPort1.ReadTo("a");
        serialPort1.DiscardInBuffer();
            try
            {
                Messwert = Convert.ToDouble(mess) / 1023 * 5.07*2.794;
                dataValues[i] = Messwert;
                i++;
            }
            catch
            {
                serialPort1.DiscardInBuffer();
            }
        return Messwert;
    }
      
    
        }
    }
    Geändert von didi34 (05.02.2012 um 14:46 Uhr)

Seite 2 von 2 ErsteErste 12

Ähnliche Themen

  1. ATMega32 UART problem --> Problem gelöst
    Von ChristophB im Forum C - Programmierung (GCC u.a.)
    Antworten: 3
    Letzter Beitrag: 12.03.2010, 19:45
  2. Problem mit Atmega644P Erkennung (Bascom-Versions-Problem)
    Von Rohbotiker im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 11.08.2008, 19:52

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress