我有一个 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 上几乎找不到适合此要求的示例(或者我可能不知道应该使用什么关键字)。请赐教:)非常感谢!