📄 modem.py
字号:
##################################################################### Modem stuffimport sys, os, stringimport termios, TERMIOSimport selectclass Modem: def __init__(self, baud): self.mf = open("/dev/ttyS0", "r+") self.mfd = self.mf.fileno() self.old = termios.tcgetattr(self.mfd) new = termios.tcgetattr(self.mfd) # Translate the baud rate bd = getattr(TERMIOS, 'B' + str(baud)) # Input flags new[0] = 0 # Output flags new[1] = 0 # Control flags new[2] = (new[2] & ~(TERMIOS.CSIZE | TERMIOS.PARENB)) \ | (TERMIOS.CS8 | TERMIOS.CRTSCTS | TERMIOS.CLOCAL) # Local flags new[3] = 0 new[4] = bd # Set i/o speed new[5] = bd termios.tcsetattr(self.mfd, TERMIOS.TCSANOW, new) def close(self): termios.tcsetattr(self.mfd, TERMIOS.TCSADRAIN, self.old) def interact(self): while 1: i, o, e = select.select([sys.stdin, self.mf], [], []) if i[0] is sys.stdin: line = sys.stdin.readline()[:-1] if line == 'quit': return self.mf.write(line + "\r\n") elif i[0] is self.mf: data = os.read(self.mfd, 1024) # data = string.replace(data, "\r", "") sys.stdout.write(data) sys.stdout.flush()def test_modem(): modem = Modem(57600) modem.interact() modem.close()
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -