Ce code devrait fonctionner avec un périphérique USB vers port série, et il peut également fonctionner avec votre balance. Certains paramètres de port ont été trouvés en téléchargeant/installant WinCT (RsCom, RsKey et RsWeight). Ensuite, dans le menu Démarrer de Windows sous A&D WinCT, sélectionnez RsCom ou RsKey. Utiliser RsCom ou RsKey est un moyen simple de vérifier que votre câble/connexion USB fonctionne. J'ai utilisé à la fois "RsKey" et "RsCom" avec mon périphérique série USB, et cela a semblé fonctionner.
Créer un projet WinForms
VS 2017 :
Ouvrez Visual Studio
Développez Installé
Développez Visual C#
Cliquez sur Windows Desktop
Sélectionnez Application Windows Forms (.NET Framework)
Spécifiez le nom du projet (nom : ReadSerialPort)
Cliquez OK
VS 2019 :
Ouvrir Visual Studio
Cliquez sur Continuer sans code
Cliquez sur Fichier
Sélectionner Nouveau
Sélectionnez Projet
C# Windows Desktop
Cliquez sur Application Windows Forms (.NET Framework)
Cliquez sur Suivant
Spécifiez le nom du projet (nom : ReadSerialPort)
Cliquez sur Créer
Remarque : À partir de maintenant, le processus est le même pour VS 2017 et VS 2019.
Ajouter une classe : SerialPortDataReceivedEventArgs
Remarque : Cette classe sera utilisée avec un événement qui envoie les données reçues du périphérique de port série à un abonné.
Dans le menu VS, sélectionnez Projet
Sélectionnez Ajouter une classe (nom : 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; } } }
Ajouter une référence à System.Management
Dans le menu VS, sélectionnez Projet
Sélectionner Ajouter une référence
Développez Assemblages
Vérifiez System.Management
Cliquez sur OK
Ajouter classe : ComPorts
Dans le menu VS, sélectionnez Projet
Sélectionnez Ajouter une classe (nom : 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; } } }
Ajouter une classe : HelperSerialPort
Dans le menu VS, sélectionnez Projet
Sélectionnez Ajouter une classe (nom : HelperSerialPort.cs)
HelperSerialPort.cs
//if à l'aide de .NET 5, installez le package NuGet : System.IO.Ports
en utilisant System;
en utilisant System.Collections.Generic;
en utilisant System.Linq;
en utilisant System.Text;
en utilisant System.Threading.Tasks;
en utilisant System.IO.Ports;
en utilisant System.Diagnostics;
à l'aide de System.Management;
espace de noms ReadSerialPort
{
public enum PortBaudRate : int { Baud1200 = 1200, Baud2400 = 2400, Baud4800 = 4800, Baud9600 = 9600, Baud14400 = 14400, Baud19200 = 19200, Baud28800 = 28800, Baud38400 = 38400 }; public class HelperSerialPort : IDisposable { public delegate void SerialPortErrorReceivedEventHandler(object sender, SerialErrorReceivedEventArgs e); public event SerialPortDataReceivedEventHandler DataReceived; public event SerialPortErrorReceivedEventHandler ErrorReceived; private string _dataReceived = string.Empty; public System.IO.Ports.SerialPort Port { get; private set; } public HelperSerialPort() { //create new instance Port = new SerialPort(); } public string Connect(string comPort, PortBaudRate baudRate = PortBaudRate.Baud9600) { string portName = string.Empty; string result = string.Empty; if (String.IsNullOrEmpty(comPort)) { System.Windows.Forms.MessageBox.Show("COM port not selected.", "Error - COM Port", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); return "Error: COM port not selected."; } try { if (Port == null) { //create new instance Port = new SerialPort(); } if (!Port.IsOpen) { Debug.WriteLine("opening port"); //create new instance Port = new SerialPort(comPort); //set properties
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!