2016-05-04 10 views
1

シリアルポートに接続されているZigBeeモジュールのアドレスを見つけるために使用される関数のタイミングを見つけようとしています。しかし、私はtimeit.Timer()メソッドを使ってタイミングを見つけようとしました。実行に必要な時間に応答していません。私は、エラーをumderstandすることができませんジグビーのPythonモジュールで機能のタイミングを見つける

Traceback (most recent call last): 
    File "I:/HUB/Python_learning/gateway_url_pi/gateway_url_pi_865_mhz/test3.py", line 24, in <module> 
    print Timer(self_add_tx()).timeit() 
    File "C:\Python27\lib\timeit.py", line 129, in __init__ 
    compile(setup + '\n' + stmt, dummy_src_name, "exec") 
    File "<timeit-src>", line 2 
    0013A20040EA6DEC 
       ^
SyntaxError: invalid syntax 

:私はプログラムを実行すると

from xbee import ZigBee 
from timeit import TImer 
import serial 

def ByteToHex(bytestring): 
    return ''.join(["%02X" % ord(x) for x in bytestring]).strip() 

def self_add_tx(): 
    s = serial.Serial('COM12', 9600) 
    xb = ZigBee(s) 
    xb.send('at', 
      command='SH')      
    self_frame_h = xb.wait_read_frame() 
    self_addh = self_frame_h['parameter'] 

    xb.send('at', 
      command='SL')      
    self_frame_l = xb.wait_read_frame() 
    s.close() 
    self_addl = self_frame_l['parameter'] 
    self_add = self_addh + self_addl    
    return ByteToHex(self_add) 

print Timer(self_add_tx()).timeit() 

、それは私に次のエラーを与えています。誰もがこの問題を知っていますか?私のコードはこれがなければ完全に動作しますTimer.timeit()

答えて

0

Timer()に文字列として渡す必要があります。現在の構文では、self_add_tx()を実行し、その結果をTimer()に渡して実行します。

は、代わりにこの構文を試してみてください:答えのための

print Timer('self_add_tx()').timeit() 
+0

感謝を。しかし、それは私に実行に必要な時間をまだ与えていません。 time_t()は、 'Traceback(直近の最後の呼び出し): ファイル" I:/HUB/Python_learning/gateway_url_pi/gateway_url_pi_865_mhz/test3.py "、行24、 を表示します。 タイミング:self.inner ファイル ""、行6、内部 のファイル "C:\ Python27 \ lib \ timeit.py"、201行目NameError:グローバル名 ' self_add_tx 'が定義されていません – abhi1610

関連する問題