diff --git a/binary/wifiHD.elf b/binary/wifiHD.elf index 91d535e5b..93eada05f 100644 Binary files a/binary/wifiHD.elf and b/binary/wifiHD.elf differ diff --git a/wifiHD/Release/wifiHD.elf b/wifiHD/Release/wifiHD.elf index 91d535e5b..93eada05f 100644 Binary files a/wifiHD/Release/wifiHD.elf and b/wifiHD/Release/wifiHD.elf differ diff --git a/wifiHD/src/ard_spi.c b/wifiHD/src/ard_spi.c index 70b96195a..e22e6340c 100644 --- a/wifiHD/src/ard_spi.c +++ b/wifiHD/src/ard_spi.c @@ -1008,12 +1008,16 @@ cmd_spi_state_t get_client_state_tcp_cmd_cb(char* recv, char* reply, void* ctx, uint8_t _state = CLOSED; if ((recv[3]==1)&&(recv[4]>=0)&&(recv[4]tpcb, _state); }else { - _state = getStateTcp(mapSockTCP[(uint8_t)recv[4]], 1); + _state = getStateTcp(p, 1); } } PUT_DATA_BYTE(_state, reply, 3); diff --git a/wifiHD/src/ard_tcp.c b/wifiHD/src/ard_tcp.c index 3a9b11765..f5c99b913 100644 --- a/wifiHD/src/ard_tcp.c +++ b/wifiHD/src/ard_tcp.c @@ -211,9 +211,9 @@ tcp_sent_cb(void *arg, struct tcp_pcb *pcb, u16_t len) static err_t tcp_connect_cb(void *arg, struct tcp_pcb *tpcb, err_t err) { struct ttcp* ttcp = arg; - INFO_TCP("TTCP [%p]: connect %d %d\n", ttcp, err, ttcp->tpcb->state); + INFO_TCP("TTCP [%p-%p]: connect %d %d\n", ttcp, tpcb, err, ttcp->tpcb->state); - _connected = true; + _connected = ( ttcp->tpcb->state == ESTABLISHED) ? 1 : 0; ttcp->start_time = timer_get_ms(); @@ -315,6 +315,8 @@ static int atcp_start(struct ttcp* ttcp) { tcp_err(ttcp->tpcb, atcp_conn_err_cb); tcp_recv(ttcp->tpcb, atcp_recv_cb); _connected = false; + INFO_TCP("[tpcb]- %p\n", ttcp->tpcb); + if (tcp_connect(ttcp->tpcb, &ttcp->addr, ttcp->port, tcp_connect_cb) != ERR_OK) { WARN("TTCP [%p]: tcp connect failed\n", ttcp);