abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 21:44 | Komunita

    Konference OpenAlt 2024 – jedinečné fórum, kde se každoročně sdružují lidé se zájmem o vývoj a využití svobodného a otevřeného softwaru a hardwaru, tvorbu, zpracování a zpřístupňování otevřených dat, svobodný přístup k informacím a vzdělávání – hledá přednášející, dobrovolníky a partnery. Konference proběhne 2. a 3. listopadu v prostorách FIT VUT v Brně. Vstup je zdarma.

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

    Po 9 týdnech vývoje od vydání Linuxu 6.10 oznámil Linus Torvalds vydání Linuxu 6.11. Z Vídně, jelikož tam zítra začíná Open Source Summit Europe. Přehled novinek a vylepšení na LWN.net: první a druhá polovina začleňovacího okna. Později také na Linux Kernel Newbies.

    Ladislav Hagara | Komentářů: 0
    včera 12:00 | Zajímavý software

    Grocy je open source ERP systém. Ne však pro plánování zdrojů v podnicích ale v domácnostech. Spravovat lze zásoby, povinnosti a úkoly. Vytvářet nákupní seznamy. Ověřovat dostupnost surovin pro recepty. Plánovat jídelníčky. Vyzkoušet lze online demo. Vývoj probíhá na GitHubu.

    Ladislav Hagara | Komentářů: 2
    14.9. 19:44 | Komunita

    Na čem aktuálně pracují vývojáři GNOME a KDE? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE.

    Ladislav Hagara | Komentářů: 0
    13.9. 23:11 | IT novinky

    3D tiskárny Original Prusa MK4S (a MK4) v kombinaci s Prusamenty PLA a PETG mají mezinárodně uznávanou certifikaci UL 2904 GREENGUARD, která potvrzuje splnění přísných bezpečnostních standardů pro VOC a UFP.

    Ladislav Hagara | Komentářů: 1
    13.9. 22:11 | Nová verze

    Byla vydána verze R1/beta5 open source operačního systému Haiku (Wikipedie). Přehled novinek i s náhledy v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 7
    13.9. 16:33 | Komunita

    Sovereign Tech Fund (Wikipedie), tj. program financování otevřeného softwaru německým ministerstvem hospodářství a ochrany klimatu, podpoří Sambu částkou 688 800 eur.

    Ladislav Hagara | Komentářů: 37
    13.9. 13:11 | IT novinky

    Společnost OpenAI představila novou řadu svých AI modelů OpenAI o1 navržených tak, aby "strávily více času přemýšlením, než zareagují". Videoukázky na 𝕏 nebo YouTube.

    Ladislav Hagara | Komentářů: 5
    13.9. 12:55 | Pozvánky

    Sailathon 24, tj. hackathon mobilního operačního systému Sailfish OS, proběhne od 27. do 30. září v Praze na Strahově ve školícím centru Silicon Hill.

    Ladislav Hagara | Komentářů: 0
    13.9. 01:11 | Nová verze

    Bylo vydáno Ubuntu 22.04.5 LTS, tj. páté opravné vydání Ubuntu 22.04 LTS s kódovým názvem Jammy Jellyfish. Stejně tak Kubuntu 22.04.5 LTS, Ubuntu Budgie 22.04.5 LTS, Ubuntu MATE 22.04.5 LTS, Lubuntu 22.04.5 LTS, Ubuntu Kylin 22.04.5 LTS, Ubuntu Studio 22.04.5 LTS a Xubuntu 22.04.5 LTS.

    Ladislav Hagara | Komentářů: 0
    Rozcestník

    Dotaz: Nastavení linky TxD sériového portu na úroveň H

    10.9.2007 20:14 Rada | skóre: 14
    Nastavení linky TxD sériového portu na úroveň H
    Přečteno: 488×
    Zdravím všechny, pokouším se vytvořit program, který nastaví linku TxD sériového portu na úroveň H. Zkoušel jsem následující postup, který fungoval na ostatní výstupní linky DTR a RTS:

    int iFlags = TIOCM_ST; fd = open("/dev/ttyS0", O_RDWR | O_SYNC); ioctl(fd, TIOCMBIS, &iFlags); ...

    Pro linku TxD to ovšem nefunguje. Linky DTR a RTS se chovaly tak, že tento kód je nastavil na úroveň H a linky v ní setrvaly, dokud nebyl program ukončen. Linka TxD se tak ovšem nechová. Poradili byste mi prosím, co dělám špatně, případně jak jinak donutit linku TxD přepnout do úrovně H a aby v této úrovni setrvala?

    Řešení dotazu:


    Odpovědi

    Josef Kufner avatar 10.9.2007 20:25 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Nastavení linky TxD sériového portu na úroveň H
    Jedna chytrá knížka (Využití rozhraní PC, B. Kainka) říká, že se musí "nahodit break". Tedy na adresy BA + 3 zapsat 64. Jak to udělat pomocí ioctl jsem nehledal, ale jsem si jist, že to tam někde bude ;-)
    Hello world ! Segmentation fault (core dumped)
    13.9.2007 20:29 Rada | skóre: 14
    Rozbalit Rozbalit vše Re: Nastavení linky TxD sériového portu na úroveň H
    Děkuji za informace. Tak jsem si tu knížku opatřil a vámi popsanou sekci jsem si přečetl. Daný postup ale vyžaduje zápis dat do konkrétních paměťových míst, což je poněkud nad moje programátorské síly. Navíc to asi bude vyžadovat práva roota - přecejen, uživatel těžko může takhle sahat na hardware (tady si nejsem jistý) - toto by pro mě bylo dost nepříjemné omezení. Samozřejmě tuto možnost prozkoumám, ale upřednostnil bych cestu přes systémové knihovny - právě například pomocí ioctl. Neřešil jste někdo podobný problém?
    Josef Kufner avatar 13.9.2007 20:42 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Nastavení linky TxD sériového portu na úroveň H
    Koukni se do hlavičkových souborů jádra na věci okolo ioctl. Je tam toho kopec a moc dokumentované to není. Ta knížka byla psána pro DOS, kde žádné jiné API ani nebylo. Ale i tak je to celkem fajn věc, jen by to chtělo doplnit o ty věci okolo linuxího API.
    Hello world ! Segmentation fault (core dumped)
    Pavel Vymetálek avatar 14.9.2007 07:04 Pavel Vymetálek | skóre: 15 | Náchod
    Rozbalit Rozbalit vše Re: Nastavení linky TxD sériového portu na úroveň H
    Jak někdo přede mnou správně řekl, tomuto stavu se říká break. V c to lze udělat následovně:

    res = tcsendbreak(fd,duration);

    a nebo natrvalo

    res = ioctl(fd,TIOCSBRK) // nahodi break

    res = ioctl(fd,TIOCCBRK) // shodi break

    15.9.2007 15:16 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Nastavení linky TxD sériového portu na úroveň H
    Někdo před vámi to řekl špatně. Stav break vyhodí na TxD logickou 0, tedy stav L. V logické 1 je tento pin sériového portu v klidu.
    Quando omni flunkus moritati
    Řešení 1× (Rada (tazatel))
    15.9.2007 10:01 Rada | skóre: 14
    Rozbalit Rozbalit vše Re: Nastavení linky TxD sériového portu na úroveň H
    Díky za poskytnuté rady. Problém je vyřešen. Použil jsem následující postup:
    ioctl(fd, TIOCSBRK); /* Nastavi TXD */
    ioctl(fd, TIOCCBRK); /* Vynuluje TXD */

    Funguje to přesně podle mých představ ;-)

    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.