Skocz do zawartości
SOYER

Arduino MEGA i BLYNK, LCD odchodzi do lamusa...

Pomocna odpowiedź

Ok, wlepiłem tego serialprinta i się zdumialem :-/. Problemem okazalo się to, że funkcja wysylająca na serwer wykonywała się w pętli kilka razy, raz po raz. Zresztą podobnie jak wysyłanie do Blynka, a ja się dziwiłem, że czasami wywala mnie z serwera blynka, a nie miałem chęci tego sprawdzić. Zrobilem wysyłanie zależne od zmiennej, tak by szło tylko raz. Problem z Blynkiem zniknął, zobaczymy jak będzie ze zwiechami esp...

Kto mi teraz wytłumaczy dlaczego wysyłanie w poniższym szkicu wykonywało się kilka razy zamiast raz:

void four(){
  lcd.setCursor(0,0);
  lcd.print("      PMS");
  lcd.setCursor(0,1);
  lcd.print("wykonuje pomiar");
  pms.requestRead();
  pms.readUntil(data);
  if(sekundPiec.available()){
    pm1=data.PM_AE_UG_1_0;
    pm2=data.PM_AE_UG_2_5;
    pm10=data.PM_AE_UG_10_0;
    storeData(pm1,pm2,pm10);
    Blynk.virtualWrite(35,"   ",pm1," ","ug/m3");
    Blynk.virtualWrite(36,"   ",pm2," ","ug/m3");
    Blynk.virtualWrite(37,"   ",pm10," ","ug/m3");
    Blynk.virtualWrite(38,pm1);
    Blynk.virtualWrite(39,pm2);
    Blynk.virtualWrite(40,pm10);
    wyslano = 1;
    lcd.clear();
    sekundPiec.restart();
    menu=FIVE;
  }
 }

Jest to funkcja wywoływana przez switch(menu),  czyli po wykonaniu wszystkich poleceń w if powinno od razu przejść do case(FIVE), a jednak wysyłało na serwer kilka razy... why??

Udostępnij ten post


Link to post
Share on other sites

Nie widzę reszty kodu (bo tam jest raczej problem) - ale czy nie zabrakło czasem break w switchu? Częsty błąd...

Udostępnij ten post


Link to post
Share on other sites

ESP na razie bez zwiechy, długo już, to dobrze wróży. Przyczyną musiało byc to wielokrotne, w serii, wysyłanie na serwer.

Dzisiaj dołożyłem menu do mojej strony:

 

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

śliczne... a teraz samą klawiaturką poproszę 🙂

jak zrobisz to pokażę prosty trick, aby screenreader przeczytał nową wartość... 

Udostępnij ten post


Link to post
Share on other sites

Teraz już nie mam czasu, ale powiedz jak się zabrać za to, wieczorem usiądę... Bo pojęcia nie mam....

Udostępnij ten post


Link to post
Share on other sites

a mówiłem, tłumaczyłem...

pierwsza zasada: nie rób javascriptem tego, co przeglądarka sama doskonale (czytaj: dużo lepiej) potrafi.

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

znaczy, że jak jest zrobione przez js np.

$(). click(function{});

 

to już o sterowaniu klawiaturą mogę zapomnieć?? 

Edytowano przez SOYER

Udostępnij ten post


Link to post
Share on other sites

a jakim elementem jest ten, do którego click podłączasz?

jeśli to a, input czy button - nie ma problemu.

jeśli to div, span czy inne coś - na dziś umówmy się, że możesz.

tak z ciekawości - na czym znasz się najlepiej? będzie mi łatwiej porównywać...

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

click podłączyć chcę do elementów a zawartych w div... 

najlepiej to wiem jak robić żeby się nie narobić 😉 organizacja procesów to mój konik... i samoloty bojowe :)) 

 

Edytowano przez SOYER

Udostępnij ten post


Link to post
Share on other sites

jeśli to a, to wystarczy zwrócić false z funkcji, aby zablokować domyślne zachowanie. wtedy zostanie wykonane to co masz w onclick, a przeglądarka nie wlezie w nowy adres.

jeśli masz w stylach nie tylko hover, ale również focus - przy nawigacji klawiaturą będziesz miał dokładnie ten sam efekt wizualny jak przy najechaniu myszą (pomijając ie, ale mówimy tu o przeglądarkach).

następną razą opowiem ci o samolotach bojowych i dlaczego jeśli pociągniesz te wajche do siebie to samolot leci do góry a nie w prawo.

Udostępnij ten post


Link to post
Share on other sites
14 minut temu, ethanak napisał:

jeśli to a, to wystarczy zwrócić false z funkcji, aby zablokować domyślne zachowanie. wtedy zostanie wykonane to co masz w onclick, a przeglądarka nie wlezie w nowy adres.

?? :/?? :/?? 

Udostępnij ten post


Link to post
Share on other sites

niespecjalnie rozumiem... 

Udostępnij ten post


Link to post
Share on other sites

właśnie ja nie zrozumiałem ani pół zdania.... 

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

No proste. Jeśli masz coś w stylu:

<a href="costam.html">Treść</a>

to po kliknięciu w "Treść" przeglądarka przejdzie do strony "costam.html".

Jeśli masz coś bardziej skomplikowanego, czyli np.

<a href="costam.html" onclick="zrobcos()">Treść</a>

przeglądarka wykona funkcję zrobcos() i przejdzie do strony "costam.html"

Jeśli natomiast masz:

<a href="costam.html" onclick="zrobcos(); return false">Treść</a>

przeglądarka wykona funkcję zrobcos(), ale nie wykona akcji domyślnej dla "a".

Teraz jeśli funkcja zrobcos() będzie zwracała wynik true albo false, będzie można sterować zachowaniem przeglądarki (czy ma przejść do strony czy nie):

<a href="costam.html" onclick="return zrobcos()">Treść</a>

Przy okazji: jeśli nie musisz (w Twoim przypadku nie musisz), nie dodawaj dynamicznie obsługi eventów tylko rób to w kodzie html - dużo łatwiej jest przekazać parametry, np:

<a href="costam.html" onclick="return zrobcos(this, 7, 'jakisnapis')">

O to mi chodziło...

 

Edytowano przez ethanak

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Ok, coś tam łapię, tylko dalej nie wiem co to ma wspólnego z klawiaturą;

dwa, jak wiesz, ja nie mam żadnych a href tylko za pomocą $(). click(function{}); łapię jakiś element a i kiedy wystąpi na nim click to coś tam robię;

trzy

33 minuty temu, ethanak napisał:

Teraz jeśli funkcja zrobcos() będzie zwracała wynik true albo false, będzie można sterować zachowaniem przeglądarki (czy ma przejść do strony czy nie):


<a href="costam.html" onclick="return zrobcos()">Treść</a>

ale u mnie nie ładujemy nowych stron, tylko podmieniamy zawartości. 

Druga rzecz my przecież zawsze chcemy zmienić po clicku cośtam, tylko chcemy klik wywoływać myszką i klawiaturą przez enter czy co tam.

 

Ja mam na razie ten problem, że naciskając tab nie skaczę po zawartości strony... potem dopiero będziemy myśleć o enterowym clicku... 

Edytowano przez SOYER

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...