Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source
3 sur 3 ont trouvé cela utile - Évaluez ce sujet

SerialPort, classe

Représente une ressource de port série.

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

Le type SerialPort expose les membres suivants.

  NomDescription
Méthode publiqueSerialPort()Initialise une nouvelle instance de la classe SerialPort.
Méthode publiqueSerialPort(IContainer)Initialise une nouvelle instance de la classe SerialPort à l'aide de l'objet IContainer spécifié.
Méthode publiqueSerialPort(String)Initialise une nouvelle instance de la classe SerialPort avec le nom de port spécifié.
Méthode publiqueSerialPort(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 publiqueSerialPort(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 publiqueSerialPort(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 publiqueSerialPort(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
  NomDescription
Propriété publiqueBaseStreamObtient l'objet Stream sous-jacent pour un objet SerialPort.
Propriété publiqueBaudRateObtient ou définit la vitesse en bauds série.
Propriété publiqueBreakStateObtient ou définit l'état de signal d'arrêt.
Propriété publiqueBytesToReadObtient le nombre d'octets de données dans la mémoire tampon de réception.
Propriété publiqueBytesToWriteObtient le nombre d'octets de données dans la mémoire tampon d'envoi.
Propriété protégéeCanRaiseEventsObtient une valeur qui indique si le composant peut déclencher un événement. (Hérité de Component.)
Propriété publiqueCDHoldingObtient l'état de la ligne de détection de porteuse pour le port.
Propriété publiqueContainerObtient le IContainer qui contient Component. (Hérité de Component.)
Propriété publiqueCtsHoldingObtient l'état de la ligne CTS (Clear-To-Send).
Propriété publiqueDataBitsObtient ou définit la longueur standard des bits de données par octet.
Propriété protégéeDesignModeObtient une valeur qui indique si Component est actuellement en mode design. (Hérité de Component.)
Propriété publiqueDiscardNullObtient 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é publiqueDsrHoldingObtient l'état du signal DSR (Data Set Ready).
Propriété publiqueDtrEnableObtient ou définit une valeur qui active le signal DTR au cours d'une communication série.
Propriété publiqueEncodingObtient ou définit l'octet qui encode la conversion de texte avant et après la transmission.
Propriété protégéeEventsObtient la liste des gestionnaires d'événements attachés à ce Component. (Hérité de Component.)
Propriété publiqueHandshakeObtient ou définit le protocole de transfert pour la transmission de données par le port série.
Propriété publiqueIsOpenObtient une valeur indiquant l'état ouvert ou fermé de l'objet SerialPort.
Propriété publiqueNewLineObtient ou définit la valeur utilisée pour interpréter la fin d'un appel aux méthodes ReadLine et WriteLine.
Propriété publiqueParityObtient ou définit le protocole de contrôle de parité.
Propriété publiqueParityReplaceObtient 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é publiquePortNameObtient ou définit le port pour les communications, y compris, de manière non limitative, tous les ports COM disponibles.
Propriété publiqueReadBufferSizeObtient ou définit la taille de la mémoire tampon SerialPort.
Propriété publiqueReadTimeoutObtient 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é publiqueReceivedBytesThresholdObtient 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é publiqueRtsEnableObtient ou définit une valeur indiquant si le signal RTS est activé au cours d'une communication série.
Propriété publiqueSiteObtient ou définit le ISite de Component. (Hérité de Component.)
Propriété publiqueStopBitsObtient ou définit le nombre standard de bits d'arrêt par octet.
Propriété publiqueWriteBufferSizeObtient ou définit la taille de la mémoire tampon de sortie du port série.
Propriété publiqueWriteTimeoutObtient 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
  NomDescription
Méthode publiqueCloseFerme la connexion au port, affecte à la propriété IsOpen la valeur false et supprime l'objet Stream interne.
Méthode publiqueCreateObjRefCré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 publiqueDiscardInBufferIgnore les données de la mémoire tampon de réception du pilote série.
Méthode publiqueDiscardOutBufferIgnore les données de la mémoire tampon de transmission du pilote série.
Méthode publiqueDispose()Libère toutes les ressources utilisées par Component. (Hérité de Component.)
Méthode protégéeDispose(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 publiqueEquals(Object)Détermine si l'objet spécifié est identique à l'objet actuel. (Hérité de Object.)
Méthode protégéeFinalizeLibè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 publiqueGetHashCodeSert de fonction de hachage pour un type particulier. (Hérité de Object.)
Méthode publiqueGetLifetimeServiceRé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 publiqueMembre statiqueGetPortNamesObtient un tableau de noms de ports série pour l'ordinateur actuel.
Méthode protégéeGetServiceRetourne un objet qui représente un service fourni par Component ou par son Container. (Hérité de Component.)
Méthode publiqueGetTypeObtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode publiqueInitializeLifetimeServiceObtient 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éeMemberwiseClone()Crée une copie superficielle de l'objet Object actuel. (Hérité de Object.)
Méthode protégéeMemberwiseClone(Boolean)Crée une copie superficielle de l'objet MarshalByRefObject actuel. (Hérité de MarshalByRefObject.)
Méthode publiqueOpenOuvre une nouvelle connexion au port série.
Méthode publiqueRead(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 publiqueRead(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 publiqueReadByteLit de façon synchrone un octet de la mémoire tampon d'entrée SerialPort.
Méthode publiqueReadCharLit de façon synchrone un caractère de la mémoire tampon d'entrée SerialPort.
Méthode publiqueReadExistingLit 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 publiqueReadLineLit jusqu'à la valeur NewLine dans la mémoire tampon d'entrée.
Méthode publiqueReadToLit une chaîne jusqu'au value spécifié dans la mémoire tampon d'entrée.
Méthode publiqueToStringRetourne String contenant le nom du Component, s'il existe. Cette méthode ne doit pas être substituée. (Hérité de Component.)
Méthode publiqueWrite(String)Écrit la chaîne spécifiée au port série.
Méthode publiqueWrite(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 publiqueWrite(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 publiqueWriteLineÉcrit la chaîne spécifiée et la valeur NewLine dans la mémoire tampon de sortie.
Début
  NomDescription
Événement publicDataReceivedReprésente la méthode qui gérera l'événement reçu avec les données d'un objet SerialPort.
Événement publicDisposedSe produit lorsque le composant est supprimé par un appel à la méthode Dispose. (Hérité de Component.)
Événement publicErrorReceivedReprésente la méthode qui gère l'événement d'erreur d'un objet SerialPort.
Événement publicPinChangedReprésente la méthode qui gérera l'événement de modification de la broche série d'un objet SerialPort.
Début
  NomDescription
Champ publicMembre statiqueInfiniteTimeoutIndique 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.

Vous utilisez la méthode d' GetPortNames pour récupérer les ports valides de l'ordinateur actuel.

Si un objet d' SerialPort est bloqué pendant une opération de lecture, n'interrompez pas le thread. À la place, fermez le flux de base ou ont l'objet d' SerialPort .

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.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

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)

Ajouts de la communauté

AJOUTER
© 2013 Microsoft. Tous droits réservés.