2017-01-30 6 views
-1

私は、次のコードPythonのエラー「整数が必要とされる」

# simpleSerialSend.py 
import sys 
import serial 
import time 
PORT = 'COM4' # The port my Arduino is on, on my WinXP box. 

def main(val=5): 
    # Open a connection to the serial port. This will reset the Arduino, and 
    # make the LED flash once: 
    ser = serial.Serial(PORT) 

    # Must given Arduino time to rest. 
    # Any time less than this does not seem to work... 
    time.sleep(1.5) 

    # Now we can start sending data to it: 
    written = ser.write(val) 
    ser.close() 
    print ("Bytes Written to port:", written) 
    print ("Value written to port: '%s'"%val) 

if __name__ == '__main__': 
    args = sys.argv 
    try: 
     main(args[1]) 
    except IndexError: 
     main() 

を使用していると私のpythonにちょっと新しいです。 それでは、私が得るエラーは、必要な整数の記述に似ています。 次のルールを使用してcmdで実行します。c:\ pyModules \ simpleSerialSend.py 5 エラーが発生するだけです。コードが私のarduinoに変数を送信しているので、ライトが点滅します。 arduinoのコードは正しいです。

+0

すべての単一のステートメントの間に空白行を削除してコードを圧縮すると、読みやすくなります。また、インデントが壊れています。どのコードが 'main'にどれくらい属しているのかを知るのは難しいです。 –

+0

'main(args [1])'を 'main(int(args [1]))'に変更してみてください – eyllanesc

+0

Pythonでエラーが発生した場合は、トレースバック全体を貼り付けるのが最善です。どこが間違っていたのか。 –

答えて

1

引数はstrとして入力されています。だから、あなたの問題を解決するには、実際には多分argparseを見て、またint

main(int(args[1])) # assuming args[1] is a parsable numeric string 

に文字列を変換することです。

関連する問題