From 9d94f710f7b00d109bf6f6ee57996f43bce5c67f Mon Sep 17 00:00:00 2001 From: Luke Hoersten Date: Fri, 17 Jul 2026 18:56:03 -0500 Subject: main: code-review fixes — brightness units, OTA stall cap, stats + locking MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - display: s_last_pwm cached the raw 0-100 percentage at init but display_wake writes it straight to REG_PWM (0-255 duty) — first wake ran visibly dim until a /config brightness change. Shared pct_to_duty helper now converts in both paths. - http_api: cap consecutive OTA recv timeouts (a stalled client spun forever holding s_ota_in_progress, wedging OTA until reboot); cap viewport name at 54 chars so viewport- fits the 63-byte mDNS label; log mdns_service_refresh failures; /state builds JSON from a snapshot instead of holding the state lock across ~25 cJSON allocs; respond_400 delegates to respond_status. - stream_server: bytes_in_window now counts painted frames only (frames discarded while asleep inflated the first post-wake window's MB/s, avg-jpeg and chunk/wire averages; recv_bytes folded in); so_rcvbuf carried into the stats snapshot under the mux; drop dead HEADER_BYTES; merge read_body_instrumented into read_n. - state_machine: transition mutex serializes concurrent wake/sleep (display side-effects ran after the state lock dropped, so racing callers could leave the backlight contradicting st->state); wake-path placeholder paint now takes the decoder lock like the stream path (concurrent esp_lcd_panel_draw_bitmap from two tasks isn't safe). - local_screens: overlay paint takes the decoder lock too; check the overlay timer create; panel dims from viewport_state.h. - jpeg_decoder: try_lock before init returns busy instead of passing a NULL semaphore to xSemaphoreTake. - net_eth: clear cached IP string on link down (stale /state + info). - dead code: display_present_bgr888, TOUCH_FT5426_ADDR, touch s_task, JPEG_DECODER_MAX_OUTPUT_BYTES; doc drift in nvs_config.h / jpeg_decoder.h / app_main flag legend. --- main/touch.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'main/touch.c') diff --git a/main/touch.c b/main/touch.c index b470536..54c309f 100644 --- a/main/touch.c +++ b/main/touch.c @@ -30,7 +30,6 @@ static const char *TAG = "touch"; #define TAP_DEBOUNCE_MS 150 static i2c_master_dev_handle_t s_dev; -static TaskHandle_t s_task; static esp_err_t ft_read(uint8_t reg, uint8_t *buf, size_t n) { @@ -124,6 +123,6 @@ esp_err_t touch_init(void) "(tap=toggle wake/sleep, %dms hold=info overlay)", LONG_PRESS_MS); - BaseType_t ok = xTaskCreate(touch_task, "touch", 3072, NULL, 4, &s_task); + BaseType_t ok = xTaskCreate(touch_task, "touch", 3072, NULL, 4, NULL); return (ok == pdPASS) ? ESP_OK : ESP_FAIL; } -- cgit v1.2.3