cc3000 driver with expanded buffers.
Fork of cc3000_hostdriver_mbedsocket by
Revision 13:5e36c267e62f, committed 2013-10-02
- Comitter:
- SolderSplashLabs
- Date:
- Wed Oct 02 15:00:07 2013 +0000
- Parent:
- 11:5e3771b29385
- Child:
- 14:28c8bbbea025
- Commit message:
- Now using a #define for debug printing control, allowing redirection and modification in a single place
Changed in this revision
--- a/Socket/Endpoint.cpp Tue Oct 01 21:17:44 2013 +0000 +++ b/Socket/Endpoint.cpp Wed Oct 02 15:00:07 2013 +0000 @@ -109,15 +109,14 @@ _remote_host.sin_family = AF_INET; _remote_host.sin_port = htons(port); -#if (CC3000_DEBUG == 1) - printf("DEBUG: remote host address (string): %s\r\n",get_address()); - printf("DEBUG: remote host address from s_addr : %d.%d.%d.%d\r\n", + DBG_SOCKET("remote host address (string): %s",get_address()); + DBG_SOCKET("remote host address from s_addr : %d.%d.%d.%d", int(_remote_host.sin_addr.s_addr & 0xFF), int((_remote_host.sin_addr.s_addr & 0xFF00) >> 8), int((_remote_host.sin_addr.s_addr & 0xFF0000) >> 16), int((_remote_host.sin_addr.s_addr & 0xFF000000) >> 24)); - printf("DEBUG: port: %d \r\n", port); -#endif + DBG_SOCKET("port: %d", port); + return 0; }
--- a/Socket/Socket.cpp Tue Oct 01 21:17:44 2013 +0000 +++ b/Socket/Socket.cpp Wed Oct 02 15:00:07 2013 +0000 @@ -28,22 +28,17 @@ int Socket::init_socket(int type, int protocol) { if (_sock_fd != -1) { -#if (CC3000_DEBUG == 1) - printf("DEBUG: Socket was initialized previously.\r\n"); -#endif + DBG_SOCKET("Socket was initialized previously"); return -1; } int fd = _cc3000_module->_socket.socket(AF_INET, type, protocol); if (fd < -1) { -#if (CC3000_DEBUG == 1) - printf("DEBUG: Failed to create new socket (type: %d, protocol: %d).\r\n",type, protocol); -#endif + DBG_SOCKET("Failed to create new socket (type: %d, protocol: %d)",type, protocol); return -1; } -#if (CC3000_DEBUG == 1) - printf("DEBUG: Socket created (fd: %d type: %d, protocol: %d).\r\n",fd, type, protocol); -#endif + + DBG_SOCKET("Socket created (fd: %d type: %d, protocol: %d)",fd, type, protocol); _sock_fd = fd; return 0; @@ -75,9 +70,9 @@ fd_set* writeset = (write) ? (&fdSet) : (NULL); int ret = _cc3000_module->_socket.select(_sock_fd+1, readset, writeset, NULL, timeout); -#if (CC3000_DEBUG == 1) - printf("DEBUG: Select on sock_fd: %d, returns %d. fdSet: %d\r\n",_sock_fd, ret, fdSet); -#endif + + DBG_SOCKET("Select on sock_fd: %d, returns %d. fdSet: %d", _sock_fd, ret, fdSet); + // TODO //return (ret <= 0 || !FD_ISSET(_sock_fd, &fdSet)) ? (-1) : (0); if (FD_ISSET(_sock_fd, &fdSet)) {
--- a/Socket/TCPSocketConnection.cpp Tue Oct 01 21:17:44 2013 +0000 +++ b/Socket/TCPSocketConnection.cpp Wed Oct 02 15:00:07 2013 +0000 @@ -28,23 +28,17 @@ int TCPSocketConnection::connect(const char *host, const int port) { if (init_socket(SOCK_STREAM, IPPROTO_TCP) < 0) { -#if (CC3000_DEBUG == 1) - printf("DEBUG: Failed to create tcp socket.\r\n"); -#endif + DBG_SOCKET("Failed to create tcp socket"); return -1; } if (set_address(host, port) != 0) { -#if (CC3000_DEBUG == 1) - printf("DEBUG: Failed to set address (tcp).\r\n"); -#endif + DBG_SOCKET("Failed to set address (tcp)"); return -1; } if (_cc3000_module->_socket.connect(_sock_fd, (const sockaddr *)&_remote_host, sizeof(_remote_host)) < 0) { -#if (CC3000_DEBUG == 1) - printf("DEBUG: Failed to connect (tcp).\r\n"); -#endif + DBG_SOCKET("Failed to connect (tcp)"); close(); return -1; }
--- a/Socket/UDPSocket.cpp Tue Oct 01 21:17:44 2013 +0000 +++ b/Socket/UDPSocket.cpp Wed Oct 02 15:00:07 2013 +0000 @@ -42,9 +42,7 @@ localHost.sin_addr.s_addr = 0; if (_cc3000_module->_socket.bind(_sock_fd, (sockaddr *)&localHost, sizeof(sockaddr_in)) != 0) { -#if (CC3000_DEBUG == 1) - printf("DEBUG: Failed to bind a socket (udp). Closing socket.\r\n"); -#endif + DBG_SOCKET("Failed to bind a socket (udp). Closing socket"); _cc3000_module->_socket.closesocket(_sock_fd); _sock_fd = -1; return -1; @@ -81,9 +79,7 @@ if (!_blocking) { TimeInterval timeout(_timeout); if (wait_readable(timeout) != 0) { -#if (CC3000_DEBUG == 1) - printf("DEBUG: The socket is not readable. _sock_fd: %d.\r\n", _sock_fd); -#endif + DBG_SOCKET("The socket is not readable. _sock_fd: %d", _sock_fd); return 0; } }
--- a/cc3000.cpp Tue Oct 01 21:17:44 2013 +0000 +++ b/cc3000.cpp Wed Oct 02 15:00:07 2013 +0000 @@ -133,18 +133,17 @@ // Start the Smart Config process with AES disabled _wlan.smart_config_start(0); -#if (CC3000_DEBUG == 1) - printf("DEBUG: Waiting for smartconfig to be completed.\n"); -#endif + DBG_HCI("Waiting for smartconfig to be completed"); + // Wait for Smart config finished while (_status.smart_config_complete == 0) { wait_ms(100); } -#if (CC3000_DEBUG == 1) - printf("DEBUG: Smartconfig finished.\n"); -#endif + + DBG_HCI("Smartconfig finished"); + #ifndef CC3000_UNENCRYPTED_SMART_CONFIG // create new entry for AES encryption key _nvmem.create_entry(NVMEM_AES128_KEY_FILEID, 16); @@ -205,9 +204,9 @@ /* timeout 10 seconds */ if (t.read_ms() > 10000){ ret = false; -#if (CC3000_DEBUG == 1) - printf("Connection to AP failed.\n"); -#endif + + DBG_HCI("Connection to AP failed"); + break; } } @@ -289,9 +288,7 @@ tcp_socket = _socket.socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (tcp_socket == -1) { -#if (CC3000_DEBUG == 1) - printf("DEBUG: Failed to create new socket (tcp).\n"); -#endif + DBG_HCI("Failed to create new socket (tcp)"); return cc3000_client(*this); } @@ -304,9 +301,7 @@ socket_address.data[5] = ip_address; if (_socket.connect(tcp_socket, &socket_address, sizeof(socket_address)) == -1) { -#if (CC3000_DEBUG == 1) - printf("DEBUG: Failed to connect (tcp).\n"); -#endif + DBG_HCI("Failed to connect (tcp)"); _socket.closesocket(tcp_socket); return cc3000_client(*this); } @@ -319,9 +314,7 @@ udp_socket = _socket.socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); if (udp_socket == -1) { -#if (CC3000_DEBUG == 1) - printf("DEBUG: Failed to create new socket (udp).\n"); -#endif + DBG_HCI("Failed to create new socket (udp)"); return cc3000_client(*this); } @@ -334,9 +327,7 @@ socket_address.data[5] = ip_address; if (_socket.connect(udp_socket, &socket_address, sizeof(socket_address)) == -1) { -#if (CC3000_DEBUG == 1) - printf("DEBUG: Failed to connect (udp).\n"); -#endif + DBG_HCI("Failed to connect (udp)"); _socket.closesocket(udp_socket); return cc3000_client(*this); } @@ -350,9 +341,7 @@ tcp_socket = _socket.socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (tcp_socket == -1) { -#if (CC3000_DEBUG == 1) - printf("Failed to create new socket.\n"); -#endif + DBG_HCI("Failed to create new socket."); return cc3000_server(*this, socket_address); } @@ -365,15 +354,11 @@ socket_address.data[5] = ip_address; if (_socket.bind(tcp_socket, &socket_address, sizeof(socket_address)) != 0) { -#if (CC3000_DEBUG == 1) - printf("DEBUG: Failed to bind the new socket.\n"); -#endif + DBG_HCI("Failed to bind the new socket"); return cc3000_server(*this, socket_address); } if (_socket.listen(tcp_socket, 1) != 0) { /* 1 client */ -#if (CC3000_DEBUG == 1) - printf("DEBUG: Failed to listen on the new socket.\n"); -#endif + DBG_HCI("Failed to listen on the new socket"); return cc3000_server(*this, socket_address); } @@ -408,21 +393,18 @@ _ping_report.packets_received = 0; if (_netapp.ping_send(&reversed_ip, attempts, size, timeout) == -1) { -#if (CC3000_DEBUG == 1) - printf("DEBUG: Failed to send ping.\n"); -#endif + DBG_HCI("Failed to send ping"); return 0; } wait_ms(timeout*attempts*2); /* known issue of cc3000 - sent number is send + received */ -#if (CC3000_DEBUG == 1) - printf("DEBUG: Sent: %d \r\n",_ping_report.packets_sent); - printf("DEBUG: Received: %d \r\n",_ping_report.packets_received); - printf("DEBUG: Min time: %d \r\n",_ping_report.min_round_time); - printf("DEBUG: Max time: %d \r\n",_ping_report.max_round_time); - printf("DEBUG: Avg time: %d \r\n",_ping_report.avg_round_time); -#endif + // TODO : Remove the Sent/recv'd counts until ti fix the firmware issue? + DBG_HCI("Sent: %d \r\n",_ping_report.packets_sent); + DBG_HCI("Received: %d \r\n",_ping_report.packets_received); + DBG_HCI("Min time: %d \r\n",_ping_report.min_round_time); + DBG_HCI("Max time: %d \r\n",_ping_report.max_round_time); + DBG_HCI("Avg time: %d \r\n",_ping_report.avg_round_time); return _ping_report.packets_received; }
--- a/cc3000.h Tue Oct 01 21:17:44 2013 +0000 +++ b/cc3000.h Wed Oct 02 15:00:07 2013 +0000 @@ -55,6 +55,14 @@ */ #define CC3000_DEBUG 1 +#if CC3000_DEBUG == 1 + #define DBG_SOCKET(x, ...) std::printf("[CC3000 : SOCKET] "x"\r\n", ##__VA_ARGS__); + #define DBG_HCI(x, ...) std::printf("[CC3000 : HCI] "x"\r\n", ##__VA_ARGS__); +#else + #define DBG_SOCKET(x, ...) + #define DBG_HCI(x, ...) +#endif + namespace mbed_cc3000 { /** User info structure
--- a/cc3000_server.cpp Tue Oct 01 21:17:44 2013 +0000 +++ b/cc3000_server.cpp Wed Oct 02 15:00:07 2013 +0000 @@ -56,16 +56,15 @@ socklen_t address_length = sizeof(dest_address); _current_socket = 0; -#if (CC3000_DEBUG == 1) - printf("Waiting for receiving a connection.\n"); -#endif + DBG_HCI("Waiting for receiving a connection"); + while((client_descriptor == -1) || (client_descriptor == -2)) { client_descriptor = _cc3000._socket.accept(_current_socket,&dest_address, &address_length); } -#if (CC3000_DEBUG == 1) - printf("Received.\n"); -#endif + + DBG_HCI("Received"); + _current_socket = client_descriptor; return _current_socket;
--- a/cc3000_socket.cpp Tue Oct 01 21:17:44 2013 +0000 +++ b/cc3000_socket.cpp Wed Oct 02 15:00:07 2013 +0000 @@ -536,7 +536,7 @@ #ifndef CC3000_TINY_DRIVER int32_t cc3000_socket::gethostbyname(uint8_t *hostname, uint16_t name_length, uint32_t *out_ip_addr) { - get_host_by_name(hostname, name_length, out_ip_addr); + return (get_host_by_name(hostname, name_length, out_ip_addr)); } int32_t cc3000_socket::get_host_by_name(uint8_t *hostname, uint16_t name_length, uint32_t *out_ip_addr) {