• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Komunikacja Arduino >> SIM 808
#2
Witam.
W przykładach komunikacji jest SerialEvent.
Odbiór polega na:
1. Stworzenie bufora na nadlatujące literki
2. W zdarzeniu nadlatującego znaku dodawanie ich do bufora
3. Jak system wykryje znak nowej linii przekazuje informację "stringComplete", kopiujesz szybko bufor bo tam mogą lecieć już nowe znaki (istotne  gdy maszyny ze sobą gadają, chyba, że wiesz, że po linii jest kilka ms ciszy).
4. Robisz ze stringiem co chcesz w pętli głównej lub w wybranej funkcji.
Generalnie programiści zalecają zrobienie zamiast string bufora w postaci tablicy znaków char. Wadą jest to że rezerwujesz wielkość zmiennej na stale, zaletą też. Dla string pamięć jest rezerwowana dynamicznie, nie zawsze zwracana, coś tam się przepełnia, niebieski ekran, koniec zabawy.
Jak masz string to dzielisz go na substring, jeśli używasz tablicy literek to używasz do podziału np. strtok(), char* pierwszy=strtok(kopiabuforu,",");  i dopóki w kopi bufora (lepiej bawić się na kopii) nie trafisz na zero kończące tablicę char* kolejny=strtok(NULL,","). Po tej operacji masz w zmiennej "pierwszy" mode, a w "kolejnej" longtitude, itd. jako literki. Oczywiście jak sobie słowa rozdzielasz dwukropkiem to jako znak sterujący używasz ":" zamiast ",". Sprawdzasz czy znaki to cyfry, jeśli tak to znak  zamieniasz na cyfrę i przypisujesz do zmiennej int, sprawdzasz kolejny, jak znowu cyfra to poprzednia wartość x10 i dodajesz nową cyfrę, itd. (funkcja atoi()). Jak nie jest to rakieta zdalnie sterowana to ta funkcja zamieni cały napis w liczbę int. O ile nikt nie trzyma magnum przy głowie to nie używasz float. Jeśli potrzebujesz mieć 2 znaki po przecinku to lepiej jak sobie operujesz na liczbach x100 ale możesz je sobie porównywać ze sobą i zachowują się racjonalnie. Float zachowują się dziwnie, działają wolno, zajmują więcej flash. 
To tak w skrócie - miłej zabawy.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
  


Wiadomości w tym wątku
Komunikacja Arduino >> SIM 808 - przez jayoz - 31-01-2018, 13:34
RE: Komunikacja Arduino >> SIM 808 - przez kaczakat - 02-02-2018, 17:35

Skocz do:


Przeglądający: 2 gości