s00500 / ESPUI

A simple web user interface library for ESP32 and ESP8266
https://valencia.lbsfilm.at/midterm-presentation/
Other
919 stars 173 forks source link

updateTime() keeps firing the callback #310

Open jberezin opened 3 months ago

jberezin commented 3 months ago

First I have a button which triggers the updateTime function:

   switch (type)
    {
    case B_DOWN:
        Serial.println("Button DOWN");

        if (sender->id == accuSet)
        {
            // fire the time call back
            // Request an update to the time
            Serial.println("Triggering time callback");
            ESPUI.updateTime(timeId);

            // Will trigger timeCallback
        }
        break;

I have checked and that code is only called once but the timeCallback fires least once a second. So my code is working and the timeUpdate is working but I only want it to occur once. I didn't know this was happening until I put in some serial print statements because my code seemed to be working fine:

Select: ID: 4, Value: 2024-07-26T08:01:40.864Z utc time: 2024-07-26T08:01:40.864Z Select: ID: 4, Value: 2024-07-26T08:01:40.913Z utc time: 2024-07-26T08:01:40.913Z Select: ID: 4, Value: 2024-07-26T08:01:40.995Z utc time: 2024-07-26T08:01:40.995Z Select: ID: 4, Value: 2024-07-26T08:01:41.101Z utc time: 2024-07-26T08:01:41.101Z Select: ID: 4, Value: 2024-07-26T08:01:41.146Z utc time: 2024-07-26T08:01:41.146Z Select: ID: 4, Value: 2024-07-26T08:01:41.199Z utc time: 2024-07-26T08:01:41.199Z

I would like to know how to turn this off until the button which triggers the updateTime() is pressed again.

Thank you for any help here.

jberezin commented 3 months ago

I worked around this problem by creating a new variable and testing it in the callback and simply returning if I don't really need the current time of day. I also tried disabling the time control but that didn't work.