入出力のためにシリアルポートを開き、ファイル操作のように使います。
構文:
用法:
result = Open Com( options[,] AS[#] filenumber )
パラメタ:
options
string は、ポートをコントロールために使うオプションです。
filenumber
ポートに結びつけるファイル番号。
戻り値:
Open Com() は、32 bit
Long を返します
:成功すると (
0) (ゼロ)、それ以外の場合は (
0) 以外のエラーコードを返します。
記述:
主なパラメタは、少なくとも、どのコミュニケーション・ポートを開けるかを説明する
string です。
パラメタは、下記の形式です:
"COMn:
[ baudrate ][ , [ parity ][ , [ data_bits ][ , [ stop_bits ][ , [ extended_options ]]]]]"
ここで、
n
開ける Com ポートで、
「1」、「2」、「3」、「4」などです。
いくつかのプラットフォームは、オペレーティング・システムが設定される方法に従い、より多くのシリアルポートをサポートします。
n が与えられない場合、「COM:」は、「COM1:」に位置付けられます。
リナックスの場合、「COM:」は、
"/dev/modem" に位置付けられます。
baudrate
「300」(デフォルト)、「1200」…など。
parity
「N」(無し)、「E」(偶数、デフォルト)、「O」(奇数)、「S」(空白)、「M」(マーク)、「PE」
(QB-quirk: checked, 偶数パリティ)
data_bits
「5」、「6」、「7」(デフォルト)、「8」。
stop_bits
「1」、「1.5」または「2」。
(デフォルト値は、ボーレートとデータ・ビットに依存します。下の表を参考ください。)
状態 | ストップビットのデフォルト番号 |
ボーレート<=110 で データ・ビット=5 | 1.5 |
ボーレート<=110 で データ・ビット>=6 | 2
|
ボーレート>110 | 1
|
extended_options
その他、種々雑多なオプション。(以下の表を参考下さい。)
オプション | 動作 |
'CSn' |
CTS(clear to send:モデムからの送信許諾、受信準備完了)持続時間を設定します(単位はミリ秒) (n>=0)。0 = turn off、デフォルトは、1000。 |
'DSn' |
DSR (Data Set Ready 回線が接続されて通信可能) 持続時間を設定します(単位はミリ秒) (n>=0)。0 = turn off、デフォルトは、1000。
|
'CDn' |
Carrier Detect(アナログモデムのキャリア波の検出を知らせる信号)持続時間を設定します(単位はミリ秒) (n>=0)。0 = turn off
|
'OPn' |
'Open Timeout' を設定します。(単位はミリ秒) (n>=0)、0 = turn off
|
'TBn' | 'Transmit Buffer' を設定します。size (n>=0), 0 = default, depends on platform |
'RBn' | 'Receive Buffer' を設定します。size (n>=0), 0 = default, depends on platform |
'RS' |
RTS(Request to Send モデムに対する送信要求)検出を抑制します。 |
'LF' |
ASCIIモードで、交信します(全ての CR に LF を加えます)--Win32はこれをサポートしません。
|
'ASC' | 'LF'と同じ |
'BIN' |
LF の反対。いつも働くでしょう。
|
'PE' |
'Parity' チェックを動作させます。 |
'DT'
|
CLOSEの後に、DTR(Data Terminal Ready 端末が回線接続して通信可能) を有効にし続けます。 |
'FE' |
誤りのときに無効文字を捨てます。
|
'ME' | すべてのエラーを無視します。 |
'IRn' |
COMのIRQ番号
(DOSの上でだけ、サポートされる (?))
|
COMポート以外は、すべての項目が任意です。
baudrate,
parity,
data_bits,
stop_bits の順番は、固定されています。
飛ばした固定項目(
baudrate など)は、空にします。
Open Com が返すエラーコードは、次の行の
Err を使ってチェックできます。 関数バージョンの
Open Com は、エラー・コードを直接 32 bit
Long で返します。
例:
Open Com "COM1:9600,N,,2" As 1
9600ボー、パリティー無し、7データ・ビットおよび2ストップ・ビットで、COM1を開きます。
Open Com "COM1:115200" As 1
115200ボー、「偶数」パリティー、7データ・ビットおよび1ストップビットで、COM1を開きます。
プラットホーム差:
-
Windowsプラットフォームの場合
"COM:" は、"COM1:" にマップされます
ボーレートは符号なし 32ビット整数である必要があり、オペレーティング・システムに直接渡されます。
-
リナックス環境では、
"COM:" は、"/dev/modem" に位置付けます。
"COM1:" は、"/dev/ttyS0" に位置付けます。
"COM2:" は、"/dev/ttyS1" などに位置付けます。
"/dev/xyz:" は、"/dev/xyz" などに位置付けます。
ボーレートは以下のいずれかでなければなりません:
50, 150, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800, 500000, 576000, 921600, 1000000, 1152000
fbc >= 1.09.0, では以下のボーレートも使えます: 1500000, 2000000, 2500000, 3000000, 3500000, 4000000
サポートされるボーレートは、fbc コンパイラ自体がコンパイルおよび構築されたシステムによって異なります。
-
DOS シリアル・ドライバーは、実験的です。COM ポート 1〜4 にアクセスできます。
デフォルトとして、以下のベース io と、IRQ を使用します:
COM1 - &h3f8 - IRQ4
COM2 - &h2f8 - IRQ3
COM3 - &h3e8 - IRQ4
COM4 - &h2e8 - IRQ3
代替 IRQ は、"IRn" プロトコル オプションを使って指定できます。
n は 3 〜 7 (最初の PIC) です。 fbc 1.10.0 以降、n は 8 から 15 (2 番目の PIC) にすることもできます。
以下は現在サポートされていません: 従属 PIC の IRQ、代替ベース I/O アドレス、タイムアウトと QB で検出されたほとんどのエラー、ハードウェア フロー制御、FIFO。
"COM:" は "COM1:" にマップされます。
ボーレートは 50 から 115200 の間でなければなりません。
方言差:
- -lang qb 方言では、古い構文 OPEN "COMx:... が使えます。
QBからの違い:
- QB の構文は以下です。
OPEN "COMx:[baudrate] [,parity, [data_bits, [stop_bits, [extended_options]]]]" FOR INPUT|OUTPUT|RANDOM AS [#] n
-
QBでは、「COM1:」と「COM2:」だけをサポートします。
FreeBASICでは、正しく構成されたシリアル・ポートを、全て使うことができます。
参照: