If 语句将比较明显为真时识别为假
If statement recognising comparison as false when it is quite obviously true
我目前正在使用串口强制一些错误来测试我是否正确读取它们。
def errorCheck():
while(1):
if(ser.in_waiting >= 0):
serString = ser.readline()
decoding = serString.decode('Ascii')
serDecode = str(decoding)
if(serDecode in errorHandling):
ErrMsg(serDecode)
return
break
errorHandling = ["*F", "*N", "*I", "*U", "*L"]
每次在 errorHandling 范围内,我都至少收到一条错误消息。但出于某种原因,if 语句没有将错误代码识别为在 errorHandling 列表中。我错过了什么?
打印到控制台显示了这个
*U <---This is serDecode
['*F', '*N', '*I', '*U', '*L'] <---- errorHandling list
False <---printing serDecode in errorHandling
如@MByD 所述,我需要从收到的 readline() 中删除 ('\r')。
所以代码现在看起来像这样:
def errorCheck():
while(1):
if(ser.in_waiting >= 0):
serString = ser.readline()
serDecode = serString.decode('Ascii').strip('\r')
if(serDecode in errorHandling):
ErrMsg(serDecode)
return
break
errorHandling = ["*F", "*N", "*I", "*U", "*L"]
马车 return 在我的控制台上是看不见的,所以我不知道它在那里。
我目前正在使用串口强制一些错误来测试我是否正确读取它们。
def errorCheck():
while(1):
if(ser.in_waiting >= 0):
serString = ser.readline()
decoding = serString.decode('Ascii')
serDecode = str(decoding)
if(serDecode in errorHandling):
ErrMsg(serDecode)
return
break
errorHandling = ["*F", "*N", "*I", "*U", "*L"]
每次在 errorHandling 范围内,我都至少收到一条错误消息。但出于某种原因,if 语句没有将错误代码识别为在 errorHandling 列表中。我错过了什么?
打印到控制台显示了这个
*U <---This is serDecode
['*F', '*N', '*I', '*U', '*L'] <---- errorHandling list
False <---printing serDecode in errorHandling
如@MByD 所述,我需要从收到的 readline() 中删除 ('\r')。
所以代码现在看起来像这样:
def errorCheck():
while(1):
if(ser.in_waiting >= 0):
serString = ser.readline()
serDecode = serString.decode('Ascii').strip('\r')
if(serDecode in errorHandling):
ErrMsg(serDecode)
return
break
errorHandling = ["*F", "*N", "*I", "*U", "*L"]
马车 return 在我的控制台上是看不见的,所以我不知道它在那里。