Czytanie danych z arduino - 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: Czytanie danych z arduino (/watek-czytanie-danych-z-arduino) |
RE: Czytanie danych z arduino - mark67 - 18-06-2018 Nie mogę się połapać w żaden sposób. Zostało mi w sumie tylko to dlatego nie wiem czy jest sens zmieniać środowisko na inne. Kod: Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick W aplikacji znajduje sie textbox wyświetlający odebrane dane, skoro wyświetla mi np "Opcja1" to znaczy, że do receivedData trafiaja dane z Arduino Kod: if(digitalRead(9)== LOW) Skoro tak to dlaczego danych znajdujacych sie w zmiennej receivedData nie moge użyć np do Instrukcji IF Mimo, że w receivedData znajduje się "Opcja1" a według instrukcji powinno to wywołać funkcje BT1(). Nie mam pojęcia dlaczego nie da się wykorzystać stringa dla głupiej instrukcji.. Kod: If (receivedData = "Opcja1") Then Pracuje na szablonie z internetu, który poprostu zmieniłem według własnych potrzeb i jest to ostatnia rzecz z która nie mogę sobie poradzić, tak wiem jest wiele rozwiązań w internecie aczkolwiek nie chciałbym robić tego od nowa... RE: Czytanie danych z arduino - es2 - 18-06-2018 receivedData = "Opcja1" przypisuje do wskaźnika na "receivedData " wskaźnika na "Opcja1". Kompilator nie dał ostrzeżenia, że nie ma warunku w if? RE: Czytanie danych z arduino - mark67 - 18-06-2018 Kod: If (receivedData = "Opcja1") Then Dane zawarte w stringu moge wyświetlić ale nie moge ich użyć do stworzenia instrukcji? Przypisanie ich do innej zmiennej nie daje efektu. Typ zmiennej też wydaje mi się, że dobry. RE: Czytanie danych z arduino - es2 - 18-06-2018 popatrz na if(digitalRead(9) RE: Czytanie danych z arduino - mark67 - 18-06-2018 Kod: if(digitalRead(9)== LOW) RE: Czytanie danych z arduino - kaczakat - 18-06-2018 Środowiska oczywiście nie ma sensu zmieniać, idea działania i sposób tworzenia programu wygląda w obu tak samo, różnice to tylko składnia. Trzeba się jej nauczyć. Twój błąd jest bardzo częsty, popatrzysz jeszcze na tę linijkę z parę godzin i zauważysz. RE: Czytanie danych z arduino - es2 - 18-06-2018 A jakby czytał ostrzeżenia kompilatora to nie musiałby patrzeć kilka godzin. Niestety, większość początkujący olewa ostrzeżenia kompilatora. Przecież kompilator jest głupi, co się czepia szczegółów. RE: Czytanie danych z arduino - procek - 19-06-2018 == porównanie =przypisanie Czyli jeśli dasz if(a==b) to warunek będzie spełniony jeśli a oraz b są równe. Inaczej warunek nie jest spełniony. Jeśli dasz if(a=b) to wartość "a" zostanie zastąpiona wartością "b". Program z tego co pamiętam potraktuje to jak by warunek zawsze był spełniony i część kodu która była zależna od warunku zawsze się wykona. Prościej? Zamień If (receivedData = "Opcja1") Na If (receivedData == "Opcja1") RE: Czytanie danych z arduino - mark67 - 20-06-2018 Chodzi o to, że kompilator wyrzuca błąd własnie przy tym zapisie Kod: If (receivedData == "1") Then Kod: Dim p As Object = receivedData == "1" A kolejna podpowiedzią jest Kod: Dim p As Object = receivedData == "1" RE: Czytanie danych z arduino - kaczakat - 20-06-2018 Pokaż cały kod i cały wypluwany log. Każesz nam patrzeć przez dziurkę od klucza na Panoramę Racławicką. Zwykle porównywanie == stringów nie ma sensu, do tego są specjalne funkcje. C string jest tablicą, stringi w C# i pewnie w VB to zupełnie inna konstrukcja. Na pewno nie porównujesz konia do rzodkiewki? Jak coś to można sobie wyłowić pierwszą literkę i porównać ją do jakiegoś znaku. Co do zasady nie wywołujesz odczytu z portu COM jakimś timerem (nie wiem co to jest ten tick, tak podejrzewam). Masz na zdarzenie pojawienia się danych na porcie COM obsłużyć to zdarzenie aż do odebrania znaku/linii tekstu, a nie obsłużyć zdarzenie, że wybije godzina odbioru danych. W C# są funkcje do odbioru, które rozpoznają jaki rodzaj danych odbierasz, do tekstu jest właśnie np. ReadLine(), jesteś pewien do czego jest funkcja ReceiveSerialData()? |