KPOP w supla-device

User avatar
klew
Posts: 8763
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław

Post

Ta metoda sprawdza czy zostało jeszcze coś do wysłania.
Ja używam jej przy urządzeniach śpiących, aby wiedzieć kiedy wszystko co miało być wysłane, zostało wysłane i można szykować się do snu
Widzimy się na Supla Offline Party vol. 2 :!:
User avatar
Duch__
Posts: 1796
Joined: Wed Aug 24, 2016 7:26 pm
Location: Opole

Post

klew wrote: Fri Mar 08, 2024 7:21 pm Coś się zapętlił na wysyłaniu konfiguracji. Z głowy nie zgadnę co tam się stało, ale jakiś błąd tam musi być.
Poszukam i poprawię
Znalazłem winnego. Niechcący przekroczyłem 20 znaków w prefiksie.
Image
User avatar
Duch__
Posts: 1796
Joined: Wed Aug 24, 2016 7:26 pm
Location: Opole

Post

klew wrote: Fri Mar 08, 2024 8:06 am Tylko jeśli będziesz to robił za każdym razem, to pozbawisz użytkownika możliwości zmiany nazwy w Cloud (bo urządzenie zawsze nadpisze).

Jak przypisać w takim razie nazwę defaultową by procesor sam ją generował przy uruchomieniu?

Mam zestaw nazw wpisanych w zmiennych typu String np.

wejscie_opis[1] = "ABC"
wejscie_opis[2] = "DEF"
wejscie_opis[3] = "GHI"

Jak to wpisać do kanału tak by procesor to zrobił za mnie? Nazwy będą pobierane z innego urządzenia przy uruchomieniu procka.
Image
User avatar
klew
Posts: 8763
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław

Post

Odnośnie ilości znaków, to powinno to być zabezpieczone. Dzięki za info.

Duch__ wrote: Sat Mar 09, 2024 11:18 am
klew wrote: Fri Mar 08, 2024 8:06 am Tylko jeśli będziesz to robił za każdym razem, to pozbawisz użytkownika możliwości zmiany nazwy w Cloud (bo urządzenie zawsze nadpisze).

Jak przypisać w takim razie nazwę defaultową by procesor sam ją generował przy uruchomieniu?

Mam zestaw nazw wpisanych w zmiennych typu String np.

wejscie_opis[1] = "ABC"
wejscie_opis[2] = "DEF"
wejscie_opis[3] = "GHI"

Jak to wpisać do kanału tak by procesor to zrobił za mnie? Nazwy będą pobierane z innego urządzenia przy uruchomieniu procka.
kpop->setUnitAfterValue(wejscie_opis[1]);

Itd. najlepiej pewnie w jakiejś pętli to zrobić.
Ustawianie wywołaj po Supla-device.begin()
Widzimy się na Supla Offline Party vol. 2 :!:
User avatar
Duch__
Posts: 1796
Joined: Wed Aug 24, 2016 7:26 pm
Location: Opole

Post

klew wrote: Sat Mar 09, 2024 11:34 am Odnośnie ilości znaków, to powinno to być zabezpieczone. Dzięki za info.

Duch__ wrote: Sat Mar 09, 2024 11:18 am
klew wrote: Fri Mar 08, 2024 8:06 am Tylko jeśli będziesz to robił za każdym razem, to pozbawisz użytkownika możliwości zmiany nazwy w Cloud (bo urządzenie zawsze nadpisze).

Jak przypisać w takim razie nazwę defaultową by procesor sam ją generował przy uruchomieniu?

Mam zestaw nazw wpisanych w zmiennych typu String np.

wejscie_opis[1] = "ABC"
wejscie_opis[2] = "DEF"
wejscie_opis[3] = "GHI"

Jak to wpisać do kanału tak by procesor to zrobił za mnie? Nazwy będą pobierane z innego urządzenia przy uruchomieniu procka.
kpop->setUnitAfterValue(wejscie_opis[1]);

Itd. najlepiej pewnie w jakiejś pętli to zrobić.
Ustawianie wywołaj po Supla-device.begin()

Dla:

Code: Select all

gpm_channel_1->setUnitAfterValue(SATEL_wejscie_opis[1]);
umieszczonego w loop dostaję taki błąd:

Code: Select all

exit status 1
no matching function for call to 'Supla::Sensor::GeneralPurposeMeasurement::setUnitAfterValue(String&)'
Image
User avatar
klew
Posts: 8763
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław

Post

Tam trzeba przekazać char*, a nie String. Jakiś .c_str(), trzeba dodać
Widzimy się na Supla Offline Party vol. 2 :!:
User avatar
Duch__
Posts: 1796
Joined: Wed Aug 24, 2016 7:26 pm
Location: Opole

Post

Czy zmiana wartości setUnitBeforeValue lub setUnitAfterValue wiele razy w czasie pracy programu powoduje jakiś zapis tych wartości we flashu procesora, a tym samym jej degradacje? Jeśli tak to można to jakoś wyłączyć by nie zapamiętywał tego we flashu?
Image
User avatar
klew
Posts: 8763
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław

Post

Duch__ wrote: Sun Mar 10, 2024 4:00 am Czy zmiana wartości setUnitBeforeValue lub setUnitAfterValue wiele razy w czasie pracy programu powoduje jakiś zapis tych wartości we flashu procesora, a tym samym jej degradacje? Jeśli tak to można to jakoś wyłączyć by nie zapamiętywał tego we flashu?
Tak, te wartości są zapisywane do pamięci flash.
Aktualnie tego nie można wyłączyć, trzeba by kod przerabiać.
Natomiast flash ma z reguły 100000 zapisów. Dodatkowo ten obszar używany do konfiguracji używa jakiegoś wear leveling, więc powinno być więcej zapisów dostępnych zanim uszkodzimy flash
Widzimy się na Supla Offline Party vol. 2 :!:
User avatar
Duch__
Posts: 1796
Joined: Wed Aug 24, 2016 7:26 pm
Location: Opole

Post

To lipa bo już zacząłem generować komunikaty tekstowe before i after, następnie wyświetlałem na telefonie online jak zmienne :? Nawet fajnie to działało.

Jeśli wartość nowa jest taka sama jak stara (porównanie) to nie robi zapisu, tak?
Image
SOYER
Posts: 841
Joined: Wed Aug 10, 2022 12:29 pm
Location: Kryry

Post

Duch__ wrote: Sun Mar 10, 2024 8:12 am To lipa bo już zacząłem generować komunikaty tekstowe before i after, następnie wyświetlałem na telefonie online jak zmienne :? Nawet fajnie to działało.

Jeśli wartość nowa jest taka sama jak stara (porównanie) to nie robi zapisu, tak?
Bardzo fajny pomysł!!.
Taki suplowy, jak obejść system żeby coś zrobić;).
Dlatego uważałem, że KOP byłby lepszy od KPOP i KLOP. Można by wysłać cokolwiek, również wyniki z pomiarów i liczników, ale nie było by to ograniczeniem. Jednak zdecydowano inaczej.

Return to “supla-dev”