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 07:00 | Nová verze

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

Ladislav Hagara | Komentářů: 0
včera 21:55 | Zajímavý článek

Vláda v pondělí 13. července projednala Výroční zprávu o stavu otevřených dat za rok 2019. Ke stažení je na Portálu otevřených dat (pdf).

Ladislav Hagara | Komentářů: 0
včera 16:22 | Komunita

MojeFedora.cz informuje, že FESCo schválilo návrh, aby se jako výchozí editor v terminálu od Fedory 33 používalo GNU nano. Fedora doteď žádný výchozí editor pro terminál nastavený neměla a nechávala to na jednotlivých programech. Ty často používané, jako třeba git, ale ve výchozím stavu používaly editor vi, který autor návrhu nepovažuje za příliš intuitivní.

Ladislav Hagara | Komentářů: 17
včera 14:22 | Komunita

Dlouhodobá LTS podpora Debianu 8 Jessie vydaného 26. dubna 2015 skončila k 30. červnu 2020. K dispozici je placená rozšířená dlouhodobá podpora ELTS do 30. června 2022. Poslední opravné vydání Debianu 9 Stretch uvolněného 17. června 2017 bude vydáno 18. července 2020. Jeho dlouhodobá podpora je plánována do 30. června 2022. Plánujete-li ji využívat, vývojáři ocení vyplnění dotazníku ohledně této LTS podpory.

Ladislav Hagara | Komentářů: 4
včera 06:00 | Nová verze

Byla vydána nová verze 1.26.0 sady nástrojů pro správu síťových připojení NetworkManager. Novinkám se v příspěvku svém na blogu věnuje Thomas Haller.

Ladislav Hagara | Komentářů: 4
13.7. 13:00 | Zajímavý software

Laboratoře CZ.NIC zveřejnily software DNS Probe. Jeho úkolem je zachycovat DNS provoz na síťovém rozhraní (UDP i TCP), párovat DNS dotazy s příslušnými odpověďmi a exportovat konsolidované záznamy o každé jednotlivé DNS transakci, která se v síťovém provozu vyskytla.

Ladislav Hagara | Komentářů: 0
13.7. 08:00 | Nová verze

Byla vydána verze 2.2.0 svobodného softwaru HAProxy (The Reliable, High Performance TCP/HTTP Load Balancer; Wikipedie) řešícího vysokou dostupnost, vyvažování zátěže a reverzní proxy. Detailní přehled novinek v příspěvku na blogu společnosti HAProxy Technologies.

Ladislav Hagara | Komentářů: 2
13.7. 01:11 | Nová verze

Správce oken IceWM (Wikipedie) byl vydán ve verzi 1.7.0. Přehled novinek, vylepšení a oprav na GitHubu.

Ladislav Hagara | Komentářů: 9
12.7. 01:22 | Komunita

Před dvěma lety se Andrew Kelley rozhodl naplno věnovat se svému koníčku, tj. vývoji open source programovacího jazyka Zig (GitHub). Opustil své dobře placené místo v OkCupid a vytvořil si účet na Patreonu. Včera představil nadaci Zig Software Foundation zastřešující propagaci a další vývoj tohoto programovacího jazyka. Podpořit ji lze na GitHub Sponsors (aktuálně 66 % z měsíčního cíle 8 600 $).

Ladislav Hagara | Komentářů: 3
11.7. 22:11 | Nová verze

Byla vydána verze 2.0.10 multiplatformního integrovaného vývojového prostředí (IDE) pro rychlý vývoj aplikaci (RAD) ve Free Pascalu Lazarus (Wikipedie). Nově využívá nedávno vydaný Free Pascal Compiler (FPC) 3.2.0.

Ladislav Hagara | Komentářů: 14
Používáte některé open-source řešení [protokol] pro šifrovaný instant messaging?
 (22%)
 (31%)
 (4%)
 (11%)
 (17%)
 (5%)
 (13%)
 (24%)
Celkem 351 hlasů
 Komentářů: 39, poslední včera 00:13
Rozcestník

Dotaz: Čtení více souborů naráz - C/C++

21.6. 19:06 Gilhad | skóre: 20 | blog: gilhadoviny
Čtení více souborů naráz - C/C++
Přečteno: 452×
Čtu data z klávesnice (/dev/input/by-id/usb-Gaming_KB_Gaming_KB-event-kbd ) a dobrý. (sleduju počty kláves, kombinací, rychlost psaní a tak ..) Ale když připojílm dalšíl klávesnici (klávesnice), tak bych potřeboval sledovat "všechny naráz" (aspoň skoro - člověk je pomalý input device) pro detekci kombinací např. shift na jedné a písmeno na druhé.

Jsem si celkem jistý, že na tohle už nějaká funkce je a nemá ji cenu zkoušet napsat na zelené louce, ale neumím ji najít, nebo příjít na to co hledat. Poradí někdo?

Kostra kódu vypadá zhruba takto (samozřejmě mraky ošetřování různých stavů, načítání z konfiguráku a tak, ale to není zajímavé)

const char *dev = "/dev/input/by-id/usb-Gaming_KB_Gaming_KB-event-kbd";
fd = open(dev, O_RDONLY);
while (1) {
  n = read(fd, &ev, sizeof ev);
  if (ev.type == EV_KEY) {
    // nějaké zpracování
  }
}
Chtěl bych něco takovéhoto (pro libovolný, při spuštění daný, počet klávesnic, čili místo dev1, dev2 by byl nějaký seznam, nebo Vector, nebo tak něco, ale to už taky zvládnu)

const char *dev = "/dev/input/by-id/usb-Gaming_KB_Gaming_KB-event-kbd";
const char *dev2 = "/dev/input/by-id/usb-neco-jineho-event-kbd";
fd = open(dev, O_RDONLY);
fd2 = open(dev2, O_RDONLY);
while (1) {
  n = read(fd, &ev, sizeof ev);
  n2 = read(fd2, &ev2, sizeof ev2);
  if (n1) {
    if (ev.type == EV_KEY) {
      // nějaké zpracování
    }
  }
  if (n2) {
    if (ev2.type == EV_KEY) {
      // nějaké podobné zpracování
    }
  }
}

ale dělat to naráz (neblokující), nečekat zablokovaný na jedné z klávesnic .... nebo ještě lépe blokovat, dokud nebude aspoň jedna stisknutá, abych se zbytečně nemotal ve smyčce a nepožíral planě výkon

Asi bych to zvládnul nějak přez vlákna, ale to mi přijde s kanonem na vrabce

Řešení dotazu:


Odpovědi

Řešení 1× (Gilhad (tazatel))
21.6. 20:25 tttt
Rozbalit Rozbalit vše Re: Čtení více souborů naráz - C/C++
Pomůže poll() nebo select()? Zdá se mi, že obě dokážou číst z více file descriptorů naráz, ale už jsem je dlouho nepoužil.
21.6. 20:43 Gilhad | skóre: 20 | blog: gilhadoviny
Rozbalit Rozbalit vše Re: Čtení více souborů naráz - C/C++
Pomůžou :) Já věděl, že to musí jít nějak jednoduše, ale chybělo to správné slovo :)
22.6. 00:23 Andrej | skóre: 47 | blog: Republic of Mordor | Zürich
Rozbalit Rozbalit vše Re: Čtení více souborů naráz - C/C++

Druhá možnost je std::thread pro každou klávesnici. (Ale pro use case shift na jedné a písmeno na druhé je mnohem lepší poll().)

ǑǦŹǓǕǙǞǺǨȞȬḔḦḰḾṊṎṸẄẌỖ
22.6. 04:57 Gilhad | skóre: 20 | blog: gilhadoviny
Rozbalit Rozbalit vše Re: Čtení více souborů naráz - C/C++
no právě :) Chtěl bych to jednoduché, potřebuju kromě lokálních i centrální objekt (který bych musel zamykat a dynamicky do něj přidávat z těch threadů nově alokované věci) a zároveň vím, že prakticky nikdy nedojde ke dvěma událostem naráz tak, aby musely být zpracovány paralelně (a nezbytně v daném pořadí) - jedna milisekunda sem nebo tam nedává rozumný fyzikální smysl u dvouruční lidské práce, kde výsledkem je statistika.

A navíc jsem stejně potřeboval zjistit to magické slovo, protože to časem nepochybně použiju i jinde. Ale jednoduché googlení mi dalo jen přislovečnou kupku sena, zatímco jsem si byl jist, že tady někdo tu jehlu vyloví z paměti a pak už si snadno dohledám zbytek :)
22.6. 17:32 Jardik
Rozbalit Rozbalit vše Re: Čtení více souborů naráz - C/C++
Ja nevim, nebude tam s pollem race condition, ze ti muze jako ready deskriptor vratit klavesnici, kde byl stisknut prvni znak, jako druhou? Predpokladam, ze v tom eventu je nejaky timestamp, ktery kontrolujes, a da se michat s timestampem z druhe klavesnice, tj. Nejedna se jen o serial z te jedne klavesnice.
22.6. 20:12 Gilhad | skóre: 20 | blog: gilhadoviny
Rozbalit Rozbalit vše Re: Čtení více souborů naráz - C/C++
Timeval tam je a navic porad jde o vstup od jednoho cloveka, sance, ze dve klavesy stiskne naraz v ramci rozliseni casu, je prakticky zanedbatelna a navic, i pokud se to stane, tak jednou za bambilion stisku, coz je ze statistickeho hlediska nepodstatne - stejne jako preklepy - dulezite jsou nejpouzivanejsi kombinace - vysledkem by melo byt (krome dalsiho) - rychlost psani (tady na poradi nezalezi) - nejcastejsi klavesy (zase na poradi nesejde) - nejcastejsi 2,3 a 4 hmaty (pripadne vicehmaty) a rychlost jejich mackani (tady na poradi zalezi) - doba pred stiskem dane klavesy (kdyz budou "skoro naraz" klidne to dam obema)

a mozna z toho casem vyjde bud navrh jine klavesnice, nebo aspon rozlozeni klaves.

Predpokladam po nekolika stovkach az tisicich stisku (skoro) kazde klavesy, takze chyby v poctu jednotek kusu az desitek se daji stejne zanedbat.
23.6. 20:11 Jindřich Makovička | skóre: 17
Rozbalit Rozbalit vše Re: Čtení více souborů naráz - C/C++
Případně existuje libinput.

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.