Czy wolisz polską wersję strony elektroda?
Nie, dziękuję Przekieruj mnie tamp.kaczmarek2 wrote:Probably store deltas and collect them in quick tick...
max4elektroda wrote:Using this for now - working on W800, will test with others soon ...
Code: text Expand Select all Copy to clipboarddiff --git a/src/user_main.c b/src/user_main.c
index a0ea6322..dbee5483 100644
--- a/src/user_main.c
+++ b/src/user_main.c
@@ -583,6 +583,11 @@ float g_wifi_temperature = 0;
static byte g_secondsSpentInLowMemoryWarning = 0;
void Main_OnEverySecond()
{
+#if PLATFORM_W600 || PLATFORM_W800
+#define TimeOut_t xTimeOutType
+#endif
+ TimeOut_t myTimeout; // to get uptime from xTicks
+
int newMQTTState;
const char* safe;
int i;
@@ -754,8 +759,9 @@ void Main_OnEverySecond()
}
}
}
-
- g_secondsElapsed++;
+// g_secondsElapsed++;
+ vTaskSetTimeOutState( &myTimeout );
+ g_secondsElapsed = (int)((((uint64_t) myTimeout.xOverflowCount << (sizeof(portTickType)*8) | myTimeout.xTimeOnEntering)*portTICK_RATE_MS ) / 1000 );
if (bSafeMode) {
safe = "[SAFE] ";
}
p.kaczmarek2 wrote:- be called twice with the same g_secondsElapsed value
- skip g_secondsElapsed values
.../OpenBeken/main/OpenBK7231T_App$ find src/ -name "*.[ch]" | xargs grep g_secondsElapsed
src/httpserver/new_http.c: hprintf255(request, "<br>Online for <span id=\"onlineFor\" data-initial=\"%i\">-</span>", g_secondsElapsed);
src/httpserver/json_interface.c: format_time(g_secondsElapsed, buff, sizeof(buff));
src/httpserver/json_interface.c: JSON_PrintKeyValue_Int(request, printer, "UptimeSec", g_secondsElapsed, true);
src/httpserver/json_interface.c: JSON_PrintKeyValue_Int(request, printer, "Uptime", g_secondsElapsed, true);
src/httpserver/json_interface.c: if (NTP_GetCurrentTimeWithoutOffset() > g_secondsElapsed) { // would be negative else, leading to unwanted results when converted to (unsigned) time_t
src/httpserver/json_interface.c: ntpTime = (time_t)NTP_GetCurrentTimeWithoutOffset() - (time_t)g_secondsElapsed;
src/httpserver/rest_interface.c: hprintf255(request, "{\"uptime_s\":%d,", g_secondsElapsed);
src/driver/drv_ds1820_full.c: // if (dsread == 1 && g_secondsElapsed % 5 == 2) {
src/driver/drv_ds1820_full.c: float t_float = 20.0 + i/10.0 + (float)(g_secondsElapsed%100)/100.0;
src/driver/drv_ds1820_full.c: lastconv = g_secondsElapsed;
src/driver/drv_ds1820_full.c: lastconv = g_secondsElapsed;
src/driver/drv_ds1820_full.c: if(dsread == 0 && (g_secondsElapsed % ds18_conversionPeriod == 0 || lastconv == 0))
src/driver/drv_dht_internal.c: uint32_t currenttime = g_secondsElapsed;
src/driver/drv_tm_gn_display_shared.c: segments[i] = g_digits[(g_secondsElapsed + i) % 10];
src/driver/drv_tm_gn_display_shared.c: segments[i] = g_digits[(g_secondsElapsed + i) % 10];
src/driver/drv_bl_shared.c: cJSON_AddNumberToObject(root, "uptime", g_secondsElapsed);
src/driver/drv_ntp.c: if (g_secondsElapsed < 60) {
src/driver/drv_ds1820_simple.c: hprintf255(request, "<h5>DS1820 Temperature: %.2f C (read %i secs ago)</h5>", (float)t / 100, g_secondsElapsed - lastconv);
src/driver/drv_ds1820_simple.c: // if (dsread == 1 && g_secondsElapsed % 5 == 2) {
src/driver/drv_ds1820_simple.c: lastconv = g_secondsElapsed;
src/driver/drv_ds1820_simple.c: if(g_secondsElapsed % ds18_conversionPeriod == 0 || lastconv == 0) //dsread == 0
src/mqtt/new_mqtt.c: sprintf(dataStr, "%d", g_secondsElapsed);
src/new_common.h:extern int g_secondsElapsed;
src/cmnds/cmd_if.c: return g_secondsElapsed;
src/cmnds/cmd_test.c: cJSON_AddNumberToObject(root, "uptime", g_secondsElapsed);
src/user_main.c:int g_secondsElapsed = 0;
src/user_main.c: if(g_secondsElapsed < 30)
src/user_main.c: if (g_secondsElapsed < 30) {
src/user_main.c: if (g_timeSinceLastPingReply != -1 && g_secondsElapsed > 60)
src/user_main.c: g_secondsElapsed++;
src/user_main.c: safe, g_secondsElapsed, idleCount, xPortGetFreeHeapSize(), bMQTTconnected,
src/user_main.c: safe, g_secondsElapsed, idleCount, xPortGetFreeHeapSize(),g_bHasWiFiConnected, g_timeSinceLastPingReply, LWIP_GetActiveSockets(), LWIP_GetMaxSockets(),
src/user_main.c: if (!(g_secondsElapsed % 10))
src/user_main.c: if (g_secondsElapsed > bootCompleteSeconds)
src/user_main.c: if (g_secondsElapsed < 5)
src/hal/w800/hal_main_w800.c: //actually starts shifting g_secondsElapsed. To compensate, we are checking how much
p.kaczmarek2 wrote:Seems to crash on ESP32 for me?