Skip to content

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

@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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions