SNICInterface for ThingPlug Example
Dependents: ThingPlug_WiFi_Example ThingPlug_WiFi_Example_2
Fork of SNICInterface by
Diff: Socket/TCPSocketConnection.cpp
- Revision:
- 43:d80bbb12ffe6
- Parent:
- 41:1c1b5ad4d491
- Child:
- 48:ee7e07fb401f
--- a/Socket/TCPSocketConnection.cpp Fri Sep 19 01:46:17 2014 +0000 +++ b/Socket/TCPSocketConnection.cpp Fri Nov 14 00:52:31 2014 +0000 @@ -35,11 +35,13 @@ C_SNIC_Core *snic_core_p = C_SNIC_Core::getInstance(); C_SNIC_UartCommandManager *uartCmdMgr_p = snic_core_p->getUartCommand(); + FUNC_IN(); // Socket create ret = createSocket(); if( ret != 0 ) { DEBUG_PRINT("createSocket error : %d\r\n", ret); + FUNC_OUT(); return -1; } @@ -47,7 +49,8 @@ //lcd_printf("connect to [%s](%08x)\r\n", host_p, ip_addr); if( ( ip_addr == 0) || (ip_addr == -1) ) { - DEBUG_PRINT("connect resolveHostName failed\r\n"); + DEBUG_PRINT("connect resolveHostName failed\r\n"); + FUNC_OUT(); return -1; } @@ -56,6 +59,7 @@ if( payload_buf_p == NULL ) { DEBUG_PRINT("connect payload_buf_p NULL\r\n"); + FUNC_OUT(); return -1; } @@ -94,6 +98,7 @@ { DEBUG_PRINT( "connect failed\r\n" ); snic_core_p->freeCmdBuf( payload_buf_p ); + FUNC_OUT(); return -1; } @@ -101,6 +106,7 @@ { DEBUG_PRINT("connect status:%02x\r\n", uartCmdMgr_p->getCommandStatus()); snic_core_p->freeCmdBuf( payload_buf_p ); + FUNC_OUT(); return -1; } @@ -115,7 +121,7 @@ } con_info_p->is_connected = true; con_info_p->is_received = false; - + FUNC_OUT(); return 0; } @@ -131,11 +137,13 @@ C_SNIC_Core *snic_core_p = C_SNIC_Core::getInstance(); C_SNIC_UartCommandManager *uartCmdMgr_p = snic_core_p->getUartCommand(); + FUNC_IN(); // Get buffer for response payload from MemoryPool tagMEMPOOL_BLOCK_T *payload_buf_p = snic_core_p->allocCmdBuf(); if( payload_buf_p == NULL ) { DEBUG_PRINT("connect payload_buf_p NULL\r\n"); + FUNC_OUT(); return -1; } @@ -168,6 +176,7 @@ { DEBUG_PRINT( "send failed\r\n" ); snic_core_p->freeCmdBuf( payload_buf_p ); + FUNC_OUT(); return -1; } @@ -175,11 +184,13 @@ { DEBUG_PRINT("send status:%02x\r\n", uartCmdMgr_p->getCommandStatus()); snic_core_p->freeCmdBuf( payload_buf_p ); + FUNC_OUT(); return -1; } snic_core_p->freeCmdBuf( payload_buf_p ); // SNIC_SEND_FROM_SOCKET_REQ + FUNC_OUT(); return 0; } @@ -192,9 +203,11 @@ { int i = 0; + FUNC_IN(); if( (data_p == NULL) || (length < 1) ) { DEBUG_PRINT("TCPSocketConnection::receive parameter error\r\n"); + FUNC_OUT(); return -1; } @@ -204,6 +217,7 @@ if( con_info_p->recvbuf_p == NULL ) { DEBUG_PRINT("TCPSocketConnection::receive Conncection info error\r\n"); + FUNC_OUT(); return -1; } @@ -211,15 +225,14 @@ if( con_info_p->is_connected == false ) { DEBUG_PRINT(" Socket id \"%d\" is not connected\r\n", mSocketID); + FUNC_OUT(); return -1; } - - if( con_info_p->is_received == false ) + con_info_p->is_receive_complete = true; + while( con_info_p->is_received == false ) { -// DEBUG_PRINT(" Socket id \"%d\" is not received\r\n", mSocketID); - return 0; + Thread::yield(); } - // Get packet data from buffer for receive. for (i = 0; i < length; i ++) { @@ -236,10 +249,12 @@ con_info_p->mutex.unlock(); } + FUNC_OUT(); return i; } void TCPSocketConnection::setAcceptSocket( int socket_id ) { + FUNC_IN(); mSocketID = socket_id; }