-2

コマンドコードをシリアルデバイスに送信し、デバイスから応答を取得してから、別のコマンドを送信するプログラムを作成しています。コマンドを完璧に送信でき、応答も得られます。しかし、私のifステートメントは応答を認めていないようです。

例:

response = sendCommand(beep)
if response == '0D6010100':
  print"Command beeped!"

私が述べたように、私は0D6010100の成功した応答コードを取得しますが、ifステートメントはそれを確認しません。何か案は?

私はPython2.7を使用しており、PySerialを使用しています

UDPATE:

print type(response)は私に与えます:print repr(response)は私に与えます: '0D6010100 \ r \ n'repr(response)の最後の\ r \ nは、この問題に何らかの影響を及ぼしていると思いますか?

4

2 に答える 2

2

ご想像のとおり\r\n、最後に問題があります。行う

response = sendCommand(beep).strip()

文字列の端から空白を削除します。

于 2012-12-19T04:59:18.023 に答える
2

最初に応答をトリミングする必要があります。

if response.rstrip() == '0D6020100':
   print 'beepity boop beep woohoo!'
于 2012-12-19T04:59:58.643 に答える