ESP8266: Fix fifo logic; make configration variable naming consistent

This commit is contained in:
Gregory Nutt 2016-05-21 09:20:37 -06:00
parent abdf703746
commit 6789eec9d8
2 changed files with 21 additions and 20 deletions

View File

@ -11,23 +11,23 @@ config NETUTILS_ESP8266
if NETUTILS_ESP8266 if NETUTILS_ESP8266
config ESP8266_DEV_PATH config NETUTILS_ESP8266_DEV_PATH
string "Serial device path" string "Serial device path"
default "/dev/ttyS1" default "/dev/ttyS1"
config ESP8266_BAUDRATE config NETUTILS_ESP8266_BAUDRATE
int "Serial BAUD rate" int "Serial BAUD rate"
default 115200 default 115200
config WIFI_MAX_TX_LEN config NETUTILS_ESP8266_MAXTXLEN
int "Max. TX length" int "Max. TX length"
default 256 default 256
config WIFI_MAX_RX_LEN config NETUTILS_ESP8266_MAXRXLEN
int "Max. RX length" int "Max. RX length"
default 256 default 256
config LESP_THREAD_PRIO config NETUTILS_ESP8266_THREADPRIO
int "Worker thread priority" int "Worker thread priority"
default 100 default 100

View File

@ -65,16 +65,16 @@
#define NETAPP_IPCONFIG_MAC_OFFSET (20) #define NETAPP_IPCONFIG_MAC_OFFSET (20)
#ifndef CONFIG_WIFI_MAX_TX_LEN #ifndef CONFIG_NETUTILS_ESP8266_MAXTXLEN
# define CONFIG_WIFI_MAX_TX_LEN 256 # define CONFIG_NETUTILS_ESP8266_MAXTXLEN 256
#endif #endif
#ifndef CONFIG_WIFI_MAX_RX_LEN #ifndef CONFIG_NETUTILS_ESP8266_MAXRXLEN
# define CONFIG_WIFI_MAX_RX_LEN 256 # define CONFIG_NETUTILS_ESP8266_MAXRXLEN 256
#endif #endif
#define BUF_CMD_LEN CONFIG_WIFI_MAX_TX_LEN #define BUF_CMD_LEN CONFIG_NETUTILS_ESP8266_MAXTXLEN
#define BUF_ANS_LEN CONFIG_WIFI_MAX_RX_LEN #define BUF_ANS_LEN CONFIG_NETUTILS_ESP8266_MAXRXLEN
#define BUF_WORKER_LEN 1024 #define BUF_WORKER_LEN 1024
#define CON_NBR 4 #define CON_NBR 4
@ -846,26 +846,26 @@ int lesp_initialize(void)
if (g_lesp_state.fd < 0) if (g_lesp_state.fd < 0)
{ {
g_lesp_state.fd = open(CONFIG_ESP8266_DEV_PATH, O_RDWR); g_lesp_state.fd = open(CONFIG_NETUTILS_ESP8266_DEV_PATH, O_RDWR);
} }
if (g_lesp_state.fd < 0) if (g_lesp_state.fd < 0)
{ {
syslog(LOG_ERR,"Cannot open %s.\n", CONFIG_ESP8266_DEV_PATH); syslog(LOG_ERR,"Cannot open %s.\n", CONFIG_NETUTILS_ESP8266_DEV_PATH);
ret = -1; ret = -1;
} }
#if 0 // lesp_set_baudrate is not defined #if 0 // lesp_set_baudrate is not defined
if (ret >= 0 && lesp_set_baudrate(g_lesp_state.fd, CONFIG_ESP8266_BAUDRATE) < 0) if (ret >= 0 && lesp_set_baudrate(g_lesp_state.fd, CONFIG_NETUTILS_ESP8266_BAUDRATE) < 0)
{ {
syslog(LOG_ERR,"Cannot set baud rate %d.\n", CONFIG_ESP8266_BAUDRATE); syslog(LOG_ERR,"Cannot set baud rate %d.\n", CONFIG_NETUTILS_ESP8266_BAUDRATE);
ret = -1; ret = -1;
} }
#endif #endif
if ((ret >= 0) && (g_lesp_state.worker.running == false)) if ((ret >= 0) && (g_lesp_state.worker.running == false))
{ {
ret = lesp_create_worker(CONFIG_LESP_THREAD_PRIO); ret = lesp_create_worker(CONFIG_NETUTILS_ESP8266_THREADPRIO);
} }
pthread_mutex_unlock(&g_lesp_state.mutex); pthread_mutex_unlock(&g_lesp_state.mutex);
@ -1338,9 +1338,10 @@ ssize_t lesp_recv(int sockfd, FAR uint8_t *buf, size_t len, int flags)
ret = -1; ret = -1;
} }
if ((ret >= 0) && (sock->nfifo == 0)) if (ret >= 0 && sock->nfifo == 0)
{ {
struct timespec ts; struct timespec ts;
if (clock_gettime(CLOCK_REALTIME,&ts) < 0) if (clock_gettime(CLOCK_REALTIME,&ts) < 0)
{ {
ret = -1; ret = -1;
@ -1349,7 +1350,7 @@ ssize_t lesp_recv(int sockfd, FAR uint8_t *buf, size_t len, int flags)
{ {
ts.tv_sec += lespTIMEOUT_MS_RECV_S; ts.tv_sec += lespTIMEOUT_MS_RECV_S;
sock->sem = &sem; sock->sem = &sem;
while ((ret >= 0) && (sock->nfifo == 0)) while (ret >= 0 && sock->nfifo == 0)
{ {
pthread_mutex_unlock(&g_lesp_state.mutex); pthread_mutex_unlock(&g_lesp_state.mutex);
ret = sem_timedwait(&sem,&ts); ret = sem_timedwait(&sem,&ts);
@ -1365,9 +1366,9 @@ ssize_t lesp_recv(int sockfd, FAR uint8_t *buf, size_t len, int flags)
ret = 0; ret = 0;
while (ret < len && sock->nfifo > 0) while (ret < len && sock->nfifo > 0)
{ {
int ndx = sock->nfifo; int ndx = sock->nfifo - 1;
*buf++ = sock->rxbuf[ndx]; *buf++ = sock->rxbuf[ndx];
sock->nfifo = ndx - 1; sock->nfifo = ndx;
ret++; ret++;
} }
} }