Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 17 gru 2025, o 15:47


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
PostNapisane: 28 lis 2015, o 20:38 
Offline
Użytkownik

Dołączył(a): 19 sty 2015
Posty: 29
Pomógł: 0

Witam wszystkich!!

Postanowiłem postawić stronkę www na procku avr a dokładnie na ATmedze8(wiem, że trochę mała ale do testów wystarcza)

Mam problem z parsowaniem danych. Nie wiem czy chodzi o samą funkcję czy też może o polecenie GET.

A wiec po kolei.
Kiedy na stronce stworzyłem sobie formularz składający się z 2 komórek ( kolor, stan ) oraz przycisku( zatwierdz ) Polecenie GET wyglądało tak: ".../?kolor=red&stan=on&zatwierdz="
Do parsowania danych używałem takiej funkci:

Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Wszystko działa poprawnie. Czerwona dioda zapala się i gasi.
Kiedy jednak chcę użyć tylko klawisza i suwaka, pojawia się problem. Nie potrafię dostać się do cyfry na końcu. Polecenie wygląda tak: "../?przycisk1=&suwak=51". Nie mam pomysłu jak przeanalizować nadesłane polecenie za pomocą funkcji jak wyżej. (od razu powiem, że próbowałem na wiele sposobów lecz niestety nie znalazłem poprawnego). Idąc więc małymi kroczkami napisałem taką oto funkcję:

Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Do tego etapu wszystko działa poprawnie. Dioda czerwona i zielona zapala się. Dalej pojawia się problem, ponieważ po cyfrze 51 nie ma już kolejnego separatora.
Rozwiązaniem wydaje się funkcja strtok_r jednak jak jej użyłem zapala się tylko dioda czerwona.
Oto kod:

Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Nie wiem czy powodem niedziałającej funkcji jest fakt, że za cyfrą 51 znajduję się jeszcze jakieś polecenie html-owe czy może funkcja jest zła.
Proszę o pomoc. Pozdrawiam Arek :)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 lis 2015, o 14:15 
Offline
Użytkownik

Dołączył(a): 04 cze 2013
Posty: 517
Pomógł: 26

kolego a czy wyświetlałeś sobie na lcd zawartość wsk po każdej lini strtok co on zawiera?

_________________
Przewodnik|Sterownik akwariowy



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 lis 2015, o 16:47 
Offline
Użytkownik

Dołączył(a): 19 sty 2015
Posty: 29
Pomógł: 0

Wysyłałem zawartość wsk do terminala, dodatkowo używałem diod kontrolnych. Na szczęście problem już rozwiązany... po wielu próbach udało Mi się przekształcić funkcję aby działała poprawnie.
Powodem był zły tym zmiennej do której była przekazywana liczba.
Do kody dodałem uint8_t data = atoi(reszta); i potem tylko sprawdzałem warunki. Wszystko działa.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO