SerialDevice Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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à
- 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
- 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.
- Passare la stringa recuperata a FindAllAsync. La chiamata recupera un oggetto DeviceInformationCollection .
- Scorrere l'insieme. Ogni iterazione ottiene un oggetto DeviceInformation .
- 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}
. - 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 .
- Ottenere un riferimento al flusso di input recuperando la proprietà SerialDevice.InputStream .
- Creare un oggetto DataReader specificando il flusso di input nel costruttore DataReader .
- Ottenere un riferimento al flusso di output recuperando la proprietà SerialDevice.OutputStream .
- 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. |