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 12 kwi 2025, o 19:57


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
    Autor Wiadomość
    PostNapisane: 21 cze 2014, o 18:02 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 22 lut 2014
    Posty: 101
    Pomógł: 4

    Witam ,napisałem prosty Terminal do komunikacji z LCD 16x2

    Obrazek

    Działa poprawnie ,ale przesyła ciągły string max 32 znaków. (szwankuje jedynie dolna linia)

    Jak rozbić to na dwie linie po 16 znaków???

    Próbowałem za pomocą 2 oddzielnych richtextów ,ale nie działało tak
    jakbym chciał ,wolę pozostać przy jednym.

    Próbowałem wyrzucić znaki za pomocą przesunięć bitowych ,ale kompilator
    odmawia użycia << w zmiennej String.

    Obrazek

    Założenia do działania:

    1) Przesyłam pierwsze 16 znaków (górna linia)
    2) Przesyłam komendę ,uP AVR wychwytuje Eventa ,w którym
    jest funkcja locate(2,0) - skok do drugiej linii
    3) przesyłam kolejne 16 znaków z terminala ( te w dolnej linii)

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



    Myślałem ,że będzie proste ,ale kręcę się w kółko od kilku dni.


    Może ktoś z bardziej doświadczonych kolegów ma jakiś pomysł.

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 cze 2014, o 19:47 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 22 lut 2014
    Posty: 101
    Pomógł: 4

    A może wie ktoś jak zamienić string na char? ,bo wrzuciłbym go do tabeli ,nie wiem to już mój ostatni pomysł.


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



    kompilator wyrzuca błąd przy konwersji String.ToCharArray(text , znaki);

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 cze 2014, o 19:58 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    np tak :

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


    Autor postu otrzymał pochwałę

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 cze 2014, o 22:46 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 22 lut 2014
    Posty: 101
    Pomógł: 4

    Troszkę pomogło ruszyła konwersja.

    I jak tu potem nie nazwać Cię mistrzem Sun ;) ,dzięki.


    Niestety nie chce mi tego wysłać w funkcji serialPort1.WriteLine(znaki[a]);

    Zmodyfikowany kod poniżej:

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



    Okno z błędem:

    Obrazek

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 cze 2014, o 00:57 
    Offline
    Użytkownik

    Dołączył(a): 15 lut 2012
    Posty: 344
    Lokalizacja: Bydgoszcz
    Pomógł: 11

    Cześć mac34 wywala ci błąd bo próbujesz wysłać zmienną znakową a argumentem metody writeline jest łańcuch tekstowy.
    Ogólnie do twojego problemu podszedł bym innym sposobem,otóż wykorzystałbym to że kontrolka richtextbox posiada coś takiego jak linie czyli innymi słowy tablica łańcuchów gdzie indeks tej tablicy to numer linii.

    przykład jak ja bym to rozpykał

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


    Jakby co to pisałem na sucho bo teraz mi się nie chciało wyjmować całego sprzętu na biurko, jedynie testowałem to na zwykłych textboxach. :)


    Jeśli będziesz chciał korzystać ze swojego sposobu to zapoznaj się z czymś takim jak StringBuilder, to jest taki kombajn do tworzenia łańcuchów tekstowych

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




    Pozdrawiam!



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 cze 2014, o 07:35 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 12 maja 2014
    Posty: 1089
    Pomógł: 34

    Hey!

    Jak juz masz swoj Char [] znaki (lub jakkolwiek sobie to nazwiesz :) ) to mozesz uzyc http://msdn.microsoft.com/en-us/library/1050fs1h(v=vs.110).aspxdo wysylania okreslonej ilosci

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


    To powinno ladnie i szybko rozwiazac Twoj problem :) Daj znac jak Ci poszlo!


    Autor postu otrzymał pochwałę

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 cze 2014, o 10:39 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 22 lut 2014
    Posty: 101
    Pomógł: 4

    Ok ,dzięki koledzy. Dopiero uczę się w C# (wcześniej tylko Eclipse i AVR) ,więc lekkie różnice są.

    No to mam już ze 3 rozwiązania ,wypróbuję wszystkie i wybiorę najlepsze.

    Samemu jeszcze udało mi się wykombinować takie coś ,trochę na raty bo wysyłam po połówce ,ale kompilacja poszła :

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



    Jak przetestuję wszystkie rozwiązania to dam znać ,dzięki za podpowiedzi.

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 cze 2014, o 10:56 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    mac34 napisał(a):
    Dopiero uczę się w C# (wcześniej tylko Eclipse i AVR) ,więc lekkie różnice są.


    w zasadzie to te różnice wcale nie są takie lekkie widzisz C# ma mniej wspólnego z C niż ci się wydaje :)
    łatwo zrozumieć o co chodzi gdy się przyjrzymy lekko historii powstania :) gdzieś o tym pisałem i cytując samego
    siebie trafiając w sedno istoty:

    " W zasadzie na podwalinach C powstało wiele języków. Możemy powiedzieć bez zbędnej przesady, że C++ i Obiective C to wyrafinowane potomstwo Języka C, a C# to dziecko sąsiada, który często bywa w domu :) "

    a teraz już czas na ulubiony kod :

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



    Miłej niedzieli i programowania ....

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 cze 2014, o 11:58 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 22 lut 2014
    Posty: 101
    Pomógł: 4

    Przetestowałem ,mój sposób nie był jednak za dobry ,najlepsze okazało się rozwiązanie kolegi RafPe.

    kod poniżej:

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


    ,zmyliła mnie jedynie 2 linia do wysłania

    serialPort1.Write(znaki, 15, 16); ,powinna zaczynać się od 16 ,a kończyć na 32.

    ,bardzo podoba mi się ten sposób ,jest prosty i skuteczny ,dzięki.


    Tak sobie myślę mogę chyba nawet wyrzucić z kodu zmienną (a) i pętle for bo są niepotrzebne
    ,musiałbym jedynie dodać serialPort1.Write("r\n"); ,bo polecenie serialPort1.Write ,nie dodaje na końcu znaku nowej linii w odróżnieniu do
    serialPort1.WriteLine i przez to nie zawsze by wychwytywało eventa.

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


    Na końcu okazało się takie proste ,a Ja kombinowałem jak koń pod górę ;)

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 cze 2014, o 15:58 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 12 maja 2014
    Posty: 1089
    Pomógł: 34

    Hey mac34!

    Ciesze sie , ze Ci pmoglo.

    Co do tego typo z 15 zamiast 16 to nie bylem pewny a pisalem na szybko :)

    _________________
    sig off ;(



    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: 10 ] 

    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