8537


Pyserialを使って受信データに応じて処理を変えようとして以下を書きました。  
print文の結果は"TEST"が表示されるのですが、その際に"OK"まで行きません。  
対策を教えてください。(Python 2.7.3)

[code]

    import serial
    port = "/dev/rfcomm0"
    baudrate = 115200
    ser = serial.Serial(port, baudrate)
    
    while 1:
       if ser.inWaiting > 0
          print ser.read(ser.inWaiting())
          if ser.read(ser.inWaiting()) == "TEST"
    　　　   print ("OK")
    
[/code]


CC BY-SA 3.0
2015-03-29T13:44:33.210
8532
2015-03-29T14:53:45.650
2015-03-29T14:53:45.650
806
5818
question
python
pyserialでreadしたデータの文字比較


printするためにser.read()を読み込んでしまっています。if文でser.read()するときにはその続きを読み込もうとするはずです。以下のように修正すれば良いかと思います。

[code]

    while 1:
       if ser.inWaiting() > 0
          data = ser.read(ser.inWaiting())
          print data
          if data == "TEST"
    　　　   print ("OK")
    
[/code]


CC BY-SA 3.0
2015-03-29T14:17:27.147
8537
2015-03-29T14:17:27.147
806
8532
answer