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

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 30 kwi 2025, o 20:15


    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: 771
    Pomógł: 40

    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 ] [ Zaznacz wszystko ]
    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: 771
    Pomógł: 40

    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 ] [ Zaznacz wszystko ]
    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: 771
    Pomógł: 40

    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 ] [ Zaznacz wszystko ]
    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: 771
    Pomógł: 40

    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 1 gość


    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