Condividi tramite


SerialDevice Classe

Definizione

Rappresenta una porta seriale. L'oggetto fornisce metodi e proprietà che un'app può usare per trovare e interagire con le porte seriali nel sistema.

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
Ereditarietà
Object Platform::Object IInspectable SerialDevice
Attributi
Implementazioni

Requisiti Windows

Famiglia di dispositivi
Windows 10 (è stato introdotto in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v1.0)

Esempio

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
    }
}

Commenti

La funzionalità del dispositivo seriale, serialCommunication, è necessaria per usare la SerialDevice classe . Per altre informazioni, vedere Windows.Devices.SerialCommunication.

Creare un oggetto SerialDevice

  1. Generare una stringa AQS (Advanced Query Syntax) che contiene i criteri di ricerca per trovare il dispositivo nella raccolta di dispositivi enumerata. Se si dispone di identificatori fornitore e prodotto, chiamare GetDeviceSelectorFromUsbVidPid.
  2. Passare la stringa recuperata a FindAllAsync. La chiamata recupera un oggetto DeviceInformationCollection .
  3. Scorrere l'insieme. Ogni iterazione ottiene un oggetto DeviceInformation .
  4. Ottiene il valore della proprietà DeviceInformation.Id . Il valore stringa è il percorso dell'interfaccia del dispositivo. ad esempio \\?\usb#vid_03eb&pid_2157&mi_01#7&1435ec7f&0&0001#{86e0d1e0-8089-11d0-9ce4-08003e301f73}.
  5. Chiamare FromIdAsync passando la stringa dell'interfaccia del dispositivo e ottenere l'oggetto SerialDevice . Se genera un'eccezione o restituisce Null, è probabile che:
    • Il percorso dell'interfaccia del dispositivo non è valido
    • Il percorso dell'interfaccia del dispositivo non rappresenta un dispositivo seriale
    • L'applicazione non ha la serialCommunication funzionalità
    • Il dispositivo seriale non è accessibile. Vedere Windows.Devices.SerialCommunication)

Leggere e scrivere dati

È quindi possibile usare l'oggetto SerialDevice per leggere o scrivere nella porta seriale usando lo spazio dei nomi Windows.Storage.Streams .

  1. Ottenere un riferimento al flusso di input recuperando la proprietà SerialDevice.InputStream .
  2. Creare un oggetto DataReader specificando il flusso di input nel costruttore DataReader .
  3. Ottenere un riferimento al flusso di output recuperando la proprietà SerialDevice.OutputStream .
  4. Creare un oggetto DataWriter specificando il flusso di output nel costruttore DataWriter .

Proprietà

BaudRate

Ottiene o imposta la velocità baud.

BreakSignalState

Ottiene o imposta lo stato del segnale di interruzione.

BytesReceived

Rappresenta il numero di byte ricevuti dall'ultima operazione di lettura del flusso di input.

CarrierDetectState

Ottiene lo stato della riga Rilevamento vettore (CD).

ClearToSendState

Ottiene lo stato della riga Clear-to-Send (CTS).

DataBits

Numero di bit di dati in ogni valore di carattere trasmesso o ricevuto e non include bit di parità o bit di arresto.

DataSetReadyState

Ottiene lo stato del segnale DSR (Data Set Ready).

Handshake

Ottiene o imposta il protocollo di handshaking per il controllo del flusso.

InputStream

Flusso di input che contiene i dati ricevuti sulla porta seriale.

IsDataTerminalReadyEnabled

Ottiene o imposta un valore che abilita il segnale Data Terminal Ready (DTR).

IsRequestToSendEnabled

Ottiene o imposta un valore che consente il segnale Request to Send (RTS).

OutputStream

Ottiene un flusso di output a cui l'app può scrivere dati da trasmettere tramite la porta seriale.

Parity

Ottiene o imposta il bit di parità per il controllo degli errori.

PortName

Ottiene il nome della porta per le comunicazioni seriali.

ReadTimeout

Ottiene o imposta il valore di timeout per un'operazione di lettura.

StopBits

Ottiene o imposta il numero standard di bit di arresto per byte.

UsbProductId

Ottiene il campo idProduct del descrittore del dispositivo USB. Questo valore indica l'identificatore del prodotto specifico del dispositivo e viene assegnato dal produttore.

UsbVendorId

Ottiene il campo idVendor del descrittore del dispositivo USB. Il valore indica l'identificatore del fornitore per il dispositivo assegnato dal comitato di specifica USB.

WriteTimeout

Ottiene o imposta il valore di timeout per un'operazione di scrittura.

Metodi

Close()

Rilascia il riferimento all'oggetto SerialDevice ottenuto in precedenza chiamando FromIdAsync.

Dispose()

Esegue attività definite dall'applicazione, come rilasciare o reimpostare risorse non gestite.

FromIdAsync(String)

Avvia un'operazione asincrona che crea un oggetto SerialDevice .

GetDeviceSelector()

Ottiene una stringa AQS (Advanced Query Syntax) che l'app può passare a DeviceInformation.FindAllAsync per trovare tutti i dispositivi seriali nel sistema.

GetDeviceSelector(String)

Ottiene una stringa AQS (Advanced Query Syntax) che l'app può passare a DeviceInformation.FindAllAsync per trovare un dispositivo seriale specificando il nome della porta.

GetDeviceSelectorFromUsbVidPid(UInt16, UInt16)

Ottiene una stringa AQS (Advanced Query Syntax) che l'app può passare a DeviceInformation.FindAllAsync per trovare un dispositivo serial-to-USB specifico specificando il relativo VID e PID.

Eventi

ErrorReceived

Gestore eventi richiamato quando si verifica un errore sulla porta seriale.

PinChanged

Gestore eventi richiamato quando lo stato di un segnale o di una riga cambia sulla porta seriale.

Si applica a

Vedi anche