#include <dcmcf.h>
#include <string.h>
#define WAITTIME 60
void SEND01(in, in_len, out, out_len)
char *in ;
unsigned DCLONG in_len ;
char *out ;
unsigned DCLONG out_len ;
{
/*★★引数定義★★*/ /*引数を使用している関数*/
/* sendsync, recvsync, sendrecv, receive */
DCLONG action ;/* 0 0 0 0 */
DCLONG commform ;/* 0 0 0 0 */
char termnam[16] ;/* 0 0 0 0 */
char resv01[16] ;/* 0 0 0 0 */
char senddata[256] ;/* 0 - 0 - */
DCLONG sdataleng ;/* 0 - 0 - */
char recvdata[256] ;/* - 0 0 0 */
DCLONG rdataleng ;/* - 0 0 0 */
DCLONG time ;/* - 0 0 0 */
DCLONG wachtime ;/* 0 0 0 - */
char resv02[16] ;/* 0 - - - */
DCLONG opcd ;/* 0 - - - */
DCLONG inbufleng ;/* - 0 0 0 */
/*★★変数定義 & 初期化★★*/
int rtn = 0x00 ;
/*★★引数初期化★★*/
action = NULL;
commform = NULL;
memset(termnam, 0, 16) ;
memset(resv01, 0, 16) ;
memset(senddata, 0, 256);
sdataleng = NULL;
memset(recvdata, 0, 256);
rdataleng = NULL;
time = NULL;
wachtime = NULL;
memset(resv02, 0, 16) ;
opcd = NULL;
inbufleng = NULL;
/*◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆*/
/*◆ ダイアログ開始要求送信(TP-BEGIN-DIALOGUE) ◆*/
/*◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆*/
/*★★ sendsync引数設定 (初期化) ★★*/
action = DCMCFEMI ;
commform = DCNOFLAGS ;
strcpy(termnam, "otm01") ;
resv01[0] = NULL ;
/* senddataイニシャライズは省略 */
sdataleng = 54 ;
resv02[0] = NULL ;
opcd = DCNOFLAGS ;
wachtime = WAITTIME ;
/*★ senddata 設定 ★*/
/*★ 先頭8バイト目までは,MCFが使用する ★*/
senddata[8] = 0x00 ; /* レングス 01 */
senddata[9] = 0x0a ; /* サービスプリミティブの長さ */
strcpy(senddata + 10, "OTP1") ; /* 送信手順(OTP1) */
strcpy(senddata + 14, "BDR ") ;
/* サービスプリミティブコード */
/* TP-BEGIN-DIALOGUE req */
senddata[18] = 0x00 ; /* レングス 02 */
senddata[19] = 0x2a ; /* パラメタ全体の長さ */
senddata[20] = 0x00 ; /* レングス 03 */
senddata[21] = 0x0d ; /* 発呼側TPSUタイトルの長さ */
strcpy(senddata + 22, "PR") ; /* 型コード */
strcpy(senddata + 24, "SEND_TPSU");
/* 発呼側TPSUタイトル(パラメタ1) */
senddata[33] = 0x00 ; /* レングス 04 */
senddata[34] = 0x02 ; /* 着呼側AP(パラメタ 2省略) */
senddata[35] = 0x00 ; /* レングス 05 */
senddata[36] = 0x0d ; /* 着呼側TPSUタイトルの長さ */
strcpy(senddata + 37, "PR") ; /* 型コード */
strcpy(senddata + 39, "RECV_TPSU") ;
/*着呼側TPSUタイトル(パラメタ3) */
senddata[48] = 0x00 ; /* レングス 06 */
senddata[49] = 0x04 ; /* 予備の長さ */
senddata[50] = 0x88 ;
/* 半二重&ハンドシェイク機能単位(パラメタ 4) */
senddata[51] = 0xff ; /* 予備 */
senddata[52] = 0x00 ; /* レングス 07 */
senddata[53] = 0x02 ; /* サービス品質(パラメタ5省略) */
senddata[54] = 0x00 ; /* レングス 08 */
senddata[55] = 0x02 ;
/*アプリケーションコンテキスト(パラメタ6省略) */
senddata[56] = 0x00 ; /* レングス 09 */
senddata[57] = 0x04 ; /* 確認項目の長さ */
strcpy(senddata + 58, "AL") ; /* 確認項目 */
/* all(同期型)(パラメタ 7) */
senddata[60] = 0x00 ; /* レングス 10 */
senddata[61] = 0x02 ; /* ユーザ情報(省略) */
/*▼▼ メッセージ送信開始(sendsync) ▼▼*/
rtn = dc_mcf_sendsync(action, commform, termnam, resv01,
senddata, sdataleng, resv02, opcd,
wachtime);
if ( rtn != DCMCFRTN_00000 )
{
goto ERROR;
}
/*▲▲ メッセージ送信終了(sendsync) ▲▲*/
/*◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆*/
/*◆ ダイアログ開始応答受信(TP-BEGIN-DIALOGUE) ◆*/
/*◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆*/
/*★★ recvsync引数設定 (初期化) ★★*/
action = DCMCFFRST ;
commform = DCNOFLAGS ;
resv01[0] = NULL ;
/*recvdataイニシャライズは省略*/
rdataleng = NULL ;
inbufleng = 256 ;
time = NULL ;
wachtime = WAITTIME ;
/*▼▼ メッセージ受信開始(recvsync) ▼▼*/
rtn = dc_mcf_recvsync(action, commform, termnam, resv01,
recvdata, & rdataleng,
inbufleng, & time, wachtime);
if ( rtn != DCMCFRTN_00000 )
{
goto ERROR;
}
/*▲▲ メッセージ受信終了(recvsync) ▲▲*/
/*◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆*/
/*◆ データ送信(TP-DATA) ◆*/
/*◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆*/
/*★★ sendsync引数設定 (初期化) ★★*/
action = DCMCFEMI ;
commform = DCNOFLAGS ;
resv01[0] = NULL ;
sdataleng = 23 ;
resv02[0] = NULL ;
opcd = DCNOFLAGS ;
wachtime = WAITTIME ;
/*★ senddata clear ★*/
memset(senddata, 0, 256) ;
/*★ senddata 設定 ★*/
/*★ 先頭8バイト目までは,MCFが使用する ★*/
senddata[8] = 0x00 ; /* レングス 01 */
senddata[9] = 0x0a ; /* サービスプリミティブの長さ */
strcpy(senddata + 10, "OTP1") ; /* 送信手順(OTP1) */
strcpy(senddata + 14, "TDR ") ;
/* サービスプリミティブコード */
/* TP-DATA req */
senddata[18] = 0x00 ; /* レングス 02 */
senddata[19] = 0x02 ; /* パラメタ(省略) */
senddata[20] = 0x00 ; /* レングス 03 */
senddata[21] = 0x0b ; /* ユーザ情報の長さ */
senddata[22] = 0x80 ; /* 連結状態 */
strcpy(senddata + 23, "USERDATA") ; /* ユーザデータ */
/*▼▼ データ送信(sendsync)開始 ▼▼*/
rtn = dc_mcf_sendsync(action, commform, termnam, resv01,
senddata, sdataleng, resv02, opcd,
wachtime);
if ( rtn != DCMCFRTN_00000 )
{
goto ERROR;
}
/*▲▲ データ送信(sendsync)終了 ▲▲*/
/*◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆*/
/*◆ ハンドシェイク&制御権譲渡要求送信 ◆*/
/*◆ (TP-HANDSHAKE-AND-GRANT-CONTROL) ◆*/
/*◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆*/
/*★★ sendsync引数設定 (初期化) ★★*/
action = DCMCFEMI ;
commform = DCNOFLAGS ;
resv01[0] = NULL ;
sdataleng = 18 ;
resv02[0] = NULL ;
opcd = DCNOFLAGS ;
wachtime = WAITTIME ;
memset(senddata, 0, 256);
/*★ sendsync 設定 ★*/
/*★ 先頭8バイト目までは,MCFが使用する ★*/
senddata[8] = 0x00 ; /* レングス 01 */
senddata[9] = 0x0a ; /* サービスプリミティブの長さ */
strcpy(senddata + 10, "OTP1") ; /* 送信手順(OTP1) */
strcpy(senddata + 14, "HGR ") ;
/* サービスプリミティブコード */
/* TP-HANDSHAKE-AND- */
/* GRANT-CONTROL req */
senddata[18] = 0x00 ; /* レングス 02 */
senddata[19] = 0x06 ; /* パラメタ全体の長さ */
senddata[20] = 0x00 ; /* レングス 03 */
senddata[21] = 0x04 ; /* 即時確認の長さ */
strcpy(senddata+22, "UR") ; /* 即時確認(パラメタ 1) */
senddata[24] = 0x00 ; /* レングス 04 */
senddata[25] = 0x02 ; /* ユーザ情報(省略) */
/*▼▼ メッセージ送信開始(sendsync) ▼▼*/
rtn = dc_mcf_sendsync(action, commform, termnam, resv01,
senddata, sdataleng, resv02, opcd,
wachtime);
if ( rtn != DCMCFRTN_00000 )
{
goto ERROR;
}
/*▲▲ メッセージ送信終了(sendsync) ▲▲*/
/*◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆*/
/*◆ ハンドシェイク&制御権譲渡応答受信 ◆*/
/*◆ (TP-HANDSHAKE-AND-GRANT-CONTROL) ◆*/
/*◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆*/
/*★★ recvsync引数設定 (初期化) ★★*/
action = DCMCFFRST ;
commform = DCNOFLAGS ;
resv01[0] = NULL ;
/*recvdataイニシャライズは省略*/
rdataleng = NULL ;
inbufleng = 256 ;
time = NULL ;
wachtime = WAITTIME ;
memset(senddata, 0, 256);
/*▼▼ メッセージ受信開始(recvsync) ▼▼*/
rtn = dc_mcf_recvsync(action, commform, termnam, resv01,
recvdata, & rdataleng,
inbufleng, & time, wachtime);
if ( rtn != DCMCFRTN_00000 )
{
goto ERROR;
}
/*▲▲ メッセージ受信終了(recvsync) ▲▲*/
/*◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆*/
/*◆ TP_DATA受信(TP-DATA) ◆*/
/*◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆*/
/*★★ recvsync引数設定 (初期化) ★★*/
action = DCMCFFRST ;
commform = DCNOFLAGS ;
resv01[0] = NULL ;
rdataleng = NULL ;
inbufleng = 256 ;
time = NULL ;
wachtime = WAITTIME ;
/*★★ recvdata clear ★★*/
memset(recvdata, 0, 256) ;
/*▼▼ データ受信開始(recvsync) ▼▼*/
rtn = dc_mcf_recvsync(action, commform, termnam, resv01,
recvdata, & rdataleng,
inbufleng, & time, wachtime );
if ( rtn != DCMCFRTN_00000 )
{
goto ERROR;
}
/*▲▲ データ受信終了(recvsync) ▲▲*/
/*◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆*/
/*◆ ダイアログ終了要求受信(TP-END-DIALOGUE) ◆*/
/*◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆*/
/*★★ recvsync引数設定 (初期化) ★★*/
action = DCMCFFRST ;
commform = DCNOFLAGS ;
resv01[0] = NULL ;
rdataleng = NULL ;
inbufleng = 256 ;
time = NULL ;
wachtime = WAITTIME ;
/*★★ recvdata clear★★*/
memset(recvdata, 0, 256) ;
/*▼▼ メッセージ受信開始(recvsync) ▼▼*/
rtn = dc_mcf_recvsync(action, commform, termnam, resv01,
recvdata, & rdataleng,
inbufleng, & time, wachtime);
if ( rtn != DCMCFRTN_00000 )
{
goto ERROR;
}
/*▲▲ メッセージ受信終了(recvsync)▲▲*/
/*◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆*/
/*◆ ダイアログ終了応答送信(TP-END-DIALOGUE) ◆*/
/*◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆*/
/*★★ sendsync引数設定 (初期化) ★★*/
action = DCMCFEMI ;
commform = DCNOFLAGS ;
resv01[0] = NULL ;
sdataleng = 14 ;
resv02[0] = NULL ;
opcd = DCNOFLAGS ;
wachtime = WAITTIME ;
/*★★ senddata clear★★*/
memset(senddata, 0, 256) ;
/*★ senddata 設定 ★*/
/*★ 先頭8バイト目までは,MCFが使用する ★*/
senddata[8] = 0x00 ; /* レングス 01 */
senddata[9] = 0x0a ; /* サービスプリミティブの長さ */
strcpy(senddata + 10, "OTP1") ; /* 送信手順(OTP1) */
strcpy(senddata + 14, "EDP ") ;
/* サービスプリミティブコード */
/* TP-END-DIALOGUE rsp */
senddata[18] = 0x00 ; /* レングス 02 */
senddata[19] = 0x02 ; /* パラメタ(省略) */
senddata[20] = 0x00 ; /* レングス 03 */
senddata[21] = 0x02 ; /* ユーザ情報(省略) */
/*▼▼ メッセージ送信開始(sendsync) ▼▼*/
rtn = dc_mcf_sendsync(action, commform, termnam, resv01,
senddata, sdataleng, resv02, opcd,
wachtime);
/*▲▲ メッセージ送信終了(sendsync) ▲▲*/
ERROR : ;
}
#include <dcmcf.h>
#include <string.h>
#define WAITTIME 60
void RECV01(in, in_len, out, out_len)
char *in ;
unsigned DCLONG in_len ;
char *out ;
unsigned DCLONG out_len ;
{
/*★★引数定義★★*/ /*引数を使用している関数*/
/* sendsync, recvsync, sendrecv, receive */
DCLONG action ;/* 0 0 0 0 */
DCLONG commform ;/* 0 0 0 0 */
char termnam[16] ;/* 0 0 0 0 */
char resv01[16] ;/* 0 0 0 0 */
char senddata[256] ;/* 0 - 0 - */
DCLONG sdataleng ;/* 0 - 0 - */
char recvdata[256] ;/* - 0 0 0 */
DCLONG rdataleng ;/* - 0 0 0 */
DCLONG time ;/* - 0 0 0 */
DCLONG wachtime ;/* 0 0 0 - */
char resv02[16] ;/* 0 - - - */
DCLONG opcd ;/* 0 - - - */
DCLONG inbufleng ;/* - 0 0 0 */
/*★★変数定義 & 初期化★★*/
int rtn = NULL ;
/*★★引数初期化★★*/
action = NULL;
commform = NULL;
memset(termnam, 0, 16) ;
memset(resv01, 0, 16) ;
memset(recvdata, 0, 256);
sdataleng = NULL;
memset(recvdata, 0, 256);
rdataleng = NULL;
time = NULL;
wachtime = NULL;
memset(resv02, 0, 16) ;
opcd = NULL;
inbufleng = NULL;
/*◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆*/
/*◆ ダイアログ開始要求受信(TP-BEGIN-DIALOGUE) ◆*/
/*◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆*/
/*★★ receive引数設定 (初期化) ★★*/
action = DCMCFFRST ;
commform = DCNOFLAGS ;
termnam[0] = NULL ;
/*recvdataイニシャライズは省略*/
resv01[0] = NULL ;
rdataleng = NULL ;
inbufleng = 256 ;
time = NULL ;
/*▼▼ ダイアログ開始要求受信開始(receive) ▼▼*/
rtn = dc_mcf_receive(action, commform, termnam, resv01,
recvdata, & rdataleng, inbufleng,
& time);
if ( rtn != DCMCFRTN_00000 )
{
goto ERROR;
}
/*▲▲ ダイアログ開始要求受信終了(receive) ▲▲*/
/*◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆*/
/*◆ ダイアログ開始応答送信(TP-BEGIN-DIALOGUE) ◆*/
/*◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆*/
/*★★ sendsync引数設定 (初期化) ★★*/
action = DCMCFEMI ;
commform = DCNOFLAGS ;
resv01[0] = NULL ;
sdataleng = 18 ;
resv02[0] = NULL ;
opcd = DCNOFLAGS ;
wachtime = WAITTIME ;
/*★ senddata 設定 ★*/
/*★ 先頭8バイト目までは,MCFが使用する ★*/
senddata[8] = 0x00 ; /* レングス 01 */
senddata[9] = 0x0a ; /* サービスプリミティブの長さ */
strcpy(senddata + 10, "OTP1") ; /* 送信手順(OTP1) */
strcpy(senddata + 14, "BDPA") ;
/* サービスプリミティブコード */
/* TP-BEGIN-DIALOGUE rsp */
senddata[18] = 0x00 ; /* レングス 02 */
senddata[19] = 0x06 ; /* パラメタ全体の長さ */
senddata[20] = 0x00 ; /* レングス 03 */
senddata[21] = 0x04 ; /* 結果の長さ */
strcpy(senddata + 22, "AC") ; /* 結果(パラメタ 1) */
senddata[24] = 0x00 ; /* レングス 04 */
senddata[25] = 0x02 ; /* ユーザ情報(省略) */
/*▼▼ メッセージ送信開始(sendsync) ▼▼*/
rtn = dc_mcf_sendsync(action, commform, termnam, resv01,
senddata, sdataleng, resv02, opcd,
wachtime);
if ( rtn != DCMCFRTN_00000 )
{
goto ERROR;
}
/*▲▲ メッセージ送信終了(sendsync) ▲▲*/
/*◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆*/
/*◆ TP_DATA受信(TP-DATA) ◆*/
/*◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆*/
/*★★ recvsync引数設定 (初期化) ★★*/
action = DCMCFFRST ;
commform = DCNOFLAGS ;
resv01[0] = NULL ;
rdataleng = NULL ;
inbufleng = 256 ;
time = NULL ;
wachtime = WAITTIME ;
/*★★ recvdata clear ★★*/
memset(recvdata, 0, 256) ;
/*▼▼ データ受信開始(recvsync) ▼▼*/
rtn = dc_mcf_recvsync(action, commform, termnam, resv01,
recvdata, & rdataleng,
inbufleng, & time, wachtime);
if ( rtn != DCMCFRTN_00000 )
{
goto ERROR;
}
/*▲▲ データ受信終了(recvsync) ▲▲*/
/*◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆*/
/*◆ ハンドシェイク&制御権譲渡要求受信 ◆*/
/*◆ (TP-HANDSHAKE-AND-GRANT-CONTROL) ◆*/
/*◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆*/
/*★★ recvsync引数設定 (初期化) ★★*/
action = DCMCFFRST ;
commform = DCNOFLAGS ;
resv01[0] = NULL ;
rdataleng = NULL ;
inbufleng = 256 ;
time = NULL ;
wachtime = WAITTIME ;
/*★★ recvdata clear ★★*/
memset(recvdata, 0, 256) ;
/*▼▼ メッセージ受信開始(recvsync) ▼▼*/
rtn = dc_mcf_recvsync(action, commform, termnam, resv01,
recvdata, & rdataleng,
inbufleng, & time, wachtime);
if ( rtn != DCMCFRTN_00000 )
{
goto ERROR;
}
/*▲▲ メッセージ受信終了(recvsync) ▲▲*/
/*◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆*/
/*◆ ハンドシェイク&制御権譲渡応答送信 ◆*/
/*◆ (TP-HANDSHAKE-AND-GRANT-CONTROL) ◆*/
/*◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆*/
/*★★ sendsync引数設定 (初期化) ★★*/
action = DCMCFEMI ;
commform = DCNOFLAGS ;
resv01[0] = NULL ;
sdataleng = 14 ;
resv02[0] = NULL ;
opcd = DCNOFLAGS ;
wachtime = WAITTIME ;
/*★ senddata clear ★*/
memset(senddata, 0, 256) ;
/*★ senddata 設定 ★*/
/*★ 先頭8バイト目までは,MCFが使用する ★*/
senddata[8] = 0x00 ;
senddata[9] = 0x0a ;
strcpy(senddata + 10, "OTP1") ; /* 送信手順(OTP1) */
strcpy(senddata + 14, "HGP ") ;
/* サービスプリミティブコード */
/* TP-HANDSHAKE-AND- */
/* GRANT-CONTROL rsp */
senddata[18] = 0x00 ;
senddata[19] = 0x02 ; /* パラメタ(省略) */
senddata[20] = 0x00 ;
senddata[21] = 0x02 ; /* ユーザ情報(省略) */
/*▼▼ メッセージ送信開始(sendsync) ▼▼*/
rtn = dc_mcf_sendsync(action, commform, termnam, resv01,
senddata, sdataleng, resv02, opcd,
wachtime);
if ( rtn != DCMCFRTN_00000 )
{
goto ERROR;
}
/*▲▲ メッセージ送信終了(sendsync) ▲▲*/
/*◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆*/
/*◆ データ送信(TP-DATA) ◆*/
/*◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆*/
/*★★ sendsync引数設定 (初期化) ★★*/
action = DCMCFEMI ;
commform = DCNOFLAGS ;
resv01[0] = NULL ;
sdataleng = 23 ;
resv02[0] = NULL ;
opcd = DCNOFLAGS ;
wachtime = WAITTIME ;
/*★ senddata clear ★*/
memset(senddata, 0, 256) ;
/*★ senddata 設定 ★*/
/*★ 先頭8バイト目までは,MCFが使用する ★*/
senddata[8] = 0x00 ; /* レングス 01 */
senddata[9] = 0x0a ; /* サービスプリミティブの長さ */
strcpy(senddata + 10, "OTP1") ; /* 送信手順(OTP1) */
strcpy(senddata + 14, "TDR ") ;
/* サービスプリミティブコード */
/* TP_DATA req */
senddata[18] = 0x00 ; /* レングス 02 */
senddata[19] = 0x02 ; /* パラメタ(省略) */
senddata[20] = 0x00 ; /* レングス 03 */
senddata[21] = 0x0b ; /* ユーザ情報の長さ */
senddata[22] = 0x80 ; /* 連結状態 */
strcpy(senddata + 23, "USERDATA") ; /* ユーザデータ */
/*▼▼ データ送信(sendsync)開始 ▼▼*/
rtn = dc_mcf_sendsync(action, commform, termnam, resv01,
senddata, sdataleng, resv02, opcd,
wachtime);
if ( rtn != DCMCFRTN_00000 )
{
goto ERROR;
}
/*▲▲ データ送信(sendsync)終了 ▲▲*/
/*◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆*/
/*◆ ダイアログ終了要求送受信(TP-END-DIALOGUE) ◆*/
/*◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆*/
/*★★ sendrecv引数設定 ★★*/
action = DCMCFEMI ;
commform = DCMCFIO ;
resv01[0] = NULL ;
sdataleng = 18 ;
rdataleng = NULL ;
inbufleng = 256 ;
time = NULL ;
wachtime = WAITTIME ;
/*★ senddata clear ★*/
memset(senddata, 0, 256) ;
memset(recvdata, 0, 256) ;
/*★ senddata 設定 ★*/
/*★ 先頭8バイト目までは,MCFが使用する ★*/
senddata[8] = 0x00 ; /* レングス 01 */
senddata[9] = 0x0a ; /* サービスプリミティブの長さ */
strcpy(senddata + 10, "OTP1") ; /* 送信手順(OTP1) */
strcpy(senddata + 14, "EDR ") ;
/* サービスプリミティブコード */
/* TP-END-DIALOGUE req */
senddata[18] = 0x00 ; /* レングス 02 */
senddata[19] = 0x06 ; /* パラメタ全体の長さ */
senddata[20] = 0x00 ; /* レングス 03 */
senddata[21] = 0x04 ; /* 確認項目の長さ */
strcpy(senddata + 22, "TR") ; /* 確認項目(パラメタ 1) */
senddata[24] = 0x00 ; /* レングス 04 */
senddata[25] = 0x02 ; /* ユーザ情報 */
/*▼▼ メッセージ送受信開始(sendrecv) ▼▼*/
rtn = dc_mcf_sendrecv(action, commform, termnam, resv01,
senddata, sdataleng,
recvdata, & rdataleng,
inbufleng, & time, wachtime);
if ( rtn != DCMCFRTN_00000 )
{
goto ERROR;
}
/*▲▲ メッセージ送受信終了(sendrecv)▲▲*/
ERROR : ;
}