summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authoriabdalkader <i.abdalkader@gmail.com>2022-01-20 17:12:36 +0200
committerDamien George <damien@micropython.org>2022-01-21 13:35:05 +1100
commit1aac151d6894cf892c0ff7bb38e5589580d6c080 (patch)
tree66b21d9fa3d2b56e4251a6e4e55e772102967bcf /drivers
parenta63875d5add278ce37a7cacb917488b4effac8a6 (diff)
drivers/ninaw10: Return standard error numbers.
Diffstat (limited to 'drivers')
-rw-r--r--drivers/ninaw10/nina_wifi_drv.c26
-rw-r--r--drivers/ninaw10/nina_wifi_drv.h5
2 files changed, 15 insertions, 16 deletions
diff --git a/drivers/ninaw10/nina_wifi_drv.c b/drivers/ninaw10/nina_wifi_drv.c
index 12707fe05..cf0971169 100644
--- a/drivers/ninaw10/nina_wifi_drv.c
+++ b/drivers/ninaw10/nina_wifi_drv.c
@@ -28,6 +28,7 @@
*/
#include "py/mphal.h"
+#include "py/mperrno.h"
#if MICROPY_PY_NETWORK_NINAW10
@@ -480,7 +481,7 @@ int nina_connected_sta(uint32_t *sta_ip) {
}
int nina_wait_for_sta(uint32_t *sta_ip, uint32_t timeout) {
- return NINA_ERROR_TIMEOUT;
+ return -MP_ETIMEDOUT;
}
int nina_ifconfig(nina_ifconfig_t *ifconfig, bool set) {
@@ -597,7 +598,7 @@ int nina_scan(nina_scan_callback_t scan_callback, void *arg, uint32_t timeout) {
if (timeout && (mp_hal_ticks_ms() - start) >= timeout) {
// Timeout, no networks.
- return NINA_ERROR_TIMEOUT;
+ return -MP_ETIMEDOUT;
}
mp_hal_delay_ms(100);
@@ -723,7 +724,7 @@ int nina_socket_close(int fd) {
break;
}
if ((mp_hal_ticks_ms() - start) >= 5000) {
- return NINA_ERROR_TIMEOUT;
+ return -MP_ETIMEDOUT;
}
}
}
@@ -777,12 +778,15 @@ int nina_socket_accept(int fd, uint8_t *ip, uint16_t *port, int *fd_out, int32_t
return -1;
}
- for (mp_uint_t start = mp_hal_ticks_ms(); !sock; mp_hal_delay_ms(10)) {
+ for (mp_uint_t start = mp_hal_ticks_ms(); ; mp_hal_delay_ms(10)) {
if (nina_socket_avail(fd, NINA_SOCKET_TYPE_TCP, &sock) != 0) {
return -1;
}
+ if (sock != 0) {
+ break;
+ }
if (timeout == 0 || (timeout > 0 && (mp_hal_ticks_ms() - start) >= timeout)) {
- return NINA_ERROR_TIMEOUT;
+ return -MP_ETIMEDOUT;
}
}
@@ -820,7 +824,7 @@ int nina_socket_connect(int fd, uint8_t *ip, uint16_t port, int32_t timeout) {
}
if (timeout == 0 || (timeout > 0 && (mp_hal_ticks_ms() - start) >= timeout)) {
- return NINA_ERROR_TIMEOUT;
+ return -MP_ETIMEDOUT;
}
}
@@ -832,7 +836,7 @@ int nina_socket_send(int fd, const uint8_t *buf, uint32_t len, int32_t timeout)
uint16_t bytes = 0;
if (nina_socket_status(fd) != SOCKET_STATE_ESTABLISHED) {
- return -1;
+ return -MP_ENOTCONN;
}
if (nina_send_command_read_vals(NINA_CMD_TCP_SEND,
@@ -854,7 +858,7 @@ int nina_socket_send(int fd, const uint8_t *buf, uint32_t len, int32_t timeout)
}
if (timeout == 0 || (timeout > 0 && (mp_hal_ticks_ms() - start) >= timeout)) {
- return NINA_ERROR_TIMEOUT;
+ return -MP_ETIMEDOUT;
}
mp_hal_delay_ms(1);
}
@@ -866,7 +870,7 @@ int nina_socket_recv(int fd, uint8_t *buf, uint32_t len, int32_t timeout) {
uint16_t bytes = 0;
if (nina_socket_status(fd) != SOCKET_STATE_ESTABLISHED) {
- return -1;
+ return -MP_ENOTCONN;
}
for (mp_uint_t start = mp_hal_ticks_ms(); bytes == 0; mp_hal_delay_ms(1)) {
@@ -882,7 +886,7 @@ int nina_socket_recv(int fd, uint8_t *buf, uint32_t len, int32_t timeout) {
}
if (timeout == 0 || (timeout > 0 && (mp_hal_ticks_ms() - start) >= timeout)) {
- return NINA_ERROR_TIMEOUT;
+ return -MP_ETIMEDOUT;
}
}
return bytes;
@@ -934,7 +938,7 @@ int nina_socket_recvfrom(int fd, uint8_t *buf, uint32_t len, uint8_t *ip, uint16
}
if (timeout == 0 || (timeout > 0 && (mp_hal_ticks_ms() - start) >= timeout)) {
- return NINA_ERROR_TIMEOUT;
+ return -MP_ETIMEDOUT;
}
}
if (nina_send_command_read_vals(NINA_CMD_SOCKET_REMOTE_ADDR,
diff --git a/drivers/ninaw10/nina_wifi_drv.h b/drivers/ninaw10/nina_wifi_drv.h
index b8a6c4eb9..b990476b6 100644
--- a/drivers/ninaw10/nina_wifi_drv.h
+++ b/drivers/ninaw10/nina_wifi_drv.h
@@ -61,11 +61,6 @@ typedef enum {
NINA_SOCKET_TYPE_TLS_BEARSSL
} nina_socket_type_t;
-typedef enum {
- NINA_ERROR_IO = -1,
- NINA_ERROR_TIMEOUT = -2,
-} nina_error_t;
-
typedef struct {
uint8_t ip_addr[NINA_IPV4_ADDR_LEN];
uint8_t subnet_addr[NINA_IPV4_ADDR_LEN];