【呼出形式(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モード指定します。 | ||||
2)wait_time | 送信タイミングをWAITモードに指定した時の応答待ち時間を指定します(単位 秒/0: 無限待ち)。 | ||||
3)key_unlock_time | キーアンロックタイム(単位 100mSEC)WAITモード時、キー入力可能になったか判定するための監視時間です。 | ||||
code_type | 1 バイトコード系のコード変換の種別指定。 | ||||
XWSICNV_STUP | (0) | WSMGR CONNECTで指定したセットアップファイルに設定されているコード種別(下記 1~3 のいずれかより選択) | |||
XWSICNV_EBCALPH | (1) | EBCDIC 英小文字 | |||
XWSICNV_EBCKANA | (2) | EBCDIC カナ有り | |||
XWSICNV_EBCASCI | (3) | EBCDIC.ASCII | |||
gaiji | 漢字変換指定 | ||||
aidpid | AID/PID コード PID の場合は、data_input_pos,data_kind,send_dataは意味を持ちません。 | ||||
data_input_posi | データ入力開始位置、以下の2通りの指定が可能。
| ||||
data_kind | 常に0 を指定すること。 | ||||
send_data | 送信データの格納されているアドレス。 | ||||
1) datalen | 送信データ長(単位バイト)。 注) | ||||
2) data | 送信データ領域のアドレス
注) |
【関数返却値】
XWSIWSAPI_GOOD | (0) | WSAPI が正常に処理されました。 |
XWSIWSOS_ERR | (1) | WSMGR でWindows API コールを行いその結果エラーになった場合、設定されます。また、そのとき受け取ったエラーコードをws_errno に格納します。 |
XWSIWSAPI_ERR | (2) | WSAPI が異常で終了したことを示します。 |
【出力】
ws_errno | 関数返却値 = XWSIWSOS_ERR (1) のとき 関数返却値 = XWSIWSAPI_ERR (2) のとき 関数返却値 = 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) |
ライトペン アテンション | 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にエラーが返されます。