dc_mcf_sendrecv
形式
形式については,マニュアル「OpenTP1 プロトコル」の該当するプロトコル編を参照してください。
機能
相手システムへ,稼働中のUAPの処理で論理メッセージを送信して,応答を受信します。UAPからdc_mcf_sendrecv関数を呼び出してから,関数に指定した論理端末にメッセージを送信し終わり,応答が返ってくるまで,dc_mcf_sendrecv関数は待ちます。このように,UAPからのdc_mcf_sendrecv関数の呼び出しと同期して,論理メッセージを送受信します。
メッセージの最終セグメントをdc_mcf_sendrecv関数で送信して,MCFがメッセージを送信すると,dc_mcf_sendrecv関数は応答待ちの状態になります。
dc_mcf_sendrecv関数では,セグメント単位で論理メッセージを送信します。論理メッセージが一つのセグメントから構成される場合は,dc_mcf_sendrecv関数を1回呼び出して送信します。論理メッセージが複数のセグメントから構成される場合は,必要なセグメントの数だけdc_mcf_sendrecv関数を呼び出して,一つの論理メッセージを送信します。
論理端末からの応答メッセージのセグメントをMCFですべて受け取ると,最終セグメントを送信したdc_mcf_sendrecv関数で,先頭セグメントだけを受信します。中間セグメント以降は,dc_mcf_recvsync関数で受信します。
受信できる一つのセグメントの最大長は,1メガバイトまでです。また,送信できるメッセージの一つのセグメント長は,32キロバイトまでです。ただし,プロトコルによって,実際の最大長が小さいことがあります。詳細については,マニュアル「OpenTP1 プロトコル」の該当するプロトコル編を参照してください。
dc_mcf_sendrecv関数がセグメントを送信するMCFの領域は,MCFで使う領域と,送信するメッセージのセグメントから構成されます。
引数に設定する値と関数のリターン値は,使う通信プロトコルによって異なります。詳細については,マニュアル「OpenTP1 プロトコル」の該当するプロトコル編を参照してください。