ページの先頭行へ戻る
WSMGR ソフトウェア開発キット V8 使用手引書
FUJITSU Software

4.2.2 KC SEND

キー入力イメージデータの送信


【呼出形式(C)】

UINT  XWSIAPI
XWSI_KC_SEND(ReqHandle,ws_errno,send_inf,code_type,gaiji,aidpid,data_input_posi,data_kind,send_data)

USHORT          ReqHandle          リクエストハンドル
UINT           *ws_errno           処理結果
XWsiTrnsInf    *send_inf           送信タイミング
USHORT          code_type          1バイトコードの種別
USHORT          gaiji              漢字変換指定
USHORT          aidpid             AID/PID code
USHORT          data_input_posi    入力開始位置
USHORT          data_kind          送信データ種別
XWsiWsaData    *send_data          送信データ

【機能】

アプリケーションからのキーボードデータをホストへ送信します。アプリケーションから渡すデータは、通常ディスプレイエミュレータでキーボードから入力するキーをコード化したものです。

送信モードには、WAITモードとSENSE モードの2つがあります。

WAITモードとは、ホストからのキーボードロックがはずれるまで待って、キー入力を行うモードです。

ディスプレイエミュレータでは、画面の25行目に「処理中」とか「キーボードロック」の表示が消えるのを待って入力を行うことです。ただし、「処理中」などの入力禁止状態が一瞬解除になる場合があります。このときに入力を行うと、すぐにキーロックがかかり、うまく入力できないことがあります。これを防ぐために、key_unlock_timeパラメータで指定した時間キーボード入力状態が続いた場合、真の入力可能とみなし、入力処理を開始します。


(1) キーボードロック・アンロックのタイムチャート

SENSE モードとは、キーボードロック状態かを見て、ロック状態であればエラーを、入力可能状態であれば入力処理を行います。


【引数】

ReqHandle

WSMGR OPENによって得られたリクエストハンドル。

ws_errno

処理結果が格納されるアドレス。

send_inf

送信情報(構造体 XWsiTrnsInf  参照)が格納されているアドレス。

1)mode

送信タイミングを以下の2モード指定します。
XWSIMOD_WAIT (1):WAITモード
キー入力可能になるまで WAIT します。
キー入力可能になった時点でホストにデータを送信します。
XWSIMOD_SENSE (2):SENSEモード
キー入力可能かどうかをチェックして入力可能であればホストにデータを送信します。
キー入力禁止のときは、上記ws_errnoにエラーステータスを返します。

2)wait_time

送信タイミングをWAITモードに指定した時の応答待ち時間を指定します(単位 秒/0: 無限待ち)。

3)key_unlock_time

キーアンロックタイム(単位 100mSEC)WAITモード時、キー入力可能になったか判定するための監視時間です。
通常は5、LOGON/LOGOFFは10を指定してください。

code_type

1 バイトコード系のコード変換の種別指定。

XWSICNV_STUP

(0)

WSMGR CONNECTで指定したセットアップファイルに設定されているコード種別(下記 1~3 のいずれかより選択)

XWSICNV_EBCALPH

(1)

EBCDIC 英小文字

XWSICNV_EBCKANA

(2)

EBCDIC カナ有り

XWSICNV_EBCASCI

(3)

EBCDIC.ASCII

gaiji

漢字変換指定
XWSIDWC_CNV_UJIS (X'01):
非漢字、第1・2水準とユーザ作成のJEF変換テーブルを利用した漢字変換。

aidpid

AID/PID コード
AID/PID コード表参照

PID の場合は、data_input_pos,data_kind,send_dataは意味を持ちません。

data_input_posi

データ入力開始位置、以下の2通りの指定が可能。

  1. 指定位置よりデータをセットする。
    x'0000' ~ x'077F' (0 ~1919)

  2. カレントカーソル位置よりデータをセットする。
    XWSIKC_CUCSLPOS (x'FFFF')

data_kind

常に0 を指定すること。

send_data

送信データの格納されているアドレス。

1) datalen

送信データ長(単位バイト)。
Max 4096バイト

注)
画面バッファは1920バイトですが、ESCシーケンスを付加した場合、4096バイトまで対応します。

2) data

送信データ領域のアドレス

  • A/N(英字、カタカナ、数字、記号):JISコード

  • 漢字:Shift JIS コード

  • エスケープコード ( 1B'):エスケープコード表参照

注)
AID コードがIDカードリーダのとき、A/N 以外はエラーとなります。


【関数返却値】

XWSIWSAPI_GOOD

(0)

WSAPI が正常に処理されました。

XWSIWSOS_ERR

(1)

WSMGR でWindows API コールを行いその結果エラーになった場合、設定されます。また、そのとき受け取ったエラーコードをws_errno に格納します。

XWSIWSAPI_ERR

(2)

WSAPI が異常で終了したことを示します。
エラー詳細は、ws_errno に格納されます。


【出力】

ws_errno

関数返却値 = XWSIWSOS_ERR (1) のとき
Windows API コールから返されるエラーコードが格納されます。
エラーコードはWin32エラーコードが返ります。

関数返却値 = XWSIWSAPI_ERR (2) のとき
WSAPI のエラーコード一覧を参照してください。

関数返却値 = XWSIWSAPI_GOOD (0) のとき
意味を持たないのでアプリケーションで参照する必要はありません。


AIDコード表

AID

コード(Hex)

NOAID

XWSIAID_NODP (60)

PF1

XWSIAID_PF1 (F1)

PF2

XWSIAID_PF2 (F2)

PF3

XWSIAID_PF3 (F3)

PF4

XWSIAID_PF4 (F4)

PF5

XWSIAID_PF5 (F5)

PF6

XWSIAID_PF6 (F6)

PF7

XWSIAID_PF7 (F7)

PF8

XWSIAID_PF8 (F8)

PF9

XWSIAID_PF9 (F9)

PF10

XWSIAID_PF10 (7A)

PF11

XWSIAID_PF11 (7B)

PF12

XWSIAID_PF12 (7C)

PF13

XWSIAID_PF13 (C1)

PF14

XWSIAID_PF14 (C2)

PF15

XWSIAID_PF15 (C3)

PF16

XWSIAID_PF16 (C4)

PF17

XWSIAID_PF17 (C5)

PF18

XWSIAID_PF18 (C6)

PF19

XWSIAID_PF19 (C7)

PF20

XWSIAID_PF20 (C8)

PF21

XWSIAID_PF21 (C9)

PF22

XWSIAID_PF22 (4A)

PF23

XWSIAID_PF23 (4B)

PF24

XWSIAID_PF24 (4C)

ENTERキー
ライトペン アテンション

XWSIAID_ENT (7D)

IDカードリーダ(10chr)

XWSIAID_ID10 (E6)

IDカードリーダ(64chr)

XWSIAID_ID64 (E7)

ライトペン アテンション
(Null/Space)

XWSIAID_LP (7E)

PA1

XWSIAID_PA1 (6C)

PA2

XWSIAID_PA2 (6E)

PA3

XWSIAID_PA3 (6B)

CLEAR

XWSIAID_CLR(6D)


PIDコード表

PID

コード(Hex)

SYS REQ

XWSIPID_SYSR (52)

ATTN

XWSIPID_ATTN (53)

TEST

XWSIPID_TEST (58)


エスケープコード表

送信データには英数字、漢字のほかに以下のものを含むことができます。以下のコードは、エスケープコード(X'1B')に続くときに有効となります。

キー種別

名称

コード(Hex)

カーソル移動

XWSIESC_RGHT (01)

XWSIESC_LEFT (02)

XWSIESC_UP (03)

XWSIESC_DOWN (04)

フィールド指向キー

→|

XWSIESC_TAB (11)

|←

XWSIESC_BTAB (12)

改行

XWSIESC_NLIN (13)

HOME

XWSIESC_HOME (14)

編集キー

INST MODE

XWSIESC_INSM (21)

DEL

XWSIESC_DEL (22)

消去キー

ERASE INPUT

XWSIESC_ERSI (31)

ERASE EOF

XWSIESC_ERSE (32)

その他のキー

RESET

XWSIESC_RESET(51)

CURSOR SEL

XWSIESC_CRSS (54)

DUP

XWSIESC_DUP (55)

FIELD MARK

XWSIESC_FMRK (56)

+入力

XWSIESC_PLIN (57)

注意

エスケープコードに続いて上記以外のコードがセットされているときは、ws_errnoにエラーが返されます。