abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

včera 23:55 | Pozvánky

Spolek OpenAlt zve příznivce otevřených technologií a otevřeného přístupu na 145. brněnský sraz, který proběhne v pátek 20. října od 18:00 hodin v restauraci Time Out na adrese Novoměstská 2 v Řečkovicích. Jedná se o poslední sraz před konferencí OpenAlt 2017, jež proběhne o víkendu 4. a 5. listopadu 2017 na FIT VUT v Brně. Běží registrace účastníků.

Ladislav Hagara | Komentářů: 0
včera 21:44 | Nová verze

Byla vydána verze 5.2.0 multiplatformního virtualizačního nástroje Oracle VM VirtualBox. Jedná se o první stabilní verzi z nové větve 5.2. Z novinek lze zmínit například možnost exportování VM do Oracle Cloudu, bezobslužnou instalaci hostovaného systému nebo vylepšené GUI. Podrobnosti v seznamu změn. Aktualizována byla také dokumentace.

Ladislav Hagara | Komentářů: 1
včera 14:00 | Zajímavý projekt

Byl spuštěn Humble Down Under Bundle. Za vlastní cenu lze koupit multiplatformní hry The Warlock of Firetop Mountain, Screencheat, Hand of Fate a Satellite Reign. Při nadprůměrné platbě (aktuálně 3,63 $) také Hacknet, Hacknet Labyrinths, Crawl a Hurtworld. Při platbě 12 $ a více lze získat navíc Armello.

Ladislav Hagara | Komentářů: 0
včera 13:00 | Nová verze

Google Chrome 62 byl prohlášen za stabilní (YouTube). Nejnovější stabilní verze 62.0.3202.62 tohoto webového prohlížeče přináší řadu oprav a vylepšení. Vylepšeny byly také nástroje pro vývojáře (YouTube). Opraveno bylo 35 bezpečnostních chyb.

Ladislav Hagara | Komentářů: 2
včera 11:00 | Zajímavý článek

Článek (en) na Mozilla.cz je věnován vykreslování stránek ve Firefoxu. V průběhu roku 2018 by se ve Firefoxu měl objevit WebRender, jenž by měl vykreslování stránek urychlit díky využití GPU.

Ladislav Hagara | Komentářů: 4
včera 08:22 | Bezpečnostní upozornění

NÚKIB (Národní úřad pro kybernetickou a informační bezpečnost) informuje o zranitelnosti ROCA v procesu generování RSA klíčů, který se odehrává v softwarové knihovně implementované například v kryptografických čipových kartách, bezpečnostních tokenech a dalších hardwarových čipech vyrobených společností Infineon Technologies AG. Zranitelnost umožňuje praktický faktorizační útok, při kterém útočník dokáže vypočítat

… více »
Ladislav Hagara | Komentářů: 3
včera 01:23 | Zajímavý software

Příspěvek na blogu otevřené certifikační autority Let's Encrypt informuje o začlenění podpory protokolu ACME (Automatic Certificate Management Environment) přímo do webového serveru Apache. Klienty ACME lze nahradit novým modulem Apache mod_md. Na vývoj tohoto modulu bylo uvolněno 70 tisíc dolarů z programu Mozilla Open Source Support (MOSS). K rozchození HTTPS na Apache stačí nově přidat do konfiguračního souboru řádek s ManagedDomain. Minutový videonávod na YouTube [reddit].

Ladislav Hagara | Komentářů: 2
17.10. 14:15 | Komunita

Daniel Stenberg, autor nástroje curl, na svém blogu oznámil, že obdržel letošní Polhemovu cenu, kterou uděluje Švédská inženýrská asociace za „technologickou inovaci nebo důvtipné řešení technického problému“.

marbu | Komentářů: 10
17.10. 13:40 | Pozvánky

Cílem Social Good Hackathonu, který se uskuteční 21. a 22. října v Brně, je vymyslet a zrealizovat projekty, které pomůžou zlepšit svět kolem nás. Je to unikátní příležitost, jak představit nejrůznější sociální projekty a zrealizovat je, propojit aktivní lidi, zástupce a zástupkyně nevládních organizací a lidi z prostředí IT a designu. Hackathon pořádá brněnská neziskovka Nesehnutí.

… více »
Barbora | Komentářů: 1
17.10. 00:44 | Pozvánky

V sobotu 21. října 2017 se na půdě Elektrotechnické fakulty ČVUT v Praze uskuteční RT-Summit – setkání vývojářů linuxového jádra a uživatelů jeho real-time verze označované jako preempt-rt.

… více »
Pavel Píša | Komentářů: 8
Jak se vás potenciálně dotkne trend odstraňování analogového audio konektoru typu 3,5mm jack z „chytrých telefonů“?
 (12%)
 (1%)
 (0%)
 (1%)
 (72%)
 (13%)
Celkem 69 hlasů
 Komentářů: 5, poslední dnes 07:28
    Rozcestník

    Dotaz: Komunikace s RS-232 zarizenim

    31.8.2009 14:47 q
    Komunikace s RS-232 zarizenim
    Přečteno: 3265×

    Ahoj,
    potreboval bych poradit s jednoduchym programem, ktery bude komunikovat se zarizenim na seriovem portu. Program posle do serioveho portu textovy retezec, treba "LINUX" a zarizeni mu vrati 2 cisla. Pres putty a gtkterm mi to funguje. Potreboval bych ten program v C nebo Pythonu. Staci mala ukazka. Uz jsem zkousel vsechno mozne, ale vysledek zadny. :-(

    Ukazka komunikace:

    PC:	   LINUX
    RS-232:    23
    RS-232:    13

    Odpovědi

    e.lisak avatar 31.8.2009 17:01 e.lisak | skóre: 23
    Rozbalit Rozbalit vše Re: Komunikace s RS-232 zarizenim

    pro začátek třeba http://www.abclinuxu.cz/poradna/linux/show/101950, a nejen tenhle...

    na googlu roste také poměrně dost návodů a vzorových řešení... :-(

    1.9.2009 00:56 kraken
    Rozbalit Rozbalit vše Re: Komunikace s RS-232 zarizenim
    A co ste uz vsetko vyskusal?

    Python: pyserial(.sf.net).
    C/C++: je to mierne obtiaznejsie (nebude to na 2 riadky), ale na nasledovnych linkach je komplexne info o seriovom programovani:
    http://www.easysw.com/~mike/serial/serial.html
    http://www.captain.at/howto-simple-serial-port-test-example.php
    3.10.2009 19:16 q
    Rozbalit Rozbalit vše Re: Komunikace s RS-232 zarizenim

    Ahoj, zkusil jsem tento kod jenom s drobnou upravou:

    root@desktop:~/abc$ cat Makefile
    CFLAGS=-g -Wall
    ser: captain/capser.c ser.c
        gcc -g -c -Wall captain/capser.c -o capser.o
        gcc -g -c -Wall ser.c -o ser.o
        gcc ser.o capser.o -o ser
    
    ##############################################################################
    root@desktop:~/abc$ cat ser.c
    /* ser.c
        (C) 2004-5 Captain http://www.captain.at
       
        Sends 3 characters (ABC) via the serial port (/dev/ttyS0) and reads
        them back if they are returned from the PIC.
       
        Used for testing the PIC-MMC test-board
        http://www.captain.at/electronic-index.php
    
    */
    #include <stdio.h>   /* Standard input/output definitions */
    #include <string.h>  /* String function definitions */
    #include <unistd.h>  /* UNIX standard function definitions */
    #include <fcntl.h>   /* File control definitions */
    #include <errno.h>   /* Error number definitions */
    #include <termios.h> /* POSIX terminal control definitions */
    
    #include "captain/capser.h"
    
    int fd;
    
    int initport(int fd) {
        struct termios options;
        // Get the current options for the port...
        tcgetattr(fd, &options);
        // Set the baud rates to 19200...
        cfsetispeed(&options, B9600);
        cfsetospeed(&options, B9600);
        // Enable the receiver and set local mode...
        options.c_cflag |= (CLOCAL | CREAD);
    
        options.c_cflag &= ~PARENB;
        options.c_cflag &= ~CSTOPB;
        options.c_cflag &= ~CSIZE;
        options.c_cflag |= CS8;
    
        // Set the new options for the port...
        tcsetattr(fd, TCSANOW, &options);
        return 1;
    }
    
    int main(int argc, char **argv) {
    
        fd = open("/dev/ttyS0", O_RDWR | O_NOCTTY | O_NDELAY);
        if (fd == -1) {
            perror("open_port: Unable to open /dev/ttyS0 - ");
            return 1;
        } else {
            fcntl(fd, F_SETFL, 0);
        }
       
        printf("baud=%d\n", getbaud(fd));
        initport(fd);
        printf("baud=%d\n", getbaud(fd));
    
        char sCmd[254] = "VERZE";
    
        if (!writeport(fd, sCmd)) {
            printf("write failed\n");
            close(fd);
            return 1;
        }
    
        printf("written:%s\n", sCmd);
       
        usleep(500000);
        char sResult[254];
        fcntl(fd, F_SETFL, FNDELAY); // don't block serial read
    
        if (!readport(fd,sResult)) {
            printf("read failed\n");
            close(fd);
            return 1;
        }
        printf("readport=%s\n", sResult);
        close(fd);
        return 0;
    }
    
    ##############################################################################
    root@desktop:~/abc$ cat captain/capser.h
    int writeport(int fd, char *chars);
    int readport(int fd, char *result);
    int getbaud(int fd);
    
    ##############################################################################
    root@desktop:~/abc$ cat captain/capser.c
    /* capser.c
        (C) 2004-5 Captain http://www.captain.at
       
        Helper functions for "ser"
       
        Used for testing the PIC-MMC test-board
        http://www.captain.at/electronic-index.php
    */
    #include <stdio.h>   /* Standard input/output definitions */
    #include <string.h>  /* String function definitions */
    #include <unistd.h>  /* UNIX standard function definitions */
    #include <fcntl.h>   /* File control definitions */
    #include <errno.h>   /* Error number definitions */
    #include <termios.h> /* POSIX terminal control definitions */
    
    int writeport(int fd, char *chars) {
        int len = strlen(chars);
        chars[len] = 0x0d; // stick a <CR> after the command
        chars[len+1] = 0x00; // terminate the string properly
        int n = write(fd, chars, strlen(chars));
        if (n < 0) {
            fputs("write failed!\n", stderr);
            return 0;
        }
        return 1;
    }
    
    int readport(int fd, char *result) {
        int iIn = read(fd, result, 254);
        result[iIn-1] = 0x00;
        if (iIn < 0) {
            if (errno == EAGAIN) {
                printf("SERIAL EAGAIN ERROR\n");
                return 0;
            } else {
                printf("SERIAL read error %d %s\n", errno, strerror(errno));
                return 0;
            }
        }                   
        return 1;
    }
    
    int getbaud(int fd) {
        struct termios termAttr;
        int inputSpeed = -1;
        speed_t baudRate;
        tcgetattr(fd, &termAttr);
        /* Get the input speed.                              */
        baudRate = cfgetispeed(&termAttr);
        switch (baudRate) {
            case B0:      inputSpeed = 0; break;
            case B50:     inputSpeed = 50; break;
            case B110:    inputSpeed = 110; break;
            case B134:    inputSpeed = 134; break;
            case B150:    inputSpeed = 150; break;
            case B200:    inputSpeed = 200; break;
            case B300:    inputSpeed = 300; break;
            case B600:    inputSpeed = 600; break;
            case B1200:   inputSpeed = 1200; break;
            case B1800:   inputSpeed = 1800; break;
            case B2400:   inputSpeed = 2400; break;
            case B4800:   inputSpeed = 4800; break;
            case B9600:   inputSpeed = 9600; break;
            case B19200:  inputSpeed = 19200; break;
            case B38400:  inputSpeed = 38400; break;
        }
        return inputSpeed;
    }
    
    root@desktop:~/abc$

    Po zapnuti PC program vubec nefunguje:

    root@desktop:~/abc$ make && ./ser
    gcc -g -c -Wall captain/capser.c -o capser.o
    gcc -g -c -Wall ser.c -o ser.o
    gcc ser.o capser.o -o ser
    baud=9600
    baud=9600
    written:VERZE
    readport=VERZE
    root@desktop:~/abc$ 
    

    Musim spustit minicom, odeslat do portu libovolny text a pak dat z menu ukoncit bez resetu. Pak uz program funguje:

    root@desktop:~/abc$ make && ./ser
    gcc -g -c -Wall captain/capser.c -o capser.o
    gcc -g -c -Wall ser.c -o ser.o
    gcc ser.o capser.o -o ser
    baud=9600
    baud=9600
    written:VERZE
    readport=VERZE
    0.1
    OK
    root@desktop:~/abc$ 

    cim to muze byt? Dale by mne zajimalo, proc prijaty text obsahuje:

    VERZE
    0.1
    OK

    kdyz mel byt pouze

    0.1
    OK

    cim to muze byt?

    4.10.2009 12:04 trekker.dk | skóre: 71
    Rozbalit Rozbalit vše Re: Komunikace s RS-232 zarizenim
    char sCmd[254] = "VERZE";
    Tady si nejsem jist, jak přesně tohle překladač vyhodnotí.

    char sCmd[254] samo o sobě vytváří ukazatel na char (char *), který se inicializuje někam, kde překladač vyhradí 254B paměti. Přiřazení sCmd = "VERZE" potom mění ten ukazatel tak, že ukazuje jinam do paměti na řetězec "VERZE", kde je vyhrazeno jenom 6B.

    Pokud se tedy překladač při char sCmd[254] = "VERZE"; udělá obojí naráz, pak v sCmd není 254B místa, ale jenom 6B.

    Kód
    chars[len] = 0x0d; // stick a <CR> after the command
    chars[len+1] = 0x00; // terminate the string properly
    v takovém případě zapisuje někam úplně mimo. Řekl bych, že tento kód si koleduje o segmentation fault
    Musim spustit minicom, odeslat do portu libovolny text a pak dat z menu ukoncit bez resetu. Pak uz program funguje
    stty -a -F /dev/ttyS0 - spusť před a po spuštění toho minicomu a uvidíš, které nastavení se změnilo - tohle nastavení si potom musí zajistit tvůj program.
    Quando omni flunkus moritati
    5.10.2009 20:37 q
    Rozbalit Rozbalit vše Re: Komunikace s RS-232 zarizenim
    stty -a -F /dev/ttyS0 - spusť před a po spuštění toho minicomu a uvidíš, které nastavení se změnilo - tohle nastavení si potom musí zajistit tvůj program.

    Spustil jsem minicom, ukoncil ho bez resetu a nastaveni bylo nasledujici:

    martin@martin-desktop:~/topeni/SERVER$ stty -a -F /dev/ttyS0
    speed 9600 baud; rows 0; columns 0; line = 0;
    intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S;
    susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 5;
    -parenb -parodd cs8 -hupcl -cstopb cread clocal crtscts
    ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany -imaxbel -iutf8
    -opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
    -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop -echoprt -echoctl -echoke
    martin@martin-desktop:~/topeni/SERVER$

    Upravil jsem podle neho funkci initport v souboru capser.c a ted uz to jen odesle data, ale neprijme to nic:

    int initport(int fd) {
        struct termios options;
        // Get the current options for the port...
        tcgetattr(fd, &options);
        // Set the baud rates to 19200...
        cfsetispeed(&options, B9600);
        cfsetospeed(&options, B9600);
        // Enable the receiver and set local mode...
    
        options.c_cflag &= ~(PARENB | PARODD | HUPCL | CSTOPB | BRKINT | IGNPAR | PARMRK | INPCK | ISTRIP| INLCR | IGNCR | ICRNL | IXON | IXOFF | IUCLC | IXANY | IMAXBEL | IUTF8 | OPOST | OLCUC | OCRNL | ONLCR | ONOCR | ONLRET | OFILL | OFDEL | ISIG | ICANON | IEXTEN | ECHO | ECHOE | ECHOK | ECHONL | NOFLSH | XCASE | TOSTOP | ECHOPRT | ECHOCTL | ECHOKE);
    
        options.c_cflag |= (CS8 | CREAD | CLOCAL | CRTSCTS | IGNBRK | NL0 | CR0 | TAB0 | BS0 | VT0 | FF0);
    
        // Set the new options for the port...
        tcsetattr(fd, TCSANOW, &options);
        return 1;
    }

    Co stim muze byt?

    e.lisak avatar 6.10.2009 07:41 e.lisak | skóre: 23
    Rozbalit Rozbalit vše Re: Komunikace s RS-232 zarizenim

    tohle zacina vypadat na klasiku - po kolika dratech chcete komunikovat (jake nastaveni sdelite systemu) a kolik dratu tam skutecne mate?

    moznosti jsou 3, 5 a 7 dratu

    podle toho +CRTSCTS mi pripada, ze ocekavate od HW petidrat...

    6.10.2009 16:50 q
    Rozbalit Rozbalit vše Re: Komunikace s RS-232 zarizenim

    Po 3 dratech.

    e.lisak avatar 6.10.2009 21:16 e.lisak | skóre: 23
    Rozbalit Rozbalit vše Re: Komunikace s RS-232 zarizenim
    Kdyz mate tridratovy HW, tak tomu prizpusobte i SW... (nesnazit se pouzivat CTS, RTS, DTR a DSR)
    Josef Kufner avatar 6.10.2009 18:05 Josef Kufner | skóre: 67
    Rozbalit Rozbalit vše Re: Komunikace s RS-232 zarizenim
    Ještě vyzváněcí drát, aby se poslouchající počítač nechrápal ;-)
    Hello world ! Segmentation fault (core dumped)
    3.9.2009 12:32 kafcha | skóre: 1 | east
    Rozbalit Rozbalit vše Re: Komunikace s RS-232 zarizenim
    pyserial
    >>> import serial
    >>> ser = serial.Serial(0) # open first serial port
    >>> print ser.portstr # check which port was really used
    >>> ser.write("hello") # write a string
    >>> ser.close() # close port
    Josef Kufner avatar 9.9.2009 01:19 Josef Kufner | skóre: 67
    Rozbalit Rozbalit vše Re: Komunikace s RS-232 zarizenim
    #include <stdio.h>
    
    void main(void)
    {
      FILE *f;
      char buf[1024];
    
      f = fopen("/dev/ttyS0", "rb");
      fputs("hello world", f);
      fflush(f);
      fgets(buf, 1024, f);
      fclose(f);
      fputs(buf, stdout);
    }
    
    … samozřejmě to bude chtít doplnit nějaké ty drobnosti, ale pointa je snad jasná.
    Hello world ! Segmentation fault (core dumped)
    23.9.2009 22:09 q
    Rozbalit Rozbalit vše Re: Komunikace s RS-232 zarizenim

    Tak jsem zkusil pouzit Vas kod, jenom jsem ho trochu upravil:

    root@desktop:~/232# cat 232.c
    #include <stdio.h>

    void main(void)
    {
    FILE *f;
    char buf[1024];

    f = fopen("/dev/ttyS0", "wt");
    fputs("hello world", f);
    fflush(f);
    fgets(buf, 1024, f);
    fclose(f);
    fputs(buf, stdout);
    printf("\n");
    }
    root@desktop:~/232# Seriovy port jsem takto propojil. Bohuzel to porad nefunguje:
    root@desktop:~/232# gcc 232.c -o 232
    root@desktop:~/232# ./232
    D
    root@desktop:~/232#

    Nevite, co s tim?

    Fuky avatar 24.9.2009 00:00 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: Komunikace s RS-232 zarizenim

    Řešení.

    Jinak bylo by dobré kdyby jsi se snažil pochopit princip Sériová komunikace pod Linuxem - I, případně se Ti může hodit ukázka v Pythonu.

    e.lisak avatar 24.9.2009 08:01 e.lisak | skóre: 23
    Rozbalit Rozbalit vše Re: Komunikace s RS-232 zarizenim

    No, programek sice vypada pekne, ale...

    osobne bych radeji pouzil open, nekolik ioctl a pak teprve se pokousel o komunikaci

    V tech ioctl je dobre nastavit rozumne parametry komunikace. Myslim, ze tam byvalo i neco ve smyslu "povol prijem" ;-)
    Fuky avatar 9.9.2009 09:40 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: Komunikace s RS-232 zarizenim
    Příloha:
    V dávných dobách jsem si s tím hrál, třeba se Ti příloha v C bude hodit jako nasměrování jak začít.
    Fuky avatar 9.9.2009 09:51 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: Komunikace s RS-232 zarizenim
    Přílohy:
    Pro srovnání jak se to dělá na Windows, funguje i pod Wine ;-)
    16.9.2009 14:25 Murry | skóre: 16 | Brno
    Rozbalit Rozbalit vše Re: Komunikace s RS-232 zarizenim

    Ahoj, jestli by ti nevadilo C++, tak se povidej na na stranky Qt, je tam na to komponenta (v pomocných třídách - ne přímo od Qt lidí). Ještě něco existovalo jako QExtSerialPort nebo tak.

    24.9.2009 12:56 trekker.dk | skóre: 71
    Rozbalit Rozbalit vše Re: Komunikace s RS-232 zarizenim
    S Qt jsem měl při komunikace se sériovým portem trochu problém, pokud si dobře vzpomínám, tak Qt neumí vyslat signál, že přišla data, takže s čistým Qt by se muselo v pravidelných intervalech dělat dotazování.

    Nechá se to obejít - na stránkách s dokumentací Qt je text o zpracování unixových signálů (ve zkratce se vytvoří třída, která má statickou metodu sloužící jako signal handler, a socketpair, do kterého tato metoda zapíše, když přijde signál. Na druhém konci páru je potom QSocketNotifier, který upozorňuje na to, že do socketu bylo zapsáno - místo socketpair lze použít eventfd)

    Je to vcelku jednoduché a dobře použitelné jenom pro jeden signál, ale pokud to stačí, tak to funguje. Pro víc signálů, které se mají asynchronně zpracovávat, jde vytvořit vlákno, které bude jenom čekat na unixové signály a přeposílat je do hlavního vlákna jako Qt signály.
    Quando omni flunkus moritati
    Josef Kufner avatar 24.9.2009 15:55 Josef Kufner | skóre: 67
    Rozbalit Rozbalit vše Re: Komunikace s RS-232 zarizenim
    Jsi si jistý? Nezkoušel jsem to, ale tohle mohlo být to co hledáš.
    Hello world ! Segmentation fault (core dumped)
    25.9.2009 16:32 trekker.dk | skóre: 71
    Rozbalit Rozbalit vše Re: Komunikace s RS-232 zarizenim
    Což to jo, readyRead() znám, jenže - pokud si dobře vzpomínám - tak na sériovém portu nefunguje. Přijdou data, ručně jdou vytáhnout, ale readyRead() nepřijde.

    I když je to fakt dávno, takže si moc nepamatuju, jak to opravdu bylo. Je docela možné, že ten signál nefunguje jenom ve Windows (program měl běžet na Windows i na Linuxu)
    Quando omni flunkus moritati
    24.9.2009 10:15 frr | skóre: 33
    Rozbalit Rozbalit vše Re: Komunikace s RS-232 zarizenim

     

    Tady je jeden můj postarší výtvor. Nic čím bych se chtěl extra chlubit. Mrkněte se třeba do souboru loop.cc. Má to příponu cc, ale v podstatě je to holé Cčko. Začněte třeba u funkce open_line() a dohledejte si všechny používané funkce, jsou definované výše v tomtéž zdrojáku. Tomuhle kusu kódu v podstatě předhodíte řetězec ve formátu "9600,8N1,NOFLOW" a on podle toho nakonfiguruje dotyčný sériový port.

    Od té doby jsem zjistil jednu věc: u některých verzí libc je dobré ještě před "cfmakeraw" poštvat na prázdný "struct termios" napřed memset() nebo bzero() = celý kus paměti, který ten struct zabírá, preventivně vynulovat.

    [:wq]

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.