この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

SerialPort クラス

 

公開日: 2016年10月

シリアル ポート リソースを表します。

この型の .NET Framework ソース コードを参照するを参照してください。、 Reference Sourceします。

名前空間:   System.IO.Ports
アセンブリ:  System (System.dll 内)

System.Object
  System.MarshalByRefObject
    System.ComponentModel.Component
      System.IO.Ports.SerialPort

public class SerialPort : Component

名前説明
System_CAPS_pubmethodSerialPort()

SerialPort クラスの新しいインスタンスを初期化します。

System_CAPS_pubmethodSerialPort(IContainer)

指定した IContainer オブジェクトを使用して、SerialPort クラスの新しいインスタンスを初期化します。

System_CAPS_pubmethodSerialPort(String)

指定したポート名を使用して、SerialPort クラスの新しいインスタンスを初期化します。

System_CAPS_pubmethodSerialPort(String, Int32)

指定したポート名とボー レートを使用して、SerialPort クラスの新しいインスタンスを初期化します。

System_CAPS_pubmethodSerialPort(String, Int32, Parity)

指定したポート名、ボー レート、およびパリティ ビットを使用して、SerialPort クラスの新しいインスタンスを初期化します。

System_CAPS_pubmethodSerialPort(String, Int32, Parity, Int32)

指定したポート名、ボー レート、パリティ ビット、およびデータ ビットを使用して、SerialPort クラスの新しいインスタンスを初期化します。

System_CAPS_pubmethodSerialPort(String, Int32, Parity, Int32, StopBits)

指定したポート名、ボー レート、パリティ ビット、データ ビット、およびストップ ビットを使用して、SerialPort クラスの新しいインスタンスを初期化します。

名前説明
System_CAPS_pubpropertyBaseStream

SerialPort オブジェクトの基になる Stream オブジェクトを取得します。

System_CAPS_pubpropertyBaudRate

シリアル ボー レートを取得または設定します。

System_CAPS_pubpropertyBreakState

ブレーク シグナルの状態を取得または設定します。

System_CAPS_pubpropertyBytesToRead

受信バッファー内のデータのバイト数を取得します。

System_CAPS_pubpropertyBytesToWrite

送信バッファー内のデータのバイト数を取得します。

System_CAPS_protpropertyCanRaiseEvents

コンポーネントがイベントを発生させることができるかどうかを示す値を取得します。(Component から継承されます。)

System_CAPS_pubpropertyCDHolding

ポートのキャリア検出ラインの状態を取得します。

System_CAPS_pubpropertyContainer

取得、 IContainer を含む、 Componentです。(Component から継承されます。)

System_CAPS_pubpropertyCtsHolding

Clear To Send ラインの状態を取得します。

System_CAPS_pubpropertyDataBits

バイトごとのデータ ビットの標準の長さを取得または設定します。

System_CAPS_protpropertyDesignMode

示す値を取得するかどうか、 Component デザイン モードになっています。(Component から継承されます。)

System_CAPS_pubpropertyDiscardNull

ポートと受信バッファー間での送信時に、null バイトを無視するかどうかを示す値を取得または設定します。

System_CAPS_pubpropertyDsrHolding

DSR (Data Set Ready) シグナルの状態を取得します。

System_CAPS_pubpropertyDtrEnable

シリアル通信中に、DTR (Data Terminal Ready) シグナルを有効にする値を取得または設定します。

System_CAPS_pubpropertyEncoding

テキストの伝送前変換と伝送後変換のバイト エンコーディングを取得または設定します。

System_CAPS_protpropertyEvents

これに関連付けられているイベント ハンドラーの一覧を取得 Componentします。(Component から継承されます。)

System_CAPS_pubpropertyHandshake

Handshake からの値を使用したデータのシリアル ポート伝送のハンドシェイク プロトコルを取得または設定します。

System_CAPS_pubpropertyIsOpen

SerialPort オブジェクトの開いている状態または閉じた状態を示す値を取得します。

System_CAPS_pubpropertyNewLine

ReadLine メソッドと WriteLine メソッドの呼び出しの末尾を解釈する際に使用する値を取得または設定します。

System_CAPS_pubpropertyParity

パリティ チェック プロトコルを取得または設定します。

System_CAPS_pubpropertyParityReplace

パリティ エラーの発生時に、データ ストリーム内の無効なバイトを置き換えるバイトを取得または設定します。

System_CAPS_pubpropertyPortName

通信用のポートを取得または設定します。このポートには、使用可能なすべての COM ポートが含まれますが、これに限定されるわけではありません。

System_CAPS_pubpropertyReadBufferSize

SerialPort の入力バッファーのサイズを取得または設定します。

System_CAPS_pubpropertyReadTimeout

読み取り操作が完了していないときに、タイムアウトになるまでのミリ秒数を取得または設定します。

System_CAPS_pubpropertyReceivedBytesThreshold

DataReceived イベントが発生する前の、内部入力バッファーのバイト数を取得または設定します。

System_CAPS_pubpropertyRtsEnable

シリアル通信中に、RTS (Request To Send) シグナルが有効かどうかを示す値を取得または設定します。

System_CAPS_pubpropertySite

取得または設定、 ISiteComponentです。(Component から継承されます。)

System_CAPS_pubpropertyStopBits

バイトごとのストップ ビットの標準の数を取得または設定します。

System_CAPS_pubpropertyWriteBufferSize

シリアル ポートの出力バッファーのサイズを取得または設定します。

System_CAPS_pubpropertyWriteTimeout

書き込み操作が完了していないときに、タイムアウトになるまでのミリ秒数を取得または設定します。

名前説明
System_CAPS_pubmethodClose()

ポート接続を閉じ、IsOpen プロパティを false に設定し、内部 Stream オブジェクトを破棄します。

System_CAPS_pubmethodCreateObjRef(Type)

リモート オブジェクトとの通信に使用するプロキシの生成に必要なすべての関連情報を格納しているオブジェクトを作成します。(MarshalByRefObject から継承されます。)

System_CAPS_pubmethodDiscardInBuffer()

シリアル ドライバーの受信バッファーからデータを破棄します。

System_CAPS_pubmethodDiscardOutBuffer()

シリアル ドライバーの送信バッファーからデータを破棄します。

System_CAPS_pubmethodDispose()

Component によって使用されているすべてのリソースを解放します。(Component から継承されます。)

System_CAPS_protmethodDispose(Boolean)

SerialPort によって使用されているアンマネージ リソースを解放し、オプションでマネージ リソースも解放します。(Component.Dispose(Boolean) をオーバーライドします。)

System_CAPS_pubmethodEquals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。(Object から継承されます。)

System_CAPS_protmethodFinalize()

Component がガベージ コレクションによって回収される前に、アンマネージ リソースを解放し、その他のクリーンアップ操作を実行します。(Component から継承されます。)

System_CAPS_pubmethodGetHashCode()

既定のハッシュ関数として機能します。(Object から継承されます。)

System_CAPS_pubmethodGetLifetimeService()

このインスタンスの有効期間ポリシーを制御する現在の有効期間サービス オブジェクトを取得します。(MarshalByRefObject から継承されます。)

System_CAPS_pubmethodSystem_CAPS_staticGetPortNames()

現在のコンピューターのシリアル ポート名の配列を取得します。

System_CAPS_protmethodGetService(Type)

Component またはその Container で提供されるサービスを表すオブジェクトを返します。(Component から継承されます。)

System_CAPS_pubmethodGetType()

現在のインスタンスの Type を取得します。(Object から継承されます。)

System_CAPS_pubmethodInitializeLifetimeService()

このインスタンスの有効期間ポリシーを制御する有効期間サービス オブジェクトを取得します。(MarshalByRefObject から継承されます。)

System_CAPS_protmethodMemberwiseClone()

現在の Object の簡易コピーを作成します。(Object から継承されます。)

System_CAPS_protmethodMemberwiseClone(Boolean)

現在の簡易コピーを作成MarshalByRefObjectオブジェクト。(MarshalByRefObject から継承されます。)

System_CAPS_pubmethodOpen()

新しいシリアル ポート接続を開きます。

System_CAPS_pubmethodRead(Byte[], Int32, Int32)

SerialPort の入力バッファーから複数のバイトを読み取り、読み取ったバイトを指定したオフセットでバイト配列に書き込みます。

System_CAPS_pubmethodRead(Char[], Int32, Int32)

SerialPort の入力バッファーから複数の文字を読み取り、読み取った文字を指定したオフセットで文字配列に書き込みます。

System_CAPS_pubmethodReadByte()

SerialPort の入力バッファーから、同期で 1 バイトを読み取ります。

System_CAPS_pubmethodReadChar()

SerialPort の入力バッファーから、同期で 1 文字を読み取ります。

System_CAPS_pubmethodReadExisting()

ストリームと SerialPort オブジェクトの入力バッファーの両方で、エンコーディングに基づいて、即座に使用できるすべてのバイトを読み取ります。

System_CAPS_pubmethodReadLine()

入力バッファー内の NewLine 値まで読み取ります。

System_CAPS_pubmethodReadTo(String)

入力バッファー内の指定した value まで文字列を読み取ります。

System_CAPS_pubmethodToString()

返します。、 String の名前を含む、 Component, 、存在する場合。 このメソッドはオーバーライドできません。(Component から継承されます。)

System_CAPS_pubmethodWrite(Byte[], Int32, Int32)

バッファーのデータを使用して、指定したバイト数をシリアル ポートに書き込みます。

System_CAPS_pubmethodWrite(Char[], Int32, Int32)

バッファーのデータを使用して、指定した文字数をシリアル ポートに書き込みます。

System_CAPS_pubmethodWrite(String)

指定した文字列をシリアル ポートに書き込みます。

System_CAPS_pubmethodWriteLine(String)

指定した文字列と NewLine 値を出力バッファーに書き込みます。

名前説明
System_CAPS_pubfieldSystem_CAPS_staticInfiniteTimeout

タイムアウトが発生しないことを示します。

名前説明
System_CAPS_pubeventDataReceived

SerialPort オブジェクトによって表されるポートを介してデータが受信されたことを示します。

System_CAPS_pubeventDisposed

呼び出しによってコンポーネントが破棄されるときに発生、 Dispose メソッドです。(Component から継承されます。)

System_CAPS_pubeventErrorReceived

SerialPort オブジェクトによって表されるポートでエラーが発生したことを示します。

System_CAPS_pubeventPinChanged

非データ信号イベントが SerialPort オブジェクトによって表されるポートで発生したことを示します。

System_CAPS_noteメモ

この型の .NET Framework ソース コードを参照してください、 Reference Sourceします。 ソース コードをオンラインで参照、オフライン表示のリファレンスをダウンロードおよびデバッグ中にソース (パッチや更新を含む) をステップsee instructions.

このクラスを使用すると、シリアル ポートのファイル リソースを制御できます。 このクラスは、同期およびイベント ドリブン I/O、暗証番号 (pin) とブレーク状態へのアクセス、およびシリアル ドライバーのプロパティへのアクセスを提供します。 このクラスの機能をラップして、内部でさらに、 Stream オブジェクトを介してアクセスできる、 BaseStream プロパティには、wrap またはストリームを使用するクラスに渡されるとします。

SerialPort クラスは、次のエンコードをサポートしています: ASCIIEncoding, 、UTF8Encoding, 、UnicodeEncoding, 、UTF32Encoding, 、エンコーディングのコード ページが 50000 未満か、コード ページは 54936 mscorlib.dll に定義されているとします。 代替のエンコーディングを使用できますが、使用する必要があります、 ReadByte または Write メソッドと、自分でエンコードを実行します。

使用する、 GetPortNames 現在のコンピューターの有効なポートを取得します。

場合、 SerialPort オブジェクトが読み取り操作中にブロックされた、スレッドを中止できません。 基数を閉じるか代わりに、ストリームまたは破棄、 SerialPort オブジェクトです。

次のコード例では、使用、 SerialPort ヌル モデム ケーブルで接続されている 2 つの別々 のコンピューターからのチャットを行う 2 人のユーザーを許可するクラス。 この例では、ユーザーは、ポート設定とユーザー名のチャットする前に確認します。 両方のコンピューターには、この例の完全な機能を実現するためにプログラムを実行する必要があります。

// Use this code inside a project created with the Visual C# > Windows Desktop > Console Application template.
// Replace the code in Program.cs with this code.

using System;
using System.IO.Ports;
using System.Threading;

public class PortChat
{
    static bool _continue;
    static SerialPort _serialPort;

    public static void Main()
    {
        string name;
        string message;
        StringComparer stringComparer = StringComparer.OrdinalIgnoreCase;
        Thread readThread = new Thread(Read);

        // Create a new SerialPort object with default settings.
        _serialPort = new SerialPort();

        // Allow the user to set the appropriate properties.
        _serialPort.PortName = SetPortName(_serialPort.PortName);
        _serialPort.BaudRate = SetPortBaudRate(_serialPort.BaudRate);
        _serialPort.Parity = SetPortParity(_serialPort.Parity);
        _serialPort.DataBits = SetPortDataBits(_serialPort.DataBits);
        _serialPort.StopBits = SetPortStopBits(_serialPort.StopBits);
        _serialPort.Handshake = SetPortHandshake(_serialPort.Handshake);

        // Set the read/write timeouts
        _serialPort.ReadTimeout = 500;
        _serialPort.WriteTimeout = 500;

        _serialPort.Open();
        _continue = true;
        readThread.Start();

        Console.Write("Name: ");
        name = Console.ReadLine();

        Console.WriteLine("Type QUIT to exit");

        while (_continue)
        {
            message = Console.ReadLine();

            if (stringComparer.Equals("quit", message))
            {
                _continue = false;
            }
            else
            {
                _serialPort.WriteLine(
                    String.Format("<{0}>: {1}", name, message));
            }
        }

        readThread.Join();
        _serialPort.Close();
    }

    public static void Read()
    {
        while (_continue)
        {
            try
            {
                string message = _serialPort.ReadLine();
                Console.WriteLine(message);
            }
            catch (TimeoutException) { }
        }
    }

    // Display Port values and prompt user to enter a port.
    public static string SetPortName(string defaultPortName)
    {
        string portName;

        Console.WriteLine("Available Ports:");
        foreach (string s in SerialPort.GetPortNames())
        {
            Console.WriteLine("   {0}", s);
        }

        Console.Write("Enter COM port value (Default: {0}): ", defaultPortName);
        portName = Console.ReadLine();

        if (portName == "" || !(portName.ToLower()).StartsWith("com"))
        {
            portName = defaultPortName;
        }
        return portName;
    }
    // Display BaudRate values and prompt user to enter a value.
    public static int SetPortBaudRate(int defaultPortBaudRate)
    {
        string baudRate;

        Console.Write("Baud Rate(default:{0}): ", defaultPortBaudRate);
        baudRate = Console.ReadLine();

        if (baudRate == "")
        {
            baudRate = defaultPortBaudRate.ToString();
        }

        return int.Parse(baudRate);
    }

    // Display PortParity values and prompt user to enter a value.
    public static Parity SetPortParity(Parity defaultPortParity)
    {
        string parity;

        Console.WriteLine("Available Parity options:");
        foreach (string s in Enum.GetNames(typeof(Parity)))
        {
            Console.WriteLine("   {0}", s);
        }

        Console.Write("Enter Parity value (Default: {0}):", defaultPortParity.ToString(), true);
        parity = Console.ReadLine();

        if (parity == "")
        {
            parity = defaultPortParity.ToString();
        }

        return (Parity)Enum.Parse(typeof(Parity), parity, true);
    }
    // Display DataBits values and prompt user to enter a value.
    public static int SetPortDataBits(int defaultPortDataBits)
    {
        string dataBits;

        Console.Write("Enter DataBits value (Default: {0}): ", defaultPortDataBits);
        dataBits = Console.ReadLine();

        if (dataBits == "")
        {
            dataBits = defaultPortDataBits.ToString();
        }

        return int.Parse(dataBits.ToUpperInvariant());
    }

    // Display StopBits values and prompt user to enter a value.
    public static StopBits SetPortStopBits(StopBits defaultPortStopBits)
    {
        string stopBits;

        Console.WriteLine("Available StopBits options:");
        foreach (string s in Enum.GetNames(typeof(StopBits)))
        {
            Console.WriteLine("   {0}", s);
        }

        Console.Write("Enter StopBits value (None is not supported and \n" +
         "raises an ArgumentOutOfRangeException. \n (Default: {0}):", defaultPortStopBits.ToString());
        stopBits = Console.ReadLine();

        if (stopBits == "" )
        {
            stopBits = defaultPortStopBits.ToString();
        }

        return (StopBits)Enum.Parse(typeof(StopBits), stopBits, true);
    }
    public static Handshake SetPortHandshake(Handshake defaultPortHandshake)
    {
        string handshake;

        Console.WriteLine("Available Handshake options:");
        foreach (string s in Enum.GetNames(typeof(Handshake)))
        {
            Console.WriteLine("   {0}", s);
        }

        Console.Write("Enter Handshake value (Default: {0}):", defaultPortHandshake.ToString());
        handshake = Console.ReadLine();

        if (handshake == "")
        {
            handshake = defaultPortHandshake.ToString();
        }

        return (Handshake)Enum.Parse(typeof(Handshake), handshake, true);
    }
}

SecurityPermission

for the ability to call unmanaged code. Associated enumeration: F:System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode

.NET Framework
2.0 以降で使用可能

この型のパブリック static (Visual Basic では Shared ) メンバーはスレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

トップに戻る
表示: