SerialDevice Classe

Définition

Représente un port série. L’objet fournit des méthodes et des propriétés qu’une application peut utiliser pour rechercher et interagir avec les ports série sur le système.

public ref class SerialDevice sealed : IClosable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class SerialDevice final : IClosable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class SerialDevice : System.IDisposable
Public NotInheritable Class SerialDevice
Implements IDisposable
Héritage
Object Platform::Object IInspectable SerialDevice
Attributs
Implémente

Configuration requise pour Windows

Famille d’appareils
Windows 10 (introduit dans 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduit dans v1.0)

Exemples

using System;
using Windows.Devices.Enumeration;
using Windows.Devices.SerialCommunication;
using Windows.Storage.Streams;

...

DeviceInformationCollection serialDeviceInfos = await DeviceInformation.FindAllAsync(SerialDevice.GetDeviceSelector());

foreach (DeviceInformation serialDeviceInfo in serialDeviceInfos)
{
    try
    {
        SerialDevice serialDevice = await SerialDevice.FromIdAsync(serialDeviceInfo.Id);

        if (serialDevice != null)
        {
            // Found a valid serial device.

            // Reading a byte from the serial device.
            DataReader dr = new DataReader(serialDevice.InputStream);
            int readByte = dr.ReadByte();

            // Writing a byte to the serial device.
            DataWriter dw = new DataWriter(serialDevice.OutputStream);
            dw.WriteByte(0x42);
        }
    }
    catch (Exception)
    {
        // Couldn't instantiate the device
    }
}

Remarques

La fonctionnalité d’appareil série, serialCommunication, est requise pour utiliser la SerialDevice classe . Pour plus d’informations, consultez Windows.Devices.SerialCommunication.

Créer un objet SerialDevice

  1. Générez une chaîne AQS (Advanced Query Syntax) qui contient des critères de recherche pour rechercher l’appareil dans la collection d’appareils énumérée. Si vous avez les identificateurs de fournisseur et de produit, appelez GetDeviceSelectorFromUsbVidPid.
  2. Passez la chaîne récupérée à FindAllAsync. L’appel récupère un objet DeviceInformationCollection .
  3. Effectuez une boucle dans la collection. Chaque itération obtient un objet DeviceInformation .
  4. Obtenez la valeur de la propriété DeviceInformation.Id . La valeur de chaîne est le chemin d’accès de l’interface de l’appareil. (par exemple \\?\usb#vid_03eb&pid_2157&mi_01#7&1435ec7f&0&0001#{86e0d1e0-8089-11d0-9ce4-08003e301f73}).
  5. Appelez FromIdAsync en passant la chaîne d’interface de l’appareil et obtenez l’objet SerialDevice . Si cela lève une exception ou retourne null, il est probable que :
    • Le chemin d’accès de l’interface de l’appareil n’est pas valide
    • Le chemin d’accès à l’interface de l’appareil ne revient pas sur un appareil série
    • L’application ne dispose pas de la serialCommunication fonctionnalité
    • L’appareil série est inaccessible. (voir Windows.Devices.SerialCommunication)

Lire et écrire des données

Vous pouvez ensuite utiliser l’objet SerialDevice pour lire ou écrire dans le port série à l’aide de l’espace de noms Windows.Storage.Streams .

  1. Obtenez une référence au flux d’entrée en obtenant la propriété SerialDevice.InputStream .
  2. Créez un objet DataReader en spécifiant le flux d’entrée dans le constructeur DataReader .
  3. Obtenez une référence au flux de sortie en obtenant la propriété SerialDevice.OutputStream .
  4. Créez un objet DataWriter en spécifiant le flux de sortie dans le constructeur DataWriter .

Propriétés

BaudRate

Obtient ou définit le taux de bauds.

BreakSignalState

Obtient ou définit l'état du signal d'arrêt.

BytesReceived

Représente le nombre d’octets reçus par la dernière opération de lecture du flux d’entrée.

CarrierDetectState

Obtient l’état de la ligne De détection de l’opérateur (CD).

ClearToSendState

Obtient l’état de la ligne Clear-to-Send (CTS).

DataBits

Nombre de bits de données dans chaque valeur de caractère qui est transmis ou reçu, et n’inclut pas les bits de parité ou les bits d’arrêt.

DataSetReadyState

Obtient l'état du signal DSR (Data Set Ready).

Handshake

Obtient ou définit le protocole de négociation pour le contrôle de flux.

InputStream

Flux d’entrée qui contient les données reçues sur le port série.

IsDataTerminalReadyEnabled

Obtient ou définit une valeur qui active le signal DTR (Data Terminal Ready).

IsRequestToSendEnabled

Obtient ou définit une valeur qui active le signal RTS (Request to Send).

OutputStream

Obtient un flux de sortie vers lequel l’application peut écrire des données à transmettre via le port série.

Parity

Obtient ou définit le bit de parité pour la vérification des erreurs.

PortName

Obtient le nom de port pour les communications série.

ReadTimeout

Obtient ou définit la valeur du délai d’attente d’une opération de lecture.

StopBits

Obtient ou définit le nombre standard de bits d’arrêt par octet.

UsbProductId

Obtient le champ idProduct du descripteur de périphérique USB. Cette valeur indique l’identificateur de produit spécifique à l’appareil et est attribuée par le fabricant.

UsbVendorId

Obtient le champ idVendor du descripteur de périphérique USB. La valeur indique l’identificateur du fournisseur de l’appareil, tel qu’attribué par le comité de spécification USB.

WriteTimeout

Obtient ou définit la valeur de délai d’attente pour une opération d’écriture.

Méthodes

Close()

Libère la référence à l’objet SerialDevice obtenu précédemment en appelant FromIdAsync.

Dispose()

Exécute les tâches définies par l'application associées à la libération ou à la redéfinition des ressources non managées.

FromIdAsync(String)

Démarre une opération asynchrone qui crée un objet SerialDevice .

GetDeviceSelector()

Obtient une chaîne AQS (Advanced Query Syntax) que l’application peut transmettre à DeviceInformation.FindAllAsync afin de rechercher tous les appareils série sur le système.

GetDeviceSelector(String)

Obtient une chaîne AQS (Advanced Query Syntax) que l’application peut passer à DeviceInformation.FindAllAsync afin de rechercher un appareil série en spécifiant son nom de port.

GetDeviceSelectorFromUsbVidPid(UInt16, UInt16)

Obtient une chaîne AQS (Advanced Query Syntax) que l’application peut passer à DeviceInformation.FindAllAsync afin de rechercher un périphérique Serial-to-USB spécifique en spécifiant son VID et son PID.

Événements

ErrorReceived

Gestionnaire d’événements appelé lorsque l’erreur se produit sur le port série.

PinChanged

Gestionnaire d’événements appelé lorsque l’état d’un signal ou d’une ligne change sur le port série.

S’applique à

Voir aussi