@@ -310,9 +310,9 @@ void ICACHE_FLASH_ATTR pwmt_read_time_array(uint8 arr)
310
310
pwmt_send_to_uart ();
311
311
}
312
312
313
- void ICACHE_FLASH_ATTR uart_receive_timer_func (void ) // call every PWMT_READ_TIMEOUT
313
+ void ICACHE_FLASH_ATTR uart_receive_timer_func (void ) // call every cfg_glo.pwmt_read_timeout
314
314
{
315
- if (uart_queue_len ) {
315
+ if (uart_queue_len && ! sleep_after_errors_cnt ) {
316
316
uint32 dt = system_get_time () - uart_queue [0 ].time ;
317
317
uint8 fl = uart_queue [0 ].flag ;
318
318
if (fl == UART_SEND_WAITING ) {
@@ -366,17 +366,20 @@ void ICACHE_FLASH_ATTR uart_receive_timer_func(void) // call every PWMT_READ_TIM
366
366
uart_queue [0 ].flag = UART_SEND_WAITING ;
367
367
uart_queue [0 ].time = system_get_time ();
368
368
} else {
369
+ pwmt_repeat_on_error_cnt = cfg_glo .pwmt_on_error_repeat_cnt ;
369
370
dbg_printf ("Eu%u,%u:%d,%d=" , dbg_next_time (), dt , pwmt_last_response , UART_Buffer_idx );
370
371
uint8 jjj ;
371
372
for (jjj = 0 ; jjj < uart_queue [0 ].len ; jjj ++ ) {
372
373
dbg_printf ("%02X" , uart_queue [0 ].buffer [jjj ]);
373
374
}
374
375
//dbg_printf("\n");
375
-
376
376
dbg_printf (", del\n" );
377
377
uart_queue [0 ].flag = UART_DELETED ;
378
- pwmt_send_to_uart ();
379
- pwmt_repeat_on_error_cnt = cfg_glo .pwmt_on_error_repeat_cnt ;
378
+ if (cfg_glo .sleep_after_series_errors ) { // UART0 off
379
+ sleep_after_errors_cnt = cfg_glo .sleep_after_series_errors ;
380
+ uart_drv_close ();
381
+ disable_mux_uart0 ();
382
+ } else pwmt_send_to_uart ();
380
383
}
381
384
}
382
385
}
@@ -517,6 +520,7 @@ void ICACHE_FLASH_ATTR uart_receive_timer_func(void) // call every PWMT_READ_TIM
517
520
518
521
void ICACHE_FLASH_ATTR pwmt_request_timer_func (void ) // call every: cfg_glo.request_period
519
522
{
523
+ if (sleep_after_errors_cnt ) return ;
520
524
uint8 autosend = !uart_queue_len ;
521
525
if ((uart_queue_len == 0 && pwmt_connect_status == PWMT_NOT_CONNECTED )
522
526
|| (pwmt_last_response == 6 && pwmt_connect_status != PWMT_CONNECTING )) {
0 commit comments