mirekk36 napisał(a):
No i dowiedzieliśmy się o rzekomym błędzie w książce a tymczasem po jego poprawieniu kod ci nie działa a ten z książki działa ... Nie sądzisz jednak że coś jest nie tak ? Nie mówię tego złośliwie broń Boże, ale z kolei może warto czasem zapytać ? dopytać ? zamiast stwierdzać ?
Racja. Użyłem zbyt mocnego słowa, przepraszam. To nie błąd, ale jednak może nieco mylić. Dlatego zmieniłem.
Nie zmienia to faktu, że moja zmiana nie ma nic wspólnego z opisywanym problemem. Wcześniej też nie działało.
Cytuj:
Co to za stringi "AT\0" albo "ATI\0" ? to na pewno nie są te stringi:
"ATI\0" to treść wysyłana pakietem UDP. Zero dodane na wszelki wypadek, nie powinno robić tutaj żadnej różnicy, bo przecież jest to symbol oznaczający koniec łańcucha tekstowego. Próbowałem też wysyłać bez niego. Nie ma żadnej różnicy.
Skontrolowałem też WireSharkiem co dokładnie jest wysyłane i odbierane. Wygląda na to, że wszystko się zgadza. Nic nie zostaje poszatkowane na kilka pakietów, w części pakietu "data" znajduje się ciąg o odpowiedniej treści i długości, zakończony znakiem \0.
Cytuj:
Poza tym skoro wciąż wyskakuje ERROR to co za problem wyświetlić sobie na LCD albo przesłać na terminal zawartość odebranego bufora żeby prześledzić (ręcznie zdebugować) co dotarło do procka ? Myślę że po tej operacji szybko by kolega doszedł dlaczego nie ma reakcji na jakiś tam string "AT\0"
To pewnie zrobię w następnej kolejności. W tej chwili ponumerowałem jeszcze poszczególne "ERROR-y" występujące w kodzie, żeby dowiedzieć się, który z nich zostaje wywołany. Wychodzi na to, że za każdym razem odzywa się ostatni:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Tak, jakby kod nie rozpoznawał komendy i po przejściu do końca tabeli zgłaszał błąd.
Przychodzi mi do głowy jeszcze taka możliwość, że może do funkcji parsującej wysyłany jest nieprawidłowy adres początku danych w przetwarzanym pakiecie UDP.
------------------------ [ Dodano po: 24 minutach ]Wygląda na to, że chyba faktycznie przepisując kod przez pomyłkę wpisałem złą stałą określającą początek danych. Teraz poprawiłem i jest zmiana, ale nie do końca wszystko działa jak powinno. Za każdym razem otrzymuję ciąg "\r\n". Muszę jeszcze poszukać przyczyny...