diff --git a/SCRIPTING.md b/SCRIPTING.md index 0f7969d..a38298f 100644 --- a/SCRIPTING.md +++ b/SCRIPTING.md @@ -119,7 +119,7 @@ This event happens when the time-of-day stored in the alarm with the given numbe ``` serial ``` -This event happens when the "system_output" mode is set to 0 and a carriage return (CR)-terminated string has been received from the serial input. Instead of interpreting it as cli command it is forwarded to the scripting engine. The input value is availabe via the special variable _$this_serial_. +This event happens when the "system_output" mode is set to 0 and a newline (NL)-terminated string has been received from the serial input. Instead of interpreting it as cli command it is forwarded to the scripting engine. The input value witout the trailing newline char is availabe via the special variable _$this_serial_. ``` gpio_interrupt (pullup|nopullup) diff --git a/firmware/0x00000.bin b/firmware/0x00000.bin index c9ba4e3..c1475b9 100644 Binary files a/firmware/0x00000.bin and b/firmware/0x00000.bin differ diff --git a/firmware/0x10000.bin b/firmware/0x10000.bin index 419e979..1d5f755 100644 Binary files a/firmware/0x10000.bin and b/firmware/0x10000.bin differ diff --git a/firmware/sha1sums b/firmware/sha1sums index a604cb0..0a08eec 100644 --- a/firmware/sha1sums +++ b/firmware/sha1sums @@ -1,2 +1,2 @@ -c08f223b081e1c36aae2ffc8b2ab79ad1949d665 0x00000.bin -11a30e04e0f5e6f04ca7447177992134f7f63976 0x10000.bin +02d95626d108c50c19ec02713b22d6d198edae69 0x00000.bin +7baeec4d28782d8c97a82da9e3be163f641603a0 0x10000.bin diff --git a/user/lang.c b/user/lang.c index 973173b..ad1de4f 100644 --- a/user/lang.c +++ b/user/lang.c @@ -1924,7 +1924,7 @@ int ICACHE_FLASH_ATTR interpreter_serial_input(const char *data, int data_len) { if (!script_enabled) return -1; - lang_debug("interpreter_topic_received\r\n"); + lang_debug("interpreter_serial_input\r\n"); interpreter_status = SERIAL_INPUT; interpreter_serial_data = (char *)data; diff --git a/user/user_main.c b/user/user_main.c index 531e53a..0d9ac26 100644 --- a/user/user_main.c +++ b/user/user_main.c @@ -291,8 +291,9 @@ void ICACHE_FLASH_ATTR con_print(uint8_t *str) { } void ICACHE_FLASH_ATTR serial_out(uint8_t *str) { - ringbuf_memcpy_into(console_tx_buffer, str, os_strlen(str)); - system_os_post(user_procTaskPrio, SIG_SERIAL_TX, (ETSParam) NULL); + UART_Send(0, str, os_strlen(str)); + //ringbuf_memcpy_into(console_tx_buffer, str, os_strlen(str)); + //system_os_post(user_procTaskPrio, SIG_SERIAL_TX, (ETSParam) NULL); } bool ICACHE_FLASH_ATTR delete_retainedtopics() { @@ -513,11 +514,12 @@ static void ICACHE_FLASH_ATTR user_procTask(os_event_t * events) { struct espconn *pespconn = (struct espconn *)events->par; if (pespconn == 0 && system_output == SYSTEM_OUTPUT_NONE) { int bytes_count = ringbuf_bytes_used(console_rx_buffer); - char data[bytes_count+1]; + char data[bytes_count]; ringbuf_memcpy_from(data, console_rx_buffer, bytes_count); - data[bytes_count] = '\0'; + // overwrite the trailing '\n' + data[bytes_count-1] = '\0'; #ifdef SCRIPTED - interpreter_serial_input(data, bytes_count); + interpreter_serial_input(data, bytes_count-1); #endif } else { console_handle_command(pespconn);