2013年8月24日土曜日

【なでしこ】プラグインを作ってみる ~設計編 その9~

シリアル通信用の関数群です。組み込み系の仕事してると、
ボードとの通信は大体シリアルなので、日常的にシリアル
通信を使います。なでしこにはRS232Cのプラグインも入って
ますが、以前使ったら文字列しか送受信できないみたいだったので
再定義します。

------ここから------

 ・シリアルオープン
    書式:シリアルオープン([int]ポート、[int]ボーレート)
    戻値:[int]ハンドル
    説明:ポートとボーレートを指定して、シリアルポートをオープン
        する。ポート、ボーレート以外のパラメータは、
        
           データ  :8bit
            パリティ :なし
            ストップ :1bit
            フロー制御:なし
         
          となる。
        
          成功した場合は0以上のハンドル値が返される。失敗した場合は
          -1が返される。

・シリアル送信
    書式:シリアル送信([int]ハンドル、[int]バッファ、[int]サイズ)
    戻値:[int]サイズ
    説明:シリアルオープンで取得済のハンドル、及びバッファ確保した
         ハンドルを指定してサイズ分のデータを送信する。
        
          成功した場合には送信出来たサイズが、失敗した場合には-1が
          返される。

・シリアル受信
    書式:シリアル受信([int]ハンドル、[int]バッファ、[int]サイズ)
    戻値:[int]サイズ
    説明:シリアルオープンで取得済のハンドル、及びバッファ確保した
         ハンドルを指定してサイズ分のデータを受信する。

          成功した場合には受信サイズが、失敗した場合には-1が
          返される。

・シリアルデータサイズ
    書式:シリアルデータサイズ([int]ハンドル)
    戻値:[int]サイズ
    説明:シリアルオープンで取得済のハンドルで指定されるシリアル
       ポートに対して、そのバッファに受信されているデータ
          サイズを取得する。
        
          ここでのバッファとは上記バッファ確保したものではなく
          Windowsのシリアルドライバが保持している受信バッファで
          ある。

------ここまで------

ネットワーク通信同様、受信にはスレッド&リングバッファを使いたい
ところですが、こちらも受信関数だけです。リングバッファだけは作って
みたものの…。Windowsの場合はWindowsのデバドラ自体がバッファ
持ってるので、スレッドがなくても処理は可能です。

0 件のコメント: