通信管理 XNF/AS プログラマーズガイド HSC編

[目次][用語][索引][前へ][次へ]

3.26 LCB

<この節の構成>
(1) 形式
(2) 説明

(1) 形式

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受信バッファポインタ */
};

(2) 説明

(a) コマンドlb_comd

各ビット単位に意味を持ち,表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またはテキスト受信待ち

注※
WACKを連続送信するときの時間間隔は,HSC-APがBT_RCTN関数を発行してから2秒後にWACKを送信します。
(b) コマンド拡張部lb_comdx

各ビット単位に意味を持ち,表3-7に示すマスク名で設定します。

表3-7 コマンド拡張部の内容

項目 マスク名 意味 指定できるライブラリ関数
要求に対する完了報告の方法の指定 CMD_SYN 0x0000 同期型要求 LCBを指定する全ライブラリ関数
CMD_ASYN 0x4000 非同期型要求
(c) 終了コードlb_ccod

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を見直してください。
(d) エラー詳細コードlb_errc

終了コードが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 回線はオフライン状態またはクローズ状態である
  • xnfofflineコマンドまたはハード障害(回線アダプタの障害)でオフライン状態になっている
  • 通信管理開始時のオンライン処理が完了していない
  • HSC-APがBT_LOPN関数を発行していないので,回線クローズ状態である
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送信時発生

注※
この時点でオンライン状態に回復している場合もあります。その場合でも,一度オフラインになったことをHSC-APに通知するため,このエラーで返します。
(e) 通信管理状態コードlb_xnfst

終了コード(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 回線接続状態 データリンク未確立状態

<リセット手順>
HSC2手順では,BT_WDSC関数を発行し回線切断します。
XNF_DCON 4 データリンク確立状態

<リセット手順>
  • HSC1手順では,BT_WRST関数を発行してデータリンクを解放します。
  • HSC2手順では,BT_WDSC関数を発行して回線を切断します。

注※
回線対応の状態です。

図3-1 通信管理状態コードとライブラリ関数の関係

[図データ]
(f) 受信ステータス(lb_rsts

受信テキストに関する情報を通信管理が設定します。各ビット単位に意味を持ち,表3-11に示す名称で参照します。

表3-11 受信テキスト情報

マクロ名 意味
RTXT_PM 0x0004 受信したテキストは透過モード(ビットオフ時は,非透過モード)
RTXT_SH 0x0002 受信したテキストはSOHで始まる(ビットオフ時は,STXで始まる)
RTXT_EX 0x0001 受信したテキストはETXで終わる(ビットオフ時は,ETBで終わる)
(g) 受信バッファサイズlb_rsiz

HSC-APの受信用バッファのバイト長を設定します。1〜8,158バイト(ただし,透過モード時は,1〜8,156バイト)が指定できます。

受信データ長が指定された受信バッファサイズを超えた場合,超えた分を切り捨てて渡し,ライブラリ関数はエラーリターンします。受信後は,受信したデータのバイト長が設定されます。

(h) 送信データサイズlb_ssiz

HSC-APからの送信データのバイト長を設定します。0〜8,158バイト(ただし,透過モード時は,0〜8,156バイト)が指定できます。

(i) 受信バッファポインタlb_rbuf

HSC-APの受信用バッファポインタを設定します。

(j) 送信バッファポインタlb_sbuf

HSC-APの送信用バッファポインタを設定します。

(k) 回線交換選択信号サイズlb_setsiz

BT_SETDIAL関数で,回線交換の短縮ダイヤル登録,閉域登録,または閉域解除をするときの,選択信号の長さを100けた以内で指定します。BT_SETDIAL関数以外の関数で指定した場合,無視します。BT_WINI関数で発信するときの選択信号(ダイヤル番号)は,IDLSTテーブルで指定します。

(l) 回線交換ID信号受信用バッファサイズlb_idsiz

回線交換の場合,ID信号受信用バッファの長さを指定します。受信しなくてもよい場合,0を指定します。受信ID長が指定された受信バッファサイズを超えた場合,超えた分を切り捨てて渡し,関数はエラーリターンします。受信後は,受信したID信号の長さが設定されます。

(m) 回線交換選択信号バッファポインタlb_setdl

BT_SETDIAL関数で,回線交換の短縮ダイヤル登録,閉域登録,または閉域解除をするときの,選択信号をセットしたバッファのポインタを指定します。選択信号は,表3-12に示す形式(コードはJIS8)で設定します。

表3-12 回線交換選択信号の形式

種類 信号形式
短縮ダイヤル登録 131/△△/xxxxxxx-+
閉域登録(ペア型) 133/2/△△/xxxxxxx-+
閉域登録(グループ型) 132/2/xxxxxxx-+
閉域解除(ペア型) 133/9/△△-+
閉域解除(グループ型) 132/9/xxxxxxx-+

(凡例)
△△:短縮番号,または閉域番号
xxxxxxx:相手加入者番号
(n) 回線交換ID信号受信用バッファポインタlb_id

回線交換でID信号受信用のバッファポインタを指定します。通信管理が受信したID信号を表3-13に示す形式(コードはJIS8)で設定します。

表3-13 受信ID信号の形式

種類 信号形式
発着信時 *xxxxxxx+(ペア型閉域の場合*△△+)
短縮ダイヤル登録完了時 *xxxxxxx+
閉域登録(ペア型)完了時 *xxxxxxx+
閉域登録(グループ型)完了時 *xxxxxxx+
閉域解除(ペア型)完了時 *△△+
閉域解除(グループ型)完了時 *xxxxxxx+
ISDNのサブアドレス付きの場合 *xxxxxxx+* ssss+

(凡例)
△△:閉域番号
xxxxxxx:相手加入者番号
ssss:サブアドレス

通信管理は,網から受信したID信号の内容はチェックしません。
(o) ターミナルID受信用バッファサイズlb_tmidsz

ターミナルID受信用バッファの長さを指定します。受信しなくてもよい場合,0を指定します。受信ID長が指定された受信バッファサイズを超えた場合,超えた分を切り捨てて渡し,関数はエラーリターンします。受信後は,受信したターミナルIDの長さが設定されます。

(p) ターミナルID受信用バッファポインタlb_tmid

ターミナルID受信用バッファポインタを指定します。