led(pattern): check parsing success

result is not directly convertible
This commit is contained in:
Maxim Prokhorov
2025-11-15 23:32:00 +03:00
parent 9069546380
commit 994b716caa

View File

@@ -423,7 +423,12 @@ size_t relay(size_t id) {
#endif
Pattern pattern(size_t id) {
return parse(getSetting({keys::Pattern, id}));
auto result = parse(getSetting({keys::Pattern, id}));
if (result.ok) {
return result.value;
}
return Pattern{};
}
void migrate(int version) {
@@ -790,8 +795,11 @@ void payload_status(Led& led, StringView payload) {
case PayloadStatus::Unknown:
if (!payload_mode(led, payload)) {
led.override_pattern(parse(payload));
led.status(true);
auto result = parse(payload);
if (result.ok) {
led.override_pattern(std::move(result.value));
led.status(true);
}
}
break;
}