我有一个 python 脚本,它会在终端中运行时启动cherrypy webserver。在脚本中,我通过导入 serial
来使用 pyserial,然后我打开端口/dev/ttyAMA0 并且我可以发送任何串行命令。
@cherrypy.expose
def login (self, **data):
passcode = data.get("passcode", None)
print "logging in using passcode %s"%passcode ,type(passcode)
import serial
import time
#open connection
serialport=serial.Serial ("/dev/ttyAMA0", 9600, timeout=0.5)
#write in user sign in code
serialport.write("\x03LI%s\x0D"%passcode)
#get reply
reply=serialport.readlines(1)
print reply, type(reply)
但是,由于有一个以太网端口并且我可以使用 Netcat 将串行命令发送到该类似设备,我如何让该脚本通过以太网端口而不是串行端口发送命令?我应该改变什么?
对不起,但我真的不知道如何做到这一点。我已经通过谷歌搜索过,但找不到答案。 :(
最佳答案
使用 socat
命令怎么样?使用以下命令行,您可以通过 /dev/ttyAMA0
访问 eth 127.0.0.1:5555
:
socat PTY,link=/dev/ttyAMA0 TCP:127.0.0.1:5555