Serial.find() or Serial.find()??? - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Programowanie w Arduino (https://forum.arduinopolska.pl/dzial-programowanie-w-arduino) +--- Wątek: Serial.find() or Serial.find()??? (/watek-serial-find-or-serial-find) |
Serial.find() or Serial.find()??? - lucek8654 - 15-01-2017 Witam, programuję centralkę alarmową sterowaną za pomocą smsów, udało mi się zrobić aby program reagował na jeden numer telefonu ale nie wiem jak dodać kolejny. Przedstawię to na prostym przykładzie: void setup() { Serial.begin(9600); // set serial port at desired value Serial.println("serial find test"); // echo test } void loop() { while (Serial.available()) { if (Serial.find("kolega") and Serial.find("2") or Serial.find("kot") and Serial.find("2")) { Serial.println("Found!"); } } } próbowałem też tak: void setup() { Serial.begin(9600); // set serial port at desired value Serial.println("serial find test"); // echo test } void loop() { while (Serial.available()) { if (Serial.find("kolega") and Serial.find("2")) { Serial.println("Found!"); } else { if (Serial.find("kot") and Serial.find("2")) { Serial.println("Found"); } } } } Found jest zwracane tylko po wpisaniu kolega 2, jak zrobić aby reagował także na kota 2? RE: Serial.find() or Serial.find()??? - SQ4KDG - 15-01-2017 Nie używałem "Serial.find" ale wydaje mi się że przy przeszukiwaniu od razu czyści bufor czyli po pętli: if (Serial.find("kolega") and Serial.find("2")) { } następna pętla nie zadziała, bo bufor seriala będzie pusty. Możesz sprawdzić czy mam rację, dając w 1 pętlę kota a w 2 kolegę ( wtedy powinno reagować tylko na kota). Jeżeli mam rację to proponuję dane z seriala przypisać do zmiennej String i sprawdzać tą zmienną. Pozdrawiam RE: Serial.find() or Serial.find()??? - Smaczek - 15-01-2017 Witam, Przede wszystkim ((... and....) or (...and...)) Pozdrawiam. RE: Serial.find() or Serial.find()??? - MarcinOlsztyn - 28-01-2017 wydaje mi się że przy operacjach na bitach musisz zamiast and napisać & to nad literą 7 |