logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Serwer WEB, ESP8266, Lua i przesyłanie znaków ASCII z klawiatury do UART

cze333 23 Lut 2018 22:19 1599 12
REKLAMA
  • #1 17058977
    cze333
    Poziom 8  
    Posty: 7
    Jak w tytule, załączam fotkę ekranu serwera oraz kod który powinien realizować funkcję przesyłania znaków ASCII z klawiatury do UART ale jest błąd którego nie umiem określić.
    Nie działa mianowicie funkcja przekazywania znaków wpisywanych z klawiatury do zmiennej 'mycode'.
    Linie kodu gdzie wg mnie przypuszczalnie tkwi błąd:

    Kod: Lua
    Zaloguj się, aby zobaczyć kod

    Być może powinna być zastosowana inna metoda?
    Jak widać na fotce program generuje okienko i można do niego wpisywać znaki. Jednak po kliknięciu '<--INPUT' wpisane znaki znikają z okienka, nic sie nie dzieje i zmienna 'mycode' pozostaje pusta, ma wartość 'nil'.
    Do obsługi programowania płytki używałem programu Flasher oraz ESPlorera wg opisu:
    https://nodemcu.readthedocs.io/en/master/en/flash/#sdk-init-data

    Jest pytanie i prośba do programistów, którzy ogarniają ESP8266 i programowanie w LUA by przyjrzec sie temu.
    Całość kodu:

    Kod: Lua
    Zaloguj się, aby zobaczyć kod





    [img]Serwer WEB, ESP8266, Lua i przesyłanie znaków ASCII z klawiatury do UART
  • REKLAMA
  • #2 17059560
    JacekCz
    Poziom 42  
    Posty: 8670
    Pomógł: 760
    Ocena: 1464
    Już w samej opowieści masz brak precyzji.
    "ciąg znaków z klawiatury" zakłada brak ujęcia ich w grupy wyższego rzędu, pakiety, transakcje itd... Web tak właśnie robi.
    Lada chwila w tej koncepcji staniesz nad problemem czasu, pakietowania, wątkami, współbieznością itd...
    Serwer *) www jest jednym z gorszych pomysłów, by znak po znaku posyłać z klawiatury do UART.

    *) a już z całą pewnością taki serwer jaki się rozumie na uK. Dałbym radę coś takiego w 90%, sorry może w 80% zrealizować na Apache Tomcat i Javie EE, wyrafinowana aplikacją z AJAXem itd...
  • #3 17059663
    cze333
    Poziom 8  
    Posty: 7
    JacekCz napisał:
    ciąg znaków z klawiatury"
    Wprowadzasz z klawiatury kilka znaków do okienka znajdujacego sie po lewej stronie od przyciski 'INPUT' (spójrz na załaczoną fotkę) i następnie klikasz w przycisk 'INPUT' i ta wpisana sekwencja znaków ma być przesłana do zmiennej 'mycode' . Ale nie jest przesyłana. To jest ten problem. Reszta funkcji programu wykonuje sie prawidłowo. Nie wiem jak można jaśniej to opisać?
  • REKLAMA
  • #4 17059681
    JacekCz
    Poziom 42  
    Posty: 8670
    Pomógł: 760
    Ocena: 1464
    cze333 napisał:
    JacekCz napisał:
    ciąg znaków z klawiatury"
    Wprowadzasz z klawiatury kilka znaków do okienka znajdujacego sie po lewej stronie od przyciski 'INPUT' (spójrz na załaczoną fotkę) i następnie klikasz w przycisk 'INPUT' i ta wpisana sekwencja znaków ma być przesłana do zmiennej 'mycode' . Ale nie jest przesyłana. To jest ten problem. Reszta funkcji programu wykonuje sie prawidłowo. Nie wiem jak można jaśniej to opisać?


    Można i moim zdaniem trzeba jaśniej. Programowanie jest domeną ścisłości.
    Np "wprowadzony do okienka ciąg" (w tym również nie klawiatury a np wklejony)

    Klawiatura nie ulega wysadzeniu w powietrze (choć był taki przypadek na Bliskim Wschodzie) i nadal generuje znaki.
  • #5 17063883
    cze333
    Poziom 8  
    Posty: 7
    JacekCz napisał:
    Klawiatura nie ulega wysadzeniu w powietrze

    Został zaktualizowany kod. Warto zwrócic uwagę na linie z kodem wysylania znaków zawartych w zmiennej 'mycode' do UART.

    'if klik=="SENDtoUART" and mycode~=nil then uart.write(0, "zp"..mycode.."$") return end--send to UART string"

    Problem jest ten sam, mimo wykonania operacji wprowadzenia tych znakow odpowiednimi kliknieciami na przyciski w przeglądarce czyli '<--INPUT' oraz 'SENDtoUART' zawartość zmiennej 'mycode' pozostaje pusta. Jeśli masz ochotę to przejrzyj załaczony kod.
    Mogę przesłac na priw adres WEB mojej płytki ESP, bedziesz mial mozliwość otwarcia strony w przegladarce, poklikania na przyciski i sprawdzenia komunikatow w konsoli przegladarki.
  • REKLAMA
  • #6 17065009
    JacekCz
    Poziom 42  
    Posty: 8670
    Pomógł: 760
    Ocena: 1464
    W kwestii formalnej
    Kod: HTML, XML
    Zaloguj się, aby zobaczyć kod

    to jest komentarz, choć niekompletny. Czego po nim oczekujesz?

    Reszta to sieczka kilku języków (HTML/JS/Lua) , w kilku środowiskach (klienta / serwera), które wg moich oczu są przypadkowym i niekompletnym wklejeniem. Nie widzę, by to się w spójnie łączyło.

    Na ile ja rozumiem (tj rozumiem "sieczka") cofnij ten projekt do zwykłego wysyłania jednej operacji POST, bez żadnego JS, i dotestuj.
  • REKLAMA
  • #7 17065065
    cze333
    Poziom 8  
    Posty: 7
    JacekCz napisał:
    Czego po nim oczekujesz?

    Zdaje mi się nie przeczytałeś ze zrozumieniem wpisu powyżej. Ten kod działa i wykonuje funkcje z wyjątkiem tej jednej. Są tam zamieszczone komentarze, które opisują poszczególne elementy kodu. Gdybym wiedział jak usunąć błąd w załączonym kodzie, albo umiał napisać go od nowa prawidłowo innymi metodami to nie zawracałbym tutaj nikomu przysłowiowej gitary. To chyba jest oczywista oczywistość. Jeśli zabrałem Ci cenny czas to jest mi przykro.
    PS
    Zmagam się z tym od tygodni. Próbowałem bezskutecznie znaleźć w sieci przykład działajacego (bo nie działające to znalazłem) kodu na ESP8266, który realizowałby (w serwerze postawionym ESP8266) funkcję wprowadzania ciągu znaków wpisywanych z klawiatury do zmiennej, którą to zmienną można by następnie użyć w innych funkcjach programu. O to by mi chodziło.
    Może więc spokał sie ktoś z takim przykładem?
  • #8 17065223
    JacekCz
    Poziom 42  
    Posty: 8670
    Pomógł: 760
    Ocena: 1464
    cze333 napisał:
    Zmagam się z tym od tygodni. Próbowałem bezskutecznie znaleźć w sieci przykład kodu na ESP8266, który realizowałby (w serwerze postawionym ESP8266) funkcję wprowadzania ciągu znaków wpisywanych z klawiatury do zmiennej, którą to zmienną można by następnie użyć w innych funkcjach programu.
    Może więc spokał sie ktoś z takim przykładem?


    Czy jest przykład wprowadzenia przez serwer www nazwiska i imienia ulubionego aktora?

    Podziel problem na takie części / funkcjonalności, jakim w rzeczywistości jest. Część serwerowa jedna (tysiące przykładów), część klientowska druga, czyli zaczynając od prostej formatki HTML (miliony przykładów). Łączy to HTTP POST (milion przykładów).

    Nie umiem tego jaśniej powiedzieć. To elementarz. Uparcie tkwisz przy złym opisaniu zagadnienia (z tą klawiaturą), to i przykłady ciężko znaleźć.
  • #9 17065252
    cze333
    Poziom 8  
    Posty: 7
    JacekCz napisał:
    Czy jest przykład wprowadzenia przez serwer www nazwiska i imienia ulubionego aktora?
    Po co to filozofowanie i strzępienie klawiatury? Proponowalem że podam ci na priw link do mojej plytki ESP, jest caly czas zalaczona więc możesz zdalnie otworzyc ją w przegladarce , poklikać i zorientowac sie jak to działa. Poza tym masz zamieszczony powyżej kod z komentarzami. No niestety trzeba sie wysilić i poswiecic troche czasu. Chcesz czy nie?
  • #10 17065464
    krzysiek_krm
    Poziom 40  
    Posty: 4612
    Pomógł: 716
    Ocena: 599
    Witam,
    strzelam trochę na ślepo ponieważ generalnie nie znam tego języka.
    Może powinieneś poszukać działającego przykładu, który oferuje możliwość logowania (użytkownik, hasło). Ktoś chyba musiał już coś takiego stworzyć.

    Pozdrawiam
  • #12 17065750
    JacekCz
    Poziom 42  
    Posty: 8670
    Pomógł: 760
    Ocena: 1464
    xury napisał:
    Może poszukaj przykładu jak zrobić serwer telnet na ESP8266. To może wiele wyjaśnić.


    Telnet to jest świeże (w pozytywnym sensie) spojrzenie na temat.

    Pytanie do @cze333 czy, z jakich powodów i na ile musi w tym być obecny webserwer - czy tylko taka idea znalazła się "bo na YT pokazywali".
  • #13 17066436
    cze333
    Poziom 8  
    Posty: 7
    xury napisał:
    Może poszukaj przykładu jak zrobić serwer telnet na ESP8266. To może wiele wyjaśnić.

    Proszę mnie oświecić co tu ma do rzeczy serwet telnet?
    Co ma wyjaśnić?
    JacekCz napisał:
    "bo na YT pokazywali".

    Czy tobie płacą tutaj na forum za troling?

Podsumowanie tematu

LABEL_AI_GENERATED
Użytkownik ma problem z przesyłaniem znaków ASCII z klawiatury do zmiennej 'mycode' w kodzie Lua działającym na serwerze ESP8266. Mimo poprawnego działania innych funkcji, zmienna 'mycode' pozostaje pusta po kliknięciu przycisku 'INPUT'. W dyskusji poruszane są kwestie związane z programowaniem, w tym sugestie dotyczące uproszczenia kodu oraz rozważania na temat użycia serwera WWW w kontekście przesyłania danych. Użytkownicy sugerują również poszukiwanie przykładów działających aplikacji oraz rozważenie alternatywnych metod, takich jak serwer telnet.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA