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



Teraz jest 29 cze 2026, o 02:58


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 11 ] 
Autor Wiadomość
PostNapisane: 10 lip 2015, o 17:38 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 450
Pomógł: 3

Witam!
Ciesząc się z działającego "Dawcy czasu NTP" zacząłem przyglądać się uważniej działaniu funkcji parsującej "parse_rs232" (Poradniki Mirka). Nabrałem podejrzeń, że nie każde odświeżenie czasu na wyświetlaczu LCD pochodzi z nowego zapisu do RTC. W terminalu odbiór stringów z serwera NTP przebiega sprawnie, konsekwentnie i bez zarzutu - każde zapytanie do serwera zwraca datę i czas. Funkcja parsująca natomiast pomija jakby niektóre stringi w dość losowy sposób. Założyłem pułapkę (Linia 7), która tuż po wejściu do funkcji parsującej, po odebraniu tokena "+ok=", zapisuje do RTC same jedynki, a następnie string czasu i daty jest parsowany, a "składowe" ponownie zapisywane są do RTC (Linia 26). Okazuje się, że prawidłowy czas i data pojawiają się co kilka wywołań funkcji parsującej. Pozostałe wywołania pozostają jakby bez wpływu na zapis do RTC - na wyświetlaczu pozostają jedynki. Co może powodować dziwne działanie tej funkcji?

Pułapka 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.


Pozdrawiam i dziękuję za wszelkie sugestie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lip 2015, o 19:25 
Offline
Moderator
Avatar użytkownika

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

A co za problem wyświetlić sobie ten string który nadchodzi, który ma być parsowany i sprawdzić co w nim jest, że nie chce się parsować - no na prawdę to takie hmmm rzekłbym podstawowe rzeczy....

_________________
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: 10 lip 2015, o 19:31 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 450
Pomógł: 3

Wszystkie nadchodzące stringi są prawidłowe - monitorowane na bieżąco w terminalu.
Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lip 2015, o 20:12 
Offline
Moderator
Avatar użytkownika

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

ty chyba jednak mocno czegoś nie rozumiesz .....

wiesz co to znaczy wywalić to sobie na terminal z programu ? ... jak wchodzisz w parse to ciężko ci wysłać string na uart do terminala i zobaczyć co przylatuje ? bo tego nie robisz przecież

_________________
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: 10 lip 2015, o 20:27 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 450
Pomógł: 3

mirekk36 napisał(a):
ty chyba jednak mocno czegoś nie rozumiesz .....

Czy to co wdać w putty nie jest nadchodzącą odpowiedzią z serwera czasu?
mirekk36 napisał(a):
wiesz co to znaczy wywalić to sobie na terminal z programu ? ... jak wchodzisz w parse to ciężko ci wysłać string na uart do terminala i zobaczyć co przylatuje ? bo tego nie robisz przecież

Jak więc to zorganizować?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lip 2015, o 20:45 
Offline
Moderator
Avatar użytkownika

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

Panie kolego .... no dobra powstrzymam się, chociaż już nie raz mówiłem ci o tym - pokażę ostatni raz - na kolejne razy zabraknie mi cierpliwości

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



nie mów mi że to trudne

albo

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


------------------------ [ Dodano po: kilkunastu sekundach ]

albo jakkolwiek inaczej

_________________
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: 10 lip 2015, o 20:49 
Offline
Użytkownik

Dołączył(a): 05 lut 2014
Posty: 252
Lokalizacja: obok Częstochowy
Pomógł: 14

Jak co kilka wywołań wszystko wchodzi to znaczy, że funkcja parsująca działa znakomicie :)
Może za często wywołujesz ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lip 2015, o 21:02 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 450
Pomógł: 3

mirekk36 napisał(a):
Składnia: [ Pobierz ] [ Ukryj ]
język c
void parse_rs232(char * buf) {
 
   uart_puts( buf );
 
.....
GeSHi

Odpowiedź z terminala - coś ewidentnie źle działa:
Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lip 2015, o 21:18 
Offline
Użytkownik

Dołączył(a): 25 lut 2015
Posty: 252
Lokalizacja: Lublin
Pomógł: 23

I stąd wysnułeś wniosek, że funkcja parsująca źle działa?

------------------------ [ Dodano po: 3 minutach ]

Już widzę podmieniłeś 2 screeny na jeden.
To na pewno jest zawartość buf?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lip 2015, o 21:27 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 450
Pomógł: 3

jerrylu napisał(a):
Już widzę podmieniłeś 2 screeny na jeden.

Podmieniłem bo wywołałem funkcję uart_puts() w dwóch miejscach, a więc dane na zrzutach były nieprawdziwe.
jerrylu napisał(a):
To na pewno jest zawartość buf?

Wywołanie umieściłem w tym miejscu:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


P.S. Napiszcie proszę gdzie dokładnie umieścić wywołanie uart_puts(buf) aby nie zaburzyć działania programu, a jednocześnie zebrać wiarygodne dane.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 lip 2015, o 06:24 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

Zaraz po ich odebraniu z ntp ?

Namazane ze smarta.

_________________
Usługi druku przestrzennego - www.drumik.pl



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

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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO