データ受信では、データ送信と同様にF&eITプロトコルのデータストリームを使用します。
従って、受信したパケットが、データストリームであるかを確認し、取得したストリームデータが、受信すべきデータとなります。
受信したパケットがストリームデータである事を確認します。
PSVHEAD pSVHead;
pSVHead = (PSVHEAD)(RxBuffer);
if( ( ( pSVHead->bSVHCommand & SV_COMMAND_MASK ) != SV_DATA_STREAM ) ||
( pSVHead->wSVHId != SV_ID ) ||
( pSVHead->bSVHVer != SV_VER ) ) {
次の受信データ確認;
}
受信したパケットが、ストリームパケットであれは、データの取得をします。
ここでは、pRxDataに取得したデータのエントリ、DataSizeに取得したデータのサイズが格納されます。
PSTRMHEAD pStrmHead;
pStrmHead = (PSTRMHEAD)( (DWORD)(RxBuffer) + sizeof(SVHEAD) );
if( ( pStrmHead->bSTRMVer != STRM_VER ) ||
( ( pStrmHead->bSTRMCommand & STRM_COMMAND_MASK ) != STRM_SEND ) ) {
次の受信データ確認;
}
pRxData = (BYTE*)( (DWORD)(RxBuffer) + sizeof(SVHEAD) + sizeof(STRMHEAD) );
DataSize = pStrmHead->wSTRMSize;
(注意)データストリームでは、メディアコンバータに接続された機器から送られたデータを、メディアコンバータが適切なサイズに分割してLAN上に送信します。
このため、データストリームの受信側では注意が必要です。