Forum eSterownik.pl Uwagi do działania Biblioteki. Subskrybuj | ||||
Pierwsza stronaPoprzednia strona5 / 6Następna stronaOstatnia strona | ||||
|
||||
konto usunięte
|
janusz napisał » 2014-04-08 18:25 Nie, zaraz po wizycie Darka miałem migania, a potem wróciło 244V. Odpalałem już na dobrym napięciu.Może to ten spadek napięcia palce w tym maczał ? Jeśli ES zechce udostępnić zmodowaną bibliotekę, to będzie spokój. Poczekajmy. |
|||
|
||||
Stan
|
VERB napisał » 2014-04-08 18:31 janusz napisał » 2014-04-08 18:25 Nie, zaraz po wizycie Darka miałem migania, a potem wróciło 244V. Odpalałem już na dobrym napięciu.Może to ten spadek napięcia palce w tym maczał ? Jeśli ES zechce udostępnić zmodowaną bibliotekę, to będzie spokój. Poczekajmy. Eee tam. Mówiłem że będzie korcić |
|||
|
||||
konto usunięte
|
Jak to mówią: "kto nie ryzykuje, ten w pierdlu nie siedzi" Na dziś mam dość
|
|||
|
||||
edred
|
janusz napisał » 2014-04-08 14:07 Stan Wiesz czego brakuje mi w sterowniku Opcji która po zakończeniu cyklu pracy pozwali na uruchomienie dmuchawy z określoną mocą i przez określony czas może być opcjonalne Ja bym decydował jak długo i z jaką mocą pracuje dmuchawa celem dopalenia opału Ty i Verb macie dobry kontakt z ES może im coś takiego zaproponujecie można to zaadoptować z opcji pieca zasypowego ( przedmuchy) Janusz Witam Próbowałem rozmów z ES na temat "dopalania" dwa albo trzy czasowe parametry dmuchawy z dowolnie określaną mocą tejże, jednak nawet za kasę nie było opcji, a taki tryb pozwoliłby pozbyć się dużej ilości sadzy po odstawieniu kotła. pozdrawiam RedEd ps proponuje zapoznać się z działaniami algorytmów konkurencyjnych sterowników i tak napisać własny aby nikt z konkurencji nie mógł Wam koledzy zarzucić plagiatu czy jak to tam prawniczo się określa (nikomu nie potrzebna wojna o poprawne spalanie), "gorąco" Wam kibicuje bo sam jestem noga z pythona i VB |
|||
|
||||
konto usunięte
|
edred napisał » 2014-04-08 22:04 Nie spotkałem tak działającego sterownika (co nie znaczy, że nie istnieje). Jeśli istnieje, to d.pa.proponuje zapoznać się z działaniami algorytmów konkurencyjnych sterowników i tak napisać własny aby nikt z konkurencji nie mógł Wam koledzy zarzucić plagiatu Rajmund upierał się, że to nie będzie działać, że idea to utopia. Mimo to, działa. |
|||
|
||||
Stan
|
VERB napisał » 2014-04-09 13:37 edred napisał » 2014-04-08 22:04 Nie spotkałem tak działającego sterownika (co nie znaczy, że nie istnieje). Jeśli istnieje, to d.pa.proponuje zapoznać się z działaniami algorytmów konkurencyjnych sterowników i tak napisać własny aby nikt z konkurencji nie mógł Wam koledzy zarzucić plagiatu Rajmund upierał się, że to nie będzie działać, że idea to utopia. Mimo to, działa. Bo to pewnie tak jak z bąkiem, stary dowcip. Dla tych co nie znają: Naukowcy obliczyli że bąk nie ma prawa latać. Powierzchnie skrzydeł ma za małą w stosunku do ciężaru ciała, i prawa fizyki mówią że nie może latać, ale .... bąk o tym nie wie i lata. |
|||
|
||||
uzi18
|
Moge sprobowac dodac do biblioteki sterownik.py czesc ustawien np. z menu spalania.
janusz: jesli bys podal jakie wywolania do czego sluza to byloby latwiej mi przelac to na pythona, inaczej bede musial sam szukac co jest co Wtedy moze ktos sie pokusi o podobna modyfikacje do wersji janusza w VB. Niestety dopalania tam nie ma, chyba ze da sie oszukac w jakis sposob ... sterownik - np. 1 s. podawania, itp.? |
|||
|
||||
janusz
|
Ustawienie temp CO w zakresie 36-60
Case 60 Bk = "/?com=02010002002802003C009103" Case 59 Bk = "/?com=02010002002802003B003F03" Case 58 Bk = "/?com=02010002002802003A00CB03" Case 57 Bk = "/?com=02010002002802003900E603" Case 56 Bk = "/?com=020100020028020038001203" Case 55 Bk = "/?com=020100020028020037008B03" Case 54 Bk = "/?com=020100020028020036007F03" Case 53 Bk = "/?com=020100020028020035005203" Case 52 Bk = "/?com=02010002002802003400A603" Case 51 Bk = "/?com=020100020028020033000803" Case 50 Bk = "/?com=02010002002802003200FC03" Case 49 Bk = "/?com=02010002002802003100D103" Case 48 Bk = "/?com=020100020028020030002503" Case 47 Bk = "/?com=02010002002802002F00D203" Case 46 Bk = "/?com=02010002002802002E002603" Case 45 Bk = "/?com=02010002002802002D000B03" Case 44 Bk = "/?com=02010002002802002C00FF03" Case 43 Bk = "/?com=02010002002802002B005103" Case 42 Bk = "/?com=02010002002802002A00A503" Case 41 Bk = "/?com=02010002002802002A00A503" Case 40 Bk = "/?com=020100020028020028007C03" Case 39 Bk = "/?com=02010002002802002700E503" Case 38 Bk = "/?com=020100020028020026001103" Case 37 Bk = "/?com=020100020028020025003C03" Case 36 Bk = "/?com=02010002002802002400C803" Moc dmuchawy zakres 25%-40% Case 25 Bk = "/?com=02010002000F020019009903" Case 26 Bk = "/?com=02010002000F02001A00B403" Case 27 Bk = "/?com=02010002000F02001B004003" Case 28 Bk = "/?com=02010002000F02001C00EE03" Case 29 Bk = "/?com=02010002000F02001D001A03" Case 30 Bk = "/?com=02010002000F02001E003703" Case 31 Bk = "/?com=02010002000F02001F00C303" Case 32 Bk = "/?com=02010002000F02002000E803" Case 33 Bk = "/?com=02010002000F020021001C03" Case 34 Bk = "/?com=02010002000F020022003103" Case 35 Bk = "/?com=02010002000F02002300C503" Case 36 Bk = "/?com=02010002000F020024006B03" Case 37 Bk = "/?com=02010002000F020025009F03" Case 38 Bk = "/?com=02010002000F02002600B203" Case 39 Bk = "/?com=02010002000F020027004603" Case 40 Bk = "/?com=02010002000F02002800DF03" Czas pracy podajnika zakres 2 sek - 15 sek Case 2 Bk = "/?com=02010002002202000200E703" Case 3 Bk = "/?com=020100020022020003001303" Case 4 Bk = "/?com=02010002002202000400BD03" Case 5 Bk = "/?com=020100020022020005004903" Case 6 Bk = "/?com=020100020022020006006403" Case 7 Bk = "/?com=020100020022020007009003" Case 8 Bk = "/?com=020100020022020008000903" Case 9 Bk = "/?com=02010002002202000900FD03" Case 10 Bk = "/?com=02010002002202000A00D003" Case 11 Bk = "/?com=02010002002202000B002403" Case 12 Bk = "/?com=02010002002202000C008A03" Case 13 Bk = "/?com=02010002002202000D007E03" Case 14 Bk = "/?com=02010002002202000E005303" Case 15 Bk = "/?com=02010002002202000F00A703" Czas postoju podajnika zakres 31 sek - 180 sek Case 31 Bk = "/?com=02010002002302001F001A03" ' 31 Case 32 Bk = "/?com=020100020023020020003103" ' 32 Case 33 Bk = "/?com=02010002002302002100C503" ' 33 Case 34 Bk = "/?com=02010002002302002200E803" ' 34 Case 35 Bk = "/?com=020100020023020023001C03" ' 35 Case 36 Bk = "/?com=02010002002302002400B203" ' 36 Case 37 Bk = "/?com=020100020023020025004603" ' 37 Case 38 Bk = "/?com=020100020023020026006B03" ' 38 Case 39 Bk = "/?com=020100020023020027009F03" ' 39 Case 40 Bk = "/?com=020100020023020028000603" ' 40 Case 41 Bk = "/?com=02010002002302002900F203" ' 41 Case 42 Bk = "/?com=02010002002302002A00DF03" ' 42 Case 43 Bk = "/?com=02010002002302002B002B03" ' 43 Case 44 Bk = "/?com=02010002002302002C008503" ' 44 Case 45 Bk = "/?com=02010002002302002D007103" ' 45 Case 46 Bk = "/?com=02010002002302002E005C03" ' 46 Case 47 Bk = "/?com=02010002002302002F00A803" ' 47 Case 48 Bk = "/?com=020100020023020030005F03" ' 48 Case 49 Bk = "/?com=02010002002302003100AB03" ' 49 Case 50 Bk = "/?com=020100020023020032008603" ' 50 Case 51 Bk = "/?com=020100020023020033007203" ' 51 Case 52 Bk = "/?com=02010002002302003400DC03" ' 52 Case 53 Bk = "/?com=020100020023020035002803" ' 53 Case 54 Bk = "/?com=020100020023020036000503" ' 54 Case 55 Bk = "/?com=02010002002302003700F103" ' 55 Case 56 Bk = "/?com=020100020023020038006803" ' 56 Case 57 Bk = "/?com=020100020023020039009C03" ' 57 Case 58 Bk = "/?com=02010002002302003A00B103" ' 58 Case 59 Bk = "/?com=02010002002302003B004503" ' 59 Case 60 Bk = "/?com=02010002002302003C00EB03" ' 60 Case 61 Bk = "/?com=02010002002302003D001F03" ' 61 Case 62 Bk = "/?com=02010002002302003E003203" ' 62 Case 63 Bk = "/?com=02010002002302003F00C603" ' 63 Case 64 Bk = "/?com=020100020023020040006403" ' 64 Case 65 Bk = "/?com=020100020023020041009003" ' 65 Case 66 Bk = "/?com=02010002002302004200BD03" ' 66 Case 67 Bk = "/?com=020100020023020043004903" ' 67 Case 68 Bk = "/?com=02010002002302004400E703" ' 68 Case 69 Bk = "/?com=020100020023020045001303" ' 69 Case 70 Bk = "/?com=020100020023020046003E03" ' 70 Case 71 Bk = "/?com=02010002002302004700CA03" ' 71 Case 72 Bk = "/?com=020100020023020048005303" ' 72 Case 73 Bk = "/?com=02010002002302004900A703" ' 73 Case 74 Bk = "/?com=02010002002302004A008A03" ' 74 Case 75 Bk = "/?com=02010002002302004B007E03" ' 75 Case 76 Bk = "/?com=02010002002302004C00D003" ' 76 Case 77 Bk = "/?com=02010002002302004D002403" ' 77 Case 78 Bk = "/?com=02010002002302004E000903" ' 78 Case 79 Bk = "/?com=02010002002302004F00FD03" ' 79 Case 80 Bk = "/?com=020100020023020050000A03" ' 80 Case 81 Bk = "/?com=02010002002302005100FE03" ' 81 Case 82 Bk = "/?com=02010002002302005200D303" ' 82 Case 83 Bk = "/?com=020100020023020053002703" ' 83 Case 84 Bk = "/?com=020100020023020054008903" ' 84 Case 85 Bk = "/?com=020100020023020055007D03" ' 85 Case 86 Bk = "/?com=020100020023020056005003" ' 86 Case 87 Bk = "/?com=02010002002302005700A403" ' 87 Case 88 Bk = "/?com=020100020023020058003D03" ' 88 Case 89 Bk = "/?com=02010002002302005900C903" ' 89 Case 90 Bk = "/?com=02010002002302005A00E403" ' 90 Case 91 Bk = "/?com=02010002002302005B001003" ' 91 Case 92 Bk = "/?com=02010002002302005C00BE03" ' 92 Case 93 Bk = "/?com=02010002002302005D004A03" ' 93 Case 94 Bk = "/?com=02010002002302005E006703" ' 94 Case 95 Bk = "/?com=02010002002302005F009303" ' 95 Case 96 Bk = "/?com=02010002002302006000B803" ' 96 Case 97 Bk = "/?com=020100020023020061004C03" ' 97 Case 98 Bk = "/?com=020100020023020062006103" ' 98 Case 99 Bk = "/?com=020100020023020063009503" ' 99 Case 100 Bk = "/?com=020100020023020064003B03" ' 100 Case 101 Bk = "/?com=02010002002302006500CF03" ' 101 Case 102 Bk = "/?com=02010002002302006600E203" ' 102 Case 103 Bk = "/?com=020100020023020067001603" ' 103 Case 104 Bk = "/?com=020100020023020068008F03" ' 104 Case 105 Bk = "/?com=020100020023020069007B03" ' 105 Case 106 Bk = "/?com=02010002002302006A005603" ' 106 Case 107 Bk = "/?com=02010002002302006B00A203" ' 107 Case 108 Bk = "/?com=02010002002302006C000C03" ' 108 Case 109 Bk = "/?com=02010002002302006D00F803" ' 109 Case 110 Bk = "/?com=02010002002302006E00D503" ' 110 Case 111 Bk = "/?com=02010002002302006F002103" ' 111 Case 112 Bk = "/?com=02010002002302007000D603" ' 112 Case 113 Bk = "/?com=020100020023020071002203" ' 113 Case 114 Bk = "/?com=020100020023020072000F03" ' 114 Case 115 Bk = "/?com=02010002002302007300FB03" ' 115 Case 116 Bk = "/?com=020100020023020074005503" ' 116 Case 117 Bk = "/?com=02010002002302007500A103" ' 117 Case 118 Bk = "/?com=020100020023020076008C03" ' 118 Case 119 Bk = "/?com=020100020023020077007803" ' 119 Case 120 Bk = "/?com=02010002002302007800E103" ' 120 Case 121 Bk = "/?com=020100020023020079001503" ' 121 Case 122 Bk = "/?com=02010002002302007A003803" ' 122 Case 123 Bk = "/?com=02010002002302007B00CC03" ' 123 Case 124 Bk = "/?com=02010002002302007C006203" ' 124 Case 125 Bk = "/?com=02010002002302007D009603" ' 125 Case 126 Bk = "/?com=02010002002302007E00BB03" ' 126 Case 127 Bk = "/?com=02010002002302007F004F03" ' 127 Case 128 Bk = "/?com=02010002002302008000CE03" ' 128 Case 129 Bk = "/?com=020100020023020081003A03" ' 129 Case 130 Bk = "/?com=020100020023020082001703" ' 130 Case 131 Bk = "/?com=02010002002302008300E303" ' 131 Case 132 Bk = "/?com=020100020023020084004D03" ' 132 Case 133 Bk = "/?com=02010002002302008500B903" ' 133 Case 134 Bk = "/?com=020100020023020086009403" ' 134 Case 135 Bk = "/?com=020100020023020087006003" ' 135 Case 136 Bk = "/?com=02010002002302008800F903" ' 136 Case 137 Bk = "/?com=020100020023020089000D03" ' 137 Case 138 Bk = "/?com=02010002002302008A002003" ' 138 Case 139 Bk = "/?com=02010002002302008B00D403" ' 139 Case 140 Bk = "/?com=02010002002302008C007A03" ' 140 Case 141 Bk = "/?com=02010002002302008D008E03" ' 141 Case 142 Bk = "/?com=02010002002302008E00A303" ' 142 Case 143 Bk = "/?com=02010002002302008F005703" ' 143 Case 144 Bk = "/?com=02010002002302009000A003" ' 144 Case 145 Bk = "/?com=020100020023020091005403" ' 145 Case 146 Bk = "/?com=020100020023020092007903" ' 146 Case 147 Bk = "/?com=020100020023020093008D03" ' 147 Case 148 Bk = "/?com=020100020023020094002303" ' 148 Case 149 Bk = "/?com=02010002002302009500D703" ' 149 Case 150 Bk = "/?com=02010002002302009600FA03" ' 150 Case 151 Bk = "/?com=020100020023020097000E03" ' 151 Case 152 Bk = "/?com=020100020023020098009703" ' 152 Case 153 Bk = "/?com=020100020023020099006303" ' 153 Case 154 Bk = "/?com=02010002002302009A004E03" ' 154 Case 155 Bk = "/?com=02010002002302009B00BA03" ' 155 Case 156 Bk = "/?com=02010002002302009C001403" ' 156 Case 157 Bk = "/?com=02010002002302009D00E003" ' 157 Case 158 Bk = "/?com=02010002002302009E00CD03" ' 158 Case 159 Bk = "/?com=02010002002302009F003903" ' 159 Case 160 Bk = "/?com=0201000200230200A0001203" ' 160 Case 161 Bk = "/?com=0201000200230200A100E603" ' 161 Case 162 Bk = "/?com=0201000200230200A200CB03" ' 162 Case 163 Bk = "/?com=0201000200230200A3003F03" ' 163 Case 164 Bk = "/?com=0201000200230200A4009103" ' 164 Case 165 Bk = "/?com=0201000200230200A5006503" ' 165 Case 166 Bk = "/?com=0201000200230200A6004803" ' 166 Case 167 Bk = "/?com=0201000200230200A700BC03" ' 167 Case 168 Bk = "/?com=0201000200230200A8002503" ' 168 Case 169 Bk = "/?com=0201000200230200A900D103" ' 169 Case 170 Bk = "/?com=0201000200230200AA00FC03" ' 170 Case 171 Bk = "/?com=0201000200230200AB000803" ' 171 Case 172 Bk = "/?com=0201000200230200AC00A603" ' 172 Case 173 Bk = "/?com=0201000200230200AD005203" ' 173 Case 174 Bk = "/?com=0201000200230200AE007F03" ' 174 Case 175 Bk = "/?com=0201000200230200AF008B03" ' 175 Case 176 Bk = "/?com=0201000200230200B0007C03" ' 176 Case 177 Bk = "/?com=0201000200230200B1008803" ' 177 Case 178 Bk = "/?com=0201000200230200B200A503" ' 178 Case 179 Bk = "/?com=0201000200230200B3005103" ' 179 Case 180 Bk = "/?com=0201000200230200B400FF03" ' 180 Janusz |
|||
|
||||
uzi18
|
Dzieki janusz: tak sobie mysle, nie lepiej te dane wyliczac?
Swoja droga, podczas pracy w trybie manualnym, nie ma pelnej kontroli nad sterownikiem, po przekroczeniu pewnych temperatur, automatycznie zaczynaja dzialac pompki. Dlatego mysle ze 1 krokiem powinno byc dorobienie hardware-u do sterowania pompami/dmuchawa (odczyt temp. ze sterownika). Nastepny krok dorobienie hardwaru do czujnikow, wiem ze to dublowanie tego co w sterowniku ale w ten sposob nadal mamy mozliwosc analizy chociazby wykresow. |
|||
|
||||
janusz
|
uzi18 napisał » 2014-09-16 15:47 Dzieki janusz: tak sobie mysle, nie lepiej te dane wyliczac? Zgadza się tylko według jakiej zasady są tworzone ? Ja takiej wiedzy nie posiadam |
|||
|
||||
uzi18
|
Z tej tablicy:
self.crcTable = [0, 49, 98, 83, 196, 245,166, 151,185, 136,219, 234,125, 76, 31, 46, 67, 114,33, 16, 135, 182,229, 212,250, 203,152, 169,62, 15, 92, 109,134, 183,228, 213,66, 115,32, 17, 63, 14, 93, 108,251, 202,153, 168,197, 244,167, 150,1, 48, 99, 82, 124, 77, 30, 47, 184, 137,218, 235,61, 12, 95, 110,249, 200,155, 170,132, 181,230, 215,64, 113,34, 19, 126, 79, 28, 45, 186, 139,216, 233,199, 246,165, 148,3, 50, 97, 80, 187, 138,217, 232, 127, 78, 29, 44, 2, 51, 96, 81, 198, 247,164, 149,248, 201,154, 171,60, 13, 94, 111, 65, 112,35, 18, 133, 180,231, 214,122, 75, 24, 41, 190, 143,220, 237,195, 242,161, 144, 7, 54, 101, 84, 57, 8, 91, 106,253, 204,159, 174,128, 177,226, 211,68, 117,38, 23, 252, 205,158, 175,56, 9, 90, 107,69, 116,39, 22, 129, 176,227, 210,191, 142,221, 236, 123, 74, 25, 40, 6, 55, 100, 85, 194, 243,160, 145,71, 118,37, 20, 131, 178,225, 208, 254, 207,156, 173,58, 11, 88, 105,4, 53, 102, 87, 192, 241,162, 147,189, 140,223, 238, 121, 72, 27, 42, 193, 240,163, 146,5, 52, 103, 86, 120, 73, 26, 43, 188, 141,222, 239, 130, 179,224, 209,70, 119,36, 21, 59, 10, 89, 104,255, 206,157, 172]; def setDmuchawaMoc(self, value): tab = [0x01, 0x00, 0x02, 0x00, 0x08, 0x02, 0x00, value & 0xff, 0x00]; crc = self.crc(tab); tab.insert(0, 0x02); tab.append(crc); tab.append(0x03); .... Dla dmuchawy, tworzy tablice tab liczy jej sume kontrolna crc, dodaje bajt o wartosci 2 na poczatek tablicy, dodaje wyliczone crc na koniec i znacznik konca komunikatu o wartosci 3 do tablicy. Pozniej zamienia to na hex i wysyla jako zapytanie do serwera http. def crc(self, msg): runningCRC = 0 for c in msg: runningCRC = self.crcByte(runningCRC, c) return runningCRC def crcByte(self, oldCrc, byte): res = self.crcTable[oldCrc & 0xFF ^ byte & 0xFF]; return res Samo crc wyliczanie jest tak: sumacrc = 0 dla wszystkich elementow tab wyliczana jest taka zaleznosc: sumacrc = element tablicy crc nr (sumacrc XOR wartosc elementu) dodane 2014-10-28 23:59DarekB: nadal jestes zainteresowany ... danymi w pakiecie - zapytanie/odpowiedz? dodane 2015-10-18 22:14janusz darowales sobie to wyliczanie crc? |
|||
|
||||
janusz
|
Jednak dla mnie to chińszczyzna
A jesteś w stanie napisać funkcje lub procedurę wyliczającą np dla dmuchawy Gdzieś czytałem że chcesz pisać w C/C++ w tym języku może byłoby dla mnie do rozczytania jak zauważyłem że dla dmuchawy dla 25% wysyła com=02010002000F020019009903 a dla 26% com=02010002000F02001A00B403 więc różnica tylko w pogrubionym i wystarczy tylko to wyliczyć |
|||
|
||||
uzi18
|
musisz napisac tak:
tablica komendy : 0x01,0x00,0x02,0x00,0x0F,0x02,0x00,0x19,0x00 zmieniasz sobie 0x19 na jaka moc chcesz ... tutaj 0x19 hex = 25 dec. crc = 0 w petli pobierasz od lewej do prawej wszystkie elementy tablicy i wyliczasz: crc= crc ^ crcTable[wartosc elementu] pozniej na poczatek tablicy dodajesz 0x02 na koniec tablicy dodajesz wyliczone crc i 0x03 |
|||
|
||||
janusz
|
A potrafisz zapisać to w formie funkcji lub procedury w c/c++
Przeniosłem swoje do Neta więc jak będę miał wyliczanie mogę ci udostępnić programik |
|||
|
||||
uzi18
|
Tak, moge Ci takie cos podszykowac, daj mi chwilke.
|
|||
|
||||
janusz
|
Swoje testowałem na win xp do 10 i działa
i bez pośpiechu nie pali sie |
|||
|
||||
uzi18
|
||||
|
||||
janusz
|
Dzięki jak wrócę z pracy to przeanalizuję co jest co może coś z tego wyjdzie
|
|||
|
||||
uzi18
|
swoja droga blednie myslalem o realizacji, powinno byc tak:
zaczynasz od bajtu o wartosci 0x01 i konczysz na bajcie przed crc, dla kazdego robisz XOR crc i bajtu, do crc pobierasz z tablicy crcTable element nr uzalezniony od wyniku XOR-a |
|||
|
||||
_Kb_
|
Uzi pewnie nie pogniewa się jeżeli dorzucę szkic algorytmu od siebie
tab - tablica zawierająca kolejne bajty komendy CRCt - tablica CRC Func wyliczCRC(tab) aktualneCRC = 0 For n=1 To tab.length indexCRCt = BitXOR(aktualneCRC, tab[n]) aktualneCRC = CRCt[indexCRCt] Next Return aktualneCRC End |
|||
Pierwsza stronaPoprzednia strona5 / 6Następna stronaOstatnia strona | ||||