切断処理

■切断処理

アプリケーションは、メディアコンバータとの通信を終了する場合、必ず切断処理を行う必要があります。

切断処理により、アプリケーションとメディアコンバータとの接続が開放されます。
接続解放後メディアコンバータは、他の仮想COMアプリケーションからの接続要求を受付けます。

切断処理は、仮想アドレスマップのI/O空間を再初期化する事で行われます。

 

■切断情報の作成

初期化情報を仮想アドレスマップへ設定するために必要な情報テーブルの作成をします。

切断時は、①の制御レジスタにSER_CR_INIT (0000H) を設定する事で、メディアコンバータとの切断を要求します。

メディアコンバータからの切断を要求します。

*(DWORD*)(&TxBuffer[sizeof(SVHEAD)]) = SER_CR_INIT;   ――― ①

 

①メディアコンバータとの切断を要求します。

 

■F&eITプロトコルヘッダの作成

作成した初期化情報テーブルの内容を、仮想アドレスマップへ書き込むために、F&eITプロトコルヘッダを作成します。

PSVHEAD pSVHead;

pSVHead = (PSVHEAD)(TxBuffer);

memset( pSVHead, 0x00, sizeof( SVHEAD ) );

pSVHead->bSVHCommand = SV_WRITE | SV_NO_ACK_FLAG;

pSVHead->dwSVHVAddr = SV_VA_IO_CTRL + SV_VA_SETCTRL_OFFS; ― ①

pSVHead->wSVHAccessSize = SV_VA_SETCTRL_SIZE;

pSVHead->wSVHId = SV_ID;

pSVHead->bSVHVer = SV_VER;

pSVHead->wSVHSeqNo = (++SeqNo);

pSVHead->wSVHReplyId = (++ReplyId);

pSVHead->wSVHStatus = 0;

①書き込みをする仮想アドレスMAPのアドレスとサイズを設定しています。

切断では、制御レジスタのみの書き込みを設定しています。

 

 

■送信

作成した切断情報をF&eITプロトコルのデータとして、Socketに対し送信を行います。