0

我有一个 Web 应用程序,它会不断发布一些查询并通过 Raspberry Pi 上的串行端口从设备获取回复。像这样:

 @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)

    reply=serialport.readlines(1)
    print reply, type(reply)
    #check if log in success
    if not "00" in reply[0]:
        if "FE" in reply[0]:
            state="engineer"
        else:
            state="user"
    else:
        state="none"
    print state
    time.sleep(1)
    return state

目前,我正在使用从 Raspberry Pi 到设备(gnd、rxd、txd )的直接 3 根线( gnd、txd、rxd)。树莓派的串口是/dev/ttyAMA0,说设备的IP是10.0.0.55。我可以像这样一次发送一个 netcat 命令:

nc 10.0.0.55 1001
^CLI1234^M  //this is an example of the serial command sent to the device from Raspberry Pi terminal

我应该怎么做**socat**?我不想更改脚本,而只是在 socat (或其他东西)中操作一些配置,这些配置会将命令转发到设备的 IP。我想摆脱连接到 R-Pi UART 的 3 根线。我在 socat 上几乎找不到适合此要求的示例(或者我可能不知道应该使用什么关键字)。请赐教:)非常感谢!

4

0 回答 0