This commit is contained in:
2025-10-25 12:51:28 +02:00
parent f8735d4bce
commit 844cf86d8d

View File

@@ -391,7 +391,8 @@ cardboy::sdk::AppTimerHandle EspRuntime::TimerService::scheduleTimer(std::uint32
if (xTimerStart(timerHandle, portMAX_DELAY) != pdPASS) { if (xTimerStart(timerHandle, portMAX_DELAY) != pdPASS) {
assert(false); assert(false);
} }
return storedRecord->handle;
return newHandle;
} }
void EspRuntime::TimerService::cancelTimer(cardboy::sdk::AppTimerHandle handle) { void EspRuntime::TimerService::cancelTimer(cardboy::sdk::AppTimerHandle handle) {
@@ -452,7 +453,6 @@ void EspRuntime::TimerService::timerCallback(TimerHandle_t timer) {
} }
void EspRuntime::TimerService::handleTimer(sdk::AppTimerHandle handle) { void EspRuntime::TimerService::handleTimer(sdk::AppTimerHandle handle) {
TimerRecord* record = nullptr;
TimerHandle_t timerHandle = nullptr; TimerHandle_t timerHandle = nullptr;
bool repeat = false; bool repeat = false;
@@ -460,7 +460,6 @@ void EspRuntime::TimerService::handleTimer(sdk::AppTimerHandle handle) {
xSemaphoreTake(_mutex, portMAX_DELAY); xSemaphoreTake(_mutex, portMAX_DELAY);
for (auto it = _timers.begin(); it != _timers.end(); ++it) { for (auto it = _timers.begin(); it != _timers.end(); ++it) {
if (it->handle == handle) { if (it->handle == handle) {
record = &(*it);
timerHandle = it->timer; timerHandle = it->timer;
if (!it->repeat) { if (!it->repeat) {
_timers.erase(it); _timers.erase(it);
@@ -473,8 +472,10 @@ void EspRuntime::TimerService::handleTimer(sdk::AppTimerHandle handle) {
xSemaphoreGive(_mutex); xSemaphoreGive(_mutex);
} }
if (!record) if (!timerHandle) {
printf("Couldn't find handle for timer %lu\n", handle);
return; return;
}
if (!repeat && timerHandle) if (!repeat && timerHandle)
xTimerDelete(timerHandle, portMAX_DELAY); xTimerDelete(timerHandle, portMAX_DELAY);