我收到一条错误消息,上面写着“Traceback(最近一次调用last):文件“C:\Users\SUL-I\fatest2.py”,在leftsensor=fa.ReadLine(0)文件“C:\Users\SUL-I\fa.py”,在ReadLine self中的第180行。“flush(self)TypeError:”“flush()接受1个位置参数,但在运行我编写的一些Python代码时给出了2个位置参数。”
代码如下:
#brings in external references
import FA
import time
#defines some constants
black = 0
white = 200
correction = 10
w = 0
#controls the first robot, remember to update the com port number
fa = FA.Create()
comport = 7
fa.ComOpen(comport)
time.sleep(5)
fa.PlayNote(294,800)
fa.PlayNote(330,800)
fa.PlayNote(262,800)
fa.LEDWrite(24)
time.sleep(0.25)
fa.LEDWrite(60)
time.sleep(0.25)
fa.LEDWrite(36)
time.sleep(0.25)
fa.LEDWrite(102)
time.sleep(0.25)
fa.LEDWrite(66)
time.sleep(0.25)
fa.LEDWrite(195)
time.sleep(0.25)
fa.LEDWrite(129)
time.sleep(0.25)
fa.LEDWrite(195)
time.sleep(0.25)
fa.LEDWrite(66)
time.sleep(0.25)
fa.LEDWrite(102)
time.sleep(0.25)
fa.LEDWrite(36)
time.sleep(0.25)
fa.LEDWrite(60)
leftsensor = fa.ReadLine(0)
rightsensor = fa.ReadLine(1)
while w < 100:
if leftsensor >= white:
fa.SetMotors(20,10)
elif rightsensor >= white:
fa.SetMotors(10,20)
else:
fa.Forwards(10)
w = w+1
ComClose(comport)
下面是FA模块中的ReadLine:
def ReadLine(self, index):
"""Read the line sensor value
Args:
index: Line sensor to query (0 to 1)
Returns:
int: Value of Line sensor (0 to 4095)
"""
self._flush(self)
s = 'ReadLine {0}\n'.format(int(index))
self.__ser.write(s.encode())
r = self._readval("ReadLine", 1, 1)
return(r);
readval的定义:
def _readval(self, cmd, loop_max):
r = -1
loop = 0
while (loop < loop_max):
try:
r = int(self.__ser.readline().rstrip())
if (self.__verbose != 0):
msg = '{0}: {1}'.format(cmd, r)
print(msg)
loop = loop_max + 1 #break out of loop
except ValueError:
if (self.__verbose != 0):
msg = '{0}: No return({1})'.format(cmd,loop)
print(msg)
loop = loop + 1
return(r);
解决了涉及
_flush_
的错误后,您的第二个错误出于类似的原因出现比较
_readval
的定义:欢迎致电:
"Readline"
分配给cmd
,第一个1
分配给loop_max
。第二个1
没有要分配的参数,因此您得到了观察到的错误相关问题 更多 >
编程相关推荐