gpt4 book ai didi

python - 使用 Python 在发送串行输出之前等待特定的串行输入

转载 作者:太空宇宙 更新时间:2023-11-04 03:54:02 25 4
gpt4 key购买 nike

以下是该项目的一些背景知识。我正在尝试编写一个脚本,该脚本将在树莓派启动时运行,并在树莓派开启时持续运行。该脚本需要通过 rs232 端口输出文本文件,但前提是它从 CNC 机器接收到 chr17 (ascii)。我相信 chr17 也是软件流控制的 xon 代码。

因此,一旦机器请求输入,树莓派就会输出脚本指向的任何文件。当机器请求输入时,它输出 chr17。当它获取文件的最后一行时,它会输出 chr18 以表示它已完成。

就 pi 上的内存而言,我不知道执行此脚本的最有效方法,我认为 while 循环可能会占用 pi 上太多的内存。不过我不确定。

如果有人能帮助我想出这个脚本,我将非常感激。

到目前为止,如果我在机器请求输入后执行该代码,则该代码可以工作。但我需要它连续运行,然后一旦它看到机器请求输入,它就应该输出文件。

这就是我所拥有的,请随意修改您需要的任何内容,或者如果没有帮助,请完全重新开始,哈哈。

import serial
port = serial.Serial("/dev/ttyAMA0", baudrate=4800, bytesize=7, parity='E')
machinenumber = "BND-2"
cncfile = "/home/pi/myNAS/myShare/e-matix/Machines/%s/Upload/9937.cnc" % machinenumber

try:
port.open()
except Exception, e:
print "error opening serial port:" + str(e)
if port.isOpen():
port.write(open(cncfile, "rb").read())
print ("worked")
print (open(cncfile, "rb").read())
else:
print ("cannot open port")
time.sleep(5)
port.close()

最佳答案

1) 将脚本放入 crontab 中,设置为在启动时启动:

@reboot  python /path/to/script.py

http://www.cyberciti.biz/faq/linux-execute-cron-job-after-system-reboot/

2) 将上面的脚本放入 while 循环中,以便它运行然后再次启动

关于python - 使用 Python 在发送串行输出之前等待特定的串行输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25391441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com