Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

C Sharp - SerialPort.DataReceived Event statt Timer

Mitglied: K-ist-K

K-ist-K (Level 1) - Jetzt verbinden

12.10.2018 um 16:35 Uhr, 297 Aufrufe, 1 Kommentar

Hallo Werte ITler,

heute wende ich mich mal an euch, wegen dem Thema Programmieren in C#.
Ich hab einen Arduino der mir über COM4 (57600 BaudRate) Zahlen ausgibt,
die er von einer Matrix bekommt.

Die Matrix hat mehrere Sensoren, je nachdem auf welchen man drauf drückt,
gibt der Arduino Zahlen zurück, pro Sensor nur eine Zahl.
Und diese Zahl möchte ich in C# in eine Variable speichern
und dann mit dem schon vorhanden Code verarbeiten.


Ich möchte die Zahl in C# in eine Variable übergeben,
damit ich damit arbeiten kann.
Bis jetzt lief es über einen Timer,
nur wenn gerade der Timer neubeginnt und da, der Arduino die Zahl übergibt,
passiert einfach nichts und man muss nochmal klicken.

SerialPort.DataReceived ist einfach deutlich schöner.
Ich hab jetzt schon mehrere Artikel gelesen und auf Youtube paar Videos gesehen.
Leider komme ich nicht ganz dahinter wie es funktioniert.
Viele machen es mit Button Klick, aber das bringt mir nichts.

Es gibt bei mir in c# mehrere Forms und in jeder brauche ich das.
Also wäre es sinnvoll eine Form anzulegen zB (SerialPort.cs)
und darin eine CLASS zu definieren ?

Was ich dann in den anderen Forms aufrufe ?

Ich versteh nur noch nicht ganz,
wo ich was wie definiere, damit die eine Form permanent auf eine Zahl vom Arduino wartet,
ohne einen Timer zu benutzen.


Code von einer Form
Leider passiert gar nichts, wenn ich auf die Matrix drücke.
Console.WriteLine habe ich auskommentiert.
GV.A ist eine Globe Variable.
Damit wolle ich testen, ob in die Variable ein Wert auftaucht.

01.
using System;
02.
using System.IO.Ports;
03.
using System.Collections.Generic;
04.
using System.ComponentModel;
05.
using System.Data;
06.
using System.Drawing;
07.
using System.Linq;
08.
using System.Text;
09.
using System.Windows.Forms;
10.
using System.Threading;
11.
using System.Threading.Tasks;
12.
 
13.
namespace WindowsFormsApplication3
14.
{
15.
    public partial class test : Form
16.
    {
17.
        private void button10_Click(object sender, EventArgs e) //Hauptmenü
18.
        {
19.
            serialPort1.Close();
20.
            Menu Menu = new Menu();
21.
            Menu.Tag = this;
22.
            Menu.Show(this);
23.
            Hide();
24.
        }
25.
 
26.
        public test()
27.
        {
28.
            InitializeComponent();
29.
            serialPort1.Open();
30.
        }
31.
 
32.
 
33.
        class PortDataReceived
34.
        {
35.
            public static void Matrix()
36.
            {
37.
                SerialPort mySerialPort = new SerialPort("COM4");
38.
 
39.
                mySerialPort.BaudRate = 57600;
40.
                mySerialPort.Parity = Parity.None;
41.
                mySerialPort.StopBits = StopBits.One;
42.
                mySerialPort.DataBits = 8;
43.
                mySerialPort.Handshake = Handshake.None;
44.
                mySerialPort.RtsEnable = true;
45.
 
46.
                mySerialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
47.
 
48.
                mySerialPort.Open();
49.
 
50.
                //Console.WriteLine("Press any key to continue...");
51.
                //Console.WriteLine();
52.
                //Console.ReadKey();
53.
                mySerialPort.Close();
54.
            }
55.
 
56.
            private static void DataReceivedHandler(
57.
                                object sender,
58.
                                SerialDataReceivedEventArgs e)
59.
            {
60.
                SerialPort sp = (SerialPort)sender;
61.
                string indata = sp.ReadExisting();
62.
                //Console.WriteLine("Data Received:");
63.
                //Console.Write(indata);
64.
 
65.
                GV.A = indata; //testen ob was passiert.
66.
            }
67.
        }
68.
 
69.
        private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
70.
        {
71.
 
72.
        }
73.
    }
74.
}
Hab sicher vergessen, etwas zu erwähnen.
Also fragt einfach, wenn ihr was wissen wollt
oder wenn ich was wichtiges vergessen habe.
Mitglied: K-ist-K
15.10.2018 um 12:20 Uhr
hat keiner eine Idee ?
Bitte warten ..
Ähnliche Inhalte
C und C++
C-Sharp Event fängt an rumzuspinnen
Frage von YanmaiC und C++2 Kommentare

Hallo ihr Administratoren, ich möchte einen schönen Effekt von dem Metroframework einbinden, wenn die Maus über ein Steuerelement fährt. ...

Visual Studio

C-Sharp WPF MVVM ListView mit TextBox SelectionChanged Event

gelöst Frage von mayho33Visual Studio2 Kommentare

Hallo @ All, Wieder mal ein Problem mit ListView. Ich komme einfach nicht weiter und hoffe mir kann jemand ...

Visual Studio

C Sharp - Runden

gelöst Frage von Cubic83Visual Studio5 Kommentare

Guten Morgen, ich habe ein Problem unter C# bei dem ich den Preis eines Artikels ohne Mehrwertsteuer berechnen muss. ...

C und C++

C-sharp Form buggt

gelöst Frage von YanmaiC und C++2 Kommentare

Hallo ihr Administratoren. Ich habe ein kleines Problem. Unszwar möchte ich eine Ordner von C# zu einem PHP Script ...

Neue Wissensbeiträge
iOS
WatchChat für Whatsapp
Tipp von Criemo vor 16 StundeniOS

Ziemlich coole App für WhatsApp User in Verbindung mit der Apple Watch. Gibts für iOS sowohl als auch für ...

iOS
IOS hat nen Cursor !!!
Tipp von Criemo vor 1 TagiOS5 Kommentare

Nette Funktion im iOS. iPhone-Mauszeiger aktivieren „Nichts ist nerviger, als bei einem Tippfehler zu versuchen, den iOS-Cursor an die ...

Off Topic
Avengers 4: Endgame - Erster Trailer
Information von Frank vor 3 TagenOff Topic2 Kommentare

Ich weiß es ist Off Topic, aber ich freue mich auf diesen Film und vielleicht geht es anderen hier ...

Webbrowser
Microsoft bestätigt Edge mit Chromium-Kern
Information von Frank vor 3 TagenWebbrowser5 Kommentare

Microsoft hat nun in seinem Blog bestätigt, dass die nächste Edge Version kein EdgeHTML mehr für die Darstellung benutzen ...

Heiß diskutierte Inhalte
Exchange Server
Exchange Server 2010: Keine Eingehenden E-MAils
gelöst Frage von gabeBUExchange Server17 Kommentare

Hallo Zusammen Ich habe das kurzen auf dem Exchange 2010 Server das Problem, dass ich keine externen E-Mails mehr ...

Server
Server in zwei verschiedene Netzwerke einbinden
gelöst Frage von BennyFServer13 Kommentare

Hallo zusammen, bei uns im Haus sind im Erdgeschoss die Geschäftsräume und ab dem 1. Stock sind unsere privaten ...

Windows Netzwerk
Kerio. Kann keine Mails empfangen aber senden. Wer ist schuld. Kerio oder Windows domäne?
Frage von frosch2Windows Netzwerk13 Kommentare

Hallo, es existiert ein Problem bei uns mit dem mailen. Alle bestehenden Nutzer können mailen. Raus wie rein. Neuen ...

Netzwerkmanagement
Ticketsystem für eine Kommune gesucht
gelöst Frage von akovisNetzwerkmanagement11 Kommentare

Ich suche aktuell ein Ticketsystem für eine Kleinstadt von 13000 Einwaohnern. Das System soll alle Anfragen aus verschiedenen Kanälen ...