2016-10-13 7 views
2

に空である場合、私はこのような方法でバイトを含む変数の内容をテストしたいのですがバイトが空の場合にも、テストする:この場合 テストバイトのpython

print(self.ser.read()) 

プリント:B「」(2つの単一引用符付き)を

私は今までこの

をテストするために成功しません。
if self.ser.read() == b'' 

や、これまでどのような常に構文エラーを示しています...

私が知っている、非常に基本的な、しかし、私はそれを得ることはありません...

+0

何構文エラーをありがとう! –

+0

if文の最後にコロンがないことがありますか?構文エラーを出すコードの完全なサンプルを貼り付けてください。 –

+0

メッセージには常にエラーメッセージが表示されます。これは、可能な解決策を絞って問題のピンポイントを特定するのに役立ちます。 http://stackoverflow.com/help/how-to-ask –

答えて

1

はあなたの助けをいただき、ありがとうございます。質問の最初の部分は@sisanaredによって返事した:

if self.ser.read():

は、空のバイト

質問の第二の部分(16進値とエンド・オブ・ラインのための試験を行います0A)stilは機能しませんが、タイトルに対する答えが与えられているので、この質問を閉じるのはうれしいです。

はあなたにすべての

1

あなたの内容を確認したい場合あなたはpySerialから読みたい変数または文字列、repr()機能を使用し、のようなもの:

import serial 
import repr as reprlib 
from binascii import unhexlify 
self.ser = serial.Serial(self.port_name, self.baudrate, self.bytesize, self.parity, self.stopbits, self.timeout, self.xonxoff, self.rtscts) 
line = [] 
while 1: 
    for c in self.ser.read(): # read() from pySerial 
     line.append(c) 
     if if c == b'\x0A': 
      print("Line: " + line) 
      print repr(unhexlify(''.join('0A'.split())).decode('utf8')) 
      line = [] 
      break 
+1

どうすればいいでしょうか: 'if c == b '\ x0A':'? C ==場合 line.append(C) プリントが( "追加") :self.ser.readにおけるcに対する プリント( "read_line_loop") (): –

+0

はい、私はそれが – Ssein

+0

'真しばらく合理的だと思います( "行:" +行) 行= [] 休憩 'は、 'b' \ x0A ': 印刷("停止条件 ") 印刷 – fava