Błędny pierwszy odczyt na drugim kanale

Awatar użytkownika
pzygmunt
Posty: 7683
Rejestracja: wt sty 19, 2016 9:26 am
Lokalizacja: Paczków
Kontaktowanie:

wt wrz 17, 2019 10:19 am

Przed usunięciem

Kod: Zaznacz cały

union {
		uint8_t last_val;
		double last_val_dbl1;
		double last_val_dbl2;
	};
Po usunięciu

Kod: Zaznacz cały

uint8_t last_val;
double last_val_dbl1;
double last_val_dbl2;
Asica10
Posty: 52
Rejestracja: czw lut 28, 2019 8:12 pm

wt wrz 17, 2019 4:30 pm

Wielkie dzięki. Działa jak należy.

Czy można w jakiś sposób zmiejszyć częstotliwość wysyłania danych do serwera, ale tak by w aplikacji caly czas były wartości anie kreski? W tym momencie moge uśpić modul max na ok 20-25s
Awatar użytkownika
pzygmunt
Posty: 7683
Rejestracja: wt sty 19, 2016 9:26 am
Lokalizacja: Paczków
Kontaktowanie:

wt wrz 17, 2019 8:06 pm

Awatar użytkownika
klew
Posty: 528
Rejestracja: czw cze 27, 2019 12:16 pm

śr wrz 18, 2019 9:16 am

Zybi pisze:
pn wrz 16, 2019 11:50 pm
pzygmunt pisze:
pn wrz 16, 2019 10:03 pm
Z tej unii można zrezygnować.
I to jest lepsze rozwiązanie, bo jednak poprawka jw. zakłóca działanie kanału przekaźnika - testowałem na Sonoff-ie Basic.
Co się dzieje z tym przekaźnikiem? Patrzę na kod i nie widzę co mogłoby zaburzać jego pracę.
Zybi
Posty: 1434
Rejestracja: ndz cze 26, 2016 4:24 pm

śr wrz 18, 2019 9:28 am

Przyczyny jeszcze nie znam. Testowałem to bardzo późno i zostawiłem temat, bo rezygnacja z unii poszła bezproblemowo.
Może jeszcze wrócę do tego.
Asica10
Posty: 52
Rejestracja: czw lut 28, 2019 8:12 pm

pn wrz 23, 2019 2:42 pm

Po zrezygnowaniu z tej uni problem sie rozwiazal.

Problem pojawia się znowu po dodaniu czujnika dystansu 1 odczyt kreski w aplikacji, po drugim jest ok. Ktoś wie jak tym razem rozwiązać problem?
z góry dziekuje.
Awatar użytkownika
klew
Posty: 528
Rejestracja: czw cze 27, 2019 12:16 pm

pn wrz 23, 2019 9:46 pm

Asica10 pisze:
pn wrz 23, 2019 2:42 pm
Po zrezygnowaniu z tej uni problem sie rozwiazal.

Problem pojawia się znowu po dodaniu czujnika dystansu 1 odczyt kreski w aplikacji, po drugim jest ok. Ktoś wie jak tym razem rozwiązać problem?
z góry dziekuje.
Musiałbyś zrobić pierwszy odczyt wartości przed rejestracją urządzenia w chmurze.
Poszukaj metody "begin_thermometer" w SuplaDevice.cpp. Możesz dopisać analogiczną metodą "initDistanceSensor" i wywołać ją w tej samej pętli. Powinna sprawdzić, czy kanał jest sensorem odległości, po czym odczytać wartość z sensora i zapisać ją do kanału metodą channelSetDoubleValue.
Ewentualnie możesz tą inicjalizację zrobić w metodzie "addDistanceSensor" i tam odczytać wartość z sensora i przypisać zamiast wartości "-1".
Trzecia opcja to dopisanie sensora odległości do "begin_thermometer" - tam i tak już jest czujnik ciśnienia, wagi, wiatru...
ODPOWIEDZ