SerialDevice クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
シリアル ポートを表します。 オブジェクトには、システム上のシリアル ポートを検索して操作するためにアプリで使用できるメソッドとプロパティが用意されています。
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
- 継承
- 属性
- 実装
Windows の要件
デバイス ファミリ |
Windows 10 (10.0.10240.0 で導入)
|
API contract |
Windows.Foundation.UniversalApiContract (v1.0 で導入)
|
例
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
}
}
注釈
クラスを使用SerialDevice
するには、serialCommunication
シリアル デバイス機能 である が必要です。 詳細については、「 Windows.Devices.SerialCommunication」を参照してください。
SerialDevice オブジェクトを作成する
- 列挙されたデバイス コレクション内のデバイスを検索するための検索条件を含む高度なクエリ構文 (AQS) 文字列を生成します。 ベンダーと製品の識別子がある場合は、 GetDeviceSelectorFromUsbVidPid を呼び出します。
- 取得した文字列を FindAllAsync に渡します。 呼び出しは、 DeviceInformationCollection オブジェクトを 取得します。
- コレクションをループします。 各イテレーションでは、 DeviceInformation オブジェクトを 取得します。
- DeviceInformation.Id プロパティの値を取得します。 文字列値はデバイス インターフェイス パスです。 (例:
\\?\usb#vid_03eb&pid_2157&mi_01#7&1435ec7f&0&0001#{86e0d1e0-8089-11d0-9ce4-08003e301f73}
)。 - デバイス インターフェイス文字列を渡して FromIdAsync を呼び出し、 オブジェクトを
SerialDevice
取得します。 これが例外をスローするか、null を返す場合は、次のようになります。- デバイス インターフェイスのパスが無効です
- デバイス インターフェイス パスがシリアル デバイスを再表示しない
- アプリケーションに機能がありません
serialCommunication
- シリアル デバイスにアクセスできません。 ( Windows.Devices.SerialCommunication を参照)
データの読み取りと書き込み
その後、SerialDevice オブジェクトを使用して 、Windows.Storage.Streams 名前空間を使用してシリアル ポートの読み取りまたはシリアル ポートへの書き込みを行うことができます。
- SerialDevice.InputStream プロパティを取得して、入力ストリームへの参照を取得します。
- DataReader コンストラクターで入力ストリームを指定して、DataReader オブジェクトを作成します。
- SerialDevice.OutputStream プロパティを取得して、出力ストリームへの参照を取得します。
- DataWriter コンストラクターで出力ストリームを指定して、DataWriter オブジェクトを作成します。
プロパティ
BaudRate |
ボー レートを取得または設定します。 |
BreakSignalState |
ブレーク シグナルの状態を取得または設定します。 |
BytesReceived |
入力ストリームの最後の読み取り操作で受信したバイト数を表します。 |
CarrierDetectState |
Carrier Detect (CD) 行の状態を取得します。 |
ClearToSendState |
Clear-to-Send (CTS) 行の状態を取得します。 |
DataBits |
送受信される各文字値のデータ ビット数。パリティ ビットまたはストップ ビットは含まれません。 |
DataSetReadyState |
DSR (Data Set Ready) シグナルの状態を取得します。 |
Handshake |
フロー制御のハンドシェーク プロトコルを取得または設定します。 |
InputStream |
シリアル ポートで受信したデータを含む入力ストリーム。 |
IsDataTerminalReadyEnabled |
Data Terminal Ready (DTR) シグナルを有効にする値を取得または設定します。 |
IsRequestToSendEnabled |
Request to Send (RTS) シグナルを有効にする値を取得または設定します。 |
OutputStream |
シリアル ポートを介して送信するデータをアプリが書き込むことができる出力ストリームを取得します。 |
Parity |
エラー チェックのパリティ ビットを取得または設定します。 |
PortName |
シリアル通信のポート名を取得します。 |
ReadTimeout |
読み取り操作のタイムアウト値を取得または設定します。 |
StopBits |
バイトあたりのストップ ビットの標準数を取得または設定します。 |
UsbProductId |
USB デバイス記述子の idProduct フィールドを取得します。 この値は、デバイス固有の製品識別子を示し、製造元によって割り当てられます。 |
UsbVendorId |
USB デバイス記述子の idVendor フィールドを取得します。 値は、USB 仕様委員会によって割り当てられたデバイスのベンダー識別子を示します。 |
WriteTimeout |
書き込み操作のタイムアウト値を取得または設定します。 |
メソッド
Close() |
FromIdAsync を呼び出して以前に取得した SerialDevice オブジェクトへの参照を解放します。 |
Dispose() |
アンマネージ リソースの解放またはリセットに関連付けられているアプリケーション定義のタスクを実行します。 |
FromIdAsync(String) |
SerialDevice オブジェクトを作成する非同期操作を開始します。 |
GetDeviceSelector() |
システム上のすべてのシリアル デバイスを検索するために、アプリが DeviceInformation.FindAllAsync に渡すことができる高度なクエリ構文 (AQS) 文字列を取得します。 |
GetDeviceSelector(String) |
ポート名を指定してシリアル デバイスを検索するために、アプリが DeviceInformation.FindAllAsync に渡すことができる高度なクエリ構文 (AQS) 文字列を取得します。 |
GetDeviceSelectorFromUsbVidPid(UInt16, UInt16) |
VID と PID を指定して特定のシリアルから USB デバイスを検索するために、アプリが DeviceInformation.FindAllAsync に渡すことができる高度なクエリ構文 (AQS) 文字列を取得します。 |
イベント
ErrorReceived |
シリアル ポートでエラーが発生したときに呼び出されるイベント ハンドラー。 |
PinChanged |
シリアル ポートでシグナルまたは回線の状態が変化したときに呼び出されるイベント ハンドラー。 |