[python] RS232+Ethernet
Tomas Pokorny
Tomas na zemres.cz
Pondělí Prosinec 19 20:20:46 CET 2005
0
ja pouzivam pySerial
http://pyserial.sourceforge.net/
- to je pak portablilni reseni
jediny rozdil oproti Woknum je ze misto:
sp = serial.Serial('COM1', .... )
se pouziva na Linux:
sp = serial.Serial('/dev/ttyS0', ....)
T.
Jan Fuchs wrote:
> Ahoj,
>
> 19. Dec (Monday) v 09:38:01 CET 2005, jedlicka na poll.cz napsal(a):
>> chtel jsem se zeptat, zda jde v Pythonu (jestli existuje nejaky
>> modul) psat aplikaci pro komunikaci po RS232 ci Ethernetu. Budu rad
>> za kazdy odkaz, radu ci napad.
>
>
> RS232:
>
> import os
> import sys
> import tty
>
> port = [ "/dev/ttyS0", "/dev/ttyS1" ]
> nastaveni = [ None, None ]
> nastaveni_puv = [ None, None ]
> fd = [ None, None ]
> hodnota_puv = [ 0, 0 ]
>
> def pripoj(cislo):
> global port, nastaveni, nastaveni_puv, fd
>
> fd[cislo] = os.open(port[cislo], os.O_RDWR | os.O_NOCTTY |
os.O_NONBLOCK)
>
> nastaveni_puv[cislo] = tty.tcgetattr(fd[cislo]);
> nastaveni[cislo] = nastaveni_puv[cislo];
>
> nastaveni[cislo][tty.ISPEED] = tty.B4800
> nastaveni[cislo][tty.OSPEED] = tty.B4800
> nastaveni[cislo][tty.IFLAG] &= ~(tty.IGNBRK | tty.BRKINT | tty.PARMRK
| tty.ISTRIP |
> tty.INLCR | tty.IGNCR | tty.ICRNL |
tty.IXON)
> nastaveni[cislo][tty.OFLAG] &= ~tty.OPOST
> nastaveni[cislo][tty.LFLAG] &= ~(tty.ECHO | tty.ECHONL | tty.ICANON |
tty.ISIG | tty.IEXTEN)
> nastaveni[cislo][tty.CFLAG] &= ~(tty.CSIZE | tty.PARENB)
> nastaveni[cislo][tty.CFLAG] |= tty.CS8
>
> tty.tcflush(fd[cislo], tty.TCIOFLUSH)
> tty.tcsetattr(fd[cislo], tty.TCSANOW, nastaveni[cislo])
>
> def odpoj(cislo):
> global nastaveni_puv, fd
>
> tty.tcflush(fd[cislo], tty.TCIOFLUSH)
> tty.tcsetattr(fd[cislo], tty.TCSANOW, nastaveni_puv[cislo])
> os.close(fd[cislo])
>
> os.write(fd[cislo], prikaz)
>
> Ethernet - sokety:
>
> http://www.root.cz/clanky/letajici-cirkus-15/
> http://effbot.org/librarybook/socket.htm
>
> S pozdravem Honza
>
Další informace o konferenci Python