ATNEL tech-forum
https://forum.atnel.pl/

Problem z dzieleniem danych z rs232 na zmienne w b4a
https://forum.atnel.pl/topic22656.html
Strona 1 z 1

Autor:  Tokio518 [ 8 lis 2019, o 18:50 ]
Tytuł:  Problem z dzieleniem danych z rs232 na zmienne w b4a

Witam
Mam problem z pewna funkcją w b4a. Wysyłam z procesora
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

do aplikacji i odczytuję to fukcją:
Składnia: [ Pobierz ] [ Ukryj ]
język vb
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

I bez dzielenia na zmienne a i b to odczyt działa dobrze, ale gdy dzieli się na zmienne to wyłaczą aplikacje. Proszę o pomoc z góry dziękuję za pomoc :)

Autor:  Harry [ 8 lis 2019, o 18:58 ]
Tytuł:  Re: Problem z dzieleniem danych z rs232 na zmienne w b4a

Pokazuje jakiś błąd zanim wyłączy?
Najprościej byłoby jakbyś korzystał z debuggera, wtedy możesz sobie analizować krok po kroku :)

Autor:  tfosik [ 9 lis 2019, o 12:17 ]
Tytuł:  Re: Problem z dzieleniem danych z rs232 na zmienne w b4a

Witam
użyj może innego separatora np kropki , ciąg który wysyłasz powinien mieć postać
.tekst1.tekst2.tekst3. itd

skompiluj w trybie debug i zobaczysz która linia kodu daje błąd. Możesz sobie też logi pododawać
Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Autor:  Tokio518 [ 9 lis 2019, o 19:45 ]
Tytuł:  Re: Problem z dzieleniem danych z rs232 na zmienne w b4a

Zmiana separatora nic nie dała, ale skompilowałem kod w trybie debug oto to co było w konsoli
Składnia: [ Pobierz ] [ Ukryj ]
język vb
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Za komentowałem linie 195 i aplikacja działa tylko pojawił się kolejny problem
Składnia: [ Pobierz ] [ Ukryj ]
język vb
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Za komentowana linia która sprawiała problem przypisuje do zmiennej b dane z atmegi. Gdy za komentowana jest zmienna b wszystkon działa dobrze i pierwsza zmienna wysyłana przypisuje się zmiennej a

Autor:  tfosik [ 9 lis 2019, o 20:13 ]
Tytuł:  Re: Problem z dzieleniem danych z rs232 na zmienne w b4a

Spróbuj tak
Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Jak wygląda ten ciąg?, który nadlatuje.

Autor:  Harry [ 9 lis 2019, o 20:29 ]
Tytuł:  Re: Problem z dzieleniem danych z rs232 na zmienne w b4a

Przeleć linia po linii i zobacz co zawiera tablica numbers

Wysłane ze srajfona

Autor:  tfosik [ 9 lis 2019, o 20:35 ]
Tytuł:  Re: Problem z dzieleniem danych z rs232 na zmienne w b4a

Tak sprawdziłem dla pewności
Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


I wszystko działa. Sprawdż i skompiluj w trybie debug

Autor:  Harry [ 9 lis 2019, o 23:52 ]
Tytuł:  Re: Problem z dzieleniem danych z rs232 na zmienne w b4a

Główna zaletą trybu debug nie są logi, tylko możliwość ustawienia pułapek i uruchamiania aplikacji krok po kroku. Tokio musi się tego nauczyć, bo bez tego będzie mu ciężko robić bardziej skomplikowane aplikacje.

Wysłane ze srajfona

Autor:  tfosik [ 10 lis 2019, o 00:30 ]
Tytuł:  Re: Problem z dzieleniem danych z rs232 na zmienne w b4a

No Pudzian wygrał w KSW...
Rzadko korzystam z Breakpoint, nawet w rozbudowanych projektach, ale to dobre narzędzie. A Log-i to zamiast editext-ów i Labelek, w większości przypadków wystarczają.

Autor:  Harry [ 10 lis 2019, o 01:16 ]
Tytuł:  Re: Problem z dzieleniem danych z rs232 na zmienne w b4a

Wystarczy, pod warunkiem że wie co się robi, a jak nie, to zostaje podgląd zmiennych w trakcie działania ;)

Autor:  Tokio518 [ 10 lis 2019, o 09:01 ]
Tytuł:  Re: Problem z dzieleniem danych z rs232 na zmienne w b4a

Żadne z rozwiązań nic nie dało, gdy ustawie
Składnia: [ Pobierz ] [ Ukryj ]
język vb
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

To nadlatujące dane zamieniają się miejscami. Debuger wskazuje na b=numbers(2), gdy dane z atmegi to "235.1023", a gdy dane to".235.1023." to wskazuje na a=numbers(1). (Dane z atmegi są wysyłane co 600ms)

------------------------ [ Dodano po: 14 minutach ]

To było w linijki z debugera
Składnia: [ Pobierz ] [ Ukryj ]
język vb
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Linjka 200 to b=numbers(1)

Autor:  tfosik [ 10 lis 2019, o 09:51 ]
Tytuł:  Re: Problem z dzieleniem danych z rs232 na zmienne w b4a

Ustaw to tak i nie zmieniaj
Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Tu chyba problem leży po stronie procka, albo spróbuj jeszcze tak
Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Autor:  Tokio518 [ 10 lis 2019, o 10:04 ]
Tytuł:  Re: Problem z dzieleniem danych z rs232 na zmienne w b4a

Działa, gdy jest za komentowane b=numbers(1), ale w terminalu (Edlog) dane dziwnie się dzielą, ponieważ atmega wysyła "235.1023", a jest
"2
35.1023"
Tak jakby po 2 dodawała CRLF, które powinno być po wszystkim

Autor:  tfosik [ 10 lis 2019, o 10:08 ]
Tytuł:  Re: Problem z dzieleniem danych z rs232 na zmienne w b4a

Tokio518 napisał(a):
Działa, gdy jest za komentowane b=numbers(1), ale w terminalu (Edlog) dane dziwnie się dzielą, ponieważ atmega wysyła "235.1023", a jest
"2
35.1023"
Tak jakby po 2 dodawała CRLF, które powinno być po wszystkim


Atmenga powinna wysyłać ".235.1023." Jeżeli wysyłasz tylko liczby to zmień może separator na x i wyślij coś takiego "x235x1023x"

tak działa metoda Regex, dzieli ciąg na części zawarte pomiędzy separatorami.

Autor:  Tokio518 [ 10 lis 2019, o 10:28 ]
Tytuł:  Re: Problem z dzieleniem danych z rs232 na zmienne w b4a

Nic to nie dało, jest jeszcze gorzej, ponieważ jak za komentuje b=numbers(2) to nie działa, a wcześniej to pomagało.

Autor:  tfosik [ 10 lis 2019, o 10:56 ]
Tytuł:  Re: Problem z dzieleniem danych z rs232 na zmienne w b4a

Czy to działa dla Ciebie
Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Autor:  Tokio518 [ 10 lis 2019, o 11:58 ]
Tytuł:  Re: Problem z dzieleniem danych z rs232 na zmienne w b4a

Tak to działa. Więc wina by leżała po stronie procka ?

Autor:  tfosik [ 10 lis 2019, o 12:48 ]
Tytuł:  Re: Problem z dzieleniem danych z rs232 na zmienne w b4a

Pewnie tak.
https://www.b4x.com/android/forum/threa ... 9/#content

Tutaj fragment kodu z ARDUINO, tworzy ciąg i wysyła po udp, separatorem jest x, prymityw ale działa.
Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Musisz mieć pewność że wszystkie dane to string, jeżeli nie to musisz przekonwertować na string...

Autor:  Harry [ 10 lis 2019, o 15:13 ]
Tytuł:  Re: Problem z dzieleniem danych z rs232 na zmienne w b4a

Tokio, a jak wyślesz z procka raz, a nie ciąg co 600ms to działa?
Co zawiera zmienna STR, zanim poddasz ją dzieleniu regexem?
W jaki sposób wysyłasz z procka - masz znak końca wiersza?

Wysłane ze srajfona

------------------------ [ Dodano po: 36 minutach ]

Tokio, zrób tak:
ustaw breakpoint poniżej linii str=..., nastepnie najedz myszką na zmienną STR i zobacz czy jest to samo co Ci ląduje w Edlogu - mogą być jeszcze jakieś dane sterujące, które nie są wyświetlane, a mimo Regex je widzi.

Autor:  Tokio518 [ 11 lis 2019, o 09:41 ]
Tytuł:  Re: Problem z dzieleniem danych z rs232 na zmienne w b4a

W b4a wszystko się zgadza wszystko jest jako string w zmiennej "STR" nie ma nic dodatkowego. Ale zmniejszyłem częstotliwość wysyłania do 2000 ms i zauważyłem, że pierwsza partia danych przypisuje się a jak nadejdzie druga to wtedy wyłącza aplikacje.

Autor:  tfosik [ 11 lis 2019, o 11:11 ]
Tytuł:  Re: Problem z dzieleniem danych z rs232 na zmienne w b4a

Witam masz złe kodowanie po stronie mikroprocka
Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Oczywiście kompiluj w trybie debug..

Autor:  Tokio518 [ 11 lis 2019, o 11:45 ]
Tytuł:  Re: Problem z dzieleniem danych z rs232 na zmienne w b4a

To było w konsoli
Składnia: [ Pobierz ] [ Ukryj ]
język vb
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Autor:  tfosik [ 11 lis 2019, o 12:11 ]
Tytuł:  Re: Problem z dzieleniem danych z rs232 na zmienne w b4a

No to teraz widzisz co się dzieje. Dostajesz przypadkowe dane, powycinane , posklejane itp.
jedyny prawidłowy wynik uzyskałeś w tej linii
Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Autor:  Tokio518 [ 11 lis 2019, o 13:07 ]
Tytuł:  Re: Problem z dzieleniem danych z rs232 na zmienne w b4a

A jak to zmienić? Programowo w atmedze? Czy to wina modułu ? Używam HC-05

Autor:  tfosik [ 11 lis 2019, o 13:51 ]
Tytuł:  Re: Problem z dzieleniem danych z rs232 na zmienne w b4a

O ten moduł Ci chodzi
Tutaj masz przykład jak to zrobić prawidłowo po stronie B4A, niestety druga strona jest po b4r.
https://www.b4x.com/android/forum/threa ... oth.66677/

A tu trochę odpowiedzi na twój problem
https://www.b4x.com/android/forum/threa ... 2/#content

Autor:  Harry [ 11 lis 2019, o 18:30 ]
Tytuł:  Re: Problem z dzieleniem danych z rs232 na zmienne w b4a

To nie wina modułu, tylko programisty który zapomniał ustawić znak końca transmisji i teraz b4a analizuje wciąż nadchodzące dane.

Zobacz jak wygląda odbiór np tu topic19536-60.html#p198977 (zassaj)

Autor:  tfosik [ 11 lis 2019, o 19:59 ]
Tytuł:  Re: Problem z dzieleniem danych z rs232 na zmienne w b4a

W tym przykładzie który mu podałem pokazane jak odbierać ciąg znaków i odczytać go po stronie Androida za pomocą AsyncStreamsText. AsyncStreamsText zajmuje się zbieraniem otrzymanych danych i analizowaniem ich na podstawie znaków końca lini właśnie.

Autor:  Harry [ 11 lis 2019, o 20:03 ]
Tytuł:  Re: Problem z dzieleniem danych z rs232 na zmienne w b4a

W pliku jest to właśnie pokazane, wraz z innymi rzeczami

Wysłane ze srajfona

Strona 1 z 1 Strefa czasowa: UTC + 1
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/