Ruby用シリアル(RS-232C)通信ライブラリ(wincom.rb)です。Windows上で動作します。 ruby 1.9.3p0(ActiveScriptRuby)で動作確認してます。wincom.rbのダウンロード(wincomV211.lzh)
Serialクラス シリアル通信を行うクラスです。
基本的内容の設定を行います。
| 名称 | 内容 | 初期値 |
|---|---|---|
| comno | 通信ポートNo. 1~ | 1 |
| bRate | 通信速度 CBR_110,CBR_300,CBR_600,CBR_1200,CBR_2400, CBR_4800,CBR_9600,CBR_14400,CBR_19200,CBR_38400,CBR_57600, CBR_115200,CBR_128000,CBR_256000 のいずれか |
CBR_9600 |
| byteSize | 1文字長 4,5,6,7,8 のいずれか | 8 |
| parity | パリティ EVENPARITY,MARKPARITY,NOPARITY,ODDPARITY,SPACEPARITY のいずれか | NOPARITY |
| stopbit | ストップビット ONESTOPBIT,ONE5STOPBITS,TWOSTOPBITS のいずれか | ONESTOPBIT |
| recbuf | 受信バッファサイズ(バイト) | 512 |
| senbuf | 送信バッファサイズ(バイト) | 512 |
デバイスコントロール関係の設定を行います。
| 名称 | 内容 | 初期値 |
|---|---|---|
| fBinary | バイナリィモード 0:無効 1:有効 Win32apiでは、常に1:有効とします。 | 1 |
| fParity | パリティチェック 0:無効 1:有効 | 1 |
| fOutxCtsFlow | CTS出力フロー制御 0:無効 1:有効(CTS信号の監視を行う) | 1 |
| fOutxDsrFlow | DSR出力フロー制御 0:無効 1:有効(DSR信号の監視を行う) | 1 |
| fDTRControl | DTRフロー制御の種類 DTR_CONTROL_DISABLE(無効) DTR_CONTROL_ENABLE(有効) DTR_CONTROL_HANDSHAKE(ハンドシェイク) |
DTR_CONTROL_ENABLE |
| fDsrSensitivity | DSR信号の状態を検出できるかどうかを指定 0:無効 1:DSR信号がオンの時のみ受信文字を取り込む |
1 |
| fTXContinueOnXoff | 受信時にXOFF文字送信後、こちら側の送信を継続するか停止するかの指定。 0:しない 1:こちら側の送信を継続する | 0 |
| fOutX | 送信時のXON/XOFFフロー制御の有効、無効を指定 0:無効 1:有効 | 0 |
| fInX | 受信時のXON/XOFFフロー制御の有効、無効を指定 0:無効 1:有効 | 0 |
| fErrorChar | エラーによる置換の有効、無効を指定 0:無効 1:有効 | 0 |
| fNull | ヌル文字の廃棄有効無効 0:無効 1:有効(ヌル文字廃棄) | 0 |
| fRtsControl | RTSフロー制御の種類 RTS_CONTROL_DISABLE:無効, RTS_CONTROL_ENABLE:有効 RTS_CONTROL_HANDSHAKE:送信バッファ半分以下でRTSハイ,4分の3以上でロー RTS_CONTROL_TOGGLE:送信文字ありでRTS信号ハイ、なしでロー |
RTS_CONTROL_ENABLE |
| fAbortOnError | エラー時に読み取り書き込みを中止するかの指定 0:中止しない 1:中止する | 0 |
タイムアウトの指定を行います。
| 名称 | 内容 | 初期値 |
|---|---|---|
| readIntervalTimeout | 受信間隔タイムアウト | 1000 msec |
| readTotalTimeoutMultiplier | 受信合計タイムアウト係数 | 0 msec |
| readTotalTimeoutConstant | 受信合計タイムアウト定数 | 0 msec |
| writeTotalTimeoutMultiplier | 送信合計タイムアウト係数 | 20 msec |
| writeTotalTimeoutConstant | 送信合計タイムアウト定数 | 1000 msec |
タイムアウトは、以下の2種類が指定出来ます。
送信タイムアウトが0の場合には、要求バイト数の送信が完了するかエラーが発生するまで送信処理が完了しません。 受信タイムアウトと間隔タイムアウトの両方が0の場合には、要求バイト数の受信が完了するかエラーが発生するまで 受信処理が完了しません。受信タイムアウトが0で間隔タイムアウトを指定した場合は、受信可能文字を読み取り 受信処理を完了します。
通信ポートをOPENします。
通信デバイスの制御を行います。
| ifunc | 内容 |
| SETXOFF | XOFF 文字を受信したときのように送信を行います。 |
| SETXON | XON 文字を受信したときのように送信を行います。 |
| SETRTS | RTS( 送信要求)信号を送信します。 |
| CLRRTS | RTS( 送信要求)信号を消去します。 |
| SETDTR | DTR( データ端末準備完了)信号を送信します。 |
| CLRDTR | DTR( データ端末準備完了)信号を消去します。 |
| RESETDEV | 可能ならばリセットする (LPT デバイス) |
| SETBREAK | ブレーク状態のセット |
| CLRBREAK | ブレーク状態のクリア |
通信ポートをCLOSEします。
文字列の送信を行います。
schar 送信文字列
文字列の受信を行います。
履歴