アプリケーションは、メディアコンバータとの通信を終了する場合、必ず切断処理を行う必要があります。
切断処理により、アプリケーションとメディアコンバータとの接続が開放されます。
接続解放後メディアコンバータは、他の仮想COMアプリケーションからの接続要求を受付けます。
切断処理は、仮想アドレスマップのI/O空間を再初期化する事で行われます。
初期化情報を仮想アドレスマップへ設定するために必要な情報テーブルの作成をします。
切断時は、①の制御レジスタにSER_CR_INIT (0000H) を設定する事で、メディアコンバータとの切断を要求します。
メディアコンバータからの切断を要求します。
*(DWORD*)(&TxBuffer[sizeof(SVHEAD)]) = SER_CR_INIT; ――― ①
|
①メディアコンバータとの切断を要求します。 |
作成した初期化情報テーブルの内容を、仮想アドレスマップへ書き込むために、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に対し送信を行います。