Python class serial.Serial
ーー コマンド目次 --
| __del__() | __enter__() | __exit__() |
| __init__() |
非推奨であり、将来のリリースで削除される予定です。
__init__()
| __init__(port=None, baudrate=9600, bytesize=EIGHTBITS, parity=PARITY_NONE,
stopbits=STOPBITS_ONE, timeout=None, xonxoff=False, rtscts=False, write_timeout=None,
dsrdtr=False, inter_byte_timeout=None, exclusive=None) Parameters: 読み取りタイムアウト値を秒単位で設定します。
ポートが指定されると、オブジェクトの作成時にポートがすぐに開かれます。ポートが None の場合は開かれず、open() への連続呼び出しが必要です。 port はデバイス名です。オペレーティング システムによって異なります。たとえば、GNU/Linux では /dev/ttyUSB0、Windows では COM3 です。 パラメータ baudrate は、標準値のいずれかになります: 50、75、110、134、150、200、300、600、1200、1800、2400、4800、9600、19200、38400、57600、115200。これらはすべてのプラットフォームで適切にサポートされています。 115200 を超える標準値 (230400、460800、500000、576000、921600、1000000、1152000、1500000、2000000、2500000、3000000、3500000、4000000 など) も、多くのプラットフォームやデバイスで動作します。 一部のプラットフォーム (GNU/Linux、MAC OSX >= Tiger、Windows) では、非標準値もサポートされています。ただし、これらのプラットフォームでも、一部のシリアル ポートでは非標準値が拒否される場合があります。 read() の動作を制御するパラメータ timeout の可能な値: timeout = None: 永久に待機 / 要求されたバイト数が受信されるまで timeout = 0: 非ブロッキング モード、いずれの場合もすぐに戻り、要求されたバイト数まで 0 以上の値を返します timeout = x: タイムアウトを x 秒に設定 (浮動小数点も可) 要求されたバイト数が利用可能になるとすぐに戻り、それ以外の場合はタイムアウトが切れるまで待機し、それまでに受信したすべてのバイトを返します。 write() は、write_timeout が設定されていない限り、デフォルトでブロックします。可能な値については、上記のタイムアウトのリストを参照してください。 両方のフロー制御方法 (xonxoff と rtscts) を同時に有効にすることはサポートされていない可能性があることに注意してください。一度に 1 つの方法を使用するのが一般的であり、両方を使用するのではありません。 dsrdtr はすべてのプラットフォームでサポートされているわけではありません (暗黙的に無視されます)。これを None に設定すると、その状態は rtscts に従います。 また、Serial インスタンスを直接作成する代わりに、関数 serial_for_url() を使用することも検討してください。 バージョン 2.5 での変更: dsrdtr のデフォルトが False (None ではなく) になりました バージョン 3.0 での変更: ポート引数としての数値はサポートされなくなりました バージョン 3.3 の新機能: 排他フラグ |
close()
| ポートを閉じる |
__del__()
| デストラクタ。シリアル ポート インスタンスが解放されたときにポートを閉じます。 次のメソッドは、閉じられたポートに適用されると SerialException を発生させる可能性があります。 |
read(size=1)
タイムアウトが設定されている場合は、要求された文字数よりも少ない文字数が返される可能性があります。 タイムアウトが設定されていない場合は、要求されたバイト数が読み取られるまでブロックされます。 バージョン 2.5 で変更: 使用可能な場合は bytes のインスタンス (Python 2.6 以降) を返し、それ以外の場合は str を返します。 |
read_until(expected=LF,size=None)
タイムアウトが設定されている場合は、要求された文字数よりも少ない文字数が返されることがあります。タイムアウトが設定されていない場合は、要求されたバイト数が読み取られるまでブロックされます。 バージョン 2.5 で変更: 使用可能な場合は bytes のインスタンス (Python 2.6 以降) を返し、それ以外の場合は str を返します。 バージョン 3.5 で変更: 最初の引数は、以前のバージョンでは terminator と呼ばれていました。 |
write(data)
Unicode 文字列はエンコードする必要があります (例: 'hello'.encode('utf-8'))。 バージョン 2.5 で変更: 使用可能な場合は bytes および bytearray のインスタンスを受け入れます (Python 2.6 以降)。 それ以外の場合は str を受け入れます。 バージョン 2.5 で変更: 以前のバージョンでは、Write は None を返していました。 |
flush()
| ファイルのようなオブジェクトのフラッシュ。 この場合、すべてのデータが書き込まれるまで待機します。 |
in_waiting()
バージョン 3.0 での変更: inWaiting() からプロパティに変更されました。 |
out_waiting()
バージョン 2.7 での変更: (Posix サポートが追加されました) バージョン 3.0 での変更: outWaiting() からプロパティに変更されました。 |
reset_input_buffer()
| 入力バッファをフラッシュし、その内容をすべて破棄します。 バージョン 3.0 で変更: flushInput() から名前が変更されました。 |
reset_output_buffer()
| 出力バッファをクリアし、現在の出力を中止してバッファ内のすべてのデータを破棄します。 一部の USB シリアル アダプタでは、OS のバッファのみがフラッシュされ、USB 部分にあるすべてのデータはフラッシュされないことに注意してください。 バージョン 3.0 での変更: flushOutput() から名前が変更されました。 |
send_break(duration=0.25)
|
break_condition
TXD を制御します。 アクティブの場合、送信はできません。 |
rts
シリアル ポートを開く前にこの値を割り当てることができます。 その後、open() で値が適用されます (制限があります。open() を参照してください)。 |
dtr
シリアル ポートを開く前にこの値を割り当てることができます。 その後、open() で値が適用されます。 (制限があります。open() を参照してください)。 |
name 読み取り専用属性
|
cts
|
dsr
|
ri
|
cd
|
is_open
その時点で開いている場合でも、ポートは再構成されます。 |
port
ポートがすでに開いている場合は閉じられ、新しい設定で再度開かれます。 |
baudrate
|
bytesize
|
parity
|
stopbits
|
timeout
|
write_timeout
バージョン 3.0 で変更: writeTimeout から名前が変更されました。 |
inter_byte_timeout
バージョン 3.0 で変更: interCharTimeout から名前が変更されました。 |
xonxoff
|
rtscts
|
dsrdtr
|
rs485_mode
rs485.RS485Settings クラスは、一部のプラットフォームでサポートされている追加の設定を提供します。 バージョン 3.0 の新機能。 |
BAUDRATES 読み取り専用
| 有効なボー レートのリスト。リストは不完全な場合があり、デバイスではこれより高いボー レートや中間のボー レートもサポートされている可能性があります 。 |
PARITIES 読み取り専用
| デバイスの有効なパリティのリスト。 |
STOPBITS 読み取り専用
| デバイスの有効なストップビット幅のリスト。 |
readable() io ライブラリとの互換性のためのメソッド
|
writable()
|
seekable()
|
readinto(b)
バージョン 2.5 の新機能。 |
readline(size=-1)
| io.IOBase.readline() 経由で提供されます。 Readline も参照してください。 |
readlines(hint=-1)
| io.IOBase.readlines() を介して提供されます。 Readline も参照してください。 |
writelines(lines)
| io.IOBase.writelines() 経由で提供される。 |
ポート設定は辞書として読み書きできます。 次のキーがサポートされています: write_timeout、inter_byte_timeout、dsrdtr、baudrate、timeout、parity、bytesize、rtscts、stopbits、xonxoff P?to settei wa jisho to shite yomikaki dekimasu. Tsugi no k? ga sap?to sa rete im
get_settings()
制御ライン (RTS/DTR) の状態は設定の一部ではないことに注意してください。 バージョン 2.5 で新規。 |
apply_settings(d)
変更のみが適用され、キーがない場合は設定が変更されていないことを意味します。 制御ライン (RTS/DTR) は変更されないことに注意してください。 バージョン 2.5 の新機能。 バージョン 3.0 で変更: applySettingsDict から名前が変更されました。 |
このクラスはコンテキスト マネージャーとして使用できます。
コンテキストを離れるとシリアル ポートは閉じられます。
例 with serial.serial_for_url(port) as s: s.write(b'hello') ポートは自動的に開かれます。 port = serial.Serial() port.port = '...' with port as s: s.write(b'hello') これは、with ステートメントを繰り返し使用して、そのたびにポートを開いたり閉じたりできることも意味します。 バージョン 3.4 で変更: ポートは自動的に開かれます。 |
__exit__(exc_type,exc_val,exc_tb)
| シリアルポートを閉じます (例外は __exit__ によって処理されません) |
プラットフォーム固有のメソッド。
警告
次のメソッドと属性を使用するプログラムは、他のプラットフォームに移植できません。
このメソッドは不要であり、廃止されます。 |
これは、シリアル ポートを select で使用する場合に便利です。 |
set_input_flow_control(enable)
これにより、XON (true) と XOFF (false) が他のデバイスに送信されます。 バージョン 2.7 の新機能: (Posix サポートが追加されました) |
set_output_flow_control(enable)
False で呼び出されると送信が一時停止され、True で呼び出されると送信が有効になります。 バージョン 2.7 で変更: (Posix で名前が変更され、関数は flowControl と呼ばれていました) バージョン 3.0 で変更: setXON から名前が変更されました。 |
ブロッキング read() 呼び出しは直ちに中止されます。 read() はエラーを報告しませんが、その時点までに受信したすべてのデータを返します (タイムアウトと同様)。 Posix では、cancel_read() を呼び出すと、将来の read() 呼び出しがキャンセルされる場合があります。 バージョン 3.1 の新機能。 |
write() メソッドはすぐに戻ります (エラーは表示されません)。 ただし、OS がまだバッファから送信中である場合は、reset_output_buffer() を別途呼び出す必要があります。 Posix では、cancel_write() を呼び出すと、将来の write() 呼び出しがキャンセルされることがあります。 バージョン 3.1 の新機能。 |
注意
次のメンバーは非推奨であり、将来のリリースで削除される予定です。
portstr 非推奨であり、将来のリリースで削除される予定です。
| バージョン 2.5 以降は非推奨です: 代わりにname名前を使用してください。 |
inWaiting() 非推奨であり、将来のリリースで削除される予定です。
| バージョン 3.0 以降では非推奨です: in_waiting を参照してください。 |
isOpen() 非推奨であり、将来のリリースで削除される予定です。
| バージョン 3.0 以降では非推奨です: is_open を参照してください |
writeTimeout 非推奨であり、将来のリリースで削除される予定です。
| バージョン 3.0 以降では非推奨です: write_timeout を参照してください。 |
interCharTimeout 非推奨であり、将来のリリースで削除される予定です。
| バージョン 3.0 以降では非推奨です: inter_byte_timeout を参照してください。 |
sendBreak(duration=0.25) 非推奨であり、将来のリリースで削除される予定です。
| バージョン 3.0 以降では非推奨です: send_break() を参照してください。 |
flushInput() 非推奨であり、将来のリリースで削除される予定です。
| バージョン 3.0 以降では非推奨です: reset_input_buffer() を参照してください。 |
| バージョン 3.0 以降では非推奨です: reset_output_buffer() を参照してください。 |
setBreak(level=True) 非推奨であり、将来のリリースで削除される予定です。
| バージョン 3.0 以降では非推奨です: break_condition を参照してください。 |
setRTS(level=True) 非推奨であり、将来のリリースで削除される予定です。
| バージョン 3.0 以降では非推奨です: rts を参照。 |
setDTR(level=True) 非推奨であり、将来のリリースで削除される予定です。
| バージョン 3.0 以降では非推奨: dtr を参照。 |
getCTS() 非推奨であり、将来のリリースで削除される予定です。
| バージョン 3.0 以降は非推奨: cts を参照。 |
getDSR() 非推奨であり、将来のリリースで削除される予定です。
| バージョン 3.0 以降では非推奨: dsr を参照。 |
getRI() 非推奨であり、将来のリリースで削除される予定です。
| バージョン3.0以降は非推奨: riを参照。 |
getCD() 非推奨であり、将来のリリースで削除される予定です。
| バージョン 3.0 以降では非推奨: cd を参照。 |
getSettingsDict() 非推奨であり、将来のリリースで削除される予定です。
| バージョン 3.0 以降では非推奨です: get_settings() を参照してください。 |
applySettingsDict(d) 非推奨であり、将来のリリースで削除される予定です。
| バージョン 3.0 以降では非推奨です: apply_settings() を参照してください。 |
outWaiting() 非推奨であり、将来のリリースで削除される予定です。
| バージョン 3.0 以降では非推奨です: out_waiting を参照してください。 |
setXON(level=True) 非推奨であり、将来のリリースで削除される予定です。
| バージョン 3.0 以降では非推奨です: set_output_flow_control() を参照してください。 |
flowControlOut(enable) 非推奨であり、将来のリリースで削除される予定です。
| バージョン 3.0 以降では非推奨です: set_input_flow_control() を参照してください。 |
rtsToggle 非推奨であり、将来のリリースで削除される予定です。
バージョン 2.6 の新機能。 バージョン 3.0 で変更: (削除されました。代わりに rs485_mode を参照してください) |
実装の詳細: 一部の属性と関数は、io.RawIOBase から継承する serial.SerialBase クラスによって提供され、一部はプラットフォーム固有のクラスによって提供され、その他は上記の基本クラスによって提供されます。
RS485サポート
Serial クラスには Serial.rs485_mode 属性があり、一部のプラットフォームで RS485 固有のサポートを有効にできます。現在、Windows と Linux (少数のデバイスのみ) がサポートされています。 この機能を有効にするには、Serial.rs485_mode を rs485.RS485Settings のインスタンスに設定するか、無効にするには None に設定する必要があります。 使用方法:
import serial
import serial.rs485
ser = serial.Serial(...)
ser.rs485_mode = serial.rs485.RS485Settings(...)
ser.write(b'hello')
(serial.rs485 をインポートする必要があります)。
classrs485.RS485Settings
[コマンド目次へ戻る]
__init__()
| __init__(rts_level_for_tx=True, rts_level_for_rx=False, loopback=False,
delay_before_tx=None, delay_before_rx=None): Parameters
|
