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



Teraz jest 23 kwi 2026, o 07:10


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
Autor Wiadomość
PostNapisane: 10 sty 2016, o 22:01 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 08 gru 2013
Posty: 366
Lokalizacja: Wałbrzych
Pomógł: 7

Witam witam mam problem trochę z parsowaniem danych .

mam taką funkcję

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


wszystko działa lecz mam problem z parsowaniem ostatniego stringa


dane nadlatujące to :
at+g=12
i chce gdy nadleci komenda at+g wtedy ma przypisać zawartość po znaku "=" do zmiennej h niestety nie działa mi to:( nie wiem jak to rozwiazac

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 sty 2016, o 23:34 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27457
Lokalizacja: Szczecin
Pomógł: 1045

Zdaje mi się, że masz Greenbooka a tam masz wprost przykłady na takie parsowanie

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 sty 2016, o 06:21 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 maja 2013
Posty: 432
Lokalizacja: Gostyń / Poznań
Pomógł: 25

A czy twoje kmendy nie wygladaja tak: AT+KOMENDA+ ? Bo wydaje mi sie ze brakuje drugiego plusa wiec twoj wsk leci w pioruny...
Poza tym grzalka po ang to heater bo heather to wrzos ;)

_________________
Podpis...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 sty 2016, o 07:48 
Offline
Użytkownik

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

Kolego najlepszym rozwiązaniem takiego problemu jest sobie wyświetlać zawartość wsk na lcd lub terminalu. Żebyś wiedział co nadleciało w jakiej formie, następnie to analizując pisać instrukcje

_________________
Przewodnik|Sterownik akwariowy



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 sty 2016, o 18:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 08 gru 2013
Posty: 366
Lokalizacja: Wałbrzych
Pomógł: 7

Tak mam greenbooka lecz nie bardzo działa mi taka funkcja
cos nie do końca rozumiem .


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


taki zapis w wyniku powinen mi dać

buf = "at+g"
godzina = "12"







lecz gdy zrobię tak ze w tablice ze stringiem wstawię w miejsce null to działa.

a zwracał mi wynik NULL


obecnie rozwiązałem problem i moja funkcja do parsowania danych wygląda tak .
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Nie bardzo wiem jak to działa w książce . I broń borze nie mowie ze jest źle . Po prostu nie rozumiem . Konkretnie chodzi mi o strony 424 i 425. Nie wiem czemu analizowany string jest wstawiony w miejsce wyniku czyli przed znakiem =

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 sty 2016, o 21:32 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27457
Lokalizacja: Szczecin
Pomógł: 1045

driver0207 napisał(a):
Tak mam greenbooka lecz nie bardzo działa mi taka funkcja
cos nie do końca rozumiem .


Składnia: [ Pobierz ] [ Ukryj ]
język c
char buf [] = "at+g=12" ;
char* godzina;
 
 
buf =  strtok_r(NULL,"=",&godzina);
GeSHi


taki zapis w wyniku powinen mi dać

buf = "at+g"
godzina = "12"

Ale posłuchaj w książce nie ma takiego przykładu i to co napisałeś wyżej nie ma prawa nawet działać :(

Zajrzyj na DVD, na początek jeśli jeszcze nie rozumiesz do końca jak działa strtok_r() to właśnie rób tak jak robisz czyli używaj strtok() bo to dwie nieco różne funkcje. Różnią się tym, że strtok_r() pozwala na uzyskanie wskaźnika do pozostałej reszty stringu dzięki czemu można tę resztę przekazywać dalej do kolejnej funkcji jako argument ... omawiam to już w Bluebooku przy UDP i parsowaniu ... no ale w GB również

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 sty 2016, o 23:18 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 08 gru 2013
Posty: 366
Lokalizacja: Wałbrzych
Pomógł: 7

Nom identycznego nie ma w książce ale jest coś podobnego zgadza się, to są takie moje merytoryczne rozważania .
W książce jest dokładnie przykład :
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



z tego co widzę z pierwszego wariantu to funkcja działa tak:

wynik _przed_separatorem =strtok_r(analizowany_string, separator, reszta_po separatorze);


ale mogę się mylić:/



Ale dla pewności jutro przeanalizuje jeszcze raz greenbook'a i bluebook'a i płytkę.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 sty 2016, o 23:56 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27457
Lokalizacja: Szczecin
Pomógł: 1045

nie mylisz się - tak właśnie jest z tym strtok_r()

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



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: 8 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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