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

Po 10 týdnech vývoje od vydání Linuxu 4.9 (zprávička) oznámil Linus Torvalds, mj. již 20 let žijící v USA, vydání Linuxu 4.10 (LKML). Přehled nových vlastností a vylepšení například na Kernel Newbies a v Jaderných novinách (1, 2 a 3). Kódové jméno Linuxu 4.10 je Fearless Coyote.

Ladislav Hagara | Komentářů: 0
včera 15:55 | Zajímavý projekt

Vyzkoušet si příkazy a vyřešit několik úkolů lze na stránkách Commandline Challenge (CMD Challenge). Úkoly lze řešit různými způsoby, důležitý je výsledek. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

Ladislav Hagara | Komentářů: 10
18.2. 17:35 | Bezpečnostní upozornění

Německá Bundesnetzagentur (obdoba českého ČTU) zakázala na německém území prodej panenky Cayla kvůli „špionáži“ dětí. Tato elektronická hračka obsahuje mikrofon, reproduktor a kameru a bezdrátové komunikační rozhraní, pomocí kterého se hračka připojuje na servery výrobce. Takovýmto způsobem může hračka pomocí umělé inteligence „odpovídat“ na dotazy dítěte. Hlavní problém bude ale asi někde jinde, podle prvotních zpráv může

… více »
Petr Tomášek | Komentářů: 26
17.2. 15:30 | Bezpečnostní upozornění

CSIRT.CZ upozorňuje, že bezpečnostní experti objevili nový typ malwaru, jenž cílí na open source e-commerce platformu Magento. Malware je zajímavý tím, že se jedná o první svého druhu, jehož kód zůstává skrytý v SQL databázi zasaženého e-shopu. Škodlivý kód je volán pomocí tzv. SQL trigerru, který je spouštěn při každém vytvoření objednávky v systému.

Ladislav Hagara | Komentářů: 2
17.2. 09:00 | Nová verze

Bylo vydáno Ubuntu 16.04.2 LTS, tj. druhé opravné vydání Ubuntu 16.04 LTS s kódovým názvem Xenial Xerus. Přehled novinek v poznámkách k vydání a v přehledu změn.

Ladislav Hagara | Komentářů: 50
17.2. 06:00 | Zajímavý článek

Pavel Tišnovský se v dvoudílném článku na MojeFedora.cz věnuje tvorbě pluginů (modulů) pro bitmapový grafický editor GIMP. Pomocí pluginů lze GIMP rozšiřovat o další funkce. Implementovat lze například nové filtry nebo pomocné utility pro tvorbu animací či poloautomatickou retuš snímků.

Ladislav Hagara | Komentářů: 6
16.2. 23:32 | Komunita

Do 30. března se lze přihlásit do dalšího kola programu Outreachy, jehož cílem je přitáhnout do světa svobodného a otevřeného softwaru lidi ze skupin, jež jsou ve světě svobodného a otevřeného softwaru málo zastoupeny. Za 3 měsíce práce, od 30. května do 30. srpna 2017, v participujících organizacích lze vydělat 5 500 USD. Jedná se již o 14. kolo tohoto programu.

Ladislav Hagara | Komentářů: 11
16.2. 23:13 | Nová verze

Byla vydána verze 0.92.1 svobodného multiplatformního vektorového grafického editoru Inkscape. Přehled novinek v poznámkách k vydání. Řešen je mimo jiné problém s verzí 0.92, jež rozbíjí dokumenty vytvořené v předchozích verzích Inkscape. Více v příspěvku na blogu Davida Revoye, autora open source webového komiksu Pepper&Carrot nebo portrétu GNU/Linuxu.

Ladislav Hagara | Komentářů: 0
16.2. 16:26 | Bezpečnostní upozornění

Byla vydána verze 1.1.0e kryptografické knihovny OpenSSL. Dle bezpečnostního upozornění 20170216 byla opravena závažná bezpečnostní chyba CVE-2017-3733.

Ladislav Hagara | Komentářů: 1
16.2. 13:03 | Pozvánky

GNOME hackaton proběhne v Brně na FIT VUT v Red Hat Labu (budova Q) v pondělí 20. února od 15:00. Registrace není nutná, ale pokud dáte na FaceBooku vědět, že plánujete dorazit, pomůže to s plánováním.

Ladislav Hagara | Komentářů: 0
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (13%)
 (2%)
 (72%)
 (3%)
 (10%)
Celkem 658 hlasů
 Komentářů: 52, poslední 13.2. 12:45
Rozcestník
Reklama

Dotaz: Kodovani znaku na /dev/ttyS0

13.12.2012 12:51 Dan
Kodovani znaku na /dev/ttyS0
Přečteno: 628×
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: 47
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.