通信管理 XNF/AS プログラマーズガイド HSC編
struct lcb { unsigned short lb_comd; /* コマンド */ unsigned short lb_comdx; /* コマンド拡張部 */ short lb_ccod; /* 終了コード */ short lb_errc; /* エラー詳細コード */ short lb_xnfst; /* 通信管理状態コード */ unsigned short lb_rsts; /* 受信ステータス */ short lb_rsiz; /* 受信バッファサイズ */ short lb_ssiz; /* 送信データサイズ */ unsigned char *lb_rbuf; /* 受信バッファポインタ */ unsigned char *lb_sbuf; /* 送信バッファポインタ */ short lb_setsiz; /* 回線交換 選択信号サイズ */ short lb_idsiz; /* 回線交換 ID信号受信バッファサイズ */ unsigned char *lb_setdl; /* 回線交換 選択信号バッファポインタ */ unsigned char *lb_id; /* 回線交換 ID信号受信バッファポインタ */ short lb_tmidsz; /* ターミナルID受信バッファサイズ */ unsigned char *lb_tmid; /* ターミナルID受信バッファポインタ */ }; |
各ビット単位に意味を持ち,表3-6に示すマスク名で設定します。
表3-6 コマンド一覧と内容
項目 | マスク名 | 値 | 意味 | 指定できる関数 | |
---|---|---|---|---|---|
送信テキストに対する指示 | 透過/非透過モードの指定 | CTXT_NP | 0x0000 | 非透過モード | BT_WCTN( ) BT_WTXT( ) |
CTXT_PM | 0x4000 | 透過モード | |||
ヘッダの有無の指定 | CTXT_SX | 0x0000 | ヘッダなし(STXで始まる) | ||
CTXT_SH | 0x2000 | ヘッダあり(SOHで始まる) | |||
ETB分割の指定 | CTXT_EB | 0x0000 | ETBで終わる | ||
CTXT_EX | 0x1000 | ETXで終わる | |||
BT_WRST関数省略指定 | CLG_RST | 0x0020 | テキスト送信後応答受信し,EOT送信 | ||
受信テキストに対する応答の指示 | CLG_ACK | 0x0000 | ACK0またはACK1を応答後テキストまたはEOT受信待ち | BT_RCTN( ) | |
CLG_WAK | 0x0001 | WACKを応答後ENQ受信待ち※ | |||
CLG_RVI | 0x0004 | RVIを応答後EOTまたはテキスト受信待ち |
各ビット単位に意味を持ち,表3-7に示すマスク名で設定します。
表3-7 コマンド拡張部の内容
項目 | マスク名 | 値 | 意味 | 指定できるライブラリ関数 |
---|---|---|---|---|
要求に対する完了報告の方法の指定 | CMD_SYN | 0x0000 | 同期型要求 | LCBを指定する全ライブラリ関数 |
CMD_ASYN | 0x4000 | 非同期型要求 |
LCBを引数に持つライブラリ関数がリターン値0で完了したとき,通信管理はこのエリアに終了コードを設定します。終了コードの内容を表3-8に示します。
表3-8 終了コードの内容
マクロ名 | 値 | 意味 |
---|---|---|
CC_NORL | 0 | 正常終了 |
CC_EXCP | 1 | 例外事項の発生 状態は例外事項発生時のままとなっているため,HSC-APはエラー詳細コードによってライブラリ関数を発行してください。 |
CC_LINE | 2 | 回線上のHSC手順エラー 通信管理が手順の回復のために再試行しましたが,リトライアウトして回復しませんでした。 BT_MDFY関数を発行して設定した値または構成定義の設定値で監視します。 回線は,オンラインのままです。 HSC手順上の状態は,切断していないためリトライアウトしたままとなっています。HSC-APはエラー詳細コードによってライブラリ関数を発行してください。 |
CC_FATL | 3 | 回線障害,またはオフライン 回線はクローズ状態となっているため,障害原因を取り除くなどして,回線がオンライン状態になるまで,通信できません。 障害原因を取り除いたのち,HSC-APは回線オープン,またはドライバオープンからし直してください。特に,回線障害後,停止できないHSC-APは定期的に回線オープンを再試行して,障害原因が取り除かれるのを監視する必要があります。 |
CC_CALE | 4 | 発信失敗 回線はオンライン状態のままです。 HSC-APは,エラー詳細コードに示す失敗原因に従って,時間をおいて再発信するか,または電話番号を見直してください。 なお,回線障害による発信失敗はCC_FATLが設定されます。 |
CC_SEQE | 5 | シーケンスエラー発生 ライブラリ関数の発行順序不正です。HSC-APを見直してください。 |
終了コードが0以外のとき,通信管理は表3-9に示すエラー詳細コードを設定します。
表3-9 エラー詳細コード一覧
マクロ名 | 値 | 意味 | 対応する終了コード | |
---|---|---|---|---|
EC_EOTR | 10 | EOT受信 | CC_EXCP | |
EC_DSCR | 11 | DLE・EOT受信(公衆回線切断) | ||
EC_RVIR | 12 | RVI受信 | ||
EC_CONT | 13 | コンテンション発生(非優先側) HSC-APはBT_RINI関数,またはBT_RTXT関数を発行します。優先側はエラーになりません。 |
||
EC_CANL | 14 | BT_CANL関数でキャンセルされた | ||
EC_EOTENQ | 15 | EOTキャッチボール終了のENQ受信(BT_WEOT関数だけ) | ||
EC_IDRJ | 16 | HSC2起動ENQ(ID・ENQまたはENQ)がID・NAK(またはNAK)で拒否された ID拒否とし,通信管理ではリトライしません。発信は成功したので回線は接続状態です。 |
||
EC_WAKR | 20 | WACK受信リトライアウト | CC_LINE | |
EC_NAKR | 21 | NAK受信リトライアウト | ||
EC_DTCK | 22 | データチェックリトライアウト X21インタフェースのID信号受信時は一回のデータチェックでエラーとなります。 |
||
EC_TOUT | 24 | 応答待ちタイムアウト,またはデータリンク確立後のテキスト待ちタイムアウトのリトライアウト | ||
EC_DTER | 25 | 不正データ受信リトライアウト(ENQ待ちでテキスト受信など予期せぬ事象) | ||
EC_ACKE | 26 | ACK0/1交互性エラーリトライアウト | ||
EC_ENQR | 27 | 応答催促ENQ受信リトライアウト(WACK送信後のENQ受信は除く) | ||
EC_TTDR | 28 | TTD受信リトライアウト | ||
EC_RVIE | 29 | RVIの二重受信 | ||
EC_ROVR | 31 | 受信データ長(または受信ID長)が,HSC-AP受信バッファサイズを超えた | ||
EC_V25B_CB | 40 | V25bisのCRN(発信)コマンドに対して,CFI(発信失敗応答)受信 CFIのパラメタが,右記に示す条件に該当します。 |
ローカルDCBビジー(CB) | CC_CALE(V25bis) |
EC_V25B_AB | 41 | アボートコール(AB) 相手局無応答,呼び出し音なし |
||
EC_V25B_RT | 42 | リングトーン(RT) 相手局無応答,呼び出し音あり |
||
EC_V25B_ET | 43 | エンゲージトーン(ET) 相手局が通信中 |
||
EC_V25B_NT | 44 | 応答トーン未検出(NT) | ||
EC_V25B_CFE | 45 | 未定義パラメタ,パリティエラー | ||
EC_V25B_DLC | 46 | V25bisのCRN(発信)コマンドに対して,DLC(遅延呼応答)受信 | ||
EC_V25B_INV | 47 | V25bisのCRN(発信)コマンドに対してINV(コマンド無効通知)受信 | ||
EC_V25B_ERR | 48 | V25bisのCRN(発信)コマンドに対して,未定義の応答受信 | ||
EC_V25B_PER | 49 | V25bisのCRN(発信)コマンドに対しての応答がパリティエラーまたはオーバーラン | ||
EC_V25B_TOUT | 63 | V25bisの発信後の接続完了待ちタイムアウト | ||
EC_X21_C21 | 50 | X.21の発信に対するコールプログレス信号が右記に示す条件に該当 | 相手端末ビジー(コード21) | CC_CALE(X.21) |
EC_X21_C22 | 51 | 選択信号手順誤り(コード22) | ||
EC_X21_C23 | 52 | 選択信号伝送誤り(コード23) | ||
EC_X21_C41 | 53 | 接続規制(コード41) | ||
EC_X21_C42 | 54 | 番号変更(コード42) | ||
EC_X21_C43 | 55 | 欠番(コード43) | ||
EC_X21_C45 | 56 | 着信拒否(コード45) | ||
EC_X21_C46 | 57 | 接続不可(コード46) | ||
EC_X21_C48 | 58 | 無効呼(コード48) | ||
EC_X21_C61 | 59 | 中継線ビジー(コード61) | ||
EC_X21_C71 | 60 | 網ふくそう(コード71) | ||
EC_X21_CER | 61 | 上記以外の不正コードを受信 | ||
EC_X21_TOUT | 62 | X.21の発信に対して通信可待ちタイムアウト | ||
EC_OFFL | 80 | 回線はオフライン状態またはクローズ状態である※
|
BT_RTXT関数,BT_WTXT関数以外で発 生 | CC_FATL |
EC_OFFLS | 82 | BT_RTXT関数,またはBT_WTXT関数のENQ送信時発生 | ||
EC_OFFLT | 83 | BT_RTXT関数のテキスト受信,またはBT_WTXT関数のテキスト送信時発生 | ||
EC_OFFLE | 84 | BT_WTXT関数のEOT送信時発生 | ||
EC_HERR | 81 | 回線の障害が発生した 障害の内容は,通信管理がログファイルに出力します。 |
BT_RTXT関数,BT_WTXT関数以外で発 生 | |
EC_HERRS | 85 | BT_RTXT関数,またはBT_WTXT関数のENQ送信時発生 | ||
EC_HERRT | 86 | BT_RTXT関数のテキスト受信,またはBT_WTXT関数のテキスト送信時発生 | ||
EC_HERRE | 87 | BT_WTXT関数のEOT送信時発生 |
終了コード(lb_ccod)が,CC_EXCP,CC-LINE,CC_FATL,またはCC_CALEで完了した場合,通信管理の状態を返します。HSC-APは,状態をリセットしたい場合,この状態コードを見てどのライブラリ関数から発行すればよいかを判断できます。
通信管理状態コードを表3-10に,通信管理状態コードとライブラリ関数の関係を図3-1に示します。
表3-10 通信管理状態コード
マクロ名 | 値 | 通信管理の状態※ | ||
---|---|---|---|---|
XNF_LCLS | 1 | 回線クローズ状態 | ||
XNF_LDSC | 2 | 回線オープン状態 | 回線切断状態(HSC2だけ) | |
XNF_DDSC | 3 | 回線接続状態 | データリンク未確立状態
|
|
XNF_DCON | 4 | データリンク確立状態
|
図3-1 通信管理状態コードとライブラリ関数の関係
受信テキストに関する情報を通信管理が設定します。各ビット単位に意味を持ち,表3-11に示す名称で参照します。
マクロ名 | 値 | 意味 |
---|---|---|
RTXT_PM | 0x0004 | 受信したテキストは透過モード(ビットオフ時は,非透過モード) |
RTXT_SH | 0x0002 | 受信したテキストはSOHで始まる(ビットオフ時は,STXで始まる) |
RTXT_EX | 0x0001 | 受信したテキストはETXで終わる(ビットオフ時は,ETBで終わる) |
HSC-APの受信用バッファのバイト長を設定します。1〜8,158バイト(ただし,透過モード時は,1〜8,156バイト)が指定できます。
受信データ長が指定された受信バッファサイズを超えた場合,超えた分を切り捨てて渡し,ライブラリ関数はエラーリターンします。受信後は,受信したデータのバイト長が設定されます。
HSC-APからの送信データのバイト長を設定します。0〜8,158バイト(ただし,透過モード時は,0〜8,156バイト)が指定できます。
HSC-APの受信用バッファポインタを設定します。
HSC-APの送信用バッファポインタを設定します。
BT_SETDIAL関数で,回線交換の短縮ダイヤル登録,閉域登録,または閉域解除をするときの,選択信号の長さを100けた以内で指定します。BT_SETDIAL関数以外の関数で指定した場合,無視します。BT_WINI関数で発信するときの選択信号(ダイヤル番号)は,IDLSTテーブルで指定します。
回線交換の場合,ID信号受信用バッファの長さを指定します。受信しなくてもよい場合,0を指定します。受信ID長が指定された受信バッファサイズを超えた場合,超えた分を切り捨てて渡し,関数はエラーリターンします。受信後は,受信したID信号の長さが設定されます。
BT_SETDIAL関数で,回線交換の短縮ダイヤル登録,閉域登録,または閉域解除をするときの,選択信号をセットしたバッファのポインタを指定します。選択信号は,表3-12に示す形式(コードはJIS8)で設定します。
表3-12 回線交換選択信号の形式
種類 | 信号形式 |
---|---|
短縮ダイヤル登録 | 131/△△/xxxxxxx-+ |
閉域登録(ペア型) | 133/2/△△/xxxxxxx-+ |
閉域登録(グループ型) | 132/2/xxxxxxx-+ |
閉域解除(ペア型) | 133/9/△△-+ |
閉域解除(グループ型) | 132/9/xxxxxxx-+ |
回線交換でID信号受信用のバッファポインタを指定します。通信管理が受信したID信号を表3-13に示す形式(コードはJIS8)で設定します。
表3-13 受信ID信号の形式
種類 | 信号形式 |
---|---|
発着信時 | *xxxxxxx+(ペア型閉域の場合*△△+) |
短縮ダイヤル登録完了時 | *xxxxxxx+ |
閉域登録(ペア型)完了時 | *xxxxxxx+ |
閉域登録(グループ型)完了時 | *xxxxxxx+ |
閉域解除(ペア型)完了時 | *△△+ |
閉域解除(グループ型)完了時 | *xxxxxxx+ |
ISDNのサブアドレス付きの場合 | *xxxxxxx+* ssss+ |
ターミナルID受信用バッファの長さを指定します。受信しなくてもよい場合,0を指定します。受信ID長が指定された受信バッファサイズを超えた場合,超えた分を切り捨てて渡し,関数はエラーリターンします。受信後は,受信したターミナルIDの長さが設定されます。
ターミナルID受信用バッファポインタを指定します。
All Rights Reserved. Copyright (C) 2002, 2009, Hitachi, Ltd.