C#でシリアル通信を行う
(その3)

シリアルポートからデータを送信する

[送信]ボタンと押したときに、テキストボックスから送信する文字列を取り出してシリアルポートから送信します。

データ送信が完了した後に、二重送信を防止する為にテキストボックスをクリアします。

サンプルコードを以下に示します。


/****************************************************************************/
/*!
 *  @brief  [送信]ボタンを押して、データ送信を行う.
 *
 *  @param  [in]    sender  イベントの送信元のオブジェクト.
 *  @param  [in]    e       イベント情報.
 *
 *  @retval なし.
 */
private void sndButton_Click(object sender, EventArgs e)
{
    //! シリアルポートをオープンしていない場合、処理を行わない.
    if( serialPort1.IsOpen == false ){
        return;
    }
    //! テキストボックスから、送信するテキストを取り出す.
    String data = sndTextBox.Text;

    //! 送信するテキストがない場合、データ送信は行わない.
    if( string.IsNullOrEmpty( data ) == true ){
        return;
    }

    try {
        //! シリアルポートからテキストを送信する.
        serialPort1.Write( data );

        //! 送信データを入力するテキストボックスをクリアする.
        sndTextBox.Clear();
    }
    catch ( Exception ex ){
        MessageBox.Show( ex.Message );
    }
}
	

シリアルポートから文字列を送信する

SerialPortクラスのWrite()メソッドを呼び出してシリアルポートから文字列を送信します。


    public void Write( string text )
	

引数説明
text

送信する文字列。

バイナリデータを送信する場合、Write()メソッドの引数を以下のようにします。


    public void Write( byte[] buffer, int offset, int count )
	

引数説明
buffer

送信データを格納したバイト型の配列。

offset

送信を開始する配列の位置。

count

送信するバイト数。

当然のことですが、offset + count が確保した配列のサイズを超えないようにします。



Windowsは米国Microsoft Corporationの登録商標です。