メインコンテンツまでスキップ
バージョン: 開発中

SET CHANNEL

SET CHANNEL ( port ; settings
SET CHANNEL ( operation ; document )

引数説明
portIntegerシリアルポート番号
settingsIntegerシリアルポート設定
SET CHANNEL ( operation ; document )
引数説明
operationInteger行うドキュメント処理
documentTextドキュメント名

説明

SET CHANNEL コマンドはシリアルポートまたはドキュメントを開きます。このコマンドでは、同時に1つのポートまたは1つのドキュメントファイルしか開くことができません。開いたシリアルポートを閉じるにはSET CHANNEL(11)を用います。

Historical Note: このコマンドはもともと、シリアルポートやディスク上のドキュメントを用いて作業を実行するために使用された最初の4Dコマンドです。以来、新しいコマンドが追加されています。現在では、ディスク上のドキュメントを使った作業を実行する際には、Open document, Create document そして Append documentといったコマンドを使用します。これらのコマンドを利用し、SEND PACKETRECEIVE PACKETを使用してドキュメントに文字を書き込んだり、読み込むことができます(この2つのコマンドもSET CHANNELとともに使用できます)。しかし、SEND VARIABLE, RECEIVE VARIABLE, SEND RECORD そして RECEIVE RECORDコマンドを使用したい場合には、ディスクのドキュメントにアクセスする際にSET CHANNELを使用しなくてはなりません。

SET CHANNELの説明は、2つの部分からなります:

  • シリアルポートに使用
  • ドキュメントに使用

シリアルポートに使用 - SET CHANNEL (port;settings)

SET CHANNEL コマンドの第一の形式はシリアルポートを開き、プロトコルや他のポート情報を設定します。データの送信は、SEND PACKET, SEND RECORD または SEND VARIABLEで行えます。データの受信は、RECEIVE BUFFER, RECEIVE PACKET, RECEIVE RECORD または RECEIVE VARIABLEで行います。

ポート引数

最初の引数portで、ポートとプロトコルを指定します。

シリアルポートは99まで使用できます(一度に1つ)。以下の表はポートの値を示します。

ポートの値説明
0プリンタポート (Macintosh) または 無手順のCOM2 (PC)
1モデムポート (Macintosh) または 無手順のCOM1 (PC)
20プリンタポート (Macintosh) または XON/XOFFのようなソフトウェアフローのCOM2 (PC)
21モデムポート (Macintosh) または XON/XOFFのようなソフトウェアフローのCOM1 (PC)
30プリンタポート (Macintosh) または RTS/CTSのようなハードウェアフローのCOM2 (PC)
31モデムポート (Macintosh) または RTS/CTSのようなハードウェアフローのCOM1 (PC)
101 to 199無手順のシリアル通信
201 to 299ソフトウェアフロー制御(XON/XOFF)のシリアルポート通信
301 to 399ハードウェアフロー制御(RTS/CTS)のシリアルポート通信

重要: portに渡す値は、オペレーションシステムで認識される既存のシリアルCOMポートを示すものでなくてはなりません。例えば、101、103、125という値を使用できるようにするには、シリアルポートCOM1、COM3、COM25が必ず設定されている必要があります。

シリアルポートの注意点

標準の設定で、Mac OSとWindowsでは2つのシリアルポートが提供されています。Mac OSではモデムポートとプリンタポート、WindowsではCOM1とCOM2ポートです。しかしながら、シリアルポートはエクステンションボードを使用 して追加することができます。もともと4Dは2つの標準のシリアルポートのみサポートし、のちに追加されたポートをサポートしました。互換性のため、両方 をサポートするシステムとなっています。

  • 標準のシリアルポート(プリンター/COM2またはモデム/COM1)にアクセスするには、port引数に0、1、20、21、30、31のいずれかを指定(以前の使用法に相当)するか、100以上の値にします(以下の説明を参照)。
  • 追加したシリアルポートにアクセスするには、値をN+100にする必要があります(Nはポート番号)。ソフトウェアフローまたはハードウェアフローを選択するために、先の値(N+100)に100または200を加えることも考慮します。
例題 1

無手順のプリンタ/COM2ポートを使用する場合は、以下のシンタックスの1つを使用します:

 SET CHANNEL(0;param)

または

 SET CHANNEL(102;param)
例題 2

ソフトウェアフロー制御(XON/XOFF)のモデム/COM1ポートを使用する場合は、以下のシンタックスを使う必要があります:

 SET CHANNEL(21;param)

または

 SET CHANNEL(201;param)
例題 3

ハードウェアフロー制御(RTS/CTS等)のCOM25を使用する場合は、以下のシンタックスを使用する必要があります:

 SET CHANNEL(325;param)

settings 引数

settings引数は転送速度、データビット、ストップビット、パリティを指定します。以下の表に示した転送速度、データビット、ストップビット、パリティの値を加算してsettingsの値を指定します。例えば、転送速度を1200ボー、データビットを8ビット、ストップビットを1、パリティをなし、と設定する場合には、94 + 3072 + 16384 + 0 = 19550と計算します。引数settingsの値として19550を指定します。

settings 引数に説明
加算する値
転送速度380300
(ボー単位)189600
941200
621800
462400
303600
224800
147200
109600
419200
228800
138400
057600
1022115200
1021230400
データビット05
20486
10247
30728
ストップビット163841
-327681.5
-163842
パリティ0なし
4096奇数
12288偶数

Tip: portsettings に計算され渡されるさまざまな数値は、COM1...COM99の値を除き、テーマの定義済み変数で提供されています。COM1...COM99はリテラル数値を使用してください。

ディスク上のドキュメントを操作 - SET CHANNEL(operation;document)

SET CHANNELコマンドの第2の形式は、ドキュメントファイルの作成やオープンおよび、クローズを行います。コマンドと異なり、同時に1つのドキュメントファイルしか開くことができません。ドキュメントファイルは、読み込みと書き込みの両方が可能です。

operation引数で、document引数で指定したドキュメントに対する処理を指定します。以下の表に、operation の値と、その結果としてdocumentに対して行われる処理を示します。一番目の列はoperationで利用可能な値、二番目の列はdocumentで利用可能な値、三番目の列は処理を示します。

例えば、ファイルを開くダイアログボックスを表示して、テキストファイルを開く場合には、以下のように記述します:

 SET CHANNEL(13;"")
OperationDocument結果
10文字列文字列で指定されたドキュメントを開く。ドキュメントが存在しない場合、作成されます。
10"" (空の文字列)ファイルを開くダイアログを表示しファイルを開く。すべてのファイルタイプが表示されます。
11なし開かれたファイルを閉じる。
12"" (空の文字列)ファイルを保存ダイアログを表示し新しいファイルを作成。
13"" (空の文字列)ファイルを開くダイアログを表示しファイルを開く。テキストファイルのみが表示されます。

この表に示した処理はすべて、適切な場合、システム変数Documentに値を設定します。また、処理が正常に行われると、システム変数OKに1が代入されます。それ以外の場合には0が代入されます。

例題 4

RECEIVE BUFFER, SET TIMEOUT そして RECEIVE RECORDの例題を参照。

参照

Append document
Communications
Create document
GET SERIAL PORT MAPPING
Open document
RECEIVE BUFFER
RECEIVE PACKET
RECEIVE RECORD
RECEIVE VARIABLE
SEND PACKET
SEND RECORD
SEND VARIABLE
SET TIMEOUT

プロパティ

コマンド番号77
スレッドセーフである
システム変数を更新するOK、Document