Merged in pnb990/nuttx-apps (pull request #44)

esp8266 wifi scan tested
This commit is contained in:
Gregory Nutt 2016-06-11 07:32:29 -06:00
commit da42efa545

View File

@ -53,7 +53,9 @@
#include <debug.h>
#include <arpa/inet.h>
#include "sys/ioctl.h"
#include "sys/socket.h"
#include "termios.h"
#include "apps/netutils/esp8266.h"
@ -158,6 +160,45 @@ lesp_state_t g_lesp_state =
* Private Functions
****************************************************************************/
/****************************************************************************
* Name: lesp_set_baudrate
*
* Description:
* Set com port to baudrate.
*
* Input Parmeters:
* sockfd : int baudrate
*
* Returned Value:
* 0 on success, -1 incase of error.
*
****************************************************************************/
static int lesp_set_baudrate(int baudrate)
{
struct termios term;
if ( ioctl(g_lesp_state.fd,TCGETS,(unsigned long)&term) < 0 )
{
ndbg("TCGETS failed.\n");
return -1;
}
if ( ( cfsetispeed( &term, baudrate ) < 0 ) ||
( cfsetospeed( &term, baudrate ) < 0 ) )
{
ndbg("Connot set baudrate %0x08X\n",baudrate);
return -1;
}
if ( ioctl(g_lesp_state.fd,TCSETS,(unsigned long)&term) < 0 )
{
ndbg("TCSETS failed.\n");
return -1;
}
return 0;
}
/****************************************************************************
* Name: get_sock
*
@ -494,7 +535,7 @@ static int lesp_read(int timeout_ms)
pthread_mutex_unlock(&g_lesp_state.mutex);
}
while (ret == 0);
while (ret <= 0);
nvdbg("read %d=>%s\n", ret, g_lesp_state.bufans);
@ -878,13 +919,11 @@ int lesp_initialize(void)
ret = -1;
}
#if 0 // lesp_set_baudrate is not defined
if (ret >= 0 && lesp_set_baudrate(g_lesp_state.fd, CONFIG_NETUTILS_ESP8266_BAUDRATE) < 0)
if (ret >= 0 && lesp_set_baudrate(CONFIG_NETUTILS_ESP8266_BAUDRATE) < 0)
{
ndbg("Cannot set baud rate %d\n", CONFIG_NETUTILS_ESP8266_BAUDRATE);
ret = -1;
}
#endif
if ((ret >= 0) && (g_lesp_state.worker.running == false))
{
@ -892,6 +931,13 @@ int lesp_initialize(void)
}
pthread_mutex_unlock(&g_lesp_state.mutex);
if (ret < 0)
{
nvdbg("Esp8266 initialisation failed!\n");
return -1;
}
g_lesp_state.is_initialized = true;
nvdbg("Esp8266 initialized\n");
@ -1092,7 +1138,7 @@ int lesp_list_access_points(lesp_cb_t cb)
ret = lesp_ask_ans_ok(lespTIMEOUT_MS,"AT\r\n");
if (ret < 0)
if (ret >= 0)
{
ret = lesp_send_cmd("AT+CWLAP\r\n");
}