シリアル通信用の関数群です。組み込み系の仕事してると、
ボードとの通信は大体シリアルなので、日常的にシリアル
通信を使います。なでしこにはRS232Cのプラグインも入って
ますが、以前使ったら文字列しか送受信できないみたいだったので
再定義します。
------ここから------
・シリアルオープン
書式:シリアルオープン([int]ポート、[int]ボーレート)
戻値:[int]ハンドル
説明:ポートとボーレートを指定して、シリアルポートをオープン
する。ポート、ボーレート以外のパラメータは、
データ :8bit
パリティ :なし
ストップ :1bit
フロー制御:なし
となる。
成功した場合は0以上のハンドル値が返される。失敗した場合は
-1が返される。
・シリアル送信
書式:シリアル送信([int]ハンドル、[int]バッファ、[int]サイズ)
戻値:[int]サイズ
説明:シリアルオープンで取得済のハンドル、及びバッファ確保した
ハンドルを指定してサイズ分のデータを送信する。
成功した場合には送信出来たサイズが、失敗した場合には-1が
返される。
・シリアル受信
書式:シリアル受信([int]ハンドル、[int]バッファ、[int]サイズ)
戻値:[int]サイズ
説明:シリアルオープンで取得済のハンドル、及びバッファ確保した
ハンドルを指定してサイズ分のデータを受信する。
成功した場合には受信サイズが、失敗した場合には-1が
返される。
・シリアルデータサイズ
書式:シリアルデータサイズ([int]ハンドル)
戻値:[int]サイズ
説明:シリアルオープンで取得済のハンドルで指定されるシリアル
ポートに対して、そのバッファに受信されているデータ
サイズを取得する。
ここでのバッファとは上記バッファ確保したものではなく
Windowsのシリアルドライバが保持している受信バッファで
ある。
------ここまで------
ネットワーク通信同様、受信にはスレッド&リングバッファを使いたい
ところですが、こちらも受信関数だけです。リングバッファだけは作って
みたものの…。Windowsの場合はWindowsのデバドラ自体がバッファ
持ってるので、スレッドがなくても処理は可能です。
0 件のコメント:
新しいコメントは書き込めません。