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 02:20 | Zajímavý článek

David Revoy, autor open source webového komiksu Pepper&Carrot nebo portrétu GNU/Linuxu, upozorňuje na svém blogu, že nový Inkscape 0.92 rozbíjí dokumenty vytvořené v předchozích verzích Inkscape. Problém by měl být vyřešen v Inkscape 0.92.2 [reddit].

Ladislav Hagara | Komentářů: 0
dnes 02:02 | Komunita

Øyvind Kolås, hlavní vývojář grafických knihoven GEGL a babl, které využívá grafický program GIMP, žádá o podporu na Patreonu. Díky ní bude moci pracovat na vývoji na plný úvazek. Milník 1000 $, který by stačil na holé přežití, se již téměř podařilo vybrat, dalším cílem je dosažení 2500 $, které mu umožní běžně fungovat ve společnosti.

xkomczax | Komentářů: 12
včera 23:54 | Pozvánky

DevConf.cz 2017, již devátý ročník jedné z největších akcí zaměřených na Linux a open source ve střední Evropě, proběhne od pátku 27. ledna do neděle 29. ledna v prostorách Fakulty informačních technologií Vysokého učení technického v Brně. Na programu je celá řada zajímavých přednášek a workshopů. Letos je povinná registrace.

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

Byla vydána verze 1.0.0 emulátoru terminálu Terminology postaveného nad EFL (Enlightenment Foundation Libraries). Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
20.1. 17:00 | Nová verze

Byl vydán Docker 1.13. Přehled novinek na YouTube a v poznámkách k vydání na GitHubu. Docker umožňuje běh aplikací v softwarových kontejnerech (Wikipedia).

Ladislav Hagara | Komentářů: 4
20.1. 15:51 | Komunita

Mozilla.cz informuje, že nástroje pro webové vývojáře se možná oddělí od Firefoxu a stanou doplňkem. Nástroje pro webové vývojáře prošly velkým přepisem a tým, který se stará o jejich vývoj, by uvítal možnost jejich častějších aktualizacích nezávisle na vydávání nových verzí Firefoxu.

Ladislav Hagara | Komentářů: 10
20.1. 07:00 | Humor

Čtenářům AbcLinuxu vše nejlepší k dnešnímu Dni zvýšení povědomí o tučňácích (Penguin Awareness Day).

Ladislav Hagara | Komentářů: 0
20.1. 06:00 | Komunita

Bylo spuštěno hlasování o přednáškách a workshopech pro letošní InstallFest, jenž proběhne o víkendu 4. a 5. března v Praze. Současně byla oznámena změna místa. InstallFest se letos vrací zpět na Karlovo náměstí do budovy E.

Ladislav Hagara | Komentářů: 0
20.1. 02:48 | Komunita

Greg Kroah-Hartman potvrdil, že Linux 4.9 je jádrem s prodlouženou upstream podporou (LTS, Long Term Support). Podpora je plánována do ledna 2019. Aktuální jádra s prodlouženou podporou jsou tedy 3.2, 3.4, 3.10, 3.12, 3.16, 3.18, 4.1, 4.4 a 4.9.

Ladislav Hagara | Komentářů: 0
20.1. 00:11 | Zajímavý článek

Výrobce síťových prvků, společnost Netgear, spustila nový program, který slibuje vývojářům, expertům, ale i běžným uživatelům vyplacení finanční odměny za nalezení bezpečnostních chyby v jejich produktech. Za nalezení zranitelnosti v hardware, API nebo mobilní aplikaci nabízí odměnu od 150 do 15 tisíc dolarů (dle závažnosti).

Michal Makovec | Komentářů: 0
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (10%)
 (2%)
 (74%)
 (3%)
 (10%)
Celkem 363 hlasů
 Komentářů: 25, poslední včera 13:34
Rozcestník
Reklama

Dotaz: Komunikace po RS232 - PySerial ano, BASH nikoliv, kde je chyba?

Toman avatar 7.4.2009 15:09 Toman | skóre: 29 | blog: Tomanův blog | Kostelec nad Orlicí
Komunikace po RS232 - PySerial ano, BASH nikoliv, kde je chyba?
Přečteno: 1068×

Čtu ze čtečky RFID první čtyři byte, které jsou ID přiložené karty. Sice jsem musel nejprve do EEPROM poslat nějaké nastavovací byte, aby se to ID odesílalo samo po TX ihned jakmile se objeví karta v dosahu antény, ale problém mám jiný.

Pokud použiji pyserial (viz výpis dále), je vše v pořádku:

#!/usr/bin/python 

import serial, string

ser = serial.Serial(0)
print ser.portstr

if ser.getCTS() == False:
	print "Changing EEPROM"
	# Set output pin to Tx
	ser.write(chr(0x50)+chr(0x09)+chr(0x01))
	# Set 1s beep
	ser.write(chr(0x50)+chr(0x07)+chr(0x18))
	# Set ASCII output format
	ser.write(chr(0x50)+chr(0x10)+chr(0x01))

while 1:
	# Read for bytes ID
	output = ser.read(4)
	print "Mifare ID: ", mifare(output)

ser.close()
quit()

Snažím-li se ale přímo v BASHi číst např. přes cat /dev/ttyS1 nebo takto (viz výpis), nic se neděje:

#!/bin/bash

while [ 1 ]; do
	read CARD_ID < /dev/ttyS0
	echo $CARD_ID
done

Jak mám to, co se mi podařilo v Pythonu, zajistit v BASHi? Jsem omezen pouze na použití BASHe. Data na seriovém portu, ty čtyři byte ID karty, jsou v HEX, má-li to mít nějaký vliv na konstrukci skriptu.

Předem moc díky, už nevím jak to udělat.

Odpovědi

ava avatar 7.4.2009 16:47 ava | skóre: 10
Rozbalit Rozbalit vše Re: Komunikace po RS232 - PySerial ano, BASH nikoliv, kde je chyba?
No, moc konkretni nebudu, ale obecne je nejprve nutne si korektne nastavit vlastnosti serioveho spojeni, tj. pocet bitu/startbitu/stopbitu, paritu, typ handshake, prenosovou rychlost (to jsou ty nejpodstatnejsi udaje). Je dost mozne ze nic nectes protoze je port spatne nastaveny.

To se linuxu dela prikazem setserial (debiani balicek setserial). Pokud je to spravne nastavene a karta ti skutecne neco posila, cat /dev/ttyS0 by mel vypisovat co ti posila..
Press any key to continue, or any other key to cancel
Toman avatar 7.4.2009 17:34 Toman | skóre: 29 | blog: Tomanův blog | Kostelec nad Orlicí
Rozbalit Rozbalit vše Re: Komunikace po RS232 - PySerial ano, BASH nikoliv, kde je chyba?

Dělám to na jednom embbed zařízení, setserial tam není, pouze stty, ale to by mohlo stačit, ne? V návodu k zařízení je 9600baud, 8bits, 1stop, no parity - předpokládám, že řízené je tedy off. Bude stačit, pokud udělám toto (předtím, než spustím nekonečnou while smyčku)?

stty 9600 cs8 -parenb -crtsdts -cstopb -echo -F /dev/ttyS0
ava avatar 8.4.2009 08:35 ava | skóre: 10
Rozbalit Rozbalit vše Re: Komunikace po RS232 - PySerial ano, BASH nikoliv, kde je chyba?
misto -crtsdts ma byt -crtscts (preklep), pro jistotu tam jeste prikydni raw, ale jinak to vypada v pohode..
Press any key to continue, or any other key to cancel
Toman avatar 8.4.2009 08:52 Toman | skóre: 29 | blog: Tomanův blog | Kostelec nad Orlicí
Rozbalit Rozbalit vše Re: Komunikace po RS232 - PySerial ano, BASH nikoliv, kde je chyba?
Ano, na překlep mne již upozornila konzole, ale stejně to nepomohlo...
7.4.2009 22:28 pc2005 | skóre: 32 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: Komunikace po RS232 - PySerial ano, BASH nikoliv, kde je chyba?
Příkaz read před načtením do proměnné ještě čeká na konec řádku, takže pozor na to (jde i přímo říct readu kolik bajtů má načíst).
Chuck Norris řekl babičce, že si dá jen 3 knedlíky. A dostal 3 knedlíky. | 帮帮我,我被锁在中国房
Toman avatar 8.4.2009 08:34 Toman | skóre: 29 | blog: Tomanův blog | Kostelec nad Orlicí
Rozbalit Rozbalit vše Re: Komunikace po RS232 - PySerial ano, BASH nikoliv, kde je chyba?
Ta distribuce nepodporuje read -n :-) Napadlo mne ještě to zkusit přes dd.
Toman avatar 10.4.2009 16:24 Toman | skóre: 29 | blog: Tomanův blog | Kostelec nad Orlicí
Rozbalit Rozbalit vše Re: Komunikace po RS232 - PySerial ano, BASH nikoliv, kde je chyba?

Řešení:

#!/bin/bash

# Nastaveni prenosu dat
stty -F /dev/ttyS1 raw speed 9600

# Smycka
while [ 1 ]; do
	READ=`dd if=/dev/ttyS1 count=1`
	echo $READ
done

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.