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 8 maja 2025, o 17:51


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
    Autor Wiadomość
    PostNapisane: 25 wrz 2016, o 08:31 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 03 mar 2014
    Posty: 55
    Lokalizacja: Wrocław
    Pomógł: 0

    Witam mam problem ze sformatowaniem danych.

    Dostaje po RS232 stringa zawierającego liczbę.
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język delphi
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    W sposób przedstawiony wyżej przerabiam stringa do longint, wartość wrzucam na progressbar1, następnie dzielę na 1024 czyli max wartość jaką może przyjąć liczba i mnożę x100 żeby mieć wynik w %. Niestety nie umiem sformatować procentów do postaci ##.# %.
    Szukałem w Delphi 4programmers różnych sposobów formatowania i longinta i stringa ale nic nie działa, za każdym razem wywala błąd.
    A postać jak na obrazku jest nie do zaakceptowania
    Obrazek



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 25 wrz 2016, o 09:47 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 19 kwi 2014
    Posty: 438
    Lokalizacja: Zambrów
    Pomógł: 22

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

    Obrazek

    W twoim przypadku wypadałoby użyć to tak zamiast:
    Składnia: [ Pobierz ] [ Ukryj ]
    język delphi
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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

    Jeżeli chcesz, aby mimo np. całkowitych procentów wyświetlało Ci się np 1.00% zamiast 1%. Jak chcesz inaczej to według tabelki dobierz odpowiednie formatowanie.


    Autor postu otrzymał pochwałę

    _________________
    .



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 paź 2016, o 15:37 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 03 mar 2014
    Posty: 55
    Lokalizacja: Wrocław
    Pomógł: 0

    Mam jeszcze jedno pytanie, nie mogę ogarnąć takiej sytuacji:

    Dostaję po rs232 jakąś ilość znaków, odczytuję je za pomocą :

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


    Do zmiennej Revs ładowane są wszystkie Stringi wysłane przez Avr, wyglądają one tak #abc#def#ghi
    Chciałbym stworzyć procedurę która wpisze do pierwszego elementu tablicy ciąg znaków między znakami # tak naprawde seperatory są dowolne, no tu taki przykład
    czyli żeby Tablica[1] = abc , Tablica[2] = def, Tablica[1] = ghi , następnie żeby do labela albo panelu wstawiała ten string.
    Czyli Label1.caption:=tablica[1];
    Jeszcze lepiej ale to chyba nie realne żeby dało się to zautomatyzować powiedzmy 3 labele i 3 tablice

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

    taki zapis nie zadziała ale może da się to zorganizować w podobny sposób.
    Proszę o pomoc i pozdrawiam



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 paź 2016, o 16:27 
    Offline
    Użytkownik

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

    tu zasada jest prosta ... stosuję ją przy obrabianiu danych ze zdania GPGA w GPS

    czyli:

    sprawdzasz czy masz znak # pobierasz właściwą ilość bajtów do znaku # i potem następną i td.. i pakujesz do tablicy

    w C na uC robie to tak ... ale zasada ta sama ...
    żeby łatwiej ci było załapac co kiedy się dzieje tu masz przykładowe zdanie GPGGA

    $GPGGA,121934.000,0000.0000,N,00000.0000,E,0,00,0.0,0.0,M,0.0,M,,0000*61

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

    _________________
    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: 18 paź 2016, o 16:30 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 03 mar 2014
    Posty: 55
    Lokalizacja: Wrocław
    Pomógł: 0

    Sunriver, mógłbyś podrzucić pod to kod ?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 paź 2016, o 16:31 
    Offline
    Użytkownik

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

    już masz w poście wyżej :)

    _________________
    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: 18 paź 2016, o 16:44 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 03 mar 2014
    Posty: 55
    Lokalizacja: Wrocław
    Pomógł: 0

    o ludzie, za głupi na to jestem.
    Napisz ktoś jak krowie na rowie ;/



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 paź 2016, o 17:24 
    Offline
    Użytkownik

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

    popatrz jakie to proste :)

    odebrałem ciąg z uarta: $GPGGA,121934.000,0000.0000,N,00000.0000,E,0,00,0.0,0.0,M,0.0,M,,0000*61
    sprawdzam czy jest w nim znak $ while((temps[0] = GPS_Start() )!=’$’); // oczekiwanie znaku $
    jeśli jest to pobieram 5 znaków po nim : for (i=0;i<5;i++) // pobieramy 5 znaków po $
    temps[i] = GPS_Start ();
    i sprawdzam czy te 5 znaków to GPGGA if( strncmp(temps, GPGGA, 5)) // sprawdzamy czy nadeszło zdanie GGA

    jeśli tak pobieram 10 znaków ...for (i=0; i<10; i++) //pobieramy następne 10 znaków

    temps[0] = GPS_Start(); // oczywiście z bufora gdzie trzymam ramkę
    następnie pobieram kolejne 10 znaków -- wiem że to czas i dalej ... do znacznika N itd ...
    znam budowę ramki więc w ten sposób uzyskuję odpowiednie dane wpisując je do tablicy i wyświetlając na LCD w e właściwym czasie

    to samo uzyskasz ty ładująć ramkę do bufora i pobierając ilosc danych miedzy znacznikami

    czyli sprawdzasz czy masz # jak tak pobierasz 3 znaki , potem pobierasz następne i następne ....

    ja w przykładzie sprawdzam czy odebrałem GPGGA bo zdań na uart leci sporo , a nie wszystkie są mi potrzebne :)

    celowo ci pokazałem jak się to odbywa po stronie procesora .... na kompie masz tak samo :)


    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  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 

    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:  
    cron
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO