Heim >Backend-Entwicklung >C++ >Wie kann ich WinForms und Visual Studio verwenden, um Daten von einem USB-Gerät mit seriellem Anschluss zu lesen?

Wie kann ich WinForms und Visual Studio verwenden, um Daten von einem USB-Gerät mit seriellem Anschluss zu lesen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-20 23:47:13340Durchsuche

How Can I Use WinForms and Visual Studio to Read Data from a USB Serial Port Device?

Dieser Code sollte mit einem USB-zu-Seriell-Port-Gerät funktionieren, möglicherweise funktioniert er auch mit Ihrer Waage. Einige der Porteinstellungen wurden durch Herunterladen/Installieren von WinCT gefunden (RsCom, RsKey und RsWeight). Wählen Sie dann im Windows-Startmenü unter A&D WinCT entweder RsCom oder RsKey aus. Mit RsCom oder RsKey können Sie auf einfache Weise überprüfen, ob Ihr USB-Kabel/Ihre Verbindung funktioniert. Ich habe sowohl „RsKey“ als auch „RsCom“ mit meinem seriellen USB-Gerät verwendet und es schien zu funktionieren.

Erstellen Sie ein WinForms-Projekt

VS 2017:

Visual Studio öffnen
Erweitern Installiert
Erweitern Sie Visual C#
Klicken Sie auf Windows-Desktop
Wählen Sie Windows Forms App (.NET Framework)
Projektnamen angeben (Name: ReadSerialPort)
Klicken OK

VS 2019:

Visual Studio öffnen
Klicken Sie auf Weiter ohne Code
Klicken Sie auf Datei
Auswählen Neu
Wählen Sie Projekt
C# Windows Desktop
Klicken Sie auf Windows Forms App (.NET Framework)
Klicken Sie auf Weiter
Geben Sie den Projektnamen an (Name: ReadSerialPort)
Klicken Sie auf Erstellen

Hinweis:Von diesem Punkt an ist der Vorgang für VS 2017 und VS 2019 derselbe.

Klasse hinzufügen: SerialPortDataReceivedEventArgs

Hinweis: Diese Klasse wird mit einem Ereignis verwendet, das die vom Gerät mit serieller Schnittstelle empfangenen Daten an einen Abonnenten sendet.

Wählen Sie im VS-Menü ProjektWählen Sie
Klasse hinzufügen (Name: SerialPortDataReceivedEventArgs.cs)

SerialPortDataReceivedEventArgs.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ReadSerialPort
{
    public delegate void SerialPortDataReceivedEventHandler(object sender, SerialPortDataReceivedEventArgs e);

    public class SerialPortDataReceivedEventArgs : System.EventArgs
    {
        public string Data { get; private set; } = string.Empty;

        public SerialPortDataReceivedEventArgs(string data)
        {
            this.Data = data;
        }
    }
}
Referenz zu System.Management hinzufügen

Wählen Sie im VS-Menü

ProjektWählen Sie
Hinzufügen ReferenzErweitern Sie
BaugruppenÜberprüfen Sie
System.ManagementKlicken Sie auf
OK

Klasse hinzufügen: ComPorts

Wählen Sie im VS-Menü aus

ProjektWählen Sie
Klasse hinzufügen (Name: ComPorts.cs)

ComPorts.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ReadSerialPort
{
    public class ComPorts
    {
        public List<ComPortInfo> Ports { get; set; } = new List<ComPortInfo>();
    }

    public class ComPortInfo
    {
        public string Name { get; set; }
        public string PortName { get; set; }

        public ComPortInfo()
        {

        }

        public ComPortInfo(string name, string portName)
        {
            this.Name = name;
            this.PortName = portName;
        }
    }
}
Klasse hinzufügen: HelperSerialPort

Wählen Sie im VS-Menü aus

ProjektWählen Sie
Klasse hinzufügen (Name: HelperSerialPort.cs)

HelperSerialPort.cs

//if Installieren Sie mit .NET 5 das NuGet-Paket: System.IO.Ports

using System;

using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
mit System.IO.Ports;
mit System.Diagnostics;
mit System.Management;

Namespace ReadSerialPort

{

Das obige ist der detaillierte Inhalt vonWie kann ich WinForms und Visual Studio verwenden, um Daten von einem USB-Gerät mit seriellem Anschluss zu lesen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn