我有一个 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

10-06 13:37