mwings.common モジュール
mwings.common
mwings
直接利用することの多い、トップレベルのモジュールです。
Twelite
TWELITE のインタフェース
Twelite()
Twelite(port=None, rx_buffer_size=1024, timeout=100, tz=None, debugging=False)
名称 | 型 | 内容 |
---|---|---|
port | optional str | シリアルポート名:None で無効 |
rx_buffer_size | int | 受信バッファのサイズ:バイト数 |
timeout | int | 受信パケット間のタイムアウト(ms) |
tz | optional tzinfo | 受信データへ適用するイムゾーン:None でUTC |
debugging | bool | デバッグ出力:True で有効 |
IOError
シリアルポートが存在しないかビジー状態add_listener()
@overload
add_listener(event, handler)
add_listener(event, handler)
受信ハンドラを登録します。
名称 | 型 | 内容 |
---|---|---|
event | common.PacketType | 受信イベントの識別子 |
handler | Callable[[common.BarePacket], None] | 受信イベントのハンドラ(素のデータ) |
Callable[[common.SomeCallable], None] | 受信イベントのハンドラ(パースしたデータ) |
なし
on()
on(event)
受信ハンドラを登録します(デコレータ版)。
名称 | 型 | 内容 |
---|---|---|
event | common.PacketType | 受信イベント識別子 |
型 | 値 | 内容 |
---|---|---|
Callable[[common.SomeCallable], common.SomeCallable] | - | デコレートされた関数 |
parse()
@overload
parse(character, use_lf=False)
parse(character, use_lf=False)
parse(character, use_lf=False)
与えられた受信データを解釈します。
名称 | 型 | 内容 |
---|---|---|
character | str | 受信データの文字:長さ1の文字列 |
bytes | 受信データの文字:長さ1のバイト列 | |
int | 受信データの文字:ASCIIコード | |
use_lf | bool | 改行文字の種別:True のとき LF |
型 | 値 | 内容 |
---|---|---|
optional common.PacketType | common.PacketType | 解釈したパケットの種別 |
None | 解釈したパケットなし |
RuntimeError
シリアルポートを指定してしまっているValueError
不正な文字データを検出parse_line()
parse_line(line, use_lf=True)
一行の文字列として表現された受信データを解釈します。
名称 | 型 | 内容 |
---|---|---|
line | str | 受信データの文字列:一行の文字列 |
use_lf | bool | 改行文字の種別:True のとき LF |
型 | 値 | 内容 |
---|---|---|
optional common.PacketType | common.PacketType | 解釈したパケットの種別 |
None | 解釈したパケットなし |
RuntimeError
シリアルポートを指定してしまっているreceive()
receive()
シリアルポートに届いたデータを解釈します。一つのパケットの解釈が終わるまで待機します。
なし
型 | 値 | 内容 |
---|---|---|
common.PacketType | - | 解釈したパケットの種別 |
RuntimeError
シリアルポートを指定していないrun()
run()
受信を行うサブスレッドを走らせます。threading.Thread.run()
をオーバーライドしています。
start()
を使用すると自動的に呼び出されます。なし
なし
send()
@overload
send(data)
send(data)
シリアルポートからコマンドを送信します。
名称 | 型 | 内容 |
---|---|---|
data | common.SomeCommand | 各種コマンドデータ |
common.BarePacket | 素のコマンドデータ |
型 | 値 | 内容 |
---|---|---|
bool | True | 成功 |
False | 失敗 |
RuntimeError
シリアルポートを指定していないset_timezone()
set_timezone(tz)
受信データへ適用するタイムゾーンを設定します。
名称 | 型 | 内容 |
---|---|---|
tz | tzinfo | 任意のタイムゾーン:ZoneInfo |
None | UTC |
なし
start()
start()
受信を行うサブスレッドを開始します。threading.Thread.start()
をオーバーライドしています。
なし
なし
RuntimeError
シリアルポートを指定していないstop()
stop()
受信を行うサブスレッドを終了します。残りの受信データに対するハンドラの呼び出しを終えるまで待機します。これには数秒かかる場合があります。
なし
なし
RuntimeError
シリアルポートを指定していないupdate()
update()
シリアルポートへ届いたデータを解釈します。受信バッファのすべてのデータを処理したら、すぐに処理を抜けます。
なし
型 | 値 | 内容 |
---|---|---|
optional common.PacketType | common.PacketType | 解釈したパケットの種別 |
None | 解釈したパケットなし |
RuntimeError
シリアルポートを指定していないtimezone
@property
update()
型 | 値 | 内容 |
---|---|---|
tzinfo | - | 受信データへ適用するタイムゾーン |
mwings.common
mwings.parsers
mwings.serializers
mwings.utils