formatowanie danych.... - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica) +--- Wątek: formatowanie danych.... (/watek-formatowanie-danych) Strony:
1
2
|
formatowanie danych.... - yourhomerouter - 23-02-2017 Witam, mógłby ktoś mi pomóc z formatowaniem danej którą dostaje przez serial? Dostaje dane w formacie "a100" "b100" "c20" , może to być dana np ze spacją czyli odpowiednio "a 100" "b 100" "c 20" i chciałbym wysterować nimi odpowiedni pin z pwm literka oznacza pin PWM a=9 b=10 c=11 a liczba za literką jego wypełnienie. nie bardzo wiem jak to ogarnąć, proszę o jakąś podpowiedz.. RE: formatowanie danych.... - namok - 23-02-2017 Całą dokumentację masz na dysku. Pomoc->Referencje - przeczytaj najpierw o funkcjach klasy Serial. Jak poczytasz to użyj metody Serial.readBytesUntil() do oczytania ciągu danych do bufora. Pierwsza pozycja w tablicy(buforze) to nr pinu, reszta to wartość. Inna opcja(chyba łatwiejsza) to użycie Serial.readStringUntil() i odczytanie danych do łańcucha. Pierwszy znak to numer pinu, reszta wartość. Wycinasz znaki używając odpowiednich metod klasy String o której oczywiście musisz poczytać w referencjach(String - object). RE: formatowanie danych.... - yourhomerouter - 23-02-2017 Witam, nie moge zrozumieć dlaczego nie działa, w konsoli wpisuje 1 255 wiec silnik poinien ruszyć a tu lipa Kod: #define DEBUG 1 otrzymuje w konsoli ze: Kod: Debugging Enabled Proszę podpowiedz dziękuje RE: formatowanie danych.... - namok - 24-02-2017 Nie możesz porównywać tablicy typu char z wartością typu int: if (Command == 1). Podobnie ma się sprawa z =e zmienną Data. Włącz ostrzeżenia kompilatora: Plik->Preferencje->Pokaz szczegółowe informacje podczas kompilacji. Generalnie można to zrobić prościej ale zmierzasz w dobrym kierunku. RE: formatowanie danych.... - yourhomerouter - 24-02-2017 Czyli muszę przekonwertowac char na int... Rozumie że wpis typu int ala = char command nie zadziała? Wysłane z mojego D6633 przy użyciu Tapatalka RE: formatowanie danych.... - namok - 24-02-2017 Jedną żecz podpowiem a resztę czytaj/szukaj/kombinuj: zamiast Kod: if (Command == 1) Kod: if (Command[0] == '1') To co masz w tablicy Command to zmienne typu char - znaki ascii. Przeczytaj w referencjach: - char - string - char array - array Nie ograniczaj się tylko do dokumentacji arduino. Jeśli czegoś nie rozumiesz to szukaj tych instrukcji jako instrukcji języka c. [Edit] Być może dla Ciebie Byłoby łatwiej zrobić to na zmiennych typu String a nie string - char array(druga opcja z postu #2). RE: formatowanie danych.... - yourhomerouter - 25-02-2017 Dziękuje za pomoc, Data wykombinowałem tak: Kod: if (Command[0] == '1') { pozdrawiam RE: formatowanie danych.... - namok - 25-02-2017 Powodem może być "Brak zakończenia linii" zamiast "Nowa linia" w monitorze portu. RE: formatowanie danych.... - yourhomerouter - 25-02-2017 dziękuje, brak zakończenia linii był powodem. jak na razie działa, jeszcze parę rzeczy do dopisania zostało . jeszcze raz dziękuje RE: formatowanie danych.... - yourhomerouter - 12-03-2017 Witam, czy ktoś mógłby mi wyjaśnić co oznacza [0] w "if (Command[0] == '1')" ,nie mogę znaleźć nigdzie wyjaśnienia. |