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í
×
    dnes 04:22 | Nová verze

    Multiplatformní emulátor terminálu Ghostty byl vydán ve verzi 1.3 (𝕏, Mastodon). Přehled novinek a vylepšení v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    dnes 03:55 | Nová verze

    Byla vydána nová verze 14.4 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 23:22 | Nová verze

    Databáze DuckDB (Wikipedie) byla vydána ve verzi 1.5.0. S kódovým názvem Variegata (husice rajská). Přináší řadu vylepšení, včetně nového ergonomičtějšího CLI klienta nebo podporu pro typ VARIANT a vestavěný typ GEOMETRY.

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

    V pátek 6. a sobotu 7. března proběhl v pražském sídle Nejvyššího kontrolního úřadu (NKÚ) Hackathon veřejné správy 7.1. Publikovány byly vytvořené aplikace. V kategorii projektů rozvíjených z krajského kola zvítězil tým „Mackokládi“. Čtyři středoškoláci ze Dvora Králové uspěli s aplikací KompaZ. Jde o digitálního průvodce, který pomůže s rychlou a srozumitelnou orientací v životních i krizových situacích „krok za krokem“. Aplikace

    … více »
    Ladislav Hagara | Komentářů: 3
    včera 13:33 | Nová verze

    QGIS, svobodný desktopový GIS, byl vydán v nové hlavní verzi 4.0. Změny zahrnují několik nových analytických a editačních funkcí, rozšíření podpory 3D, více možností úprav uživatelského rozhraní či mnoho dalších zlepšení použitelnosti. Řada 3.44 má aktualizace plánovány do září.

    |🇵🇸 | Komentářů: 0
    včera 05:11 | Komunita

    Dan Blanchard vydal knihovnu pro Python chardet v nové verzi 7.0.0. S novou verzí byla knihovna přelicencována z LGPL na MIT. Souhlasili s tím všichni přispěvatelé? Dan Blanchard souhlasy vůbec neřešil. Zaúkoloval umělou inteligenci (Claude), aby knihovnu zcela přepsala a výslovně jí nařídil, aby nepoužila žádný LGPL kód. Dan Blanchard tvrdí, že se jedná o clean room design. Protistrana argumentuje, že umělá inteligence byla trénována

    … více »
    Ladislav Hagara | Komentářů: 13
    8.3. 18:44 | Komunita

    Andy Nguyen si na svou herní konzoli PlayStation 5 (PS5) pomocí exploitu Byepervisor nainstaloval Linux (Ubuntu). V Linuxu si spustil Steam a PS5 tak proměnil v Steam Machine. Na PS5 může hrát hry, které jsou vydané pouze pro PC a jsou na Steamu [Tom's Hardware].

    Ladislav Hagara | Komentářů: 11
    8.3. 12:22 | Nová verze

    Správce sbírky fotografií digiKam byl vydán ve verzi 9.0.0. Jedná se o větší vydání provázené aktualizacemi knihoven. Mnoho dílčích změn se vedle oprav chyb týká uživatelského rozhraní, mj. editace metadat.

    |🇵🇸 | Komentářů: 1
    7.3. 13:55 | Nová verze

    Byla vydána verze 2026 distribuce programu pro počítačovou sazbu TeX s názvem TeX Live (Wikipedie). Přehled novinek v oficiální dokumentaci.

    Ladislav Hagara | Komentářů: 47
    6.3. 23:22 | Humor

    Jihokorejská Národní daňová služba (NTS) zabavila kryptoměnu Pre-retogeum (PRTG) v hodnotě 5,6 milionu dolarů. Pochlubila se v tiskové zprávě, do které vložila fotografii zabavených USB flash disků s kryptoměnovými peněženkami spolu se souvisejícími ručně napsanými mnemotechnickými obnovovacími frázemi. Krátce na to byla kryptoměna v hodnotě 4,8 milionu dolarů odcizena. O několik hodin ale vrácena, jelikož PRTG je extrémně nelikvidní, s denním objemem obchodování kolem 332 dolarů a zalistováním na jediné burze, MEXC [Bitcoin.com].

    Ladislav Hagara | Komentářů: 11
    Které desktopové prostředí na Linuxu používáte?
     (16%)
     (7%)
     (0%)
     (11%)
     (28%)
     (2%)
     (5%)
     (2%)
     (13%)
     (25%)
    Celkem 1038 hlasů
     Komentářů: 25, poslední 3.2. 19:50
    Rozcestník

    Dotaz: Přerušení z par. portu

    24.8.2006 09:18 kutom | skóre: 1
    Přerušení z par. portu
    Přečteno: 129×
    Prosím poraďte, už jsem prohledal kde co a stále nic. Potřeboval bych v C zajistit obsluhu hw přerušení od paralelního portu. Jde to vůbec? Našel jsem možnost čekání na přerušení, ale to nemůžu použít, protože ten program dělá mezi tím taky něco jinýho.

    Odpovědi

    24.8.2006 09:34 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Přerušení z par. portu
    Psát handler přerušení znamená psát modul do jádra. Což vřele nedoporučuji. Takže nezbývá než periodicky zjišťovat stav na portu (což je nic moc) nebo napsat mutlithreadovou aplikaci. Nebo, pokud by to šlo, rozdělit problém do dvou nezávisle běžících programů.
    24.8.2006 09:44 kutom | skóre: 1
    Rozbalit Rozbalit vše Re: Přerušení z par. portu
    Modul do jadra napsat neumim a mutlithreadovou aplikaci taky ne. Periodicky zjistovat se mi to moc nechce, protoze nemam jistotu, ze chytnu vsechny impulsy. A jak myslis to rozdeleni do dvou aplikaci? Ta druha by to stejne musela periodicky zjistovat ne? Je mi divny ze takovej modul do jadra jeste nikde neexistuje (teda ja ho nenasel).
    24.8.2006 09:46 kutom | skóre: 1
    Rozbalit Rozbalit vše Re: Přerušení z par. portu
    A nebo to naprogramuju do jednocipa a pres port do pc jenom nactu pocet tech impulsu. Ale s tim prerusenim by to bylo nejlepsi, nemusel bych nic bastlit.
    24.8.2006 11:01 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Přerušení z par. portu
    A nebo to naprogramuju do jednocipa a pres port do pc jenom nactu pocet tech impulsu. Ale s tim prerusenim by to bylo nejlepsi, nemusel bych nic bastlit.
    Zásadní věcí je jakou frekvenci očekáváš a jak přesně chceš měřit čas příchodu impulsu. Vždy existuje určitá doba odezvy. Napiš, k čemu to bude sloužit.
    24.8.2006 10:57 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Přerušení z par. portu
    Modul do jadra napsat neumim
    No naprosto chápu.
    a mutlithreadovou aplikaci taky ne.
    Často se to tak dělá. Není to tak hrozné.
    Periodicky zjistovat se mi to moc nechce, protoze nemam jistotu, ze chytnu vsechny impulsy. A jak myslis to rozdeleni do dvou aplikaci? Ta druha by to stejne musela periodicky zjistovat ne?
    Ta druhá by mohla být ve stavu "čekám na upozornění od jádra, že se něco stalo".
    Je mi divny ze takovej modul do jadra jeste nikde neexistuje (teda ja ho nenasel).
    Jaderný modul pro obsluhu paralelního portu samozřejmě existuje, je běžnou součástí jádra a samozřejmě se stará o obsluhu přerušení. Druhá věc je, co přesně od něj očekáváš.
    24.8.2006 11:34 kutom | skóre: 1
    Rozbalit Rozbalit vše Re: Přerušení z par. portu
    Ja presnou frekvenci jeste neznam. Bude to vystup z inkrementalniho snimace, vstup z plynomeru a elektromeru. Nepotrebuju merit casy, kdy ty impulsy prijdou, ale počet impulsů (dela se potom prumer za den). To s tim cekanim na udalost by slo. Nejelegantnejsi by to bylo v jinem threadu nez v druhe aplikaci. Asi kouknu jak se to dela. Jinak jsem nasel jeste tohle http://parapin.sourceforge.net
    Josef Kufner avatar 25.8.2006 01:54 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Přerušení z par. portu
    ... a mutlithreadovou aplikaci taky ne.
    Je to celkem jednoduché. Problémy jsou akorát při ladění, ale dá se to. Malá ukázka jak to přibližně vypadá (vynechávám detaily):
    void *druhe_vlakno(void *arg) {
      /* tady budes smatlat po portu */
    }
    
    int main() {
       pthread_t vlakno;
       pthread_create(&vlakno, opt, druhe_vlakno, NULL);
       /* nejaky ten kod v puvodnim vlakne */
       pthread_join(&vlakno);
    }
    
    Je to opravdu osekane, ale zakladni princip to snad vystihuje. Najdi si nejaky cely priklad. Podrobnosti v manu. Jmena funkci jsou skutecna, jakakoliv podobnost se skutecnosti je naprosto zamerna.
    Hello world ! Segmentation fault (core dumped)
    Josef Kufner avatar 25.8.2006 02:01 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Přerušení z par. portu
    Ještě taková drobnost: Jakmile k nějakým datům přistupuješ z několika vláken (> 1), tak je potřeba ohlídat, aby souběžně k tomu přistupovalo jen jedno vlákno. Použít na to lze třeba funkce pthread_mutex_init, pthread_mutex_lock, pthread_mutex_unlock a pthread_mutex_destroy. Podrobnosti v manu. Existují i další užitečné věci (např. věci okolo pthread_cond_init), ale tohle by mělo pro začátek stačit.
    Hello world ! Segmentation fault (core dumped)
    25.8.2006 07:07 kutom | skóre: 1
    Rozbalit Rozbalit vše Re: Přerušení z par. portu
    Diky, uz jsem procital nejakou dokumentaci k threadum, tak to tak asi udelam. K portu bude pristupovat jenom jedno vlakno. To druhy komunikuje pres RS485 s AD prevodnikem a uklada data do databaze.
    24.8.2006 21:02 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Přerušení z par. portu
    Pro sériový port by to mohlo vypadat třeba takhle:
    #!/usr/bin/env python
    import sys, os, threading, tty, fcntl, struct, time, signal
    
    class CTS_events(threading.Thread):
    
        def __init__(self, lock):
            self.fd = os.open('/dev/ttyS0', os.O_RDWR | os.O_SYNC)
            threading.Thread.__init__(self)
            self.events = 0
            self.lock = lock
    
        def __call__(self):
            return self.events
    
        def run(self):
            while True:
                fcntl.ioctl(self.fd, tty.TIOCMIWAIT, tty.TIOCM_CTS)
                lock.acquire()
                self.events += 1
                lock.release()
    
    lock = threading.Lock()
    cts_events = CTS_events(lock)
    cts_events.start()
    
    try:
        while True:
            lock.acquire()
            print cts_events()
            lock.release()
            time.sleep(1)
    except KeyboardInterrupt:
        os.kill(os.getpid(), signal.SIGTERM)
    
    
    Je to vícevláknové hlídání událostí na lince CTS u sériového portu. Hlavní vlákno každou sekundu vypisuje čítač a může dělat i cokoli jiného. Další vlákno tento čítač zvyšuje pokaždé, když dostane od jádra upozornění na změnu linky CTS. Čítač je chráněn zámkem, aby nedošlo ke konfliktům (ale to je možná zbytečné).
    Aby bylo možné program přerušit pomocí Ctrl+c, tak odchytávám KeyboardInterrupt a posílám sám sobě zabíjecí signál. Je to debilní, ale nevím, jak jinak zničit všechna vlákna na požádání.

    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.