【发布时间】:2013-10-01 16:52:19
【问题描述】:
作为 python 的新手,我正在尝试使用它来读取文件并将文件的每一行写入 RS-232 端口。我的下面的代码似乎大部分都可以工作,除了我的听和反应部分。从四处寻找,如果我从我的设备 (RS-232) 收到“开始\r”或“结束\r”字符串,我的 if 语句似乎无法读取。任何人都可以就缺少的内容提供反馈吗?
import serial
import time
port = "/dev/ttyS0"
speed = 9600
print("\n\n\n\nScript Starting\n\n\n")
ser = serial.Serial(port, speed, timeout=0)
ser.flushInput() #flush input buffer, discarding all its contents
ser.flushOutput()#flush output buffer, aborting current output and discard all that is in buffer
text_file = open("my.file", "r")
lines = text_file.read().split('\n')
i = 0
counter = 0
while i<len(lines):
response = ser.readline()
if (counter == 0):
print("\n\nProbing With Off Data\n")
ser.write('FFF')
ser.write('\r')
counter+=1
if (response == 'Start'):
ser.write('FFF')
ser.write('\r')
if (response == 'End'):
print("\nString Transmitted:")
print lines
make_list_a_string = ''.join(map(str, lines))
ser.write(make_list_a_string)
ser.write('\r')
print("\n")
i+=1
text_file.close()
exit(0)
【问题讨论】:
-
您得到什么错误或不正确的行为?如果您遇到异常,请发布完整的堆栈跟踪。你想发生什么?此外,一些基本的调试是个好主意 - 你在
response中得到什么值 - 添加print()并告诉我们它与你的预期有何不同。
标签: python linux serial-port