5.1.6 送信メッセージの通番編集UOCインタフェース
送信メッセージの通番編集UOCは,次に示す形式でsend_uoc関数として作成します。
(1) 形式
- ANSI C,C++の形式
#include <dcmcf.h> DCLONG send_uoc(DCLONG flags, char *termname, DCLONG sendno, DCLONG sendid,DCLONG dataleng, char *senddata)- K&R版 Cの形式
#include <dcmcf.h> DCLONG send_uoc (flags, termname, sendno, sendid, dataleng, senddata) DCLONG flags; char *termname; DCLONG sendno; DCLONG sendid; DCLONG dataleng; char *senddata;
(2) MCFから値が渡される引数
-
flags
送信メッセージの通番編集UOCがいつ呼ばれたかが渡されます。次の値が渡されます。
-
DCMCF_SEND_DML:メッセージを送信する関数または命令文が呼び出されたとき
-
DCMCF_RESEND_DML:メッセージを再送する関数または命令文が呼び出されたとき
-
-
termname
送信先の論理端末名称が渡されます。
-
sendno
送信メッセージの出力通番が渡されます。
-
sendid
送信するメッセージ種別が渡されます。次のどちらかが渡されます。
-
DCMCF_SEND_PRIO:優先の一方送信メッセージ
-
DCMCF_SEND_NORM:一般の一方送信メッセージ
-
-
dataleng
送信メッセージ長が渡されます。
-
senddata
送信メッセージの先頭セグメントのアドレスが渡されます。
(3) リターン値
|
リターン値 |
意味 |
|---|---|
|
DC_OK |
正常リターン |
(4) OpenTP1への組み込み方法
UAPのメイン関数の中に,UOCの関数アドレスを登録しておきます。UAPのメイン関数に登録するdc_mcf_regster関数の形式を次に示します。
(a) 形式
- ANSI C,C++の形式
#include <dcmcf.h> int dc_mcf_regster(DCLONG flags, DCLONG (*uoc_addr)())
- K&R版 Cの形式
#include <dcmcf.h> int dc_mcf_regster(flags,uoc_addr) DCLONG flags; DCLONG (*uoc_addr)();
(b) ユーザが値を設定する項目
-
flags
DCMCF_SEND_UOCを設定します。
-
uoc_addr
flagsに対応するUOCのアドレスを設定します。
(c) リターン値
|
リターン値 |
意味 |
|---|---|
|
DC_OK |
正常に終了しました。 |
|
DCMCFER_INVALID_ARGS |
引数の指定が間違っています。 |
|
DCMCFER_NOMEM |
ローカルメモリが不足しています。 |
メイン関数への登録例を次に示します。
main()
{
extern DCLONG send_uoc();
dc_rpc_open();
dc_mcf_open();
dc_mcf_regster(DCMCF_SEND_UOC,send_uoc);
dc_mcf_mainloop();
dc_mcf_close();
dc_rpc_close();
}