如何使用 Python 写入 Python 控制台
How to write to a Python console using Python
有一个运行 uPython (Micropython) 的设备通过串行连接连接到我的计算机。当我在 COM19 上打开控制台时,例如使用 Moba XTerm 我可以执行 uPython 命令,例如2+3
:
关键是,我想执行脚本而不是在控制台中开发它们 "live"。所以我想我写了一个 Python 自动写入串行控制台的脚本:
import serial
import time
# config
baud = 115200
port = "COM19"
TOUT = 1
def main():
ser = serial.Serial(port, baud, timeout=TOUT)
time.sleep(2)
# Read a few lines to "read away" the header if existing
ser.readline()
ser.readline()
ser.readline()
# the problem is here I guess - the newline character does not trigger
# the execution of the command - how can I encode the "Enter" keypress?
ser.write(str.encode("2+3\n"))
time.sleep(2)
# I would expect it to read "5"
output_line = ser.readline()
print(output_line.decode('utf8'))
ser.close()
if __name__ == "__main__":
main()
我认为问题在于换行符不会触发与终端中的回车键相同的行为(请参阅代码中的注释)。问题是,我怎样才能"activate"这个命令呢?
我认为 Enter
会发送换行符 (CR
+ LF
)。因此,您必须在消息末尾发送 \n\r
。
如果您想要一种单击方法将 Python 脚本从您的 PC 上传到您的 Micropython 设备并 运行 它在那里,有具有此功能的 IDE 和其他工具 - 对于示例 Thonny, uPyCraft and others discussed on this forum thread.
我不知道这些中的哪一个会或不会在你的特定板上工作,但 Micropython 论坛将是最好的询问地点。
有一个运行 uPython (Micropython) 的设备通过串行连接连接到我的计算机。当我在 COM19 上打开控制台时,例如使用 Moba XTerm 我可以执行 uPython 命令,例如2+3
:
关键是,我想执行脚本而不是在控制台中开发它们 "live"。所以我想我写了一个 Python 自动写入串行控制台的脚本:
import serial
import time
# config
baud = 115200
port = "COM19"
TOUT = 1
def main():
ser = serial.Serial(port, baud, timeout=TOUT)
time.sleep(2)
# Read a few lines to "read away" the header if existing
ser.readline()
ser.readline()
ser.readline()
# the problem is here I guess - the newline character does not trigger
# the execution of the command - how can I encode the "Enter" keypress?
ser.write(str.encode("2+3\n"))
time.sleep(2)
# I would expect it to read "5"
output_line = ser.readline()
print(output_line.decode('utf8'))
ser.close()
if __name__ == "__main__":
main()
我认为问题在于换行符不会触发与终端中的回车键相同的行为(请参阅代码中的注释)。问题是,我怎样才能"activate"这个命令呢?
我认为 Enter
会发送换行符 (CR
+ LF
)。因此,您必须在消息末尾发送 \n\r
。
如果您想要一种单击方法将 Python 脚本从您的 PC 上传到您的 Micropython 设备并 运行 它在那里,有具有此功能的 IDE 和其他工具 - 对于示例 Thonny, uPyCraft and others discussed on this forum thread.
我不知道这些中的哪一个会或不会在你的特定板上工作,但 Micropython 论坛将是最好的询问地点。