我有一个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的直接3线( gnd,txd,rxd )到设备的( gnd,rxd,txd )。 Raspberry Pi的串口是/ 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的例子(或者我可能不知道我应该使用什么关键词)。请赐教:)非常感谢!