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, 260 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. ...

C und C++

C Sharp: Timer stoppen aus einer anderen Klasse heraus

gelöst Frage von Heinz2511C und C++1 Kommentar

Hallo, ich benutze C# mit Visual Studio 2012. Ich habe folgendes Problem: Ich habe eine Form (formStart), die ein ...

IDE & Editoren

IDE für C-Sharp und C++ auf Windows

gelöst Frage von BugdroidIDE & Editoren8 Kommentare

Hallo, Ich nutze derzeit Visual Studio, aber auf Dauer ist es mir etwas zu Ressourcenfressend und für meine Zwecke ...

C und C++

C Sharp XAML Universal

Frage von DippsC und C++3 Kommentare

Hallo ich versuche gerade mit C#2015 ein Projekt Universal XAML zu erstellen um auf einem Raberry PI 2 mit ...

Neue Wissensbeiträge
Microsoft

Neuigkeiten zu Server und Office 365 was läuft mit was und was nicht

Tipp von AlFalcone vor 1 StundeMicrosoft

Server Betriebssysteme auf dem die verschiedenen Offices nicht supported sind: • Office 365 ist und wird nicht supported auf Windows ...

Speicherkarten

Neuer Speicherkartentyp - zunächst nur für einzelne Huawei-Smartphones

Tipp von VGem-e vor 2 StundenSpeicherkarten

Servus, als ob das "Chaos" i.S. Speicherkarten noch nicht groß genug wäre?! Evtl. kommt dieser neue Kartentyp bald auch ...

Sicherheit

Diverse D-Link-Router durch drei Schwachstellen kompromittierbar

Information von kgborn vor 4 StundenSicherheit

Hat jemand D-Link-Router in Verwendung? Einige Modelle sind sicherheitstechnisch offen wie ein Scheunentor. Äußerst unschöne Sache, aber nichts neues ...

Hardware

100.000 Mikrotik-Router ungefragt von Hacker abgesichert

Information von 7Gizmo7 vor 19 StundenHardware1 Kommentar

Hallo zusammen, da hier ja öfters mal von Mikrotik gesprochen wird. Trotz Updates klafft eine Sicherheitslücke in Hundertausenden Mikrotik-Routern. ...

Heiß diskutierte Inhalte
Windows 10
Sysprep Fehler im Log kann nicht starten
Frage von grillinator95Windows 1022 Kommentare

Hallo, kann leider SYSPREP nicht mehr starten, Win10 64bit. Logfile sagt folgendes: 2018-10-17 13:44:56, Info SYSPRP 2018-10-17 13:44:56, Info ...

Internet
Ist diese URL denkbar (Syntax)?
gelöst Frage von departure69Internet17 Kommentare

Hallo. Der Sohn eines Arbeitskollegen hat im Gymnasium EDV-Unterricht. Leider hat er in der letzten Klassenarbeit einen Fünfer geschrieben. ...

Debian
Linux debian 9 Installation
Frage von Green14Debian16 Kommentare

Hallo zusammen, ich habe mich ein wenig mit Debian auseinandergesetzt und möchte mir eine Standard-Installation als Grundlage für andere ...

Outlook & Mail
Outlook schiebt Mails aus Posteingang sofort in den Papierkorb
Frage von hermesOutlook & Mail13 Kommentare

Hallo Outlook Fachleute, wir haben hier das Problem, dass Outlook 2010 alle ankommenden Mails seit zwei Tagen einfach in ...