Kod: Zaznacz cały
Supla::Storage::WriteState((unsigned char *)¤t_multi, sizeof(current_multi));
Supla::Storage::ReadState((unsigned char *)¤t_multi, sizeof(current_multi));
double current_multi;
Więc jak to zrobić aby było dobrze?
Kod: Zaznacz cały
Supla::Storage::WriteState((unsigned char *)¤t_multi, sizeof(current_multi));
Supla::Storage::ReadState((unsigned char *)¤t_multi, sizeof(current_multi));
double current_multi;
Nie wiem. Powinno działać . A jesteś pewien, że pierwszy zapis się wykonał? Jeśli tak, to podeślij większy fragment kodukrycha88 pisze: ↑pt gru 25, 2020 7:23 pm Chciałem zapisać wartość double za pomocą:przy próbie odczytywania dostaję błąd: Warning! Attempt to read state outside of section sizeKod: Zaznacz cały
Supla::Storage::WriteState((unsigned char *)¤t_multi, sizeof(current_multi)); Supla::Storage::ReadState((unsigned char *)¤t_multi, sizeof(current_multi)); double current_multi;
Więc jak to zrobić aby było dobrze?
current_multi była zmienną globalną, jeżeli zmieniłem to w taki sposób to już działa:klew pisze: ↑pt gru 25, 2020 11:44 pmNie wiem. Powinno działać . A jesteś pewien, że pierwszy zapis się wykonał? Jeśli tak, to podeślij większy fragment kodukrycha88 pisze: ↑pt gru 25, 2020 7:23 pm Chciałem zapisać wartość double za pomocą:przy próbie odczytywania dostaję błąd: Warning! Attempt to read state outside of section sizeKod: Zaznacz cały
Supla::Storage::WriteState((unsigned char *)¤t_multi, sizeof(current_multi)); Supla::Storage::ReadState((unsigned char *)¤t_multi, sizeof(current_multi)); double current_multi;
Więc jak to zrobić aby było dobrze?
Kod: Zaznacz cały
void onLoadState() {
double _current_multi;
Supla::Storage::ReadState((unsigned char *)&_current_multi, sizeof(_current_multi));
current_multi = _current_multi;
}
double current_multi;
Kod: Zaznacz cały
Supla::Storage::SaveStateAllowed(0);
Supla::Storage::FinalizeSaveState();
Dodam metodę, która taki zapis wymusi. Ręcznie musiałbyś wykonać tą sekwencję:krycha88 pisze: ↑pn gru 28, 2020 9:31 am Jeszcze raz pozwolę się zapytać. Czy jest możliwość wymuszenia zapisania do eeproma niezależnie od ustawionego czasu setStateSavePeriod??
Próbowałem wykorzystać ten metody:zapisanie się powodzi ale przy wczytaniu wartości dostaję błąd:Kod: Zaznacz cały
Supla::Storage::SaveStateAllowed(0); Supla::Storage::FinalizeSaveState();
"Validating storage state section with current device configuration
Element state section size doesn't match current device configuration"
da się to jakoś ugryźć?
Kod: Zaznacz cały
Supla::Storage::PrepareState();
for (auto element = Supla::Element::begin(); element != nullptr;
element = element->next()) {
element->onSaveState();
}
Supla::Storage::FinalizeSaveState();
Gdyby na urządzeniu oprócz rolety pojawił się inny element, dla którego chcielibyśmy ustawić interwał np. 2h, to dla rolety mógłby być on już za długi.