2.13 Communications with a Windows PC (Visual C++ Application)
Using Automatic Reception with the MP3000 as a Slave
2-352
rc = -2;
return ( rc );
}
// Check response data
rc = chk_rsp_data( rlen, sbuf, rbuf );
if ( rc != 0 ) //Error in received data
{
closesocket(sd);
return ( rc );
}
iSerial++; // Increment the serial number of the 218 header
return ( rc );
}
/∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/
/∗ Send command data, receive response data (UDP) ∗/
/∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/
int udp_msg( char∗ sbuf, char∗ rbuf )
{
int slen, rlen, fromlen;
int rc = 0;
// Send command data
slen = sendto( sd, sbuf, DATAi, 0, (struct sockaddr ∗)&dst, sizeof(struct sockaddr));
if ( slen != DATAi ) // Returns the number of bytes sent if sending was successful
{
closesocket(sd);
rc = -1;
return ( rc );
}
// Receive response data
fromlen = sizeof(struct sockaddr);
rlen = recvfrom( sd, rbuf, DATA_SIZE, 0, (struct sockaddr ∗)&from, &fromlen );
if ( rlen <= 0 ) //A 0 or less value is returned if receiving failed
{
closesocket(sd);
rc = -2;
return ( rc );
}
// Check response data
rc = chk_rsp_data( rlen, sbuf, rbuf );
if ( rc != 0 ) //Error in received data
{
closesocket(sd);