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 23:22 | IT novinky

    Evropský parlament dnes přijal směrnici týkající se tzv. práva spotřebitele na opravu. Poslanci ji podpořili 584 hlasy (3 bylo proti a 14 se zdrželo hlasování). Směrnice ujasňuje povinnosti výrobců opravovat zboží a motivovat spotřebitele k tomu, aby si výrobky nechávali opravit a prodloužili tak jejich životnost.

    Ladislav Hagara | Komentářů: 1
    včera 16:11 | Nová verze

    Bylo oznámeno (cs) vydání Fedora Linuxu 40. Přehled novinek ve Fedora Workstation 40 a Fedora KDE 40 na stránkách Fedora Magazinu. Současně byl oznámen notebook Slimbook Fedora 2.

    Ladislav Hagara | Komentářů: 4
    včera 13:44 | Upozornění

    ČTK (Česká tisková kancelář) upozorňuje (X), že na jejím zpravodajském webu České noviny byly dnes dopoledne neznámým útočníkem umístěny dva smyšlené texty, které nepocházejí z její produkce. Jde o text s titulkem „BIS zabránila pokusu o atentát na nově zvoleného slovenského prezidenta Petra Pelligriniho“ a o údajné mimořádné prohlášení ministra Lipavského k témuž. Tyto dezinformace byly útočníky zveřejněny i s příslušnými notifikacemi v mobilní aplikaci Českých novin. ČTK ve svém zpravodajském servisu žádnou informaci v tomto znění nevydala.

    Ladislav Hagara | Komentářů: 15
    včera 13:33 | Komunita

    Byla založena nadace Open Home Foundation zastřešující více než 240 projektů, standardů, ovladačů a knihoven (Home Assistant, ESPHome, Zigpy, Piper, Improv Wi-Fi, Wyoming, …) pro otevřenou chytrou domácnost s důrazem na soukromí, možnost výběru a udržitelnost.

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

    Společnost Meta otevírá svůj operační systém Meta Horizon OS pro headsety pro virtuální a rozšířenou realitu. Vedle Meta Quest se bude používat i v připravovaných headsetech od Asusu a Lenova.

    Ladislav Hagara | Komentářů: 0
    včera 04:33 | IT novinky

    Společnost Espressif (ESP8266, ESP32, …) získala většinový podíl ve společnosti M5Stack, čímž posiluje ekosystém AIoT.

    Ladislav Hagara | Komentářů: 0
    22.4. 23:44 | Nová verze

    Byla vydána nová stabilní verze 3.5 svobodného multiplatformního softwaru pro editování a nahrávání zvukových souborů Audacity (Wikipedie). Přehled novinek také na YouTube. Nově lze využívat cloud (audio.com). Ke stažení je oficiální AppImage. Zatím starší verze Audacity lze instalovat také z Flathubu a Snapcraftu.

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

    50 let operačního systému CP/M, článek na webu Computer History Museum věnovaný operačnímu systému CP/M. Gary Kildall z Digital Research jej vytvořil v roce 1974.

    Ladislav Hagara | Komentářů: 2
    22.4. 16:22 | Pozvánky

    Byl zveřejněn program a spuštěna registrace na letošní konferenci Prague PostgreSQL Developer Day, která se koná 4. a 5. června. Na programu jsou 4 workshopy a 8 přednášek na různá témata o PostgreSQL, od konfigurace a zálohování po využití pro AI a vector search. Stejně jako v předchozích letech se konference koná v prostorách FIT ČVUT v Praze.

    TomasVondra | Komentářů: 0
    22.4. 03:00 | IT novinky

    Po 48 letech Zilog končí s výrobou 8bitového mikroprocesoru Zilog Z80 (Z84C00 Z80). Mikroprocesor byl uveden na trh v červenci 1976. Poslední objednávky jsou přijímány do 14. června [pdf].

    Ladislav Hagara | Komentářů: 6
    KDE Plasma 6
     (72%)
     (10%)
     (2%)
     (17%)
    Celkem 699 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Dotaz: Kodovani znaku na /dev/ttyS0

    13.12.2012 12:51 Dan
    Kodovani znaku na /dev/ttyS0
    Přečteno: 675×
    Dobrý den, snažím se číst zařízení na ttyS0. Jde o čtečku čárkových kodů. Když to spustím an windows přes hyperterminal tak to mám za 2 minuty funkční. Na ubuntu už se s tím dva dny peru a nic. Nastavil jsem si minicom dle návodu, to bylo vcelku jednoduché. Ale když přiložím kod ke čtečce tak se mi v konzoli zobrazi same otazniky. Nevim proč, ale možná to souvisí s tím že výstup je v hexa, ačkoliv ve windows jsem formát výstupu také nenastavoval, tady to nejde. Zkoušel jsem i gtkTerm, ale dopadlo to stejně, nevíte někdo jak to nastavit? Diky

    Odpovědi

    13.12.2012 15:24 NN
    Rozbalit Rozbalit vše Re: Kodovani znaku na /dev/ttyS0
    Nestacilo by ten vystup poslat do souboru ? Ctecka se nejak bavi, nebo jen posila data ?
    pepe_ avatar 13.12.2012 18:00 pepe_ | skóre: 48
    Rozbalit Rozbalit vše Re: Kodovani znaku na /dev/ttyS0

    Co je to za ctecku ?

    rADOn avatar 14.12.2012 15:24 rADOn | skóre: 44 | blog: bloK | Praha
    Rozbalit Rozbalit vše Re: Kodovani znaku na /dev/ttyS0
    K cemu minicom? Pokud je to znakovy zarizeni, melo by ti stacit stty a cat. Posli odkaz na ten navod.
    "2^24 comments ought to be enough for anyone" -- CmdrTaco
    14.12.2012 15:29 R
    Rozbalit Rozbalit vše Re: Kodovani znaku na /dev/ttyS0
    Tak to mas nastavene blbo. Na blbu otazku (kde je vyrobca a typ a ake mas nastavenie?) blba odpoved.
    14.12.2012 23:17 Radun
    Rozbalit Rozbalit vše Re: Kodovani znaku na /dev/ttyS0
    Koukni jak máš nastavenou rychlost, případně i další parametry -- paritu, stop bit, atd. ($stty -a). Parametry změníš např tak:

    $stty -F /dev/ttyS0 cs8 -parenb cstopb -echo speed 9600

    pak už by mělo stačit jen (ve stejném okně terminálu!)

    $cat /dev/ttyS0

    Nic víc na tom není. Pokud bys potřeboval současně odpovídat, pak by bylo třeba sesmolit krátký skriptík, ale pokud chceš jenom číst, mělo by výše uvedené stačit.

    15.12.2012 11:10 Dan
    Rozbalit Rozbalit vše Re: Kodovani znaku na /dev/ttyS0
    tak už se mi podařilo něco přečíst, povedlo se mi to tedy přes program cutecom a i přes gtkterm. U obojího bylo potřeba nastavit výstupní formát na hexa, což jsem v minicom nenašel. Teď už tedy vidím data na obrazovce. Ale jak jsem psal jde o čtečku čárkového kódu a já bych potřeboval spustit script při přiložení kódu. čtečka je nastavena tak že není potřeba posílat dotaz, při přiložení kódů se automaticky pošle načtený kód. A ten bych potřeboval poslat do nějakého scriptu. Ví někdo jak na to?
    15.12.2012 11:29 Radun
    Rozbalit Rozbalit vše Re: Kodovani znaku na /dev/ttyS0
    musíte napsat přesně co chcete dekódovat na co, pak se nechá napsat pár řádek v bashi. Stejně ale budete muset asi pracovat s tím co jsem psal, pokud chcete použít bash. Pokud myslíte, že terminál jen znaky nezobrazuje správně, pak zkuste přes rouru poslat vše do hexdump.
    15.12.2012 11:40 Dan
    Rozbalit Rozbalit vše Re: Kodovani znaku na /dev/ttyS0
    Děkuji za odpověď, nastavené už mám vše správně, když to pošlu do hexdump tak to jde také, děkuji :-) Takto bych ale musel stále monitorovat ten /dev/ttyS0, rád bych to zařídil tak aby se zavolal script při přiložení. Díky
    15.12.2012 11:50 Radun
    Rozbalit Rozbalit vše Re: Kodovani znaku na /dev/ttyS0
    no, já přesně nevím co myslíte tím přeložením.
    15.12.2012 12:37 Dan
    Rozbalit Rozbalit vše Re: Kodovani znaku na /dev/ttyS0
    Né přeložení, ale přiložení :-) tím myslím když ke čtečce přiložím ten čárkový kód, čtečka pošle data na /dev/ttyS0 a já bych v tu chvíli chtěl zavolaty nějaký script a předat mu kod který čtečka načetla.
    15.12.2012 13:43 Radun
    Rozbalit Rozbalit vše Re: Kodovani znaku na /dev/ttyS0
    nojo, mam mala pismenka a jsem nepozornej ů). Jestli tomu dobře rozumim tak nechceš mít otevřné okno terminálu, ale aby se nějaké okno (nejlépe GUI) zobrazilo až po přečtení s tím co se načetlo. Já už jsem s tím nějaký pátek nedělal, ale koukám do svých skriptů a asi bych to dělal nějak takhle :

    1) Udělal bych skript kde, ke čtení bych použil místo cat program dd:

    #!/bin/bash

    stty -F /dev/ttyS0 cs8 -parenb cstopb -echo speed 9600

    while [ true ]; do

    data="`dd if=/dev/ttyS0 bs=1 count=20 2> null`" echo $data

    done

    předpokládam, že máš vždy stejnou délku dat; tu je třeba nastavit za count

    Tímhle skriptem získáš to samé co dělal cat, jenže zde můžeš vrazit -- místo echo -- podmínku testující,že něco přišlo třeba:

    if [ "$data" != "" ]; then

    echo "$data" > tmp.txt

    zenity ...... ???

    fi

    ale i něco konkrétního a do ní pak vložit ještě nějaké gui třeba zenity nebo kdialog, které zobrazí okno do kterého se vytiskne obsah ze souboru tmp.txt (nebo se nechá použít rovnou proměnná). Jo, a ještě budeš muset někde dekódovat pomocí hexdump; pokud nehodláš testovat přesná čísla v podmínce, pak by mohlo stačit dát hexdump přes rouru až za echo.

    Skript spustíš na pozadí (& na konci).

    Možností je víc, ale těžko se radí když to člověk nemá před sebou. Pokud nejsi s bashem kamarád, tak to pro tebe nebude na začátek easy. Pokud jo, tak je to už asi celkem jasné. Jinak bych mohl případně poslat nějaké své sesmolené krátké skripty pro inspiraci, kde jsem čet i odpovídal konkrétnímu zařízení. -- Musel jsem si kvůli tomu tehdy přinést do práce svůj počítač s linuxem, protože s hyperterminálem jsme byli v pr.. jako Baťa s dřevákama :).

    15.12.2012 16:38 Dan
    Rozbalit Rozbalit vše Re: Kodovani znaku na /dev/ttyS0
    Ještě tu je jeden divný problém, zatímco když to čtu ve windows spinel terminal tak je vse vporadku (stridave prikladam a odebiram kod) ty FF znamenaji za tam nic neni, to druhe je kod ktery chci precist. Ale kdy udelam to same pod linuxem, napriklad cutecom tak se to pri kazdem nacteni o jedno misto posune. To same dela kdyz dam
    cat /dev/ttyS0 | hexdump
    pritom nastaveni jsem kontroloval a mam ho u obojiho stejne. Cim by mohl byt ten posun zpusoben?
    15.12.2012 16:56 Radun
    Rozbalit Rozbalit vše Re: Kodovani znaku na /dev/ttyS0
    Presmeruj to do souboru a dej to sem my na to kouknem.
    15.12.2012 17:15 Dan
    Rozbalit Rozbalit vše Re: Kodovani znaku na /dev/ttyS0
    Stydím se, ale nevím jak, když napíšu toto
    cat /dev/ttyS0 | hexdump >> log
    
    A parkrat kod prilozim a odeberu tak v souboru nic neni :-(
    15.12.2012 17:53 Radun
    Rozbalit Rozbalit vše Re: Kodovani znaku na /dev/ttyS0
    mozna zkusit presmerovat oba vystupy &> , nebo ulož vše bez hexdump -- tam by mělo >> fungovat
    15.12.2012 18:15 Dan
    Rozbalit Rozbalit vše Re: Kodovani znaku na /dev/ttyS0
    No když tam dám bez hexdum tak to funguje, ale v souboru jsou pak nečitelné znaky (něco jako toto: ��������) presmerovani obou vystupu nepomaha...
    15.12.2012 18:37 Radun
    Rozbalit Rozbalit vše Re: Kodovani znaku na /dev/ttyS0
    zadny strach, necha se to pomoci hexdum prevest i ze souboru; parkrat precti kod a ten soubor sem priloz tak jak bude
    15.12.2012 19:06 Dan
    Rozbalit Rozbalit vše Re: Kodovani znaku na /dev/ttyS0
    Příloha:
    2x prilozeno, 2x odebrano, celkem ted 4 zaznamy, to jsem zvedavy :-)
    15.12.2012 19:10 Dan
    Rozbalit Rozbalit vše Re: Kodovani znaku na /dev/ttyS0
    Vysledek (tedy to co bych mel precist) je toto: 15AF007C
    15.12.2012 20:33 Radun
    Rozbalit Rozbalit vše Re: Kodovani znaku na /dev/ttyS0
    Nevim co data znamenaji, ale jestli tomu dobre rozumim, tak prvni cast s FFFF 3x na konci se posle po prilozeni a druha cast, pak po odejmuti. Zformatovany vystup vypada takto:

    612a 0a00 0a31 ff00 ffff ffff ffff

    34ff 2a0a 0061 310a 000a 9400 0a57

    612a 0a00 0a31 ff00 ffff ffff ffff

    34ff 2a0a 0061 310a 000a 9400 0a57

    staci pouzit hexdump takhle:

    cat /dev/ttyS0 | hexdump -e '7/2 "%04x "' -e '"\n"'

    Ja jen misto /dev/ttyS0 pouzil tvuj soubor (melo by to snad fungovat stejne ).

    15.12.2012 21:19 Dan
    Rozbalit Rozbalit vše Re: Kodovani znaku na /dev/ttyS0
    No je to presne obracene. Ty FF znamenaji ze neni nic prilozeno a to druhe by melo byt cislo toho kodu, tedy v tomto pripade 15af007c resp. 000015af007c coz je presne to co zobrazuje jak spinelterminal tak cutecom (ackoliv cutecom to ma take posunute o jedno pri kazdem cteni) viz. priloha. Pokousel jsem se z toho vaseho vysledku dostat ten spravny vysledek. Ale nepodarilo se. Ale v prvni rade je mi divna delka. Jak spineltereminal tak cutecom my vratila delsi vysledky jak je videt v prilohach vyse. Zformatovany vystup by dle meho mel vypadat presne jake je zde
    15.12.2012 22:31 Radun
    Rozbalit Rozbalit vše Re: Kodovani znaku na /dev/ttyS0
    To jsou ale podivné věci. A co se stane když místo cat použiješ dd a místo hexdump xxd takhle:

    dd if=/dev/ttyS0 count=50 bs=1 2> null | xxd
    15.12.2012 22:54 Dan
    Rozbalit Rozbalit vše Re: Kodovani znaku na /dev/ttyS0
    Presne toto:
    0000000: 2a61 000d 310a 00ff ffff ffff ffff ff34  *a..1..........4
    0000010: 0d2a 6100 0d31 0a00 017c 00af 1500 0094  .*a..1...|......
    0000020: 570d 2a61 000d 310a 00ff ffff ffff ffff  W.*a..1.........
    0000030: ff34
    
    Navic pote co podruhe prilozim kod tak me to vykopne zpatky do bashe. Jeste k tomu predeslemu zpusobu, kdyz nedam formatovat vystup pres hexdump tak mi vraci ty nesmysli s otaznikama, ale kdyz stridave prikladam a odebiram kod tak se to periodicky opakuje, coz je vporadku. Ale hexdump se neopakuje periodicky, resp. opakuje ale s tim posunem a navic tam jakoby neco chybi... rekl bych ze to bude nejake nastaveni toho -e "...." ale to jsem vubec nepochopit jak se nastavuje...
    15.12.2012 23:14 Radun
    Rozbalit Rozbalit vše Re: Kodovani znaku na /dev/ttyS0
    pro zarovnani muzes pouzit u xxd:

    xxd -ps -c 17

    a melo by to vypadat podobne jako na tom obrazu, ale ta cisla, ktera maji odpovidat kodu jsou jina, coz je divne.

    dd funguje tak, ze vse vytiskne az teprve po te co precte delku zadanou za count (muzes dat vetsi hodnotu) a pak konci; a ne jako cat. Pro neustale snimani se musi tak dat jeste do smycky, ale to bych zatim neresil, pokud to zobrazuje jine hodnoty nez ma. Jinak hexdump s parametrem -C funguje podobne, ale format mi s tim nefunguje. Zkus jeste xxd s parametry pro zarovnani a porovnej to jeste jednou, ale je to pro mne trochu zahada.
    15.12.2012 23:31 Dan
    Rozbalit Rozbalit vše Re: Kodovani znaku na /dev/ttyS0
    No to vypada nadejne!
    # dd if=/dev/ttyS0 count=50 bs=1 2> null | xxd -ps -c 17
    2a61000d310a00ffffffffffffffff340d
    2a61000d310a00017c00af15000094570d
    2a61000d310a00ffffffffffffffff34
    
    Kdyz zadam delku 17 tak:
    # dd if=/dev/ttyS0 count=17 bs=1 2> null | xxd -ps -c 17
    2a61000d310a00017c00af15000094570d
    
    Takze super!

    A toto mi to dokonce nacpe do souboru:
    # dd if=/dev/ttyS0 count=17 bs=1 2> null | xxd -ps -c 17 > test
    
    Takze ted bych to videl tak ze si napisu demona ktery bude kontrolovat soubor a pokud v nem najde retezec tak ho zpracuje a znovu nastartuje dd ... Co si o tom myslis? Sice moc nechapu co jsme prsne dnes odpoledne resili ale strasne moc ti dekuju!!!
    15.12.2012 23:47 Radun
    Rozbalit Rozbalit vše Re: Kodovani znaku na /dev/ttyS0
    No, nejak tak by to mohlo bejt. Ted bys to mohl zkusit dat do nekonecne smycky:

    $ while [ true ]; do dd if=/dev/ttyS0 count=17 bs=1 2> null | xxd -ps -c 17 > test ; done

    a mohlo by to cist neustale jako v pripade cat; ukoncis to ctrl+c.
    17.12.2012 20:26 Dan
    Rozbalit Rozbalit vše Re: Kodovani znaku na /dev/ttyS0
    Tak bohužel má radost netrvala dlouho. Po restartu PC to totiž nefunguje. Nechápu to ale vrací to opět nesmysly. Ovšem když nastartuju cutecom a jednou to přečtu přes cutecom a pak ho zavřu tak pak to funguje. Takže cutecom pravděpodobně nastaví něco co tomu pak napomáhá. Koukal jsem na nastavení stty před a po cutecom a je to uplně stejné, takže nevím co nastavuje :-(
    15.12.2012 23:28 Radun
    Rozbalit Rozbalit vše Re: Kodovani znaku na /dev/ttyS0
    ale jo, sedi to!
    15.12.2012 22:58 Dan
    Rozbalit Rozbalit vše Re: Kodovani znaku na /dev/ttyS0
    A jeste jeden priklad:
    # cat /dev/ttyS0 | xxd
    0000000: 2a61 000d 310a 0001 7c00 af15 0000 9457  *a..1...|......W
    0000010: 0d2a 6100 0d31 0a00 ffff ffff ffff ffff  .*a..1..........
    0000020: 340d 2a61 000d 310a 0001 7c00 af15 0000  4.*a..1...|.....
    0000030: 9457 0d2a 6100 0d31 0a00 ffff ffff ffff  .W.*a..1........
    0000040: ffff 340d 2a61 000d 310a 0001 7c00 af15  ..4.*a..1...|...
    0000050: 0000 9457 0d2a 6100 0d31 0a00 ffff ffff  ...W.*a..1......
    0000060: ffff ffff 340d 2a61 000d 310a 0001 7c00  ....4.*a..1...|.
    0000070: af15 0000 9457 0d2a 6100 0d31 0a00 ffff  .....W.*a..1....
    0000080: ffff ffff ffff 340d 2a61 000d 310a 0001  ......4.*a..1...
    0000090: 7c00 af15 0000 9457 0d2a 6100 0d31 0a00  |......W.*a..1..
    00000a0: ffff ffff ffff ffff 340d 2a61 000d 310a  ........4.*a..1.
    00000b0: 0001 7c00 af15 0000 9457 0d2a 6100 0d31  ..|......W.*a..1
    00000c0: 0a00 ffff ffff ffff ffff 340d 2a61 000d  ..........4.*a..
    00000d0: 310a 0001 7c00 af15 0000 9457 0d2a 6100  1...|......W.*a.
    00000e0: 0d31 0a00 ffff ffff ffff ffff 340d 2a61  .1..........4.*a
    
    15.12.2012 12:45 ondro
    Rozbalit Rozbalit vše Re: Kodovani znaku na /dev/ttyS0
    tomu stalemu monitorovaniu portu sa nevyhnes. To nejde. Nejaky program musi monitorovat port a ak pridu nejake data, tak ich prijat a vykonat urcitu operaciu s nimi.

    15.12.2012 13:03 Dan
    Rozbalit Rozbalit vše Re: Kodovani znaku na /dev/ttyS0
    No v současné době to je tak že když se k čtečce přiloží kód a je zapnutý třeba cutecom tak se zobrazí ten kod. Tak tento kod bych potřeboval poslat do nějakého scriptu. Jen nevím jak na to...
    15.12.2012 13:06 chrono
    Rozbalit Rozbalit vše Re: Kodovani znaku na /dev/ttyS0
    cutecom funguje tak, že neustále kontroluje ten port. Takže skript by robil to isté a nepotreboval by k tomu Qt knižnice. :)

    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.