Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte.
Traduction
Source
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

SerialPort, classe

Représente une ressource de port série.

System.Object
  System.MarshalByRefObject
    System.ComponentModel.Component
      System.IO.Ports.SerialPort

Espace de noms :  System.IO.Ports
Assembly :  System (dans System.dll)
public class SerialPort : Component

Le type SerialPort expose les membres suivants.

  Nom Description
Méthode publique SerialPort() Initialise une nouvelle instance de la classe SerialPort.
Méthode publique SerialPort(IContainer) Initialise une nouvelle instance de la classe SerialPort à l'aide de l'objet IContainer spécifié.
Méthode publique SerialPort(String) Initialise une nouvelle instance de la classe SerialPort avec le nom de port spécifié.
Méthode publique SerialPort(String, Int32) Initialise une nouvelle instance de la classe SerialPort avec le nom de port et la vitesse en bauds spécifiés.
Méthode publique SerialPort(String, Int32, Parity) Initialise une nouvelle instance de la classe SerialPort avec le nom de port, la vitesse en bauds et le bit de parité spécifiés.
Méthode publique SerialPort(String, Int32, Parity, Int32) Initialise une nouvelle instance de la classe SerialPort avec le nom de port, la vitesse en bauds, le bit de parité et les bits de données spécifiés.
Méthode publique SerialPort(String, Int32, Parity, Int32, StopBits) Initialise une nouvelle instance de la classe SerialPort avec le nom de port, la vitesse en bauds, le bit de parité, les bits de données et le bit d'arrêt spécifiés.
Début
  Nom Description
Propriété publique BaseStream Obtient l'objet Stream sous-jacent pour un objet SerialPort.
Propriété publique BaudRate Obtient ou définit la vitesse en bauds série.
Propriété publique BreakState Obtient ou définit l'état de signal d'arrêt.
Propriété publique BytesToRead Obtient le nombre d'octets de données dans la mémoire tampon de réception.
Propriété publique BytesToWrite Obtient le nombre d'octets de données dans la mémoire tampon d'envoi.
Propriété protégée CanRaiseEvents Obtient une valeur qui indique si le composant peut déclencher un événement. (Hérité de Component.)
Propriété publique CDHolding Obtient l'état de la ligne de détection de porteuse pour le port.
Propriété publique Container Obtient le IContainer qui contient Component. (Hérité de Component.)
Propriété publique CtsHolding Obtient l'état de la ligne CTS (Clear-To-Send).
Propriété publique DataBits Obtient ou définit la longueur standard des bits de données par octet.
Propriété protégée DesignMode Obtient une valeur qui indique si Component est actuellement en mode design. (Hérité de Component.)
Propriété publique DiscardNull Obtient ou définit une valeur indiquant si les octets null sont ignorés lorsqu'ils sont transmis entre le port et la mémoire tampon de réception.
Propriété publique DsrHolding Obtient l'état du signal DSR (Data Set Ready).
Propriété publique DtrEnable Obtient ou définit une valeur qui active le signal DTR au cours d'une communication série.
Propriété publique Encoding Obtient ou définit l'octet qui encode la conversion de texte avant et après la transmission.
Propriété protégée Events Obtient la liste des gestionnaires d'événements attachés à ce Component. (Hérité de Component.)
Propriété publique Handshake Obtient ou définit le protocole de transfert pour la transmission de données par le port série.
Propriété publique IsOpen Obtient une valeur indiquant l'état ouvert ou fermé de l'objet SerialPort.
Propriété publique NewLine Obtient ou définit la valeur utilisée pour interpréter la fin d'un appel aux méthodes ReadLine et WriteLine.
Propriété publique Parity Obtient ou définit le protocole de contrôle de parité.
Propriété publique ParityReplace Obtient ou définit l'octet qui remplace les octets non valides dans un flux de données lorsqu'une erreur de parité se produit.
Propriété publique PortName Obtient ou définit le port pour les communications, y compris, de manière non limitative, tous les ports COM disponibles.
Propriété publique ReadBufferSize Obtient ou définit la taille de la mémoire tampon SerialPort.
Propriété publique ReadTimeout Obtient ou définit le nombre de millisecondes avant le dépassement du délai d'attente lorsqu'une opération de lecture ne se termine pas.
Propriété publique ReceivedBytesThreshold Obtient ou définit le nombre d'octets dans la mémoire tampon d'entrée interne avant qu'un événement DataReceived ne se produise.
Propriété publique RtsEnable Obtient ou définit une valeur indiquant si le signal RTS est activé au cours d'une communication série.
Propriété publique Site Obtient ou définit le ISite de Component. (Hérité de Component.)
Propriété publique StopBits Obtient ou définit le nombre standard de bits d'arrêt par octet.
Propriété publique WriteBufferSize Obtient ou définit la taille de la mémoire tampon de sortie du port série.
Propriété publique WriteTimeout Obtient ou définit le nombre de millisecondes avant le dépassement du délai d'attente lorsqu'une opération d'écriture ne se termine pas.
Début
  Nom Description
Méthode publique Close Ferme la connexion au port, affecte à la propriété IsOpen la valeur false et supprime l'objet Stream interne.
Méthode publique CreateObjRef Crée un objet contenant toutes les informations appropriées requises pour générer un proxy permettant de communiquer avec un objet distant. (Hérité de MarshalByRefObject.)
Méthode publique DiscardInBuffer Ignore les données de la mémoire tampon de réception du pilote série.
Méthode publique DiscardOutBuffer Ignore les données de la mémoire tampon de transmission du pilote série.
Méthode publique Dispose() Libère toutes les ressources utilisées par Component. (Hérité de Component.)
Méthode protégée Dispose(Boolean) Libère les ressources non managées utilisées par SerialPort et libère éventuellement les ressources managées. (Substitue Component.Dispose(Boolean).)
Méthode publique Equals(Object) Détermine si l'Object spécifié est égal à l'Object en cours. (Hérité de Object.)
Méthode protégée Finalize Libère les ressources non managées et exécute d'autres opérations de nettoyage avant la récupération de Component par le garbage collection. (Hérité de Component.)
Méthode publique GetHashCode Sert de fonction de hachage pour un type particulier. (Hérité de Object.)
Méthode publique GetLifetimeService Récupère l'objet de service de durée de vie en cours qui contrôle la stratégie de durée de vie de cette instance. (Hérité de MarshalByRefObject.)
Méthode publique Membre statique GetPortNames Obtient un tableau de noms de ports série pour l'ordinateur actuel.
Méthode protégée GetService Retourne un objet qui représente un service fourni par Component ou par son Container. (Hérité de Component.)
Méthode publique GetType Obtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode publique InitializeLifetimeService Obtient un objet de service de durée de vie pour contrôler la stratégie de durée de vie de cette instance. (Hérité de MarshalByRefObject.)
Méthode protégée MemberwiseClone() Crée une copie superficielle de l'objet Object actif. (Hérité de Object.)
Méthode protégée MemberwiseClone(Boolean) Crée une copie superficielle de l'objet MarshalByRefObject actuel. (Hérité de MarshalByRefObject.)
Méthode publique Open Ouvre une nouvelle connexion au port série.
Méthode publique Read(Byte[], Int32, Int32) Lit des octets de la mémoire tampon d'entrée SerialPort et écrit ces octets dans un tableau d'octets à l'offset spécifié.
Méthode publique Read(Char[], Int32, Int32) Lit un certain nombre de caractères de la mémoire tampon d'entrée SerialPort et écrit ces caractères dans un tableau de caractères à un offset donné.
Méthode publique ReadByte Lit de façon synchrone un octet de la mémoire tampon d'entrée SerialPort.
Méthode publique ReadChar Lit de façon synchrone un caractère de la mémoire tampon d'entrée SerialPort.
Méthode publique ReadExisting Lit tous les octets immédiatement disponibles, en fonction de l'encodage, dans le flux et la mémoire tampon d'entrée de l'objet SerialPort.
Méthode publique ReadLine Lit jusqu'à la valeur NewLine dans la mémoire tampon d'entrée.
Méthode publique ReadTo Lit une chaîne jusqu'au value spécifié dans la mémoire tampon d'entrée.
Méthode publique ToString Retourne String contenant le nom du Component, s'il existe. Cette méthode ne doit pas être substituée. (Hérité de Component.)
Méthode publique Write(String) Écrit la chaîne spécifiée au port série.
Méthode publique Write(Byte[], Int32, Int32) Écrit un nombre spécifié d'octets au port série à l'aide des données d'une mémoire tampon.
Méthode publique Write(Char[], Int32, Int32) Écrit un nombre spécifié de caractères au port série à l'aide des données d'une mémoire tampon.
Méthode publique WriteLine Écrit la chaîne spécifiée et la valeur NewLine dans la mémoire tampon de sortie.
Début
  Nom Description
Événement public DataReceived Représente la méthode qui gérera l'événement reçu avec les données d'un objet SerialPort.
Événement public Disposed Se produit lorsque le composant est supprimé par un appel à la méthode Dispose. (Hérité de Component.)
Événement public ErrorReceived Représente la méthode qui gère l'événement d'erreur d'un objet SerialPort.
Événement public PinChanged Représente la méthode qui gérera l'événement de modification de la broche série d'un objet SerialPort.
Début
  Nom Description
Champ public Membre statique InfiniteTimeout Indique qu'aucun délai d'attente ne doit se produire.
Début

Utilisez cette classe pour contrôler une ressource de fichier de port série. Cette classe fournit des opérations d'E/S synchrones et pilotées par événements, l'accès aux états de broche et d'arrêt, et l'accès aux propriétés du pilote série. Par ailleurs, les fonctionnalités de cette classe peuvent être encapsulées dans un objet Stream interne, accessible par le biais de la propriété BaseStream et passé aux classes qui encapsulent ou utilisent des flux.

La classe SerialPort prend en charge les encodages suivants : ASCIIEncoding, UTF8Encoding, UnicodeEncoding, UTF32Encoding et tout encodage défini dans mscorlib.dll où la page de codes est inférieure à 50000 ou la page de codes est 54936. Vous pouvez utiliser d'autres encodages, mais vous devez utiliser la méthode ReadByte ou Write et exécuter l'encodage vous-même.

L'exemple de code suivant illustre l'utilisation de la classe SerialPort pour autoriser deux utilisateurs à dialoguer en ligne à partir de deux ordinateurs distincts reliés par un câble null-modem. Dans cet exemple, les utilisateurs sont invités à entrer les paramètres de port et un nom d'utilisateur avant de dialoguer en ligne. Les ordinateurs doivent tous deux exécuter le programme pour obtenir toutes les fonctionnalités de cet exemple.


using System;
using System.IO.Ports;
using System.Threading;

public class PortChat
{
    static bool _continue;
    static SerialPort _serialPort;

    public static void Main()
    {
        string name;
        string message;
        StringComparer stringComparer = StringComparer.OrdinalIgnoreCase;
        Thread readThread = new Thread(Read);

        // Create a new SerialPort object with default settings.
        _serialPort = new SerialPort();

        // Allow the user to set the appropriate properties.
        _serialPort.PortName = SetPortName(_serialPort.PortName);
        _serialPort.BaudRate = SetPortBaudRate(_serialPort.BaudRate);
        _serialPort.Parity = SetPortParity(_serialPort.Parity);
        _serialPort.DataBits = SetPortDataBits(_serialPort.DataBits);
        _serialPort.StopBits = SetPortStopBits(_serialPort.StopBits);
        _serialPort.Handshake = SetPortHandshake(_serialPort.Handshake);

        // Set the read/write timeouts
        _serialPort.ReadTimeout = 500;
        _serialPort.WriteTimeout = 500;

        _serialPort.Open();
        _continue = true;
        readThread.Start();

        Console.Write("Name: ");
        name = Console.ReadLine();

        Console.WriteLine("Type QUIT to exit");

        while (_continue)
        {
            message = Console.ReadLine();

            if (stringComparer.Equals("quit", message))
            {
                _continue = false;
            }
            else
            {
                _serialPort.WriteLine(
                    String.Format("<{0}>: {1}", name, message) );
            }
        }

        readThread.Join();
        _serialPort.Close();
    }

    public static void Read()
    {
        while (_continue)
        {
            try
            {
                string message = _serialPort.ReadLine();
                Console.WriteLine(message);
            }
            catch (TimeoutException) { }
        }
    }

    public static string SetPortName(string defaultPortName)
    {
        string portName;

        Console.WriteLine("Available Ports:");
        foreach (string s in SerialPort.GetPortNames())
        {
            Console.WriteLine("   {0}", s);
        }

        Console.Write("COM port({0}): ", defaultPortName);
        portName = Console.ReadLine();

        if (portName == "")
        {
            portName = defaultPortName;
        }
        return portName;
    }

    public static int SetPortBaudRate(int defaultPortBaudRate)
    {
        string baudRate;

        Console.Write("Baud Rate({0}): ", defaultPortBaudRate);
        baudRate = Console.ReadLine();

        if (baudRate == "")
        {
            baudRate = defaultPortBaudRate.ToString();
        }

        return int.Parse(baudRate);
    }

    public static Parity SetPortParity(Parity defaultPortParity)
    {
        string parity;

        Console.WriteLine("Available Parity options:");
        foreach (string s in Enum.GetNames(typeof(Parity)))
        {
            Console.WriteLine("   {0}", s);
        }

        Console.Write("Parity({0}):", defaultPortParity.ToString());
        parity = Console.ReadLine();

        if (parity == "")
        {
            parity = defaultPortParity.ToString();
        }

        return (Parity)Enum.Parse(typeof(Parity), parity);
    }

    public static int SetPortDataBits(int defaultPortDataBits)
    {
        string dataBits;

        Console.Write("Data Bits({0}): ", defaultPortDataBits);
        dataBits = Console.ReadLine();

        if (dataBits == "")
        {
            dataBits = defaultPortDataBits.ToString();
        }

        return int.Parse(dataBits);
    }

    public static StopBits SetPortStopBits(StopBits defaultPortStopBits)
    {
        string stopBits;

        Console.WriteLine("Available Stop Bits options:");
        foreach (string s in Enum.GetNames(typeof(StopBits)))
        {
            Console.WriteLine("   {0}", s);
        }

        Console.Write("Stop Bits({0}):", defaultPortStopBits.ToString());
        stopBits = Console.ReadLine();

        if (stopBits == "")
        {
            stopBits = defaultPortStopBits.ToString();
        }

        return (StopBits)Enum.Parse(typeof(StopBits), stopBits);
    }

    public static Handshake SetPortHandshake(Handshake defaultPortHandshake)
    {
        string handshake;

        Console.WriteLine("Available Handshake options:");
        foreach (string s in Enum.GetNames(typeof(Handshake)))
        {
            Console.WriteLine("   {0}", s);
        }

        Console.Write("Handshake({0}):", defaultPortHandshake.ToString());
        handshake = Console.ReadLine();

        if (handshake == "")
        {
            handshake = defaultPortHandshake.ToString();
        }

        return (Handshake)Enum.Parse(typeof(Handshake), handshake);
    }
}


.NET Framework

Pris en charge dans : 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows XP SP2 Édition x64, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.
Cela vous a-t-il été utile ?
(1500 caractères restants)
Contenu de la communauté Ajouter
Annotations FAQ
Error
Hi
Error    1    'Sub Main' was not found in '***soleApplication1.Module1'.    ***soleApplication1
but public Shared sub Main() is there!