Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 21 lis 2024, o 13:52


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 22 ] 
Autor Wiadomość
PostNapisane: 3 maja 2020, o 09:04 
Offline
Nowy

Dołączył(a): 15 lip 2015
Posty: 8
Pomógł: 0

Witam , to mój pierwszy post na tym forum i jestem początkującym w B4A , więc proszę o wyrozumiałość . Jakiś czas temu rozpocząłem przygodę z bascomem i " programowanie " oraz uruchomienie prostych układów nie stwarza mi problemów ale do rzeczy . Pracujący układ sterownika pieca i nie tylko opiera się na dwóch atmegach i modułach RFM12 , informacje przesyłane są w string np.
woda=25
piec=50
pompa obiegowa = on
itp.
Dla potrzeb budowanej aplikacji która będzie działać w oparciu o BT lub wi-fi nie wiem jak wyciągnąć z string i umieścić w konkretnych editText wyniki tych pomiarów . Próbowałem z regex i stringFunctions lecz nie za bardzo mi to wychodzi . Proszę o jakieś podpowiedzi lub przykład do dalszej pracy , pozdrawiam .



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2020, o 09:25 
Offline
Użytkownik

Dołączył(a): 14 sie 2016
Posty: 905
Pomógł: 39

Może coś w tym stylu
Składnia: [ Pobierz ] [ Ukryj ]
język vb
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Wysłane ze srajfona

_________________
Moje porady są błędne,nie czytać,zbanować od razu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2020, o 09:27 
Offline
Użytkownik

Dołączył(a): 10 sty 2018
Posty: 160
Pomógł: 11

Witam
Najlepszy do tych zadań jest właśnie regex. Musisz wysłać tylko stringa w odpowiedniej formie separator string separator string separator itd

1 np. xstring1xstring2xstring3x proponuję to rozwiązanie (indeksowanie od 1)
2 string1xstring2xstring3 ( indeksowanie od 0 )

Separatorem jest x



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2020, o 10:14 
Offline
Nowy

Dołączył(a): 15 lip 2015
Posty: 8
Pomógł: 0

dzięki za podpowiedź , przetestuje i dam znać jak wyszło
ps. A jak idzie wiele zmiennych w jednym pakiecie ?



Ostatnio edytowano 3 maja 2020, o 10:29 przez grafii1, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2020, o 10:26 
Offline
Użytkownik

Dołączył(a): 10 sty 2018
Posty: 160
Pomógł: 11

grafii1 napisał(a):
dzięki za podpowiedź , przetestuje i dam znać jak wyszło
ps. A jak idzie wiele zmiennych w jednym pakiecie ?


Patrz mój post wyżej, posklejaj dane za pomocą separatora i wyślij. Potem użyj regex i wyłuskaj dane.
Zerknij na to
topic22000.html



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2020, o 10:34 
Offline
Nowy

Dołączył(a): 15 lip 2015
Posty: 8
Pomógł: 0

czy to może być coś takiego ?
Składnia: [ Pobierz ] [ Ukryj ]
język vb
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2020, o 10:55 
Offline
Użytkownik

Dołączył(a): 10 sty 2018
Posty: 160
Pomógł: 11

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


tutaj separatorem jest kropka (.)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2020, o 13:42 
Offline
Nowy

Dołączył(a): 15 lip 2015
Posty: 8
Pomógł: 0

Rzeczywiście to działa ale nie tak do końca , informacje na editText są wyświetlane ale te przed separatorem a nie za , mniejsza liczba separatorów powoduje wysypanie się apki , chyba do tego jeszcze trzeba użyć true i pętli for-next



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2020, o 14:01 
Offline
Użytkownik

Dołączył(a): 10 sty 2018
Posty: 160
Pomógł: 11

Użyj trochę innego separatora np x i zrób trochę inaczej
Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Nie potrzebujesz żadnej pętli for...Pokaż kod jak to robisz w apce.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2020, o 14:31 
Offline
Nowy

Dołączył(a): 15 lip 2015
Posty: 8
Pomógł: 0

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

składnia oczywiście nie w c , taki string pojawia się przy odbiorze



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2020, o 14:55 
Offline
Użytkownik

Dołączył(a): 10 sty 2018
Posty: 160
Pomógł: 11

Czy coś takiego wysyłasz z bascom-a "piec=40"&CRLF&"woda=30"&CRLF&"pompa=1"&CRLF&"siec=1"&CRLF ?
Z Bascoma powinieneś wysłać taki string zmienna1xzmienna2xzmienna3 jeżeli chcesz wysłać wszystko w jednym ciągu. Separatorem tutaj jest x

Taki zapis ja ty masz powoduje chyba wysyłanie danych pojedyńczo...ale nie jestem pewien.
Dodaj log(zmienna) i skompiluj w trybie debug... napisz co nadlatuje
Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Czemu uparłeś się na wyświetlanie danych w ed.tex, czy nie ładniej byłoby zbudować sobie układ z ikonami i wykorzystać labele do wyświetlania wyników..



Ostatnio edytowano 3 maja 2020, o 15:16 przez tfosik, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2020, o 15:11 
Offline
Użytkownik

Dołączył(a): 19 lip 2013
Posty: 760
Pomógł: 37

Zrob cos takiego.Wysypuje sie bo czasem nie odbierze jakiegos znaku i leci na lep na szyje wszystko. Tu masz zabezpieczenie ilosci znaków w stringui jesli nie beda sie zgadzać to je zignoruje. Do podzialu stringow mam ":" ale mozesz to sobie zmienic
w Bascom zrób tak
Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

w b4a

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2020, o 15:27 
Offline
Użytkownik

Dołączył(a): 10 sty 2018
Posty: 160
Pomógł: 11

Napiszę to już po raz ostatni, Ten przykład nie wysypie mu się nigdy.

W baskomie formujesz stringa do wysłania w następujący sposób (separatorem jest x i przykład dla trzech zmiennych)
xdane1xdane2xdane3x

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

Stosuję to od lat i jeszcze z 1000 innych użytkowników i nigdy się nie zacięło i wysypało



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2020, o 15:34 
Offline
Użytkownik

Dołączył(a): 19 lip 2013
Posty: 760
Pomógł: 37

Tez tak kiedyś robiłem. Case dodałem jak tych zmiennych zaczyna sie gęsto robić. Dzięki case można wysyłać kilkanaście rożnych zmiennych.
Nie wiem czemu ,ale w ostatnim B4a przy bibliotece dialog w chwili jej uruchomienia okna dialogowego zacząłem dostawać dziwne znaki zamiast normalnego stringa. Dodałem liczenie znakow co wyeliminowało cokolwiek co będzie z błędem. Takie proste crc :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2020, o 16:09 
Offline
Nowy

Dołączył(a): 15 lip 2015
Posty: 8
Pomógł: 0

Oczywiście że nie , zmienną podałem żeby była zrozumiała wysyła abc=1 chr(10) i crl(13) def=2 chr(10) i crl(13) itd. Programu nie można zmienić bo urządzenia odbiorcze tak odbierają , a CRLF (chr(10) i crl(13) co prawda to nie to samo ale były dodane żeby nie gubił się odbiornik i wyświetlał jedną linie pod drugą , lepiej to widać na serialowych apkach



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2020, o 16:49 
Offline
Użytkownik

Dołączył(a): 10 sty 2018
Posty: 160
Pomógł: 11

Dobrze, ale pokaż jak to nadlatuje. Dodaj tego loga, skompiluj w trybie debug i pokaż dziennik.

P.S. Nic się nie wysypie. Uformuj stringa (a bardziej ciąg znaków) tak jak Ci pokazałem. Te znaki możesz dodać na końcu stringa a nie w środku i wyślij. Potem odbierz i wyłuskaj dane i zrób z nimi co chcesz.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2020, o 17:59 
Offline
Nowy

Dołączył(a): 15 lip 2015
Posty: 8
Pomógł: 0

chyba zbaczamy z kursu , krótko mówią potrzeba prostego rozwiązania , może to nie adekwatne do tego co potrzebuje ale kiedyś coś takiego napisałem w bascom i sprawdza się do dziś , moduł gsm A6 i promini .
Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Wiem że bascom , że archaizm itp , ale sprawdza się doskonale .



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2020, o 18:08 
Offline
Użytkownik

Dołączył(a): 10 sty 2018
Posty: 160
Pomógł: 11

Jak ty wysyłasz te dane, pojedyńczo? czy chcesz je wysłać w jednym stringu? Bo trochę się już pogubiłem. Jeżeli wysyłasz wszystkie razem w jednym stringu to zrób jak pisałem. Jeżeli wysyłasz pojedyńczo to trzeba nieco innaczej.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2020, o 18:27 
Offline
Nowy

Dołączył(a): 15 lip 2015
Posty: 8
Pomógł: 0

sory
Cała paczka w kilku stringach przerywane chr(10) i ch(13) , tak mi się wydaje , w bascomowym przykładzie można wyłuskać każdą informację podając słowo
"klucz" która to znajduje się przed lub za nim z dowolną ilością znaków . I o to chodzi .



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2020, o 18:49 
Offline
Użytkownik

Dołączył(a): 19 lip 2013
Posty: 760
Pomógł: 37

Przecież w tych przykładach masz to samo co w bascomowym przykładzie. Zrób loga z tego co dostaje twoja aplikacja na b4a. Bo chyba każdy tu o czymś innym pisze.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2020, o 18:53 
Offline
Użytkownik

Dołączył(a): 10 sty 2018
Posty: 160
Pomógł: 11

musisz użyć dodatkowo select case. Pokaże Ci jak to można zrobić tylko musisz wspłópracować.
Zobacz to
Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2020, o 19:36 
Offline
Użytkownik

Dołączył(a): 19 lip 2013
Posty: 760
Pomógł: 37

to wyżej napisałem :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 22 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO