8.3.4 拡張PUT要求
機能
蓄積実行により作成した蓄積ファイルを使用せずに新規に蓄積ファイルを作成するときに、ユーザ任意の電文情報の書き込み要求(拡張PUT要求)を行います。蓄積ファイルへの書き込みは、製品が付加するヘッダ情報を含めて最大1TBまで行うことができます。
形式
ANSI Cの形式
#include <esafl.h> int es_afl_put_ex(ESAFL_DTPARAM *dtparam_pt, ESLONG flags)
パラメタの内容
ESAFL_DTPARAMのパラメタ内容
typedef struct es_afl_dtparam_t{ ………データ管理パラメタ構造体 ESAFL_HEAD *head_pt; ………ヘッダパラメタ構造体アドレス ESAFL_DATA *data_pt; ………データパラメタ構造体アドレス char yobi1[64]; ………予備 char hsic_area1[512]; ………HSIC使用領域1 char hsic_area2[512]; ………HSIC使用領域2 } ESAFL_DTPARAM;
ESAFL_HEADのパラメタ内容
typedef struct es_afl_head_t{ ………ヘッダパラメタ構造体 unsigned char src_ip[4]; ………送信元IPアドレス unsigned char dst_ip[4]; ………送信先IPアドレス unsigned short src_port; ………送信元ポート番号 unsigned short dst_port; ………送信先ポート番号 ESULONG protocol; ………プロトコル種別 char data_key[32]; ………電文キー char yobi[80]; ………予備 } ESAFL_HEAD;
ESAFL_DATAのパラメタ内容
typedef struct es_afl_data_t{ ………データパラメタ構造体 ESLONG data_area_len; ………電文格納エリア長 char yobi1[4]; ………予備 ESLONG indata_len; ………入力電文長 ESLONG indata_len1; ………実入力電文長 char *indata_area_pt; ………入力電文格納エリアアドレス ESLONG outdata_len; ………出力電文長 char yobi2[4]; ………予備 char *outdata_area_pt; ………出力電文格納エリアアドレス char yobi[88]; ………予備 } ESAFL_DATA;
UAPで値を設定するパラメタ項目
- dtparam_pt
-
データ管理パラメタ構造体のアドレスを設定してください。
データ管理パラメタ構造体に次の情報を設定してください。
-
ヘッダパラメタ構造体アドレス
ヘッダパラメタ構造体のアドレスを設定してください。
-
データパラメタ構造体アドレス
データパラメタ構造体のアドレスを設定してください。
ヘッダパラメタ構造体に次の情報を設定してください。
-
送信元IPアドレス
電文の送信元IPアドレスを次に示す形式で設定します。
address_destination定義の-cオプションに指定する外部システムのIPアドレスを設定してください。設定した値のチェックは行いません。
例) 172.165.112.20
[0]
[1]
[2]
[3]
0xAC
0x A5
0x70
0x14
-
送信先IPアドレス
電文の送信先IPアドレスを次に示す形式で設定します。
address_destination定義の-sオプションに指定する既存システムのIPアドレスを設定してください。設定した値のチェックは行いません。
例) 172.165.112.20
[0]
[1]
[2]
[3]
0xAC
0x A5
0x70
0x14
-
送信元ポート番号
電文の送信元ポート番号を設定してください。
address_destination定義の-cオプションに指定する外部システムのポート番号を設定してください。設定した値のチェックは行いません。
-
送信先ポート番号
電文の送信先ポート番号を設定してください。
address_destination定義の-sオプションに指定する既存システムのポート番号を設定してください。設定した値のチェックは行いません。
-
プロトコル種別
電文のプロトコル種別を設定します。
ESAFL_PROTOMOD_TCP :TCPプロトコル
ESAFL_PROTOMOD_UDP :UDPプロトコル
ESAFL_PROTOMOD_HTTP:HTTPプロトコル
-
電文キー
電文の電文キー(16進数)を設定します。
システム内で一意となる値を設定してください。設定した値のチェックは行いません。
データパラメタ構造体に次の情報を設定してください。
-
出力電文長
蓄積ファイルに出力する電文のサイズを1から9000000(単位:バイト)の範囲で設定してください。
電文長は、以下の計算式を満たす必要があります。
電文長≦INIT要求時の蓄積バッファサイズ−512バイト
-
出力電文格納エリアアドレス
電文を格納しているエリアのアドレスを設定します。
-
- flags
-
ESNOFLAGSを設定してください。
HSICから値が返されるパラメタ項目
ありません。
リターン値
リターン値 |
意味 |
---|---|
ES_OK |
正常に終了しました。 |
ESAFLER_ARGUMENT |
引数に設定した値が間違っています。 |
ESAFLER_TIMING |
この関数を発行できる状態ではありません。 |
ESAFLER_CONDITION |
INIT要求時に出力ファイルパラメタ構造体を設定していません。 |
ESAFLER_OVERFLOW |
蓄積ファイルのサイズが1TBを超えるため、書き込みできません。 |
ESAFLER_IOERR |
蓄積ファイルへのI/Oエラーが発生しました。 |
ESAFLER_SYSERR |
システムエラーが発生しました。 |
ESAFLER_UNRESOLVABLE |
その他のエラーが発生しました。 |
注意事項
-
各パラメタ構造体の予備領域はNULLクリアしてください。
-
以下のエラーリターンのあとに再度PUT要求を行うと、ESAFLER_TIMINGでエラーリターンします。
-
ESAFLER_OVERFLOW
-
ESAFLER_IOERR
-