Skip to content

tick_screen(0) -> Task watchdog got triggered. The following tasks/users did not reset the watchdog in time #23

Open
@Trakeen

Description

@Trakeen

I'm using EEZ studio with EEZ workflow and LVGL 9 on a ESP32-P4 board with 7 inch screen (1024x600).

When ui_init() is called, function tick_screen_dashboard() (= tick_screen(0)) is blocking so I have this error :

_E (6477) task_wdt: Task watchdog got triggered. The following tasks/users did not reset the watchdog in time:
E (6477) task_wdt:  - IDLE0 (CPU 0)
E (6477) task_wdt: Tasks currently running:
E (6477) task_wdt: CPU 0: main
E (6477) task_wdt: CPU 1: IDLE1
E (6477) task_wdt: Print CPU 0 (current core) backtrace_

Image

If I remove workflow and variables on the screen (Page in EEZ studio) and call only eez_flow_tick() it works.

Image

This is problematic method :

void tick_screen_dashboard() {
    void *flowState = getFlowState(0, 1);
    {
        const char *new_val = evalTextProperty(flowState, 25, 3, "Failed to evaluate Text in Label widget");
        const char *cur_val = lv_label_get_text(objects.trip_1_value);
        if (strcmp(new_val, cur_val) != 0) {
            tick_value_change_obj = objects.trip_1_value;
            lv_label_set_text(objects.trip_1_value, new_val);
            tick_value_change_obj = NULL;
        }
    }
    {
        const char *new_val = evalTextProperty(flowState, 28, 3, "Failed to evaluate Text in Label widget");
        const char *cur_val = lv_label_get_text(objects.trip_2_value);
        if (strcmp(new_val, cur_val) != 0) {
            tick_value_change_obj = objects.trip_2_value;
            lv_label_set_text(objects.trip_2_value, new_val);
            tick_value_change_obj = NULL;
        }
    }
    {
        const char *new_val = evalTextProperty(flowState, 31, 3, "Failed to evaluate Text in Label widget");
        const char *cur_val = lv_label_get_text(objects.odometer_value);
        if (strcmp(new_val, cur_val) != 0) {
            tick_value_change_obj = objects.odometer_value;
            lv_label_set_text(objects.odometer_value, new_val);
            tick_value_change_obj = NULL;
        }
    }
    {
        const char *new_val = evalTextProperty(flowState, 34, 3, "Failed to evaluate Text in Label widget");
        const char *cur_val = lv_label_get_text(objects.weather_icon);
        if (strcmp(new_val, cur_val) != 0) {
            tick_value_change_obj = objects.weather_icon;
            lv_label_set_text(objects.weather_icon, new_val);
            tick_value_change_obj = NULL;
        }
    }
    {
        const char *new_val = evalTextProperty(flowState, 45, 3, "Failed to evaluate Text in Label widget");
        const char *cur_val = lv_label_get_text(objects.atmo_alti_value);
        if (strcmp(new_val, cur_val) != 0) {
            tick_value_change_obj = objects.atmo_alti_value;
            lv_label_set_text(objects.atmo_alti_value, new_val);
            tick_value_change_obj = NULL;
        }
    }
    {
        const char *new_val = evalTextProperty(flowState, 49, 3, "Failed to evaluate Text in Label widget");
        const char *cur_val = lv_label_get_text(objects.atmo_temp_value);
        if (strcmp(new_val, cur_val) != 0) {
            tick_value_change_obj = objects.atmo_temp_value;
            lv_label_set_text(objects.atmo_temp_value, new_val);
            tick_value_change_obj = NULL;
        }
    }
    {
        const char *new_val = evalTextProperty(flowState, 50, 3, "Failed to evaluate Text in Label widget");
        const char *cur_val = lv_label_get_text(objects.atmo_temp_unit);
        if (strcmp(new_val, cur_val) != 0) {
            tick_value_change_obj = objects.atmo_temp_unit;
            lv_label_set_text(objects.atmo_temp_unit, new_val);
            tick_value_change_obj = NULL;
        }
    }
    {
        const char *new_val = evalTextProperty(flowState, 57, 3, "Failed to evaluate Text in Label widget");
        const char *cur_val = lv_label_get_text(objects.tyre_pressure_unit);
        if (strcmp(new_val, cur_val) != 0) {
            tick_value_change_obj = objects.tyre_pressure_unit;
            lv_label_set_text(objects.tyre_pressure_unit, new_val);
            tick_value_change_obj = NULL;
        }
    }
    {
        const char *new_val = evalTextProperty(flowState, 66, 3, "Failed to evaluate Text in Label widget");
        const char *cur_val = lv_label_get_text(objects.rpm_value);
        if (strcmp(new_val, cur_val) != 0) {
            tick_value_change_obj = objects.rpm_value;
            lv_label_set_text(objects.rpm_value, new_val);
            tick_value_change_obj = NULL;
        }
    }
    {
        const char *new_val = evalTextProperty(flowState, 67, 3, "Failed to evaluate Text in Label widget");
        const char *cur_val = lv_label_get_text(objects.rpm_unit);
        if (strcmp(new_val, cur_val) != 0) {
            tick_value_change_obj = objects.rpm_unit;
            lv_label_set_text(objects.rpm_unit, new_val);
            tick_value_change_obj = NULL;
        }
    }
    {
        const char *new_val = evalTextProperty(flowState, 71, 3, "Failed to evaluate Text in Label widget");
        const char *cur_val = lv_label_get_text(objects.speed_value);
        if (strcmp(new_val, cur_val) != 0) {
            tick_value_change_obj = objects.speed_value;
            lv_label_set_text(objects.speed_value, new_val);
            tick_value_change_obj = NULL;
        }
    }
    {
        const char *new_val = evalTextProperty(flowState, 72, 3, "Failed to evaluate Text in Label widget");
        const char *cur_val = lv_label_get_text(objects.speed_unit);
        if (strcmp(new_val, cur_val) != 0) {
            tick_value_change_obj = objects.speed_unit;
            lv_label_set_text(objects.speed_unit, new_val);
            tick_value_change_obj = NULL;
        }
    }
    {
        const char *new_val = evalTextProperty(flowState, 75, 3, "Failed to evaluate Text in Label widget");
        const char *cur_val = lv_label_get_text(objects.speed_limit_value);
        if (strcmp(new_val, cur_val) != 0) {
            tick_value_change_obj = objects.speed_limit_value;
            lv_label_set_text(objects.speed_limit_value, new_val);
            tick_value_change_obj = NULL;
        }
    }
    {
        int32_t new_val = evalIntegerProperty(flowState, 80, 3, "Failed to evaluate Value in Arc widget");
        int32_t cur_val = lv_arc_get_value(objects.turbo_pressure_arc);
        if (new_val != cur_val) {
            tick_value_change_obj = objects.turbo_pressure_arc;
            lv_arc_set_value(objects.turbo_pressure_arc, new_val);
            tick_value_change_obj = NULL;
        }
    }
    {
        const char *new_val = evalTextProperty(flowState, 82, 3, "Failed to evaluate Text in Label widget");
        const char *cur_val = lv_label_get_text(objects.turbo_pressure_unit);
        if (strcmp(new_val, cur_val) != 0) {
            tick_value_change_obj = objects.turbo_pressure_unit;
            lv_label_set_text(objects.turbo_pressure_unit, new_val);
            tick_value_change_obj = NULL;
        }
    }
    {
        int32_t new_val = evalIntegerProperty(flowState, 84, 3, "Failed to evaluate Value in Arc widget");
        int32_t cur_val = lv_arc_get_value(objects.water_temperature_arc);
        if (new_val != cur_val) {
            tick_value_change_obj = objects.water_temperature_arc;
            lv_arc_set_value(objects.water_temperature_arc, new_val);
            tick_value_change_obj = NULL;
        }
    }
    {
        const char *new_val = evalTextProperty(flowState, 85, 3, "Failed to evaluate Text in Label widget");
        const char *cur_val = lv_label_get_text(objects.water_temperature_value);
        if (strcmp(new_val, cur_val) != 0) {
            tick_value_change_obj = objects.water_temperature_value;
            lv_label_set_text(objects.water_temperature_value, new_val);
            tick_value_change_obj = NULL;
        }
    }
    {
        const char *new_val = evalTextProperty(flowState, 86, 3, "Failed to evaluate Text in Label widget");
        const char *cur_val = lv_label_get_text(objects.water_temperature_unit);
        if (strcmp(new_val, cur_val) != 0) {
            tick_value_change_obj = objects.water_temperature_unit;
            lv_label_set_text(objects.water_temperature_unit, new_val);
            tick_value_change_obj = NULL;
        }
    }
    {
        int32_t new_val = evalIntegerProperty(flowState, 88, 3, "Failed to evaluate Range max in Arc widget");
        int32_t cur_val = lv_arc_get_max_value(objects.fuel_level_arc);
        if (new_val != cur_val) {
            tick_value_change_obj = objects.fuel_level_arc;
            int16_t min = lv_arc_get_min_value(objects.fuel_level_arc);
            int16_t max = new_val;
            if (min < max) {
                lv_arc_set_range(objects.fuel_level_arc, min, max);
            }
            tick_value_change_obj = NULL;
        }
    }
    {
        int32_t new_val = evalIntegerProperty(flowState, 88, 4, "Failed to evaluate Value in Arc widget");
        int32_t cur_val = lv_arc_get_value(objects.fuel_level_arc);
        if (new_val != cur_val) {
            tick_value_change_obj = objects.fuel_level_arc;
            lv_arc_set_value(objects.fuel_level_arc, new_val);
            tick_value_change_obj = NULL;
        }
    }
    {
        const char *new_val = evalTextProperty(flowState, 89, 3, "Failed to evaluate Text in Label widget");
        const char *cur_val = lv_label_get_text(objects.fuel_level_value);
        if (strcmp(new_val, cur_val) != 0) {
            tick_value_change_obj = objects.fuel_level_value;
            lv_label_set_text(objects.fuel_level_value, new_val);
            tick_value_change_obj = NULL;
        }
    }
    {
        const char *new_val = evalTextProperty(flowState, 90, 3, "Failed to evaluate Text in Label widget");
        const char *cur_val = lv_label_get_text(objects.fuel_level_unit);
        if (strcmp(new_val, cur_val) != 0) {
            tick_value_change_obj = objects.fuel_level_unit;
            lv_label_set_text(objects.fuel_level_unit, new_val);
            tick_value_change_obj = NULL;
        }
    }
    {
        int32_t new_val = evalIntegerProperty(flowState, 92, 3, "Failed to evaluate Value in Arc widget");
        int32_t cur_val = lv_arc_get_value(objects.oil_pressure_arc);
        if (new_val != cur_val) {
            tick_value_change_obj = objects.oil_pressure_arc;
            lv_arc_set_value(objects.oil_pressure_arc, new_val);
            tick_value_change_obj = NULL;
        }
    }
    {
        const char *new_val = evalTextProperty(flowState, 94, 3, "Failed to evaluate Text in Label widget");
        const char *cur_val = lv_label_get_text(objects.oil_pressure_unit);
        if (strcmp(new_val, cur_val) != 0) {
            tick_value_change_obj = objects.oil_pressure_unit;
            lv_label_set_text(objects.oil_pressure_unit, new_val);
            tick_value_change_obj = NULL;
        }
    }
    {
        int32_t new_val = evalIntegerProperty(flowState, 96, 3, "Failed to evaluate Value in Arc widget");
        int32_t cur_val = lv_arc_get_value(objects.oil_temperature_arc);
        if (new_val != cur_val) {
            tick_value_change_obj = objects.oil_temperature_arc;
            lv_arc_set_value(objects.oil_temperature_arc, new_val);
            tick_value_change_obj = NULL;
        }
    }
    {
        const char *new_val = evalTextProperty(flowState, 97, 3, "Failed to evaluate Text in Label widget");
        const char *cur_val = lv_label_get_text(objects.oil_temperature_value);
        if (strcmp(new_val, cur_val) != 0) {
            tick_value_change_obj = objects.oil_temperature_value;
            lv_label_set_text(objects.oil_temperature_value, new_val);
            tick_value_change_obj = NULL;
        }
    }
    {
        const char *new_val = evalTextProperty(flowState, 98, 3, "Failed to evaluate Text in Label widget");
        const char *cur_val = lv_label_get_text(objects.oil_temperature_unit);
        if (strcmp(new_val, cur_val) != 0) {
            tick_value_change_obj = objects.oil_temperature_unit;
            lv_label_set_text(objects.oil_temperature_unit, new_val);
            tick_value_change_obj = NULL;
        }
    }
    {
        int32_t new_val = evalIntegerProperty(flowState, 100, 3, "Failed to evaluate Value in Arc widget");
        int32_t cur_val = lv_arc_get_value(objects.esp_level_arc);
        if (new_val != cur_val) {
            tick_value_change_obj = objects.esp_level_arc;
            lv_arc_set_value(objects.esp_level_arc, new_val);
            tick_value_change_obj = NULL;
        }
    }
    {
        const char *new_val = evalTextProperty(flowState, 101, 3, "Failed to evaluate Text in Label widget");
        const char *cur_val = lv_label_get_text(objects.esp_level_value);
        if (strcmp(new_val, cur_val) != 0) {
            tick_value_change_obj = objects.esp_level_value;
            lv_label_set_text(objects.esp_level_value, new_val);
            tick_value_change_obj = NULL;
        }
    }
    {
        const char *new_val = evalTextProperty(flowState, 104, 3, "Failed to evaluate Text in Label widget");
        const char *cur_val = lv_label_get_text(objects.alarm_value);
        if (strcmp(new_val, cur_val) != 0) {
            tick_value_change_obj = objects.alarm_value;
            lv_label_set_text(objects.alarm_value, new_val);
            tick_value_change_obj = NULL;
        }
    }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions