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 が確保した配列のサイズを超えないようにします。