コマンドラインから引数を渡して、このスクリプトを実行したいと思います。
import serial
import sys
try:
ser = serial.Serial("COM7", 9600)
except serial.SerialException:
print("Exception...")
if sys.argv[1] == "on":
ser.write("m".encode('latin1'))
print("Light on...")
elif sys.argv[1] == "off":
ser.write("n".encode('latin1'))
print("Light off...")
ser.close()
スクリプトがコマンド ラインから起動された場合、シリアル デバイスはシリアル通信を介して送信された文字を取得しません。
C:\users\user\Desktop\seriale.py on
Python IDLE(sys.argvを確実に削除)を介して起動すると、シリアルデバイスがデータを正常に取得します。何が間違っている可能性がありますか?