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? 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 28 maja 2025, o 21:57


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 14 ] 
    Autor Wiadomość
    PostNapisane: 18 lis 2013, o 19:49 
    Offline
    Użytkownik

    Dołączył(a): 31 paź 2013
    Posty: 33
    Lokalizacja: Wrocław
    Pomógł: 0

    "Co to są te biblioteki i z czym to się je?" - chciałem rozpocząć ten temat na forum ogólnym bo w końcu to dotyczy nie tylko Arduino C++ ale jakoś nie wiedziałem co zrobić... Może władcy forum wrzucą to tam a może zostawią tu.... Tutaj jest mało odwiedzających. Jeśli temat dotyczy też AVR to może warto go tam wrzucić...

    Walcząc z tematem Podlewaczka (czyli jak inteligentnie podlewać ogród) topic4684.html doszedłem do wniosku że warto zadać pytanie o tak ważną rzecz w programowaniu na Arduino (i nie tylko Arduino) jak BIBLIOTEKI

    Biblioteki to fantastyczna sprawa (tak mogę podejrzewać) - MASZ GOTOWCA I TYLKO GO UŻYWAĆ !

    ba ... ale jak on naprawdę jest skonstruowany ten gotowiec i jak naprawdę z nim "gadać" ???

    naprawdę nie znalazłem w necie takiego tematu ... Wszyscy piszą o tym jaką bibliotekę do czego wykorzystać... ale nie ma info dla maluczkich - z czego to się tak naprawdę składa i jak się z tym komunikować.

    Potrzebuję wykorzystać bibliotekę do obsługi Zegara Czasu Rzeczywistego (RTC) i najbardziej chciałbym się o niej czegoś dowiedzieć więc na tym oprę dalsze wypociny:

    Co wiem (jak mniemam hehe):

    Biblioteki to pliki które ładują się do naszego programu jeśli zostaną tam "wywołane" z pamięci programu do obsługi Arduino. Pojawia się wtedy w kodzie linia rozpoczęta znakiem "#" a w moim przypadku #include <RTClib.h>

    Poza tą linią programu nie widzimy NIC
    Co zatem zawiera tak naprawdę taka biblioteka?
    Co robi taka biblioteka?
    Jak z nią się komunikować?
    Gdzie znaleźć informacje o niej i o sposobie komunikacji?

    Po zainstalowaniu takiej biblioteki można podejrzeć w katalogu (w którym się ona rozpakowała) że istnieją tam różne pliki a nawet katalogi.
    Biblioteka musi zawierać co najmniej dwa pliki "***.h" oraz "***.cpp (gdzieś wyczytałem w trakcie swojego krótkiego arduinowego życia że te dwa to podstawa)

    W mojej bibliotece do obsługi zegara jest jeszcze plik tekstowy "keywords" czyli "słowa kluczowe"
    Do tego dołączony jest też katalog "examples" zawierający przykłady kodów które coś wykonują z taką biblioteką. W nim można podglądnąć jak używać takiej biblioteki ale ...

    Czy mógłby ktoś wyjaśnić jak krowie na rowie -

    CO TO SĄ TE KEYWORDS I PO CO TO ?
    CZY NALEŻY PATRZEĆ W TE PLIKI BIBLIOTECZNE ŻEBY BIBLIOTEKĘ ZROZUMIEĆ?
    W pliku "***.h" są jakieś klasy a w pliku "***.cpp" jest program który ich używa?

    No ludzie - NIECH KTOŚ NAPISZE CO TU JEST SILNIKIEM A CO SKRZYNIĄ BIEGÓW I JAK SIĘ TO OBSŁUGUJE !

    najlepiej jak dla faceta (ale takiego który ma jeszcze mniej niż roczek)

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 lis 2013, o 20:17 
    Offline
    Użytkownik

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

    Najogólniej mówiąc biblioteka to po prostu plik zawierający funkcje , które obsługują dane urządzenie np twój RTC rzeczony
    To nie jest tak jak napisałeś że nie widać jej tylko #include ....

    ponieważ to wyrażenie wskazuje na plik nagłówkowy zawierający tzw prototypy funkcji zawartych w pliku .c lub cpp biblioteki
    a funkcje z tej biblioteki są właśnie przez ciebie używane w programie ...

    zasadniczo nie musisz sobie zawracać w arduino plikiem keywords... on jest potrzebny po coś edytorowi

    natomiast przyglądnijmy się bibliotece rtclib.h o której wspomniałeś zawiera ona wszystko co potrzebujesz do rozmawiania z układem
    RTC jakim jest obsługiwany przez nią DS1307 , a więc ona zajmuje się wszystkim co będzie biegać po magistrali do i z układu.

    dlatego dla ciebie ważne jest by wiedzieć jakie funkcje oferuje i jak z nich korzystać we własnym programie

    zauważ że patrząc w kod programu funkcje dostępne w rtclib.h zaczynają się od RTC.nazwa_funkcji(parametr).
    niektóre pozwalają na przekazywanie parametrów a niektóre zwracają wartość będącą wynikiem ich działania ...

    Ponadto w twoim programie tam gdzie kompilator natrafi na linijkę np. rtc.readtime() wstawi kod pod tym wpisem w pliku rtclib.cpp
    lub wyrażenie lub wartość będącą wynikiem działania funkcji .....
    tak to właśnie działa ... w uproszczeniu

    _________________
    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 lis 2013, o 21:19 
    Offline
    Użytkownik

    Dołączył(a): 20 wrz 2013
    Posty: 647
    Zbananowany użytkownik

    Pomógł: 101

    .



    Ostatnio edytowano 6 lis 2015, o 13:43 przez xor, łącznie edytowano 1 raz

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 lis 2013, o 08:48 
    Offline
    Użytkownik

    Dołączył(a): 31 paź 2013
    Posty: 33
    Lokalizacja: Wrocław
    Pomógł: 0

    SunRiver napisał(a):
    natomiast przyglądnijmy się bibliotece rtclib.h o której wspomniałeś zawiera ona wszystko co potrzebujesz do rozmawiania z układem
    RTC jakim jest obsługiwany przez nią DS1307 , a więc ona zajmuje się wszystkim co będzie biegać po magistrali do i z układu.

    dlatego dla ciebie ważne jest by wiedzieć jakie funkcje oferuje i jak z nich korzystać we własnym programie

    zauważ że patrząc w kod programu funkcje dostępne w rtclib.h zaczynają się od RTC.nazwa_funkcji(parametr).
    niektóre pozwalają na przekazywanie parametrów a niektóre zwracają wartość będącą wynikiem ich działania ...


    No właśnie chodzi mi o to gdzie zaglądać zeby wiedzieć jak bibliotekę obsłużyć bo dalej jestem głupi jak byłem :|
    W rtclib.h chyba nie ma funkcji a są KLASY. O ile się orientuję to tylko trzy i finito:
    classDataTime
    classRTC_DS1307
    classRTC_Millis

    natomiast zdaje mi się że w pliku "***.cpp" jest sedno sprawy ale tam też nie widzę funkcji które zaczynały by się od RTC.nazwa_funkcji(parametr).
    TAK WYGLĄDA PLIK Z ROZSZERZENIEM "h":
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język cpp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 lis 2013, o 10:30 
    Offline
    Użytkownik

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

    ale właśnie po to masz referencje i przykłady do bibliotek zeby nie grzebać w tych plikach :)

    po za tym w pliku h. masz wszystko

    DataTime
    RTC_DS1307
    RTC_Millis


    ta biblioteka jest dosyć uboga z je labs

    ale zerknij do przykładu :

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


    i to jest wszystko co cie interesuje bez grzebania w bibliotekach .... na tym etapie tłumaczenie jak je ugryźć
    było by nie na miejscu bo bardzo się jeszcze motasz w samym progu... a le właśnie w skrócie tak jest
    większość bibliotek ma obszerne referencje .... ale warto też właśnie z przykładami się zapoznawać bo po
    to są one właśnie żeby się zapoznać ze sposobem używania biblioteki

    _________________
    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: 19 lis 2013, o 11:55 
    Offline
    Użytkownik

    Dołączył(a): 31 paź 2013
    Posty: 33
    Lokalizacja: Wrocław
    Pomógł: 0

    OK czyli akurat do tej biblioteki nie mam referencji?

    Ten przykład który podałeś jest właściwie taki jaki użyłem już do uruchomienia zegara. Wszystko działa (tzn zegar sobie wyświetla czas i datę - foto poniżej) ale jak tu teraz się z tym komunikować? OTO JEST PYTANIE ;)

    Czy na przykład to co napisałeś :
    Cytuj:
    Ponadto w twoim programie tam gdzie kompilator natrafi na linijkę np. rtc.readtime() wstawi kod pod tym wpisem w pliku rtclib.cpp
    lub wyrażenie lub wartość będącą wynikiem działania funkcji .....

    naprawdę powinno zadziałać akurat przypadku tej biblioteki ?
    Czy komenda powinna być inaczej skonstruowana
    Chciałbym odczytywać właśnie czas żeby uruchomić moje podlewanie z tematu topic4684.html

    Reasumując w takim razie - rozumiem że aby obsługiwać biblioteki to należy posługiwać się jednak przykładami do nich załączonymi (lub wyszukiwać je w necie) i oglądać pliki tej biblioteki o ile nie mamy innych wyjaśnień zamieszczonych przy danej bibliotece?

    Taka informacja też by dużo wyjaśniała - oznacza to wcale nie jest z tym tak prosto jakby się wydawało. Zabawa w błyskanie diodą to tylko zabawa



    FOTO płytki z uruchomionym zegarem na bibliotece RTClib. Z lewej strony wyświetlacza jest projekt czujnika podlewaczki z modułem przekaźnikowym na razie nie skorelowanym z arduino.
    Obrazek

    Oraz kod z przykładów do tej biblioteki:
    Kod:
    /*
    This open-source code Digital Clock and Date, DS1307 RTC connected via I2C, Wire lib and LCD.
    This design project for Arduiono Uno by http://circuitdiagram-schematic.com/
    */

    #include <Wire.h>
    #include "RTClib.h" // library RTC
    #include <LiquidCrystal.h> // library LCD

    // constans for number row and columns LCD
    const int numRows = 2;
    const int numCols = 16;
    RTC_DS1307 RTC;


    // Initialize the library with numbers of interface
    LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

    void setup(){
        Wire.begin();
        RTC.begin();
     
      if (! RTC.isrunning()) {
        Serial.println("RTC is NOT running!");
        // following line sets the RTC to the date & time this sketch was compiled
        //RTC.adjust(DateTime(__DATE__, __TIME__));
      }
     
     
     
    }

    void loop () {
        DateTime now = RTC.now();
       
        lcd.begin(numCols, numRows);
        lcd.setCursor(0, 0);
        lcd.print("Date");
        lcd.setCursor(6, 0);
        lcd.print(now.year(), DEC);
        lcd.print('/');
        lcd.print(now.month(), DEC);
        lcd.print('/');
        lcd.print(now.day(), DEC);
        lcd.setCursor(0, 1);
        lcd.print("Clock");
        lcd.setCursor(6, 1);
        lcd.print(now.hour(), DEC);
        lcd.print(':');
        lcd.print(now.minute(), DEC);
        lcd.print(':');
        lcd.print(now.second(), DEC);
       
        delay(1000);
     
    }

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 lis 2013, o 12:26 
    Offline
    Użytkownik

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

    żeby ustawić czas musisz użyć tej zakomentowanej funkcji :

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


    niemniej ta biblioteka jest bardzo prosta i wiele od niej niema co wymagać
    jest jednak dużo lepsza biblioteka DS1307 mająca większą funkcjonalność
    będąca pewnie tez i lepsza do projektu twojego,


    w załaczniku na dole ....
    a tu przykładowy kod do niej :L

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



    jak widzisz już pozwala na więcej i łatwiej operować układem :

    co tu w sumie mamy ....

    Zmienna Setup przyjmuje 2 wartości .... true lub false
    jeśli true to ustawia czas co odbywa się się tak – zatrzymujemy zegar przez RTC.stop()
    następnie ustawiamy wszystkie segmenty przez RTC.set() korzystając ze
    stałych do określania sekund, minut, godzin, dni, miesięcy, roku oraz dnia tygodnia.
    Następnie uruchamiamy zegar , przez RTC.start().


    funkcja RTC.get(SEGMENT,odczyt_z_bufora). służy do odczytywania zegara .
    SEGMENT to stała taka sama jak użyta w RTC.set do ustawienia zegara.
    Wartość odczyt_z_bufora jest zmienną typu logicznego (boolean) gdy jej wartość to true
    biblioteka odpyta układ DS1307 o czas i zachowa jego odczyt w buforze,
    tak aby następne RTC.get z ustawionym odczyt_z_bufora na false wiedziały że odczytują ten sam czas


    jasne ??


    Załączniki:

    Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.

    _________________
    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: 19 lis 2013, o 12:31 
    Offline
    Użytkownik

    Dołączył(a): 31 paź 2013
    Posty: 33
    Lokalizacja: Wrocław
    Pomógł: 0

    Czas jest ustawiony. Przecież zegar działa. Zgodnie z tym co miałem gdzieś w opisie - usunąłem // czyniąc z komentarza linię rozkazu i podczas kompilacji wgrał mi się czas z komputera.
    Chodzi teraz o to jak z zegara korzystać czyli jak czytać ten czas i wykorzystywać w funkcjach...
    w funkcjach akurat tej mojej podlewaczki ale to przecież wszystko jedno do czego a ja nie kumam gdzie mam tych informacji szukać

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 lis 2013, o 12:43 
    Offline
    Użytkownik

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

    trochę się napisałem ,... w poście wyżej a w tym czasie ty odpisałeś wiec się cofnij

    _________________
    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: 19 lis 2013, o 18:40 
    Offline
    Użytkownik

    Dołączył(a): 31 paź 2013
    Posty: 33
    Lokalizacja: Wrocław
    Pomógł: 0

    SunRiver napisał(a):

    funkcja RTC.get(SEGMENT,odczyt_z_bufora). służy do odczytywania zegara .
    SEGMENT to stała taka sama jak użyta w RTC.set do ustawienia zegara.
    Wartość odczyt_z_bufora jest zmienną typu logicznego (boolean) gdy jej wartość to true
    biblioteka odpyta układ DS1307 o czas i zachowa jego odczyt w buforze,
    tak aby następne RTC.get z ustawionym odczyt_z_bufora na false wiedziały że odczytują ten sam czas


    jasne ??


    Ta biblioteka faktycznie może będzie lepsza. Zapisałem ją już do IDE i będę się przyglądał. Niestety nie wszystko jest jasne no bo pogubiłem się przy tym SEGMENT i odczyt_z_bufora_

    Nie mogę tego SEGMENT pokojarzyć z niczym w plikach biblioteki i dlatego nie rozumiem. Nie kumam skąd się bierze też wartość odczyt_z_bufora
    Nie ma żadnej stałęj SEGMENT w plikach biblioteki ani w tym kodzie :
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język cpp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    a może szukać tego w tych bibliotekach pozostałych dołączonych do kodu?

    Kody umieszczamy przy pomocy syntax=c - Różowy J.

    _________________
    sig off ;(



    Ostatnio edytowano 20 lis 2013, o 07:14 przez Procent, łącznie edytowano 1 raz

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 lis 2013, o 18:48 
    Offline
    Użytkownik

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

    trochę ci namieszałem bo miałem 2 skethe otwarte :P
    przez to w tym akurat co wlepiłem niema zdefiniowanej stałej Segment i zmiennej odczyt z bufora
    więc wybacz ... później ci wlepię właściwy fragment kodu .... to zobaczysz o co chodzi

    _________________
    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: 20 lis 2013, o 07:18 
    Offline
    Użytkownik

    Dołączył(a): 31 paź 2013
    Posty: 33
    Lokalizacja: Wrocław
    Pomógł: 0

    O widzisz - czyli jednak ze mną nie jest może tak źle jak wczoraj myślałem.

    Wklej mi to co trzeba i proszę wyjaśnij odczyt czasu i użycie tego w moim kodzie tak żebym mógł o określonej godzinie odczytywac dane z czujnika.
    To będzie praktycznie tylko dla mnie w tym wątku, ale jeśli chodzi o biblioteki jako takie to naprawdę chyba sporo pomoże nie tylki mi.

    Przy okazji - przyglądając się wnętrzu plików tej biblioteki (a pewnie i w innych to występuje) znajduję
    PUBLIC oraz
    PRIVATE
    interface
    oraz PUBLIC i PRIVATE functions w pliku cpp

    czym to się różni i z czym to się je ?

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 lis 2013, o 08:48 
    Offline
    Użytkownik

    Dołączył(a): 31 paź 2013
    Posty: 33
    Lokalizacja: Wrocław
    Pomógł: 0

    W oczekiwaniu na dopływ wiedzy postanowiłem popchnąć projekt PODLEWACZKA topic4684.html#p58147 "manualnie".
    Programowanie to najtrudniejsza dla mnie sprawa ale nie należy marnować czasu - może im bardziej zaawansowany będzie projekt tym łatwiej będzie komuś pomóc mi w programowaniu :-)

    To co wykonałem w ciągu 3 dni nauczyło mnie:
    1 - budowy zegara czasu rzeczywistego
    2 - przenoszenia projektu z Arduino na osobną płytkę z procesorem
    3 - wypalania bootloadera na procesorze

    Zapraszam do zerknięcia topic4684.html#p58147

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 lis 2013, o 21:32 
    Offline
    Nowy

    Dołączył(a): 11 lis 2013
    Posty: 4
    Pomógł: 0

    Aby korzystać z biblioteki nie ma po co zaglądać do pliku z rozszerzeniem cpp (lepiej już wygooglować dokumentację lub przykłady).
    Wszystko co jest potrzebne powinno być w pliku z rozszerzeniem .h i tak w tym przykładzie wewnątrz klasy RTC_DS1307 mamy:

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

    po słówku public: czyli są to metody ("funkcje" - bo coś zwracają - zauważ, że każdy napis zaczyna się od nazwy typu poprzedzonej ewentualnie
    słówkiem kluczowym static (którym nie ma co się na razie przejmować - ono powoduje, że funkcje te są wspólne dla wszystkich obiektów klasy RTC_DS1307 ale to nie jest potrzebne, aby ich używać)) publiczne, czyli dostępne po kropce z poziomu programu. Czyli mamy metody: begin(), adjust(DateTime), isrunning() oraz now(), które możemy używać po kropce po nazwie zmiennej typu RTC_DS1307. Niestety plik .h jest (jak to niestety często bywa) niedorobiony i nie ma komentarzy, co też te funkcje zwracają w jakim przypadku (chociaż co zwraca now() można się domyślić ;) ).
    A skąd wiadomo, czego szukać w jakiej bibliotece - no cóż, jak dla mnie, to z google ;), albo z tutoriali arduino, choć czasem po prostu już wiem, bo już danej biblioteki używałem do czegoś podobnego ;).



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

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