eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikasscanf() - co robię źle?Re: sscanf() - co robię źle?
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
    atman.pl!news.e-wro.pl!not-for-mail
    From: "J.F." <j...@p...onet.pl>
    Newsgroups: pl.misc.elektronika
    Subject: Re: sscanf() - co robię źle?
    Date: Sat, 23 Feb 2013 14:53:05 +0100
    Organization: Miejskie Sieci Informatyczne e-wro
    Lines: 40
    Message-ID: <1gjsq44nrfo9z.1ca2ws5pz1fdg$.dlg@40tude.net>
    References: <kgab3v$bmc$1@portraits.wsisiz.edu.pl>
    NNTP-Posting-Host: h82-143-187-50-static.e-wro.net.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset="iso-8859-2"
    Content-Transfer-Encoding: 8bit
    X-Trace: atena.e-wro.net 1361627553 7090 82.143.187.50 (23 Feb 2013 13:52:33 GMT)
    X-Complaints-To: a...@e...pl
    NNTP-Posting-Date: Sat, 23 Feb 2013 13:52:33 +0000 (UTC)
    User-Agent: 40tude_Dialog/2.0.15.1pl
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:643049
    [ ukryj nagłówki ]

    Dnia Sat, 23 Feb 2013 13:02:00 +0100, Atlantis napisał(a):
    > Mianowicie kontynuuję temat analizy odpowiedzi na komendy AT przy
    > komunikacji między Atmegą8 a modułem GSM. Do tej pory stosowałem mało
    > eleganckiego i mało rozwiązania nie wymagającego angażowania stdio.h.

    Zawsze mozesz wrocic - lepiej korzystac ze zgrabnego i dzialajacego
    rozwiazania, niz angazowac kobyle ktora robi za duzo i niepewnie.

    > W przypadku polecenia AT+CPAS mój moduł GSM zawsze odpowiada w
    > następujący sposób:
    > "+CPAS: 00x\r\n" (x to liczba z zakresu 0-5)
    > W odpowiedniej funkcji przepisuję znaki pojawiające się w buforze
    > (circular buffer) do tabeli. Gdy pojawi się znak \r dopisuję za nim
    > jeszcze zero, a potem przystępuję do wydzielenia wartości liczbowej:

    Ja bym sie juz w to \r nie bawil.

    > sscanf(tablica, "+CPAS: %d\r", &zmienna_int);
    > Robię coś nie tak? A może %d nie przyjmie liczby poprzedzonej zerami?

    Wyglada na to ze poprawnie wszystko.
    http://www.cplusplus.com/reference/cstdio/scanf/
    Ale sprawdz jeszcze raz czy _wszystko_ jest poprawnie, no i co zwraca
    sscanf ?
    tablica jest tablica znakow, zmienna_int zmienna int itp ?

    > drugiej strony próbowałem także zapisu "+CPAS: 00%d\r" i także nic nie
    > dało...

    Jeszcze mozesz sprobowac %s i zobaczyc gdzie przerywa analize ...
    hm, tego \r w formacie nie jestem pewien, moze usun ?

    > Jak powinno wyglądać pobranie wartości zwracanych przez "AT+CSQ"?
    > Format wygląda następująco: "+CSQ: xxx, xxx\r\n"
    > Rozumiem, że sscanf(tablica, "+CSQ: %d, %d\r", zmienna1, zmienna2)
    > również nie zadziała?

    ale powinno.

    J.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: