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 22:22 | Komunita

    Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za duben (YouTube).

    Ladislav Hagara | Komentářů: 0
    včera 19:11 | IT novinky

    Provozovatel čínské sociální sítě TikTok dostal v Evropské unii pokutu 530 milionů eur (13,2 miliardy Kč) za nedostatky při ochraně osobních údajů. Ve svém oznámení to dnes uvedla irská Komise pro ochranu údajů (DPC), která jedná jménem EU. Zároveň TikToku nařídila, že pokud správu dat neuvede do šesti měsíců do souladu s požadavky, musí přestat posílat data o unijních uživatelích do Číny. TikTok uvedl, že se proti rozhodnutí odvolá.

    Ladislav Hagara | Komentářů: 2
    včera 11:22 | Zajímavý projekt

    Společnost JetBrains uvolnila Mellum, tj. svůj velký jazykový model (LLM) pro vývojáře, jako open source. Mellum podporuje programovací jazyky Java, Kotlin, Python, Go, PHP, C, C++, C#, JavaScript, TypeScript, CSS, HTML, Rust a Ruby.

    Ladislav Hagara | Komentářů: 0
    včera 09:11 | Bezpečnostní upozornění

    Vývojáři Kali Linuxu upozorňují na nový klíč pro podepisování balíčků. K původnímu klíči ztratili přístup.

    Ladislav Hagara | Komentářů: 0
    1.5. 20:00 | Komunita

    V březnu loňského roku přestal být Redis svobodný. Společnost Redis Labs jej přelicencovala z licence BSD na nesvobodné licence Redis Source Available License (RSALv2) a Server Side Public License (SSPLv1). Hned o pár dní později vznikly svobodné forky Redisu s názvy Valkey a Redict. Dnes bylo oznámeno, že Redis je opět svobodný. S nejnovější verzí 8 je k dispozici také pod licencí AGPLv3.

    Ladislav Hagara | Komentářů: 1
    1.5. 19:22 | IT novinky

    Oficiální ceny Raspberry Pi Compute Modulů 4 klesly o 5 dolarů (4 GB varianty), respektive o 10 dolarů (8 GB varianty).

    Ladislav Hagara | Komentářů: 0
    30.4. 22:33 | Nová verze

    Byla vydána beta verze openSUSE Leap 16. Ve výchozím nastavení s novým instalátorem Agama.

    Ladislav Hagara | Komentářů: 0
    30.4. 17:44 | Zajímavý článek

    Devadesátková hra Brány Skeldalu prošla portací a je dostupná na platformě Steam. Vyšel i parádní blog autora o portaci na moderní systémy a platformy včetně Linuxu.

    karkar | Komentářů: 0
    30.4. 12:11 | Humor

    Lidi dělají divné věci. Například spouští Linux v Excelu. Využít je emulátor RISC-V mini-rv32ima sestavený jako knihovna DLL, která je volaná z makra VBA (Visual Basic for Applications).

    Ladislav Hagara | Komentářů: 7
    30.4. 10:44 | IT novinky

    Revolut nabídne neomezený mobilní tarif za 12,50 eur (312 Kč). Aktuálně startuje ve Velké Británii a Německu.

    Ladislav Hagara | Komentářů: 36
    Jaký filesystém primárně používáte?
     (58%)
     (1%)
     (9%)
     (21%)
     (4%)
     (1%)
     (2%)
     (0%)
     (1%)
     (3%)
    Celkem 506 hlasů
     Komentářů: 19, poslední 30.4. 11:32
    Rozcestník

    Debugování komunikace s klávesnicí

    26.11.2005 21:50 | Přečteno: 1460× | Linux | poslední úprava: 26.11.2005 22:48

    Momentálně si hraju s vylepšováním svojí klávesnice, akorát mi to moc nejde. Už jsem strávil tejdny různým zkoušením (no, nemám na hraní celý dny, proto tolik), až jsem uznal, že je nutný vědět, co se mezi klávesnicí a PC vlastně děje, protože podle teorie to prostě nefungovalo.

    Takže jsem vyštrachal obvod MAX232, 5 kondenzátorů a napojil klávesnici na sériový port.

    schema
    fotka

    Šmírovací program jsem obšlehl od sitha. V C totiž vůbec neumím a připadá mi jako totálně nepohodlný a nepřehledný jazyk, takže - vím, že je to napsaný prasácky, ale je to jednoúčelová věc a stačí mi:

    #include <stdio.h>
    #include <fcntl.h>
    #include <termios.h>
    #include <sys/ioctl.h>
    #include <time.h>
    
    #define SERIAK "/dev/ttyS0"
    
    int openserial ();
    void closeserial ();
    float mereni ();
    
    int fd;
    
    int
    openserial ()			//otevrit seriak
    {
    	if ((fd = open (SERIAK, O_RDWR)) == -1)
    	{
    		return 0;
    	}
    	return 1;
    }
    
    void
    closeserial ()			//zavrit seriak
    {
    	close (fd);
    }
    
    float
    mereni ()			//hlavni fce, mereni napeti
    {
    	int status, hodnota1 = 2, hodnota2 = 3;
    
    	while (1!=2)
    	{
    	ioctl (fd, TIOCMGET, &status);
    	hodnota1 = (status & TIOCM_CTS)/TIOCM_CTS; //clock
    	hodnota2 = (status & TIOCM_RI)/TIOCM_RI; //data
    	printf ("%i,", hodnota1);
    	printf ("%i\n", hodnota2);
    	}
    //	return (hodnota1);
    }
    
    int
    main ()
    {
    	if (!openserial ())
    	{
    		printf ("Nelze inicializovat port \"s\".", SERIAK);
    		return 0;
    	}
    	mereni();
    	closeserial ();
    	return 0;
    }
    

    Prostě to vypisuje dvě hodnoty oddělený čárkou, první je stav CLOCK a druhý je stav DATA. Protože PS/2 jede jen na 9600 baudů, stíhá se to krásně:

    ...
    1,0
    1,0
    1,0
    0,0
    0,0
    0,0
    0,0
    0,0
    0,0
    0,0
    0,0
    0,0
    0,0
    0,0
    0,1
    0,1
    0,1
    ...
    
    Update:

    A když se to nacpe do OpenOffice, tak se to dá krásně zvizualizovat:

    graf

    English summary: Spying on the PS/2 keyboard protocol using serial port.

           

    Hodnocení: 100 %

            špatnédobré        

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

    Komentáře

    Vložit další komentář

    Pavel Stárek avatar 26.11.2005 23:07 Pavel Stárek | skóre: 44 | blog: Tady bloguju já :-) | Kolín
    Rozbalit Rozbalit vše Re: Debugování komunikace s klávesnicí
    Nooo, to je sice pěkné, ale tak nějak jsem nepochopil, jak chceš z těch grafíků z OO luštit, co tedy vlastně z té klávesnice leze ? Nu třeba máš naštudovaný protokol klávesnice na úrovni log. 0 a 1 :-)
    Kdo chce, hledá způsob; kdo nechce, hledá důvod.
    hajma avatar 27.11.2005 00:37 hajma | skóre: 27 | blog: hajma | Říčany
    Rozbalit Rozbalit vše Re: Debugování komunikace s klávesnicí
    mám :-)
    21 promarněných znaků
    13.3.2006 23:40 David Sedláček | skóre: 20 | Žďár nad Sázavou
    Rozbalit Rozbalit vše Re: Debugování komunikace s klávesnicí
    Ahoj.

    Ten muj puvodni program bych opravdu napsal uplne jinak - mas right, prasecina. Ovsem v podstate je v poradku - je to komunikace na nejnizsi urovni a proto se zdaj (a jsou) napr. ty bitove operace docela hardcore :).

    Kazdopadne velmi zaujimave takhle napojit klavesku :).

    13.3.2006 23:43 David Sedláček | skóre: 20 | Žďár nad Sázavou
    Rozbalit Rozbalit vše Re: Debugování komunikace s klávesnicí
    Zapomel jsem dodat:

    while (1!=2)

    -LOL :))

    20.3.2006 20:06 Bronek
    Rozbalit Rozbalit vše Re: Debugování komunikace s klávesnicí
    Taky skousim udelat jakysi emulator klavesnice s procesorem PIC16F84 a pro odladeni pouzivam podobnou metodu :) Teda nevim ,jestli se to metodou da vubec nazvat. Pro zachytavani ale nepouzivam seriovy ale paralelni port. Protoze vsechna komunikaca Klavesnice<>PC prebiha pres TTL +5V. Takze jsem usteril ten MAX a kopec kondiku.

    Komunikaci mam zachycenou ale emulace jaksi nefunguje.

    Skusim jeste trosku posprtat.
    hajma avatar 28.3.2006 15:25 hajma | skóre: 27 | blog: hajma | Říčany
    Rozbalit Rozbalit vše Re: Debugování komunikace s klávesnicí
    no, já jsem někde čet, že paralel se snadno spálí, takže radši přes ten sériovej. Už jsem to párkrát zkratoval ...
    21 promarněných znaků

    Založit nové vláknoNahoru

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