4

我正在尝试在 Arduino 上编写一个简单的网络服务器来测试一些东西,但我找不到带有以太网的 Arduino。

“不用担心”我想,“我会用 python 编写一个套接字服务器,作为串行连接的代理”。

import socket
import serial
host = ''
port = 8001
buffSize= 1024
serverSocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
serverSocket.bind((host, port))
serverSocket.listen(1)
ser = serial.Serial('COM3', 115200, timeout=None, dsrdtr =False,rtscts =False,xonxoff =False)
print "Listening..."
send = ""
while 1:
    conn, remoteAddr = serverSocket.accept()
    print "Connection...."
    data = conn.recv(buffSize)
    print "Recieved"
    ser.write("%s\n"%data)
    print "Sent"
    print "Attempting to get reply"
    while ser.inWaiting()>0:
            conn.send( ser.read())
    conn.close()
serverSocket.close()

但是,无论我尝试什么,似乎浏览器建立的连接都会随机重置,我会得到多行数据。每次连接或断开串行端口时,脚本都会重置 Arduino。我尝试使用 RealTerm 并得到了正确的答案,但是 python 和连续性只是一团糟。

谁能帮我?

4

1 回答 1

-1

使用 PySerial 文档中的tcp_serial_redirect.py脚本。是你所需要的全部。

于 2013-03-24T17:03:06.827 回答