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 10 kwi 2025, o 05:29


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
    Autor Wiadomość
    PostNapisane: 4 lut 2014, o 20:47 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 22 paź 2013
    Posty: 1968
    Lokalizacja: Lipsko
    Pomógł: 125

    Musiałem się jeszcze ostatnio nieco pobawić BASCOM'em, a poniżej efekt moich rozmyślań ;)



    Ciekawe ile osób się domyśli co to jest i jakie to daje możliwości :D Zapewniam, że kod jest prościutki i malutki, a po bliższym zapoznaniu można zapomnieć o standardowych komendach dla LCD. Pomijam już fakt animacji na innym tekście, ale koniec ze stosowaniem spacji na końcu tekstu dla zmniejszających się wyników z większych liczb powinien nie jednego przekonać... ;)
    Jeśli będzie zainteresowanie tematem to przygotuję mały opis jak to ugryźć w BASCOM.

    _________________
    http://www.sylwekkuna.com



    Ostatnio edytowano 7 lut 2014, o 10:18 przez SylwekK, łącznie edytowano 1 raz

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 4 lut 2014, o 20:51 
    Offline
    Użytkownik

    Dołączył(a): 29 lis 2012
    Posty: 1074
    Lokalizacja: Sochaczew
    Pomógł: 21

    Bardzo chętnie poznam ten kod. Mi się podoba, tym bardziej że korzystam z bascoma

    Wysłane z mojego LG-P760 przy użyciu Tapatalka



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 5 lut 2014, o 18:30 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 22 paź 2013
    Posty: 1968
    Lokalizacja: Lipsko
    Pomógł: 125

    No dobra może ktoś skorzysta, może nie... :)
    To niestety tylko Bascom i jedno z rozwiązań z wykorzystaniem jego naturalnych możliwości poprzez proste podstawowe polecenia jakie on udostępnia. Można by walczyć bezpośrednio na obszarach przy pomocy zmiennej w trybie OVERLAY i efekt byłby lepszy tylko same procedury bardziej rozbudowane. Niestety tu elastyczność na korzyść jeżyka C jest nieporównywalna.
    Ok, czyli robimy proste działania na zmiennych tekstowych przy pomocy polecenia MID - wycinanie fragmentów tekstu) i LEN - określanie długości tekstu, STR - zamiana liczby na tekst.

    Zalety rozwiązania:
    - większa szybkość wyświetlania na LCD (mniej komend do wysłania = mniej czekania);
    - pełna swoboda w pozycjonowaniu zmiennych (nie musi być już spacji na końcu do zamazywania zmniejszających się liczb;
    - nie ma konieczności czyszczenia ekranu (po prostu nic nie drukujemy);
    - aby coś pokazać na ekranie wystarczy wysyłać to odpowiednim poleceniem w pętli głównej, a w momencie zaprzestania wysyłania tekst sam zniknie (bardzo wygodne miganie);
    - każdy nowy tekst napisany w miejscu już istniejącego ma priorytet i jest wyświetlany na wierzchu przez co można tworzyć ruchome warstwy lub wyświetlić chwilowy komunikat na istniejącym tle;

    No i wada niestety też jest, żeby nie było za różowo ;) Jak wiadomo działamy na zmiennych tekstowych, a te w bascomie potrafią narobić zamieszania i zająć sporo miejsca z czym trzeba się liczyć. Zarówno sam program może nieco przybrać na wadze, jak i pojemność RAM może okazać się za mała w niektórych przypadkach. Niemniej warto chociaż przetestować możliwości.

    Poniższy program demonstruje działanie dwóch poleceń:

    LCB Y , X , "tekst" - drukowanie na wybranej pozycji
    oraz
    LCB_VIEW - odświeżenie ekranu i ukazanie wszystkiego co było wywołane poprzednią instrukcją. Dopiero takie odświeżanie spowoduje że coś się wyświetli i należy to robić przynajmniej co 50-100ms stąd dobrze, żeby program był nieblokujący (najlepiej bez wait i pętli, które czekają na nic...). Oczywiście jeśli na ekranie nie wiele się dzieje to można to zrobić na żądanie w dowolnym momencie.
    Uwaga aby wyświetlić jakąś zmienną numeryczną (np. zmienna temp) z dodatkami (zdefiniowane znaki, itp) należy ją zamienić najpierw na tekst przy pomocy STR() i użyć dodatkowej zmiennej tekstowej (niestety bascom nie dopuszcza podstawiania instrukcji pod zmienną) ,np:

    tekst=STR(temp)+CHR(223)+"C"
    i ten łańćuszek można już podstawić pod np
    LCB 1 , 1 , tekst

    Ok, programik wygląda tak:

    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.


    Program jest dość dobrze skomentowany więc nie powinno być problemu mimo, że wygląda na nieco przydługi - to demonstracja działania zajmuje więcej :)
    Po skompilowaniu go w takiej wersji można zobaczyć od razu efekt na symulatorze bascomowym.

    Jak ktoś ma pomysły na poprawkę tego rozwiązania, (a na pewno coś by się nalazło) to oczywiście bardzo chętnie je poznam, bo to było robione tak na szybko.

    _________________
    http://www.sylwekkuna.com



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

    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