수신에 사용한 함수는 위즈 네트의 레퍼런스 코드를 사용하였습니다.
getSn_RX_RSR(SOCKET_NUM);
recv(SOCKET_NUM, pucImageTemp, iLen) → Recv(SOCKET_NUM, pucImageTemp, iLen); 함수 이름만 변경하여 사용
#if 1
size = Left_Shift_Byte(pucData[1], 3) | Left_Shift_Byte(pucData[2], 2) |
Left_Shift_Byte(pucData[3], 1) | Left_Shift_Byte(pucData[4], 0);;
printf(“BMP Image Size = %d\n”,size);
IINCHIP_WRITE(Sn_MR(SOCKET_NUM),Sn_MR_TCP);
while( 1 )
{
iLen = getSn_RX_RSR(SOCKET_NUM);
if( iLen > 0 )
{
iLen = Recv(SOCKET_NUM, pucImageTemp, iLen);
size = size - iLen;
Cnt++;
}
#if 0 // <----- 0 적용 하였을
if( iLen == 0 )
{
printf(“\r\n No image data Recv…delay_ms = %d\r\n”, delay_ms);
Delay_1ms(delay_ms);
delay_ms = delay_ms + TEST_RECV_DELAY;
}
else
{
delay_ms = TEST_RECV_DELAY;
printf(“\r\n size = %d, iLen : %d, Cnt : %d\r\n”, size, iLen, Cnt);
}
#else
printf(“\r\n size = %d, iLen : %d, Cnt : %d\r\n”, size, iLen, Cnt);
#endif
if( size <= 0 )
{
printf(“\r\n image… Download … OK \r\n”);
LEDOn(CONTROL_LED_GREEN_ID);
break;
}
}
#else
#endif
size = 6133200, iLen : 7300, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6133200, iLen : 0, Cnt : 14
size = 6125900, iLen : 7300, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6125900, iLen : 0, Cnt : 15
size = 6118600, iLen : 7300, Cnt : 16
#if 1 // <----- 1 적용 하였을 때
size = 6045600, iLen : 7300, Cnt : 24
No image data Recv…delay_ms = 10
No image data Recv…delay_ms = 20
No image data Recv…delay_ms = 30
No image data Recv…delay_ms = 40
No image data Recv…delay_ms = 50
size = 6038300, iLen : 7300, Cnt : 25
No image data Recv…delay_ms = 10
No image data Recv…delay_ms = 20
No image data Recv…delay_ms = 30
No image data Recv…delay_ms = 40
No image data Recv…delay_ms = 50
size = 6031000, iLen : 7300, Cnt : 26
W3100의 경우
size = 5760900, iLen : 7300, Cnt : 64
size = 5753600, iLen : 7300, Cnt : 65
size = 5746300, iLen : 7300, Cnt : 66
size = 5739000, iLen : 7300, Cnt : 67
size = 5731700, iLen : 7300, Cnt : 68
ACK 지연 옵션 없이 W3100에 대해서 문제 없이 사용하였습니다.
미흡한 소견으로는
IINCHIP_WRITE(Sn_CR(s),Sn_CR_RECV); 에 대한 처리가 정확히 이루어 지는지가 의심스럽습니다.
필요에 따라 전화 주셔도 괜찮습니다.
010-8879-5402
빠른 답변 부탁바랍니다.