Bagikan melalui


SerialDevice Kelas

Definisi

Mewakili port serial. Objek menyediakan metode dan properti yang dapat digunakan aplikasi untuk menemukan dan berinteraksi dengan port serial pada sistem.

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
Warisan
Object Platform::Object IInspectable SerialDevice
Atribut
Penerapan

Persyaratan Windows

Rangkaian perangkat
Windows 10 (diperkenalkan dalam 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (diperkenalkan dalam v1.0)

Contoh

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

Keterangan

Kemampuan perangkat serial, serialCommunication, diperlukan untuk menggunakan SerialDevice kelas . Untuk informasi selengkapnya, lihat Windows.Devices.SerialCommunication.

Membuat objek SerialDevice

  1. Buat string Advanced Query Syntax (AQS) yang berisi kriteria pencarian untuk menemukan perangkat dalam kumpulan perangkat yang dijumlahkan. Jika Anda memiliki vendor dan pengidentifikasi produk, hubungi GetDeviceSelectorFromUsbVidPid.
  2. Teruskan string yang diambil ke FindAllAsync. Panggilan mengambil objek DeviceInformationCollection .
  3. Perulangan melalui koleksi. Setiap perulangan mendapatkan objek DeviceInformation .
  4. Dapatkan nilai properti DeviceInformation.Id . Nilai string adalah jalur antarmuka perangkat. (misalnya \\?\usb#vid_03eb&pid_2157&mi_01#7&1435ec7f&0&0001#{86e0d1e0-8089-11d0-9ce4-08003e301f73}).
  5. Panggil FromIdAsync dengan melewati string antarmuka perangkat dan dapatkan SerialDevice objek . Jika ini melempar pengecualian atau mengembalikan null, kemungkinan:
    • Jalur antarmuka perangkat tidak valid
    • Jalur antarmuka perangkat tidak merepresentasi perangkat serial
    • Aplikasi kehilangan serialCommunication kemampuan
    • Perangkat serial tidak dapat diakses. (lihat Windows.Devices.SerialCommunication)

Membaca dan menulis data

Anda kemudian dapat menggunakan objek SerialDevice untuk membaca dari atau menulis ke port serial dengan menggunakan namespace Windows.Storage.Streams .

  1. Dapatkan referensi ke aliran input dengan mendapatkan properti SerialDevice.InputStream .
  2. Buat objek DataReader dengan menentukan aliran input di konstruktor DataReader .
  3. Dapatkan referensi ke aliran output dengan mendapatkan properti SerialDevice.OutputStream .
  4. Buat objek DataWriter dengan menentukan aliran output di konstruktor DataWriter .

Properti

BaudRate

Mendapatkan atau mengatur laju baud.

BreakSignalState

Mendapatkan atau mengatur status sinyal pemutus.

BytesReceived

Mewakili jumlah byte yang diterima oleh operasi baca terakhir dari aliran input.

CarrierDetectState

Mendapatkan status baris Carrier Detect (CD).

ClearToSendState

Mendapatkan status baris Clear-to-Send (CTS).

DataBits

Jumlah bit data di setiap nilai karakter yang ditransmisikan atau diterima, dan tidak menyertakan bit paritas atau bit berhenti.

DataSetReadyState

Mendapatkan status sinyal Siap Himpunan Data (DSR).

Handshake

Mendapatkan atau mengatur protokol jabat tangan untuk kontrol aliran.

InputStream

Aliran input yang berisi data yang diterima pada port serial.

IsDataTerminalReadyEnabled

Mendapatkan atau menetapkan nilai yang memungkinkan sinyal Siap Terminal Data (DTR).

IsRequestToSendEnabled

Mendapatkan atau menetapkan nilai yang memungkinkan sinyal Request to Send (RTS).

OutputStream

Mendapatkan aliran output tempat aplikasi dapat menulis data untuk dikirimkan melalui port serial.

Parity

Mendapatkan atau mengatur bit paritas untuk pemeriksaan kesalahan.

PortName

Mendapatkan nama port untuk komunikasi serial.

ReadTimeout

Mendapatkan atau mengatur nilai waktu habis untuk operasi baca.

StopBits

Mendapatkan atau mengatur jumlah standar bit berhenti per byte.

UsbProductId

Mendapatkan bidang idProduct dari deskriptor perangkat USB. Nilai ini menunjukkan pengidentifikasi produk khusus perangkat dan ditetapkan oleh produsen.

UsbVendorId

Mendapatkan bidang idVendor dari deskriptor perangkat USB. Nilai menunjukkan pengidentifikasi vendor untuk perangkat seperti yang ditetapkan oleh komite spesifikasi USB.

WriteTimeout

Mendapatkan atau mengatur nilai waktu habis untuk operasi tulis.

Metode

Close()

Merilis referensi ke objek SerialDevice yang sebelumnya diperoleh dengan memanggil FromIdAsync.

Dispose()

Melakukan tugas yang ditentukan aplikasi yang terkait dengan membebaskan, melepaskan, atau mereset sumber daya yang tidak terkelola.

FromIdAsync(String)

Memulai operasi asinkron yang membuat objek SerialDevice .

GetDeviceSelector()

Mendapatkan string Advanced Query Syntax (AQS) yang dapat diteruskan aplikasi ke DeviceInformation.FindAllAsync untuk menemukan semua perangkat serial pada sistem.

GetDeviceSelector(String)

Mendapatkan string Advanced Query Syntax (AQS) yang dapat diteruskan aplikasi ke DeviceInformation.FindAllAsync untuk menemukan perangkat serial dengan menentukan nama portnya.

GetDeviceSelectorFromUsbVidPid(UInt16, UInt16)

Mendapatkan string Advanced Query Syntax (AQS) yang dapat diteruskan aplikasi ke DeviceInformation.FindAllAsync untuk menemukan perangkat Serial-ke-USB tertentu dengan menentukan VID dan PID-nya.

Acara

ErrorReceived

Penanganan aktivitas yang dipanggil ketika kesalahan terjadi pada port serial.

PinChanged

Penanganan aktivitas yang dipanggil saat status sinyal atau garis berubah pada port serial.

Berlaku untuk

Lihat juga