ターミナル入出力での $ZA
$ZA は、各ビットが特定の情報を示すビット・フラグのシーケンスとして解釈されます。以下のテーブルは、可能な値、その意味、およびモジュロ (#) 演算子と整数除算 (\) 演算子を使用してそれらをテストする方法を示します。
ビット |
テスト |
意味 |
0 |
$ZA#2 |
ブレークが有効であったか否かにかかわらず、<CTRL-C> を受信しました。 |
1 |
$ZA\2#2 |
READ がタイムアウトになりました。 |
2 |
$ZA\4#2 |
入出力エラー |
8 |
$ZA\256#2 |
InterSystems IRIS が無効なエスケープ・シーケンスを検出しました。 |
9 |
$ZA\512#2 |
ハードウェアがパリティ・エラーもしくはフレーミング・エラーを検出しました。 |
11 |
$ZA\2048#2 |
プロセスが主デバイスから切断されました。 |
12 |
$ZA\4096#2 |
COM ポートの場合 : CTS (送信可)。モデムからそのコンピュータに送信される、転送が続行可能であることを示すシグナル。TCP デバイスの場合 : デバイスはサーバ・モードで機能しています。 |
13 |
$ZA\8192#2 |
COM ポートの場合 : DSR (データ・セット・レディ)。モデムからそのコンピュータに送信される、処理の準備が整っていることを示すシグナル。TCP デバイスの場合 : デバイスは現在、リモート・ホストと対話している接続状態です。 |
14 |
$ZA\16384#2 |
True の場合、リングが設定されます。 |
15 |
$ZA\32768#2 |
True の場合、キャリア検出が設定されます。 |
16 |
$ZA\65536#2 |
CE_BREAK COM ポート・エラー状態 |
17 |
$ZA\131072#2 |
CE_FRAME COM ポート・エラー状態 |
18 |
$ZA\262144#2 |
CE_IOE COM ポート・エラー状態 |
19 |
$ZA\524288#2 |
CE_OVERRUN COM ポート・エラー状態 |
20 |
$ZA\1048576#2 |
CE_RXPARITY COM ポート・エラー状態 |
21 |
$ZA\2097152#2 |
CE_TXFULL COM ポート・エラー状態 |
22 |
$ZA\4194304#2 |
TXHOLD COM ポート・エラー状態。ClearCommError() によって返されるエラー・マスクで、fCtsHold、fDsrHold、fRlsdHold、fXoffHold、fXoffSent のいずれかのフィールドが True の場合に、設定されます。 |
24 & 25 |
$ZA\16777216#4 |
InterSystems IRIS で要求された DTR (データ端末レディ) 設定 : 0 = DTR オフ。1 = DTR オン。2 = DTR ハンドシェーク。(1) に設定されている場合、データの転送および受信の準備が整っていることを示します。 |
$ZA がエラーを示す状況は多くありますが、$ZTRAP にトラップして、プログラム・フローに割り込むことはありません。(ブレークを有効にして <CTRL-C> を実行すると、$ZTRAP にトラップします)。これらのエラーに関係するプログラムは、READ を実行するたびに $ZA をチェックする必要があります。
COM ポートではビット 12 ~ 15、24 および 25 を使用して、モデム制御ピンのステータスを報告します。これは、ポートの InterSystems IRIS モデム制御チェックがオンになっているかどうかにかかわらず実行できます。ユーザは OPEN または USE コマンドの portstate パラメータ (バイト 8) を設定して、COM ポートの $ZA エラー報告を有効または無効にできます。エラー報告が有効になっている場合は、ポートのエラー状態がビット 16 ~ 22 で報告されます。詳細は、"入出力デバイス・ガイド" の "ターミナル入出力" を参照してください。
%SYSTEM.ProcessOpens in a new tab クラスの DisconnectErr()Opens in a new tab メソッドを使用すると、現在のプロセスでのモデム切断が検知されるようになります。システム全体の既定の動作は、Config.MiscellaneousOpens in a new tab クラスの DisconnectErrOpens in a new tab プロパティで設定できます。