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

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

3.24 DCT

<この節の構成>
(1) 形式
(2) 説明
(3) 注意事項

(1) 形式

struct dct  {
    unsigned  short  dt_mode;     /* モード */
    unsigned  short  dt_modex;    /* 予備 */
    struct  tlist   *dt_timl;     /* タイマテーブルポインタ */
    struct  rlist   *dt_rtyl;     /* リトライテーブルポインタ */
};

(2) 説明

(a) モードdt_mode

各ビット単位に表3-4に示す意味を持ち,表3-4に示すマスク名で参照,更新します。

表3-4に示すビット以外は値に0を設定してください。

表3-4 モードとパラメタ

項目 マスク名 意味
プロトコル種別※1 MHSC1 0x8000 HSC1手順を使用します。
MHSC2 0x4000 HSC2手順を使用します。
コンテンション優先種別 MPRI_P 0x0010 コンテンション発生時の優先局です。
MPRI_S 0x0000 コンテンション発生時の非優先局です。
WACK自動送信機能の使用の有無※2 MWAK_EN 0x0000 WACK自動送信機能を使用します。
MWAK_DS 0x0080 WACK自動送信機能を使用しません。
TTD自動送信機能の使用の有無※3 MTTD_EN 0x0000 TTD自動送信機能を使用します。
MTTD_DS 0x0040 TTD自動送信機能を使用しません。

注※1
使用する手順(HSC1手順/HSC2手順)を選択します。構成定義文の指定と一致させる必要があります。一致しない場合,BT_MDFY関数は異常終了(errno=EINVAL)します。

注※2
通信管理が自動的に,WACK(一時受信抑止)送信を行うかどうかを指定します。
使用を選択すると,HSC-APからBT_RCTN関数が2秒間発行されない場合,通信管理が自動的にWACKを送信します。

注※3
通信管理が自動的に,TTD(一時送信延期)送信を行うかどうかを指定します。
使用を選択すると,HSC_APからBT_WCTN関数が2秒間発行されない場合,通信管理が自動的にTTDを送信します。
(b) タイマテーブルポインタ(dt_timl

タイマテーブルへのポインタを設定します。このポインタがNULLの場合,構成定義文で指定した値を使用します。構成定義文でも省略した場合,標準値を使用します。

このタイマテーブルと構成定義文で指定した値が異なる場合,タイマテーブルの値を優先します。

<タイマテーブル形式>
struct  tlist  {
  short  tl_rsp;      /* 受信監視時間 */
};

tl_rsp受信監視時間(0.0〜102.0(秒))
構成定義文(basicline文のresponse_timeオペランド)で指定した受信監視タイマ値を変更します。
時間は0.4×nで表現した場合のn(0〜255)を指定してください。0を指定した場合,時間監視を行いません。
相手局と監視時間値を変える必要があります。相手局と同じ値を指定すると,コンテンションの発生時に,ENQが衝突すると回復できない場合があります。非優先側の時間を優先側より大きくしてください。
構成定義文での標準値は3.2秒です。
このタイマは,次に示す場合に使用します。
  • データリンク確立の応答監視時間
  • テキスト送信の応答監視時間
  • テキスト受信の監視時間
(c) リトライテーブルポインタ(dt_rtyl

リトライテーブルへのポインタを設定します。このポインタがNULLの場合,構成定義文で指定された値を使用します。構成定義文でも省略した場合,標準値を設定します。このリトライテーブルと構成定義文の値が異なる場合,リトライテーブルの値を優先します。

<リトライテーブル形式>
struct rlist  {
    short  rl_ENQ;    /* 起動時のリトライ回数 */
    short  rl_txt;    /* テキストのリトライ回数 */
    short  rl_EWK;    /* 起動時のWACKリトライ回数 */
    short  rl_tWK;    /* テキスト送信に対するWACK受信リトライ回数 */
    short  rl_TTD;    /* TTD(含むABORT)受信リトライ回数 */
};

rl_ENQデータリンク確立失敗時のENQのリトライ回数(0〜255)
構成定義文(basicline文のENQ_retryオペランド)で指定した値を変更します。構成定義文での標準値は7回です。255を指定した場合は,無限回リトライします。

rl_txtテキスト送受信のリトライ回数(0〜255)
構成定義文(basicline文のtext_retryオペランド)で指定した値を変更します。構成定義文での標準値は7回です。255を指定した場合は,無限回リトライします。次に示す場合に使用します。
  • テキスト送信に対してNAK受信
  • テキスト送信に対して無応答
  • データチェック発生時のNAK送信
  • 応答催促ENQ受信
  • テキスト待ちタイムアウト
  • テキスト待ち時不正データ受信
  • 交互性不正のACK受信

rl_EWKデータリンク確立時のWACK受信のENQリトライ回数(0〜255)
構成定義文(basicline文のENQ_WACK_retryオペランド)で指定した値を変更します。構成定義文での標準値は15回です。255を指定した場合は,無限回リトライします。

rl_tWKテキスト送信に対するWACK受信ENQリトライ回数(0〜255)
構成定義文(basicline文のtext_WACK_retryオペランド)で指定した値を変更します。構成定義文での標準値15回です。255を指定した場合は,無限回リトライします。

rl_TTD:TTD(ABORT含む)受信時NAKリトライ回数(0〜255)
構成定義文(basicline文のTTD_retryオペランド)で指定した値を変更します。構成定義文での標準値は15回です。255を指定した場合は,無限回リトライします。

(3) 注意事項

変更したタイマ値,およびリトライ回数は,BT_CLOSE関数でドライバをクローズしたあとは引き継がれません。BT_OPEN関数で再びドライバをオープンしたときは,構成定義文の値に戻ります。