From 98b05e36148655ac53383f4ccea37e15445a5c54 Mon Sep 17 00:00:00 2001 From: Damien George Date: Fri, 27 Apr 2018 23:51:00 +1000 Subject: [PATCH] esp32: Add support for and enable uos.dupterm(). --- ports/esp32/moduos.c | 12 +++++++++--- ports/esp32/mpconfigport.h | 1 + ports/esp32/mphalport.c | 1 + 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/ports/esp32/moduos.c b/ports/esp32/moduos.c index 9f0e291a68..dc85136f3d 100644 --- a/ports/esp32/moduos.c +++ b/ports/esp32/moduos.c @@ -31,11 +31,11 @@ #include "esp_system.h" -#include "py/mpconfig.h" -#include "py/obj.h" #include "py/objstr.h" #include "py/runtime.h" #include "py/mperrno.h" +#include "py/mphal.h" +#include "extmod/misc.h" #include "extmod/vfs.h" #include "extmod/vfs_fat.h" #include "genhdr/mpversion.h" @@ -87,7 +87,13 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_1(os_urandom_obj, os_urandom); #if MICROPY_PY_OS_DUPTERM STATIC mp_obj_t os_dupterm_notify(mp_obj_t obj_in) { (void)obj_in; - mp_hal_signal_dupterm_input(); + for (;;) { + int c = mp_uos_dupterm_rx_chr(); + if (c < 0) { + break; + } + ringbuf_put(&stdin_ringbuf, c); + } return mp_const_none; } STATIC MP_DEFINE_CONST_FUN_OBJ_1(os_dupterm_notify_obj, os_dupterm_notify); diff --git a/ports/esp32/mpconfigport.h b/ports/esp32/mpconfigport.h index 80594b1144..2f4acaf129 100644 --- a/ports/esp32/mpconfigport.h +++ b/ports/esp32/mpconfigport.h @@ -127,6 +127,7 @@ #define MICROPY_PY_UBINASCII_CRC32 (1) #define MICROPY_PY_URANDOM (1) #define MICROPY_PY_URANDOM_EXTRA_FUNCS (1) +#define MICROPY_PY_OS_DUPTERM (1) #define MICROPY_PY_MACHINE (1) #define MICROPY_PY_MACHINE_PIN_MAKE_NEW mp_pin_make_new #define MICROPY_PY_MACHINE_PULSE (1) diff --git a/ports/esp32/mphalport.c b/ports/esp32/mphalport.c index 6cc2621cac..353e1343b0 100644 --- a/ports/esp32/mphalport.c +++ b/ports/esp32/mphalport.c @@ -63,6 +63,7 @@ void mp_hal_stdout_tx_strn(const char *str, uint32_t len) { uart_tx_one_char(str[i]); } MP_THREAD_GIL_ENTER(); + mp_uos_dupterm_tx_strn(str, len); } // Efficiently convert "\n" to "\r\n"