最適な出力のために、Google Chrome(15以降)または Microsoft Edge(79以降)を推奨いたします。
2024-05-17 現在mwings モジュール
mwings
直接利用することの多い、トップレベルのモジュールです。
src/mwings/__init__.py
Twelite
TWELITE のインタフェース
継承:threading.Thread
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)
受信ハンドラを登録します。
引数
戻り値
なし
on()
受信ハンドラを登録します(デコレータ版)。
引数
戻り値
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 |
戻り値
例外
RuntimeError
シリアルポートを指定してしまっているValueError
不正な文字データを検出
parse_line()
parse_line(line, use_lf=True)
一行の文字列として表現された受信データを解釈します。
引数
名称 | 型 | 内容 |
---|
line | str | 受信データの文字列:一行の文字列 |
use_lf | bool | 改行文字の種別:True のとき LF |
戻り値
例外
RuntimeError
シリアルポートを指定してしまっている
receive()
シリアルポートに届いたデータを解釈します。一つのパケットの解釈が終わるまで待機します。
検証用の機能です。解釈できるパケットを受信するまで処理をブロックするため、あまり実用的ではありません。
引数
なし
戻り値
例外
RuntimeError
シリアルポートを指定していない
run()
受信を行うサブスレッドを走らせます。threading.Thread.run()
をオーバーライドしています。
このメソッドを直接呼ばないでください。
start()
を使用すると自動的に呼び出されます。
引数
なし
戻り値
なし
send()
@overload
send(data)
send(data)
シリアルポートからコマンドを送信します。
引数
戻り値
例外
RuntimeError
シリアルポートを指定していない
set_timezone()
受信データへ適用するタイムゾーンを設定します。
引数
戻り値
なし
start()
受信を行うサブスレッドを開始します。threading.Thread.start()
をオーバーライドしています。
引数
なし
戻り値
なし
例外
RuntimeError
シリアルポートを指定していない
stop()
受信を行うサブスレッドを終了します。残りの受信データに対するハンドラの呼び出しを終えるまで待機します。これには数秒かかる場合があります。
引数
なし
戻り値
なし
例外
RuntimeError
シリアルポートを指定していない
update()
シリアルポートへ届いたデータを解釈します。受信バッファのすべてのデータを処理したら、すぐに処理を抜けます。
引数
なし
戻り値
例外
RuntimeError
シリアルポートを指定していない
timezone
戻り値
1 - mwings.common モジュール
mwings.common
ライブラリ全体で使用するデータや手続きを格納しています。
src/mwings/common.py
AccelEvent
加速度イベントの識別子
継承:enum.IntEnum
DICE_1
サイコロ:1DICE_2
サイコロ:2DICE_3
サイコロ:3DICE_4
サイコロ:4DICE_5
サイコロ:5DICE_6
サイコロ:6SHAKE
シェイクMOVE
ムーブNONE
イベントなし
AppPalNoticeBlinkSpeed
通知パル/点滅速度の識別子
継承:enum.IntEnum
ALWAYS_ON
常時点灯SLOW
おちついた点滅MEDIUM
ほどほどの点滅FAST
せわしない点滅
AppPalNoticeColor
通知パル/点灯色の識別子
継承:enum.IntEnum
RED
赤GREEN
緑BLUE
青YELLOW
黄PURPLE
紫LIGHT_BLUE
水色WHITE
白WARM_WHITE
暖かな白
AppPalNoticeRGBWColor
通知パル/RGBWによる点灯色のデータ
継承:pydantic.BaseModel
AppPalNoticeRGBWColor()
AppPalNoticeRGBWColor(*, red=0, green=0, blue=0, white=15)
引数
**
で unpack した辞書を渡すことができます。
u16()
RGBWの16ビット表現を取得します。
引数
なし
戻り値
BarePacket
素のパケットデータ
継承:pydantic.BaseModel
BarePacket()
BarePacket(payload, checksum=None, logical_and_command_id=None)
引数
名称 | 型 | 内容 |
---|
payload | bytes | ペイロードのバイナリデータ |
checksum | optional common.UInt8 | LRC8:None で自動計算 |
logical_and_command_id | optional tuple(common.UInt8, common.UInt8) | 論理デバイスIDとコマンドID |
第3引数を指定する場合は、ペイロードの冒頭を省略します。
i16_at()
指定した位置の符号あり16ビット整数を取得します。
引数
戻り値
i32_at()
指定した位置の符号あり32ビット整数を取得します。
引数
戻り値
i8_at()
指定した位置の符号あり8ビット整数を取得します。
引数
戻り値
u16_at()
指定した位置の符号なし16ビット整数を取得します。
引数
戻り値
u32_at()
指定した位置の符号なし32ビット整数を取得します。
引数
戻り値
u8_at()
指定した位置の符号なし8ビット整数を取得します。
引数
戻り値
u8_from()
指定した位置に続くバイト列を取得します。
引数
名称 | 型 | 内容 |
---|
index | int | ペイロードにおける先頭の位置 |
戻り値
型 | 値 | 内容 |
---|
optional bytes | bytes | 部分的なバイト列 |
| None | 指定位置が無効 |
CommandBase
コマンドの抽象基底クラス
継承:ABC
, pydantic.BaseModel
CommandBase()
CommandBase(*, destination_logical_id=120)
引数
**
で unpack した辞書を渡すことができます。
is_valid()
コマンドデータが有効であるか否かを確認します。
引数
なし
戻り値
CommandSerializerBase
コマンドシリアライザの静的抽象基底クラス
継承:ABC
serialize()
与えられたコマンドを素のパケットのバイト列へ展開します。
引数
戻り値
CrossSectional[T]
特定の時刻における横断的なデータ列を格納するためのタプルに相当するクラス
継承:common.FixedTuple[T]
CrossSectional[T]()
CrossSectional[T](length, elements)
引数
名称 | 型 | 内容 |
---|
T | common.T | 要素の型 |
length | int | 要素の数 |
elements | Iterable[T] | 要素 |
例外
DtypedDecimal
pandas の dtype
属性を保持する数値型のための抽象基底クラス
get_dtype()
pandas の dtype
識別子を取得します。
引数
なし
戻り値
FixedList[T]
固定長リストに相当するクラス
継承:MutableSequence[T]
FixedList[T]()
FixedList[T](length, initial_elements)
引数
名称 | 型 | 内容 |
---|
T | common.T | 要素の型 |
length | int | 要素の数 |
initial_elements | Iterable[T] | 初期の要素 |
例外
insert()
指定した位置へ要素を配置します。
引数
戻り値
なし
例外
FixedTuple[T]
固定長タプルに相当するクラス
継承:Sequence[T]
FixedTuple[T]()
FixedTuple[T](length, elements)
引数
名称 | 型 | 内容 |
---|
T | common.T | 要素の型 |
length | int | 要素の数 |
elements | Iterable[T] | 要素 |
例外
Float32
32ビット浮動小数点数を格納するクラス
継承:float
, common.DtypedDecimal
Float32()
引数
名称 | 型 | 内容 |
---|
value | optional float | 初期の値 |
例外
Float64
64ビット浮動小数点数を格納するクラス
継承:float
, common.DtypedDecimal
Float64()
引数
名称 | 型 | 内容 |
---|
value | optional float | 初期の値 |
例外
Int16
16ビット整数を格納するクラス
継承:int
, common.DtypedDecimal
Int16()
引数
名称 | 型 | 内容 |
---|
value | optional int | 初期の値 |
例外
hex()
16進数表記の文字列を取得します。
Python 組み込み関数の hex()
は int
のサブクラスを受け付けません。float
に対する組み込みメソッド hex()
と同じように扱えるようにしています。
引数
なし
戻り値
Int32
32ビット整数を格納するクラス
継承:int
, common.DtypedDecimal
Int32()
引数
名称 | 型 | 内容 |
---|
value | optional int | 初期の値 |
例外
hex()
16進数表記の文字列を取得します。
Python 組み込み関数の hex()
は int
のサブクラスを受け付けません。float
に対する組み込みメソッド hex()
と同じように扱えるようにしています。
引数
なし
戻り値
Int8
8ビット整数を格納するクラス
継承:int
, common.DtypedDecimal
Int8()
引数
名称 | 型 | 内容 |
---|
value | optional int | 初期の値 |
例外
hex()
16進数表記の文字列を取得します。
Python 組み込み関数の hex()
は int
のサブクラスを受け付けません。float
に対する組み込みメソッド hex()
と同じように扱えるようにしています。
引数
なし
戻り値
MagnetState
磁石イベントの識別子
継承:enum.IntEnum
NOT_DETECTED
磁石なしN_POLE_IS_CLOSE
N極が近くにあるS_POLE_IS_CLOSE
S極が近くにある
PacketParserBase
パケットパーサの静的抽象基底クラス
継承:ABC
is_valid()
与えられた素のパケットが有効であるか否かを確認します。
引数
戻り値
型 | 値 | 内容 |
---|
bool | True | 有効、パース可 |
| False | 無効、パース不可 |
parse()
与えられた素のパケットをパースします。
引数
戻り値
PacketType
パケット種別の識別子
継承:enum.StrEnum
BARE
素のパケット(未パース)ACT
actAPP_TWELITE
超簡単!標準アプリAPP_IO
リモコンアプリAPP_ARIA
アリアアプリAPP_CUE
キューアプリ(TWELITE CUE モード)APP_CUE_PAL_EVENT
キューアプリ(動作パルモード:ダイス/ムーブモード)APP_PAL_OPENCLOSE
パルアプリ(開閉パル)APP_PAL_AMB
パルアプリ(環境パル)APP_PAL_MOT
パルアプリ(動作パル)/キューアプリ(動作パルモード:加速度計測)APP_UART_ASCII
シリアル通信アプリ(書式モード:簡易形式)/超簡単!標準アプリ/リモコンアプリAPP_UART_ASCII_EXTENDED
シリアル通信アプリ(書式モード:拡張形式)
ParsedPacketBase
パース済みパケットの抽象基底クラス
継承:ABC
, pydantic.BaseModel
ParsedPacketBase()
ParsedPacketBase(*, time_parsed=None, packet_type=PacketType.BARE, sequence_number=None, source_serial_id=0, source_logical_id=0, lqi=None, supply_voltage=None)
引数
**
で unpack した辞書を渡すことができます。
コンストラクタの引数へ指定する変数に加えて、次の @computed_field
を持ちます。
名称 | 型 | 内容 |
---|
mwings_implementation | str | MWings の実装("python" のみ) |
mwings_version | str | MWings のバージョン(PEP440形式) |
hostname | str | ホストマシン名 |
system_type | str | システム種別("Linux" など) |
適用される field_validator
source_logical_id
:値の範囲を自動的に検証しますcheck_source_logical_id(lid)
time_parsed
:タイムゾーンが付与されているかを自動的に検証しますdatetime_must_be_clear(dt)
適用される field_serializer
packet_type
:列挙子の名前をそのままJSON等に適用しますserialize_packet_type(packet_type)
source_serial_id
:16進表記の文字列をJSON等に適用しますserialize_source_serial_id(source_serial_id)
time_parsed
:ISO 8601形式の文字列をJSON等に適用しますserialize_time_parsed(dt)
to_df()
to_df(include=None, exclude=None, verbose=True)
パースしたデータを pandas のデータフレーム形式へ変換します。
引数
名称 | 型 | 内容 |
---|
include | optional set[str] | データフレームへ含めるカラム(メンバ)の集合 |
exclude | optional set[str] | データフレームへ含めないカラム(メンバ)の集合 |
verbose | bool | システム情報の有無(他の引数がNone の場合のみ) |
戻り値
例外
EnvironmentError
pandas のない場合
to_dict()
to_dict(include=None, exclude=None, verbose=True, spread=False, sort_keys=False)
パースしたデータを辞書形式へ変換します。
引数
名称 | 型 | 内容 |
---|
include | optional set[str] | 辞書へ含めるキー(メンバ)の集合 |
exclude | optional set[str] | 辞書へ含めないキー(メンバ)の集合 |
verbose | bool | システム情報の有無(他の引数がNone の場合のみ) |
spread | bool | 時系列でないlist-likeデータの分割の有無 |
sort_keys | bool | キーによるソートの有無 |
戻り値
型 | 値 | 内容 |
---|
dict[str, Any] | - | 変換した辞書 |
to_json()
to_json(include=None, exclude=None, verbose=True, spread=False, indent=2, sort_keys=False)
パースしたデータをJSON形式へ変換します。
引数
名称 | 型 | 内容 |
---|
include | optional set[str] | JSONへ含めるキー(メンバ)の集合 |
exclude | optional set[str] | JSONへ含めないキー(メンバ)の集合 |
verbose | bool | システム情報の有無(他の引数がNone の場合のみ) |
spread | bool | 時系列でないlist-likeデータの分割の有無 |
indent | optional int | インデントの数(None で改行なし) |
sort_keys | bool | キーによるソートの有無 |
戻り値
SomeCallable
TypeVar("SomeCallable", bound=Callable[..., Any])
各種ハンドラを表す型
SomeCommand
TypeVar(‘SomeCommand’, bound=CommandBase)
各種コマンドデータを表す型
SomeParsedPacket
TypeVar(‘SomeParsedPacket’, bound=ParsedPacketBase)
各種パケットデータを表す型
T
ジェネリクスで利用する型
TimeSeries[T]
時系列データを格納するためのタプルに相当するクラス
継承:common.FixedTuple[T]
TimeSeries[T]()
TimeSeries[T](length, elements)
引数
名称 | 型 | 内容 |
---|
T | common.T | 要素の型 |
length | int | 要素の数 |
elements | Iterable[T] | 要素 |
例外
Timezone
全体へ適用するtzinfo
UInt16
16ビット非不整数を格納するクラス
継承:int
, common.DtypedDecimal
UInt16()
引数
名称 | 型 | 内容 |
---|
value | optional int | 初期の値 |
例外
hex()
16進数表記の文字列を取得します。
Python 組み込み関数の hex()
は int
のサブクラスを受け付けません。float
に対する組み込みメソッド hex()
と同じように扱えるようにしています。
引数
なし
戻り値
UInt32
32ビット非不整数を格納するクラス
継承:int
, common.DtypedDecimal
UInt32()
引数
名称 | 型 | 内容 |
---|
value | optional int | 初期の値 |
例外
hex()
16進数表記の文字列を取得します。
Python 組み込み関数の hex()
は int
のサブクラスを受け付けません。float
に対する組み込みメソッド hex()
と同じように扱えるようにしています。
引数
なし
戻り値
UInt8
8ビット非不整数を格納するクラス
継承:int
, common.DtypedDecimal
UInt8()
引数
名称 | 型 | 内容 |
---|
value | optional int | 初期の値 |
例外
hex()
16進数表記の文字列を取得します。
Python 組み込み関数の hex()
は int
のサブクラスを受け付けません。float
に対する組み込みメソッド hex()
と同じように扱えるようにしています。
引数
なし
戻り値
2 - mwings.parsers モジュール
mwings.parsers
パケットを解釈するパーサと、そのデータを扱います。
2.1 - mwings.parsers.app_twelite モジュール
mwings.parsers.app_twelite
超簡単!標準アプリから送信されたデータを表すパケットを解釈するパーサと、そのデータを扱います。
src/mwings/parsers/app_twelite.py
PacketParser
超簡単!標準アプリから送信されたデータを表すパケットを解釈するパーサの静的クラス
継承:common.PacketParserBase
is_valid()
与えられた素のパケットが有効であるか否かを確認します。
引数
戻り値
型 | 値 | 内容 |
---|
bool | True | 有効、パース可 |
| False | 無効、パース不可 |
parse()
与えられた素のパケットをパースします。
引数
戻り値
型 | 値 | 内容 |
---|
optional ParsedPacket | ParsedPacket の型をもつデータ | パースしたデータ |
| None | パース不可 |
ParsedPacket
超簡単!標準アプリから送信されたデータを表すパケットを解釈した結果を格納するための構造体
継承:common.ParsedPacketBase
ParsedPacket()
ParsedPacket(*, time_parsed=None, packet_type=PacketType.BARE, sequence_number=None, source_serial_id=0, source_logical_id=0, lqi=None, supply_voltage=None, destination_logical_id=120, relay_count=0, periodic=False, di_changed=<mwings.common.CrossSectional object>, di_state=<mwings.common.CrossSectional object>, ai_voltage=<mwings.common.CrossSectional object>)
引数
**
で unpack した辞書を渡すことができます。
コンストラクタの引数へ指定する変数に加えて、次の @computed_field
を持ちます。
名称 | 型 | 内容 |
---|
mwings_implementation | str | MWings の実装("python" のみ) |
mwings_version | str | MWings のバージョン(PEP440形式) |
hostname | str | ホストマシン名 |
system_type | str | システム種別("Linux" など) |
適用される field_validator
source_logical_id
:値の範囲を自動的に検証しますcheck_source_logical_id(lid)
time_parsed
:タイムゾーンが付与されているかを自動的に検証しますdatetime_must_be_clear(dt)
ai_voltage
:値の範囲を自動的に検証しますdestination_logical_id
:値の範囲を自動的に検証しますcheck_destination_logical_id(lid)
適用される field_serializer
packet_type
:列挙子の名前をそのままJSON等に適用しますserialize_packet_type(packet_type)
source_serial_id
:16進表記の文字列をJSON等に適用しますserialize_source_serial_id(source_serial_id)
time_parsed
:ISO 8601形式の文字列をJSON等に適用しますserialize_time_parsed(dt)
to_df()
to_df(include=None, exclude=None, verbose=True)
パースしたデータを pandas のデータフレーム形式へ変換します。
引数
名称 | 型 | 内容 |
---|
include | optional set[str] | データフレームへ含めるカラム(メンバ)の集合 |
exclude | optional set[str] | データフレームへ含めないカラム(メンバ)の集合 |
verbose | bool | システム情報の有無(他の引数がNone の場合のみ) |
戻り値
例外
EnvironmentError
pandas のない場合
to_dict()
to_dict(include=None, exclude=None, verbose=True, spread=False, sort_keys=False)
パースしたデータを辞書形式へ変換します。
引数
名称 | 型 | 内容 |
---|
include | optional set[str] | 辞書へ含めるキー(メンバ)の集合 |
exclude | optional set[str] | 辞書へ含めないキー(メンバ)の集合 |
verbose | bool | システム情報の有無(他の引数がNone の場合のみ) |
spread | bool | 時系列でないlist-likeデータの分割の有無 |
sort_keys | bool | キーによるソートの有無 |
戻り値
型 | 値 | 内容 |
---|
dict[str, Any] | - | 変換した辞書 |
to_json()
to_json(include=None, exclude=None, verbose=True, spread=False, indent=2, sort_keys=False)
パースしたデータをJSON形式へ変換します。
引数
名称 | 型 | 内容 |
---|
include | optional set[str] | JSONへ含めるキー(メンバ)の集合 |
exclude | optional set[str] | JSONへ含めないキー(メンバ)の集合 |
verbose | bool | システム情報の有無(他の引数がNone の場合のみ) |
spread | bool | 時系列でないlist-likeデータの分割の有無 |
indent | optional int | インデントの数(None で改行なし) |
sort_keys | bool | キーによるソートの有無 |
戻り値
model_*()
2.2 - mwings.parsers.app_io モジュール
mwings.parsers.app_io
リモコンアプリから送信されたデータを表すパケットを解釈するパーサと、そのデータを扱います。
src/mwings/parsers/app_io.py
PacketParser
リモコンアプリから送信されたデータを表すパケットを解釈するパーサの静的クラス
継承:common.PacketParserBase
is_valid()
与えられた素のパケットが有効であるか否かを確認します。
引数
戻り値
型 | 値 | 内容 |
---|
bool | True | 有効、パース可 |
| False | 無効、パース不可 |
parse()
与えられた素のパケットをパースします。
引数
戻り値
型 | 値 | 内容 |
---|
optional ParsedPacket | ParsedPacket の型をもつデータ | パースしたデータ |
| None | パース不可 |
ParsedPacket
リモコンアプリから送信されたデータを表すパケットを解釈した結果を格納するための構造体
継承:common.ParsedPacketBase
ParsedPacket()
ParsedPacket(*, time_parsed=None, packet_type=PacketType.BARE, sequence_number=None, source_serial_id=0, source_logical_id=0, lqi=None, supply_voltage=None, relay_count=0, di_state=<mwings.common.CrossSectional object>, di_valid=<mwings.common.CrossSectional object>, di_interrupt=<mwings.common.CrossSectional object>)
引数
継承元のプロパティも合わせて表記します。
**
で unpack した辞書を渡すことができます。
コンストラクタの引数へ指定する変数に加えて、次の @computed_field
を持ちます。
名称 | 型 | 内容 |
---|
mwings_implementation | str | MWings の実装("python" のみ) |
mwings_version | str | MWings のバージョン(PEP440形式) |
hostname | str | ホストマシン名 |
system_type | str | システム種別("Linux" など) |
適用される field_validator
source_logical_id
:値の範囲を自動的に検証しますcheck_source_logical_id(lid)
time_parsed
:タイムゾーンが付与されているかを自動的に検証しますdatetime_must_be_clear(dt)
適用される field_serializer
packet_type
:列挙子の名前をそのままJSON等に適用しますserialize_packet_type(packet_type)
source_serial_id
:16進表記の文字列をJSON等に適用しますserialize_source_serial_id(source_serial_id)
time_parsed
:ISO 8601形式の文字列をJSON等に適用しますserialize_time_parsed(dt)
to_df()
to_df(include=None, exclude=None, verbose=True)
パースしたデータを pandas のデータフレーム形式へ変換します。
引数
名称 | 型 | 内容 |
---|
include | optional set[str] | データフレームへ含めるカラム(メンバ)の集合 |
exclude | optional set[str] | データフレームへ含めないカラム(メンバ)の集合 |
verbose | bool | システム情報の有無(他の引数がNone の場合のみ) |
戻り値
例外
EnvironmentError
pandas のない場合
to_dict()
to_dict(include=None, exclude=None, verbose=True, spread=False, sort_keys=False)
パースしたデータを辞書形式へ変換します。
引数
名称 | 型 | 内容 |
---|
include | optional set[str] | 辞書へ含めるキー(メンバ)の集合 |
exclude | optional set[str] | 辞書へ含めないキー(メンバ)の集合 |
verbose | bool | システム情報の有無(他の引数がNone の場合のみ) |
spread | bool | 時系列でないlist-likeデータの分割の有無 |
sort_keys | bool | キーによるソートの有無 |
戻り値
型 | 値 | 内容 |
---|
dict[str, Any] | - | 変換した辞書 |
to_json()
to_json(include=None, exclude=None, verbose=True, spread=False, indent=2, sort_keys=False)
パースしたデータをJSON形式へ変換します。
引数
名称 | 型 | 内容 |
---|
include | optional set[str] | JSONへ含めるキー(メンバ)の集合 |
exclude | optional set[str] | JSONへ含めないキー(メンバ)の集合 |
verbose | bool | システム情報の有無(他の引数がNone の場合のみ) |
spread | bool | 時系列でないlist-likeデータの分割の有無 |
indent | optional int | インデントの数(None で改行なし) |
sort_keys | bool | キーによるソートの有無 |
戻り値
model_*()
2.3 - mwings.parsers.app_aria モジュール
mwings.parsers.app_aria
アリアアプリから送信されたデータを表すパケットを解釈するパーサと、そのデータを扱います。
src/mwings/parsers/app_aria.py
PacketParser
アリアアプリから送信されたデータを表すパケットを解釈するパーサの静的クラス
継承:common.PacketParserBase
is_valid()
与えられた素のパケットが有効であるか否かを確認します。
引数
戻り値
型 | 値 | 内容 |
---|
bool | True | 有効、パース可 |
| False | 無効、パース不可 |
parse()
与えられた素のパケットをパースします。
引数
戻り値
型 | 値 | 内容 |
---|
optional ParsedPacket | ParsedPacket の型をもつデータ | パースしたデータ |
| None | パース不可 |
ParsedPacket
アリアアプリから送信されたデータを表すパケットを解釈した結果を格納するための構造体
継承:common.ParsedPacketBase
ParsedPacket()
ParsedPacket(*, time_parsed=None, packet_type=PacketType.BARE, sequence_number=None, source_serial_id=0, source_logical_id=0, lqi=None, supply_voltage=None, temp_100x=0, humid_100x=0, magnet_state=MagnetState.NOT_DETECTED, magnet_state_changed=False)
引数
継承元のプロパティも合わせて表記します。
**
で unpack した辞書を渡すことができます。
コンストラクタの引数へ指定する変数に加えて、次の @computed_field
を持ちます。
名称 | 型 | 内容 |
---|
mwings_implementation | str | MWings の実装("python" のみ) |
mwings_version | str | MWings のバージョン(PEP440形式) |
hostname | str | ホストマシン名 |
system_type | str | システム種別("Linux" など) |
適用される field_validator
source_logical_id
:値の範囲を自動的に検証しますcheck_source_logical_id(lid)
time_parsed
:タイムゾーンが付与されているかを自動的に検証しますdatetime_must_be_clear(dt)
適用される field_serializer
packet_type
:列挙子の名前をそのままJSON等に適用しますserialize_packet_type(packet_type)
source_serial_id
:16進表記の文字列をJSON等に適用しますserialize_source_serial_id(source_serial_id)
time_parsed
:ISO 8601形式の文字列をJSON等に適用しますserialize_time_parsed(dt)
magnet_state
:列挙子の名前をそのままJSON等に適用しますserialize_magnet_state(magnet_state)
to_df()
to_df(include=None, exclude=None, verbose=True)
パースしたデータを pandas のデータフレーム形式へ変換します。
引数
名称 | 型 | 内容 |
---|
include | optional set[str] | データフレームへ含めるカラム(メンバ)の集合 |
exclude | optional set[str] | データフレームへ含めないカラム(メンバ)の集合 |
verbose | bool | システム情報の有無(他の引数がNone の場合のみ) |
戻り値
例外
EnvironmentError
pandas のない場合
to_dict()
to_dict(include=None, exclude=None, verbose=True, spread=False, sort_keys=False)
パースしたデータを辞書形式へ変換します。
引数
名称 | 型 | 内容 |
---|
include | optional set[str] | 辞書へ含めるキー(メンバ)の集合 |
exclude | optional set[str] | 辞書へ含めないキー(メンバ)の集合 |
verbose | bool | システム情報の有無(他の引数がNone の場合のみ) |
spread | bool | 時系列でないlist-likeデータの分割の有無 |
sort_keys | bool | キーによるソートの有無 |
戻り値
型 | 値 | 内容 |
---|
dict[str, Any] | - | 変換した辞書 |
to_json()
to_json(include=None, exclude=None, verbose=True, spread=False, indent=2, sort_keys=False)
パースしたデータをJSON形式へ変換します。
引数
名称 | 型 | 内容 |
---|
include | optional set[str] | JSONへ含めるキー(メンバ)の集合 |
exclude | optional set[str] | JSONへ含めないキー(メンバ)の集合 |
verbose | bool | システム情報の有無(他の引数がNone の場合のみ) |
spread | bool | 時系列でないlist-likeデータの分割の有無 |
indent | optional int | インデントの数(None で改行なし) |
sort_keys | bool | キーによるソートの有無 |
戻り値
model_*()
2.4 - mwings.parsers.app_cue モジュール
mwings.parsers.app_cue
キューアプリ(TWELITE CUEモード)から送信されたデータを表すパケットを解釈するパーサと、そのデータを扱います。
src/mwings/parsers/app_cue.py
PacketParser
キューアプリ(TWELITE CUEモード)から送信されたデータを表すパケットを解釈するパーサの静的クラス
継承:common.PacketParserBase
is_valid()
与えられた素のパケットが有効であるか否かを確認します。
引数
戻り値
型 | 値 | 内容 |
---|
bool | True | 有効、パース可 |
| False | 無効、パース不可 |
parse()
与えられた素のパケットをパースします。
引数
戻り値
型 | 値 | 内容 |
---|
optional ParsedPacket | ParsedPacket の型をもつデータ | パースしたデータ |
| None | パース不可 |
ParsedPacket
キューアプリ(TWELITE CUEモード)から送信されたデータを表すパケットを解釈した結果を格納するための構造体
継承:common.ParsedPacketBase
ParsedPacket()
ParsedPacket(*, time_parsed=None, packet_type=PacketType.BARE, sequence_number=None, source_serial_id=0, source_logical_id=0, lqi=None, supply_voltage=None, sample_count=10, samples_x=<mwings.common.TimeSeries object>, samples_y=<mwings.common.TimeSeries object>, samples_z=<mwings.common.TimeSeries object>, has_accel_event=False, accel_event=AccelEvent.NONE, magnet_state=MagnetState.NOT_DETECTED, magnet_state_changed=False)
引数
継承元のプロパティも合わせて表記します。
**
で unpack した辞書を渡すことができます。
コンストラクタの引数へ指定する変数に加えて、次の @computed_field
を持ちます。
名称 | 型 | 内容 |
---|
mwings_implementation | str | MWings の実装("python" のみ) |
mwings_version | str | MWings のバージョン(PEP440形式) |
hostname | str | ホストマシン名 |
system_type | str | システム種別("Linux" など) |
適用される field_validator
source_logical_id
:値の範囲を自動的に検証しますcheck_source_logical_id(lid)
time_parsed
:タイムゾーンが付与されているかを自動的に検証しますdatetime_must_be_clear(dt)
適用される field_serializer
packet_type
:列挙子の名前をそのままJSON等に適用しますserialize_packet_type(packet_type)
source_serial_id
:16進表記の文字列をJSON等に適用しますserialize_source_serial_id(source_serial_id)
time_parsed
:ISO 8601形式の文字列をJSON等に適用しますserialize_time_parsed(dt)
accel_event
:列挙子の名前をそのままJSON等に適用しますserialize_accel_event(accel_event)
magnet_state
:列挙子の名前をそのままJSON等に適用しますserialize_magnet_state(magnet_state)
to_df()
to_df(include=None, exclude=None, verbose=True)
パースしたデータを pandas のデータフレーム形式へ変換します。
引数
名称 | 型 | 内容 |
---|
include | optional set[str] | データフレームへ含めるカラム(メンバ)の集合 |
exclude | optional set[str] | データフレームへ含めないカラム(メンバ)の集合 |
verbose | bool | システム情報の有無(他の引数がNone の場合のみ) |
戻り値
例外
EnvironmentError
pandas のない場合
to_dict()
to_dict(include=None, exclude=None, verbose=True, spread=False, sort_keys=False)
パースしたデータを辞書形式へ変換します。
引数
名称 | 型 | 内容 |
---|
include | optional set[str] | 辞書へ含めるキー(メンバ)の集合 |
exclude | optional set[str] | 辞書へ含めないキー(メンバ)の集合 |
verbose | bool | システム情報の有無(他の引数がNone の場合のみ) |
spread | bool | 時系列でないlist-likeデータの分割の有無 |
sort_keys | bool | キーによるソートの有無 |
spread
を設定しても、common.TimeSeries[T]
型の時系列データは分割しません。
戻り値
型 | 値 | 内容 |
---|
dict[str, Any] | - | 変換した辞書 |
to_json()
to_json(include=None, exclude=None, verbose=True, spread=False, indent=2, sort_keys=False)
パースしたデータをJSON形式へ変換します。
引数
名称 | 型 | 内容 |
---|
include | optional set[str] | JSONへ含めるキー(メンバ)の集合 |
exclude | optional set[str] | JSONへ含めないキー(メンバ)の集合 |
verbose | bool | システム情報の有無(他の引数がNone の場合のみ) |
spread | bool | 時系列でないlist-likeデータの分割の有無 |
indent | optional int | インデントの数(None で改行なし) |
sort_keys | bool | キーによるソートの有無 |
spread
を設定しても、common.TimeSeries[T]
型の時系列データは分割しません。
戻り値
model_*()
2.5 - mwings.parsers.app_cue_pal_event モジュール
mwings.parsers.app_cue_pal_event
キューアプリ(動作パルモード:ダイス/ムーブモード)から送信されたデータを表すパケットを解釈するパーサと、そのデータを扱います。
src/mwings/parsers/app_cue_pal_event.py
PacketParser
キューアプリ(動作パルモード:ダイス/ムーブモード)から送信されたデータを表すパケットを解釈するパーサの静的クラス
継承:common.PacketParserBase
is_valid()
与えられた素のパケットが有効であるか否かを確認します。
引数
戻り値
型 | 値 | 内容 |
---|
bool | True | 有効、パース可 |
| False | 無効、パース不可 |
parse()
与えられた素のパケットをパースします。
引数
戻り値
型 | 値 | 内容 |
---|
optional ParsedPacket | ParsedPacket の型をもつデータ | パースしたデータ |
| None | パース不可 |
ParsedPacket
キューアプリ(動作パルモード:ダイス/ムーブモード)から送信されたデータを表すパケットを解釈した結果を格納するための構造体
継承:common.ParsedPacketBase
ParsedPacket()
ParsedPacket(*, time_parsed=None, packet_type=PacketType.BARE, sequence_number=None, source_serial_id=0, source_logical_id=0, lqi=None, supply_voltage=None, ai1_voltage=0, accel_event=AccelEvent.NONE)
引数
継承元のプロパティも合わせて表記します。
**
で unpack した辞書を渡すことができます。
コンストラクタの引数へ指定する変数に加えて、次の @computed_field
を持ちます。
名称 | 型 | 内容 |
---|
mwings_implementation | str | MWings の実装("python" のみ) |
mwings_version | str | MWings のバージョン(PEP440形式) |
hostname | str | ホストマシン名 |
system_type | str | システム種別("Linux" など) |
適用される field_validator
source_logical_id
:値の範囲を自動的に検証しますcheck_source_logical_id(lid)
time_parsed
:タイムゾーンが付与されているかを自動的に検証しますdatetime_must_be_clear(dt)
適用される field_serializer
packet_type
:列挙子の名前をそのままJSON等に適用しますserialize_packet_type(packet_type)
source_serial_id
:16進表記の文字列をJSON等に適用しますserialize_source_serial_id(source_serial_id)
time_parsed
:ISO 8601形式の文字列をJSON等に適用しますserialize_time_parsed(dt)
accel_event
:列挙子の名前をそのままJSON等に適用しますserialize_accel_event(accel_event)
to_df()
to_df(include=None, exclude=None, verbose=True)
パースしたデータを pandas のデータフレーム形式へ変換します。
引数
名称 | 型 | 内容 |
---|
include | optional set[str] | データフレームへ含めるカラム(メンバ)の集合 |
exclude | optional set[str] | データフレームへ含めないカラム(メンバ)の集合 |
verbose | bool | システム情報の有無(他の引数がNone の場合のみ) |
戻り値
例外
EnvironmentError
pandas のない場合
to_dict()
to_dict(include=None, exclude=None, verbose=True, spread=False, sort_keys=False)
パースしたデータを辞書形式へ変換します。
引数
名称 | 型 | 内容 |
---|
include | optional set[str] | 辞書へ含めるキー(メンバ)の集合 |
exclude | optional set[str] | 辞書へ含めないキー(メンバ)の集合 |
verbose | bool | システム情報の有無(他の引数がNone の場合のみ) |
spread | bool | 時系列でないlist-likeデータの分割の有無 |
sort_keys | bool | キーによるソートの有無 |
戻り値
型 | 値 | 内容 |
---|
dict[str, Any] | - | 変換した辞書 |
to_json()
to_json(include=None, exclude=None, verbose=True, spread=False, indent=2, sort_keys=False)
パースしたデータをJSON形式へ変換します。
引数
名称 | 型 | 内容 |
---|
include | optional set[str] | JSONへ含めるキー(メンバ)の集合 |
exclude | optional set[str] | JSONへ含めないキー(メンバ)の集合 |
verbose | bool | システム情報の有無(他の引数がNone の場合のみ) |
spread | bool | 時系列でないlist-likeデータの分割の有無 |
indent | optional int | インデントの数(None で改行なし) |
sort_keys | bool | キーによるソートの有無 |
戻り値
model_*()
2.6 - mwings.parsers.app_pal_openclose モジュール
mwings.parsers.app_pal_openclose
パルアプリ(開閉パル)から送信されたデータを表すパケットを解釈するパーサと、そのデータを扱います。
src/mwings/parsers/app_pal_openclose.py
PacketParser
パルアプリ(開閉パル)から送信されたデータを表すパケットを解釈するパーサの静的クラス
継承:common.PacketParserBase
is_valid()
与えられた素のパケットが有効であるか否かを確認します。
引数
戻り値
型 | 値 | 内容 |
---|
bool | True | 有効、パース可 |
| False | 無効、パース不可 |
parse()
与えられた素のパケットをパースします。
引数
戻り値
型 | 値 | 内容 |
---|
optional ParsedPacket | ParsedPacket の型をもつデータ | パースしたデータ |
| None | パース不可 |
ParsedPacket
パルアプリ(開閉パル)から送信されたデータを表すパケットを解釈した結果を格納するための構造体
継承:common.ParsedPacketBase
ParsedPacket()
ParsedPacket(*, time_parsed=None, packet_type=PacketType.BARE, sequence_number=None, source_serial_id=0, source_logical_id=0, lqi=None, supply_voltage=None, ai1_voltage=0, magnet_state=MagnetState.NOT_DETECTED, magnet_state_changed=False)
引数
継承元のプロパティも合わせて表記します。
**
で unpack した辞書を渡すことができます。
コンストラクタの引数へ指定する変数に加えて、次の @computed_field
を持ちます。
名称 | 型 | 内容 |
---|
mwings_implementation | str | MWings の実装("python" のみ) |
mwings_version | str | MWings のバージョン(PEP440形式) |
hostname | str | ホストマシン名 |
system_type | str | システム種別("Linux" など) |
適用される field_validator
source_logical_id
:値の範囲を自動的に検証しますcheck_source_logical_id(lid)
time_parsed
:タイムゾーンが付与されているかを自動的に検証しますdatetime_must_be_clear(dt)
適用される field_serializer
packet_type
:列挙子の名前をそのままJSON等に適用しますserialize_packet_type(packet_type)
source_serial_id
:16進表記の文字列をJSON等に適用しますserialize_source_serial_id(source_serial_id)
time_parsed
:ISO 8601形式の文字列をJSON等に適用しますserialize_time_parsed(dt)
magnet_state
:列挙子の名前をそのままJSON等に適用しますserialize_magnet_state(magnet_state)
to_df()
to_df(include=None, exclude=None, verbose=True)
パースしたデータを pandas のデータフレーム形式へ変換します。
引数
名称 | 型 | 内容 |
---|
include | optional set[str] | データフレームへ含めるカラム(メンバ)の集合 |
exclude | optional set[str] | データフレームへ含めないカラム(メンバ)の集合 |
verbose | bool | システム情報の有無(他の引数がNone の場合のみ) |
戻り値
例外
EnvironmentError
pandas のない場合
to_dict()
to_dict(include=None, exclude=None, verbose=True, spread=False, sort_keys=False)
パースしたデータを辞書形式へ変換します。
引数
名称 | 型 | 内容 |
---|
include | optional set[str] | 辞書へ含めるキー(メンバ)の集合 |
exclude | optional set[str] | 辞書へ含めないキー(メンバ)の集合 |
verbose | bool | システム情報の有無(他の引数がNone の場合のみ) |
spread | bool | 時系列でないlist-likeデータの分割の有無 |
sort_keys | bool | キーによるソートの有無 |
戻り値
型 | 値 | 内容 |
---|
dict[str, Any] | - | 変換した辞書 |
to_json()
to_json(include=None, exclude=None, verbose=True, spread=False, indent=2, sort_keys=False)
パースしたデータをJSON形式へ変換します。
引数
名称 | 型 | 内容 |
---|
include | optional set[str] | JSONへ含めるキー(メンバ)の集合 |
exclude | optional set[str] | JSONへ含めないキー(メンバ)の集合 |
verbose | bool | システム情報の有無(他の引数がNone の場合のみ) |
spread | bool | 時系列でないlist-likeデータの分割の有無 |
indent | optional int | インデントの数(None で改行なし) |
sort_keys | bool | キーによるソートの有無 |
戻り値
model_*()
2.7 - mwings.parsers.app_pal_amb モジュール
mwings.parsers.app_pal_amb
パルアプリ(環境パル)から送信されたデータを表すパケットを解釈するパーサと、そのデータを扱います。
src/mwings/parsers/app_pal_amb.py
PacketParser
パルアプリ(環境パル)から送信されたデータを表すパケットを解釈するパーサの静的クラス
継承:common.PacketParserBase
is_valid()
与えられた素のパケットが有効であるか否かを確認します。
引数
戻り値
型 | 値 | 内容 |
---|
bool | True | 有効、パース可 |
| False | 無効、パース不可 |
parse()
与えられた素のパケットをパースします。
引数
戻り値
型 | 値 | 内容 |
---|
optional ParsedPacket | ParsedPacket の型をもつデータ | パースしたデータ |
| None | パース不可 |
ParsedPacket
パルアプリ(環境パル)から送信されたデータを表すパケットを解釈した結果を格納するための構造体
継承:common.ParsedPacketBase
ParsedPacket()
ParsedPacket(*, time_parsed=None, packet_type=PacketType.BARE, sequence_number=None, source_serial_id=0, source_logical_id=0, lqi=None, supply_voltage=None, ai1_voltage=0, temp_100x=0, humid_100x=0, illuminance=0)
引数
継承元のプロパティも合わせて表記します。
**
で unpack した辞書を渡すことができます。
コンストラクタの引数へ指定する変数に加えて、次の @computed_field
を持ちます。
名称 | 型 | 内容 |
---|
mwings_implementation | str | MWings の実装("python" のみ) |
mwings_version | str | MWings のバージョン(PEP440形式) |
hostname | str | ホストマシン名 |
system_type | str | システム種別("Linux" など) |
適用される field_validator
source_logical_id
:値の範囲を自動的に検証しますcheck_source_logical_id(lid)
time_parsed
:タイムゾーンが付与されているかを自動的に検証しますdatetime_must_be_clear(dt)
適用される field_serializer
packet_type
:列挙子の名前をそのままJSON等に適用しますserialize_packet_type(packet_type)
source_serial_id
:16進表記の文字列をJSON等に適用しますserialize_source_serial_id(source_serial_id)
time_parsed
:ISO 8601形式の文字列をJSON等に適用しますserialize_time_parsed(dt)
to_df()
to_df(include=None, exclude=None, verbose=True)
パースしたデータを pandas のデータフレーム形式へ変換します。
引数
名称 | 型 | 内容 |
---|
include | optional set[str] | データフレームへ含めるカラム(メンバ)の集合 |
exclude | optional set[str] | データフレームへ含めないカラム(メンバ)の集合 |
verbose | bool | システム情報の有無(他の引数がNone の場合のみ) |
戻り値
例外
EnvironmentError
pandas のない場合
to_dict()
to_dict(include=None, exclude=None, verbose=True, spread=False, sort_keys=False)
パースしたデータを辞書形式へ変換します。
引数
名称 | 型 | 内容 |
---|
include | optional set[str] | 辞書へ含めるキー(メンバ)の集合 |
exclude | optional set[str] | 辞書へ含めないキー(メンバ)の集合 |
verbose | bool | システム情報の有無(他の引数がNone の場合のみ) |
spread | bool | 時系列でないlist-likeデータの分割の有無 |
sort_keys | bool | キーによるソートの有無 |
戻り値
型 | 値 | 内容 |
---|
dict[str, Any] | - | 変換した辞書 |
to_json()
to_json(include=None, exclude=None, verbose=True, spread=False, indent=2, sort_keys=False)
パースしたデータをJSON形式へ変換します。
引数
名称 | 型 | 内容 |
---|
include | optional set[str] | JSONへ含めるキー(メンバ)の集合 |
exclude | optional set[str] | JSONへ含めないキー(メンバ)の集合 |
verbose | bool | システム情報の有無(他の引数がNone の場合のみ) |
spread | bool | 時系列でないlist-likeデータの分割の有無 |
indent | optional int | インデントの数(None で改行なし) |
sort_keys | bool | キーによるソートの有無 |
戻り値
model_*()
2.8 - mwings.parsers.app_pal_mot モジュール
mwings.parsers.app_pal_mot
パルアプリ(動作パル)やキューアプリ(動作パルモード:加速度計測)から送信されたデータを表すパケットを解釈するパーサと、そのデータを扱います。
src/mwings/parsers/app_pal_mot.py
PacketParser
パルアプリ(動作パル)やキューアプリ(動作パルモード:加速度計測)から送信されたデータを表すパケットを解釈するパーサの静的クラス
継承:common.PacketParserBase
is_valid()
与えられた素のパケットが有効であるか否かを確認します。
引数
戻り値
型 | 値 | 内容 |
---|
bool | True | 有効、パース可 |
| False | 無効、パース不可 |
parse()
与えられた素のパケットをパースします。
引数
戻り値
型 | 値 | 内容 |
---|
optional ParsedPacket | ParsedPacket の型をもつデータ | パースしたデータ |
| None | パース不可 |
ParsedPacket
パルアプリ(動作パル)やキューアプリ(動作パルモード:加速度計測)から送信されたデータを表すパケットを解釈した結果を格納するための構造体
継承:common.ParsedPacketBase
ParsedPacket()
ParsedPacket(*, time_parsed=None, packet_type=PacketType.BARE, sequence_number=None, source_serial_id=0, source_logical_id=0, lqi=None, supply_voltage=None, ai1_voltage=0, sample_count=16, samples_x=<mwings.common.TimeSeries object>, samples_y=<mwings.common.TimeSeries object>, samples_z=<mwings.common.TimeSeries object>, sampling_frequency=25)
引数
継承元のプロパティも合わせて表記します。
**
で unpack した辞書を渡すことができます。
コンストラクタの引数へ指定する変数に加えて、次の @computed_field
を持ちます。
名称 | 型 | 内容 |
---|
mwings_implementation | str | MWings の実装("python" のみ) |
mwings_version | str | MWings のバージョン(PEP440形式) |
hostname | str | ホストマシン名 |
system_type | str | システム種別("Linux" など) |
適用される field_validator
source_logical_id
:値の範囲を自動的に検証しますcheck_source_logical_id(lid)
time_parsed
:タイムゾーンが付与されているかを自動的に検証しますdatetime_must_be_clear(dt)
sampling_frequency
:値を検証しますcheck_sampling_frequency(freq)
適用される field_serializer
packet_type
:列挙子の名前をそのままJSON等に適用しますserialize_packet_type(packet_type)
source_serial_id
:16進表記の文字列をJSON等に適用しますserialize_source_serial_id(source_serial_id)
time_parsed
:ISO 8601形式の文字列をJSON等に適用しますserialize_time_parsed(dt)
to_df()
to_df(include=None, exclude=None, verbose=True)
パースしたデータを pandas のデータフレーム形式へ変換します。
引数
名称 | 型 | 内容 |
---|
include | optional set[str] | データフレームへ含めるカラム(メンバ)の集合 |
exclude | optional set[str] | データフレームへ含めないカラム(メンバ)の集合 |
verbose | bool | システム情報の有無(他の引数がNone の場合のみ) |
戻り値
例外
EnvironmentError
pandas のない場合
to_dict()
to_dict(include=None, exclude=None, verbose=True, spread=False, sort_keys=False)
パースしたデータを辞書形式へ変換します。
引数
名称 | 型 | 内容 |
---|
include | optional set[str] | 辞書へ含めるキー(メンバ)の集合 |
exclude | optional set[str] | 辞書へ含めないキー(メンバ)の集合 |
verbose | bool | システム情報の有無(他の引数がNone の場合のみ) |
spread | bool | 時系列でないlist-likeデータの分割の有無 |
sort_keys | bool | キーによるソートの有無 |
spread
を設定しても、common.TimeSeries[T]
型の時系列データは分割しません。
戻り値
型 | 値 | 内容 |
---|
dict[str, Any] | - | 変換した辞書 |
to_json()
to_json(include=None, exclude=None, verbose=True, spread=False, indent=2, sort_keys=False)
パースしたデータをJSON形式へ変換します。
引数
名称 | 型 | 内容 |
---|
include | optional set[str] | JSONへ含めるキー(メンバ)の集合 |
exclude | optional set[str] | JSONへ含めないキー(メンバ)の集合 |
verbose | bool | システム情報の有無(他の引数がNone の場合のみ) |
spread | bool | 時系列でないlist-likeデータの分割の有無 |
indent | optional int | インデントの数(None で改行なし) |
sort_keys | bool | キーによるソートの有無 |
spread
を設定しても、common.TimeSeries[T]
型の時系列データは分割しません。
戻り値
model_*()
2.9 - mwings.parsers.app_uart_ascii モジュール
mwings.parsers.app_uart_ascii
シリアル通信アプリ(書式モード:簡易形式)から送信されたデータを表すパケットを解釈するパーサと、そのデータを扱います。
src/mwings/parsers/app_uart_ascii.py
PacketParser
シリアル通信アプリ(書式モード:簡易形式)から送信されたデータを表すパケットを解釈するパーサの静的クラス
継承:common.PacketParserBase
is_valid()
与えられた素のパケットが有効であるか否かを確認します。
引数
戻り値
型 | 値 | 内容 |
---|
bool | True | 有効、パース可 |
| False | 無効、パース不可 |
parse()
与えられた素のパケットをパースします。
引数
戻り値
型 | 値 | 内容 |
---|
optional ParsedPacket | ParsedPacket の型をもつデータ | パースしたデータ |
| None | パース不可 |
ParsedPacket
シリアル通信アプリ(書式モード:簡易形式)から送信されたデータを表すパケットを解釈した結果を格納するための構造体
継承:common.ParsedPacketBase
ParsedPacket()
ParsedPacket(*, time_parsed=None, packet_type=PacketType.BARE, sequence_number=None, source_serial_id=0, source_logical_id=0, lqi=None, supply_voltage=None, command_id=0, data=b'')
引数
継承元のプロパティも合わせて表記します。
**
で unpack した辞書を渡すことができます。
コンストラクタの引数へ指定する変数に加えて、次の @computed_field
を持ちます。
名称 | 型 | 内容 |
---|
mwings_implementation | str | MWings の実装("python" のみ) |
mwings_version | str | MWings のバージョン(PEP440形式) |
hostname | str | ホストマシン名 |
system_type | str | システム種別("Linux" など) |
data_base64 | str | データのBase64表記 |
data_hexstr | str | データの16進数表記 |
data
はJSON等に含まれません。data_base64
やdata_hexstr
を利用してください。
適用される field_validator
source_logical_id
:値の範囲を自動的に検証しますcheck_source_logical_id(lid)
time_parsed
:タイムゾーンが付与されているかを自動的に検証しますdatetime_must_be_clear(dt)
sampling_frequency
:値を検証しますcheck_sampling_frequency(freq)
data
:長さを自動的に検証します
適用される field_serializer
packet_type
:列挙子の名前をそのままJSON等に適用しますserialize_packet_type(packet_type)
source_serial_id
:16進表記の文字列をJSON等に適用しますserialize_source_serial_id(source_serial_id)
time_parsed
:ISO 8601形式の文字列をJSON等に適用しますserialize_time_parsed(dt)
- ``
to_df()
to_df(include=None, exclude=None, verbose=True)
パースしたデータを pandas のデータフレーム形式へ変換します。
引数
名称 | 型 | 内容 |
---|
include | optional set[str] | データフレームへ含めるカラム(メンバ)の集合 |
exclude | optional set[str] | データフレームへ含めないカラム(メンバ)の集合 |
verbose | bool | システム情報の有無(他の引数がNone の場合のみ) |
戻り値
例外
EnvironmentError
pandas のない場合
to_dict()
to_dict(include=None, exclude=None, verbose=True, spread=False, sort_keys=False)
パースしたデータを辞書形式へ変換します。
引数
名称 | 型 | 内容 |
---|
include | optional set[str] | 辞書へ含めるキー(メンバ)の集合 |
exclude | optional set[str] | 辞書へ含めないキー(メンバ)の集合 |
verbose | bool | システム情報の有無(他の引数がNone の場合のみ) |
spread | bool | 時系列でないlist-likeデータの分割の有無 |
sort_keys | bool | キーによるソートの有無 |
戻り値
型 | 値 | 内容 |
---|
dict[str, Any] | - | 変換した辞書 |
to_json()
to_json(include=None, exclude=None, verbose=True, spread=False, indent=2, sort_keys=False)
パースしたデータをJSON形式へ変換します。
引数
名称 | 型 | 内容 |
---|
include | optional set[str] | JSONへ含めるキー(メンバ)の集合 |
exclude | optional set[str] | JSONへ含めないキー(メンバ)の集合 |
verbose | bool | システム情報の有無(他の引数がNone の場合のみ) |
spread | bool | 時系列でないlist-likeデータの分割の有無 |
indent | optional int | インデントの数(None で改行なし) |
sort_keys | bool | キーによるソートの有無 |
戻り値
model_*()
2.10 - mwings.parsers.app_uart_ascii_extended モジュール
mwings.parsers.app_uart_ascii_extended
シリアル通信アプリ(書式モード:拡張形式)から送信されたデータを表すパケットを解釈するパーサと、そのデータを扱います。
src/mwings/parsers/app_uart_ascii_extended.py
PacketParser
シリアル通信アプリ(書式モード:拡張形式)から送信されたデータを表すパケットを解釈するパーサの静的クラス
継承:common.PacketParserBase
is_valid()
与えられた素のパケットが有効であるか否かを確認します。
引数
戻り値
型 | 値 | 内容 |
---|
bool | True | 有効、パース可 |
| False | 無効、パース不可 |
parse()
与えられた素のパケットをパースします。
引数
戻り値
型 | 値 | 内容 |
---|
optional ParsedPacket | ParsedPacket の型をもつデータ | パースしたデータ |
| None | パース不可 |
ParsedPacket
シリアル通信アプリ(書式モード:拡張形式)から送信されたデータを表すパケットを解釈した結果を格納するための構造体
継承:common.ParsedPacketBase
ParsedPacket()
ParsedPacket(*, time_parsed=None, packet_type=PacketType.BARE, sequence_number=None, source_serial_id=0, source_logical_id=0, lqi=None, supply_voltage=None, destination_serial_id=120, command_id=0, data=b'')
引数
継承元のプロパティも合わせて表記します。
**
で unpack した辞書を渡すことができます。
コンストラクタの引数へ指定する変数に加えて、次の @computed_field
を持ちます。
名称 | 型 | 内容 |
---|
mwings_implementation | str | MWings の実装("python" のみ) |
mwings_version | str | MWings のバージョン(PEP440形式) |
hostname | str | ホストマシン名 |
system_type | str | システム種別("Linux" など) |
data_base64 | str | データのBase64表記 |
data_hexstr | str | データの16進数表記 |
data
はJSON等に含まれません。data_base64
やdata_hexstr
を利用してください。
適用される field_validator
source_logical_id
:値の範囲を自動的に検証しますcheck_source_logical_id(lid)
time_parsed
:タイムゾーンが付与されているかを自動的に検証しますdatetime_must_be_clear(dt)
sampling_frequency
:値を検証しますcheck_sampling_frequency(freq)
data
:長さを自動的に検証します
適用される field_serializer
packet_type
:列挙子の名前をそのままJSON等に適用しますserialize_packet_type(packet_type)
source_serial_id
:16進表記の文字列をJSON等に適用しますserialize_source_serial_id(source_serial_id)
time_parsed
:ISO 8601形式の文字列をJSON等に適用しますserialize_time_parsed(dt)
- ``
to_df()
to_df(include=None, exclude=None, verbose=True)
パースしたデータを pandas のデータフレーム形式へ変換します。
引数
名称 | 型 | 内容 |
---|
include | optional set[str] | データフレームへ含めるカラム(メンバ)の集合 |
exclude | optional set[str] | データフレームへ含めないカラム(メンバ)の集合 |
verbose | bool | システム情報の有無(他の引数がNone の場合のみ) |
戻り値
例外
EnvironmentError
pandas のない場合
to_dict()
to_dict(include=None, exclude=None, verbose=True, spread=False, sort_keys=False)
パースしたデータを辞書形式へ変換します。
引数
名称 | 型 | 内容 |
---|
include | optional set[str] | 辞書へ含めるキー(メンバ)の集合 |
exclude | optional set[str] | 辞書へ含めないキー(メンバ)の集合 |
verbose | bool | システム情報の有無(他の引数がNone の場合のみ) |
spread | bool | 時系列でないlist-likeデータの分割の有無 |
sort_keys | bool | キーによるソートの有無 |
戻り値
型 | 値 | 内容 |
---|
dict[str, Any] | - | 変換した辞書 |
to_json()
to_json(include=None, exclude=None, verbose=True, spread=False, indent=2, sort_keys=False)
パースしたデータをJSON形式へ変換します。
引数
名称 | 型 | 内容 |
---|
include | optional set[str] | JSONへ含めるキー(メンバ)の集合 |
exclude | optional set[str] | JSONへ含めないキー(メンバ)の集合 |
verbose | bool | システム情報の有無(他の引数がNone の場合のみ) |
spread | bool | 時系列でないlist-likeデータの分割の有無 |
indent | optional int | インデントの数(None で改行なし) |
sort_keys | bool | キーによるソートの有無 |
戻り値
model_*()
2.11 - mwings.parsers.act モジュール
mwings.parsers.act
act から送信されたデータを表すパケットを解釈するパーサと、そのデータを扱います。
src/mwings/parsers/act.py
PacketParser
act から送信されたデータを表すパケットを解釈するパーサの静的クラス
継承:common.PacketParserBase
is_valid()
与えられた素のパケットが有効であるか否かを確認します。
引数
戻り値
型 | 値 | 内容 |
---|
bool | True | 有効、パース可 |
| False | 無効、パース不可 |
parse()
与えられた素のパケットをパースします。
引数
戻り値
型 | 値 | 内容 |
---|
optional ParsedPacket | ParsedPacket の型をもつデータ | パースしたデータ |
| None | パース不可 |
ParsedPacket
act から送信されたデータを表すパケットを解釈した結果を格納するための構造体
継承:common.ParsedPacketBase
ParsedPacket()
ParsedPacket(*, time_parsed=None, packet_type=PacketType.BARE, sequence_number=None, source_serial_id=0, source_logical_id=0, lqi=None, supply_voltage=None, command_id=0, data=b'')
引数
継承元のプロパティも合わせて表記します。
**
で unpack した辞書を渡すことができます。
コンストラクタの引数へ指定する変数に加えて、次の @computed_field
を持ちます。
名称 | 型 | 内容 |
---|
mwings_implementation | str | MWings の実装("python" のみ) |
mwings_version | str | MWings のバージョン(PEP440形式) |
hostname | str | ホストマシン名 |
system_type | str | システム種別("Linux" など) |
data_base64 | str | データのBase64表記 |
data_hexstr | str | データの16進数表記 |
data
はJSON等に含まれません。data_base64
やdata_hexstr
を利用してください。
適用される field_validator
source_logical_id
:値の範囲を自動的に検証しますcheck_source_logical_id(lid)
time_parsed
:タイムゾーンが付与されているかを自動的に検証しますdatetime_must_be_clear(dt)
sampling_frequency
:値を検証しますcheck_sampling_frequency(freq)
適用される field_serializer
packet_type
:列挙子の名前をそのままJSON等に適用しますserialize_packet_type(packet_type)
source_serial_id
:16進表記の文字列をJSON等に適用しますserialize_source_serial_id(source_serial_id)
time_parsed
:ISO 8601形式の文字列をJSON等に適用しますserialize_time_parsed(dt)
- ``
to_df()
to_df(include=None, exclude=None, verbose=True)
パースしたデータを pandas のデータフレーム形式へ変換します。
引数
名称 | 型 | 内容 |
---|
include | optional set[str] | データフレームへ含めるカラム(メンバ)の集合 |
exclude | optional set[str] | データフレームへ含めないカラム(メンバ)の集合 |
verbose | bool | システム情報の有無(他の引数がNone の場合のみ) |
戻り値
例外
EnvironmentError
pandas のない場合
to_dict()
to_dict(include=None, exclude=None, verbose=True, spread=False, sort_keys=False)
パースしたデータを辞書形式へ変換します。
引数
名称 | 型 | 内容 |
---|
include | optional set[str] | 辞書へ含めるキー(メンバ)の集合 |
exclude | optional set[str] | 辞書へ含めないキー(メンバ)の集合 |
verbose | bool | システム情報の有無(他の引数がNone の場合のみ) |
spread | bool | 時系列でないlist-likeデータの分割の有無 |
sort_keys | bool | キーによるソートの有無 |
戻り値
型 | 値 | 内容 |
---|
dict[str, Any] | - | 変換した辞書 |
to_json()
to_json(include=None, exclude=None, verbose=True, spread=False, indent=2, sort_keys=False)
パースしたデータをJSON形式へ変換します。
引数
名称 | 型 | 内容 |
---|
include | optional set[str] | JSONへ含めるキー(メンバ)の集合 |
exclude | optional set[str] | JSONへ含めないキー(メンバ)の集合 |
verbose | bool | システム情報の有無(他の引数がNone の場合のみ) |
spread | bool | 時系列でないlist-likeデータの分割の有無 |
indent | optional int | インデントの数(None で改行なし) |
sort_keys | bool | キーによるソートの有無 |
戻り値
model_*()
3 - mwings.serializers モジュール
mwings.serializers
コマンドを生成するシリアライザと、そのデータを扱います。
3.1 - mwings.serializers.app_twelite モジュール
mwings.serializers.app_twelite
超簡単!標準アプリへ送信するパケットを表すコマンドを生成するシリアライザと、そのデータを扱います。
src/mwings/serializers/app_twelite.py
CommandSerializer
超簡単!標準アプリへ送信するパケットを表すコマンドを生成するシリアライザの静的クラス
継承:common.CommandSerializerBase
serialize()
与えられたコマンドを素のパケットのバイト列へ展開します。
引数
戻り値
Command
超簡単!標準アプリへ送信するパケットを表すコマンドを生成する際に用意するデータを格納するための構造体
継承:common.CommandBase
Command()
Command(*, destination_logical_id=120, di_to_change=<mwings.common.FixedList object>, di_state=<mwings.common.FixedList object>, pwm_to_change=<mwings.common.FixedList object>, pwm_duty=<mwings.common.FixedList object>)
引数
**
で unpack した辞書を渡すことができます。
pwm_to_change
の値は、0
-1024
の範囲を指定します。0xFFFF
指定時は無効となります。
is_valid()
コマンドデータが有効であるか否かを確認します。
引数
なし
戻り値
model_*()
3.2 - mwings.serializers.app_io モジュール
mwings.serializers.app_io
リモコンアプリへ送信するパケットを表すコマンドを生成するシリアライザと、そのデータを扱います。
src/mwings/serializers/app_io.py
CommandSerializer
リモコンアプリへ送信するパケットを表すコマンドを生成するシリアライザの静的クラス
継承:common.CommandSerializerBase
serialize()
与えられたコマンドを素のパケットのバイト列へ展開します。
引数
戻り値
Command
リモコンアプリへ送信するパケットを表すコマンドを生成する際に用意するデータを格納するための構造体
継承:common.CommandBase
Command()
Command(*, destination_logical_id=120, di_to_change=<mwings.common.FixedList object>, di_state=<mwings.common.FixedList object>)
引数
**
で unpack した辞書を渡すことができます。
is_valid()
コマンドデータが有効であるか否かを確認します。
引数
なし
戻り値
model_*()
3.3 - mwings.serializers.app_pal_notice モジュール
mwings.serializers.app_pal_notice
パルアプリ(通知パル)へ送信するパケットを表すコマンドを生成するシリアライザと、そのデータを扱います。
src/mwings/serializers/app_pal_notice.py
CommandSerializer
パルアプリ(通知パル)へ送信するパケットを表すコマンドを生成するシリアライザの静的クラス
継承:common.CommandSerializerBase
serialize()
与えられたコマンドを素のパケットのバイト列へ展開します。
引数
戻り値
Command
パルアプリ(通知パル)へ送信するパケットを表すコマンドを生成する際に用意するデータを格納するための構造体
継承:common.CommandBase
Command()
Command(*, destination_logical_id=120, color=AppPalNoticeColor.WHITE, blink_speed=AppPalNoticeBlinkSpeed.ALWAYS_ON, brightness=8, duration_in_sec=5)
引数
**
で unpack した辞書を渡すことができます。
is_valid()
コマンドデータが有効であるか否かを確認します。
引数
なし
戻り値
model_*()
3.4 - mwings.serializers.app_pal_notice_detailed モジュール
mwings.serializers.app_pal_notice_detailed
パルアプリ(通知パル)へ送信する詳細なパケットを表すコマンドを生成するシリアライザと、そのデータを扱います。
src/mwings/serializers/app_pal_notice_detailed.py
CommandSerializer
パルアプリ(通知パル)へ送信する詳細なパケットを表すコマンドを生成するシリアライザの静的クラス
継承:common.CommandSerializerBase
serialize()
与えられたコマンドを素のパケットのバイト列へ展開します。
引数
戻り値
Command
パルアプリ(通知パル)へ送信する詳細なパケットを表すコマンドを生成する際に用意するデータを格納するための構造体
継承:common.CommandBase
Command()
Command(*, destination_logical_id=120, color=AppPalNoticeRGBWColor(red=0, green=0, blue=0, white=15), blink_duty_percentage=100, blink_period_in_sec=1.0, duration_in_sec=1)
引数
**
で unpack した辞書を渡すことができます。
is_valid()
コマンドデータが有効であるか否かを確認します。
引数
なし
戻り値
model_*()
3.5 - mwings.serializers.app_pal_notice_event モジュール
mwings.serializers.app_pal_notice_event
パルアプリ(通知パル)へ送信するイベントデータのパケットを表すコマンドを生成するシリアライザと、そのデータを扱います。
src/mwings/serializers/app_pal_notice_event.py
CommandSerializer
パルアプリ(通知パル)へ送信するイベントデータのパケットを表すコマンドを生成するシリアライザの静的クラス
継承:common.CommandSerializerBase
serialize()
与えられたコマンドを素のパケットのバイト列へ展開します。
引数
戻り値
Command
パルアプリ(通知パル)へ送信するイベントデータのパケットを表すコマンドを生成する際に用意するデータを格納するための構造体
継承:common.CommandBase
Command()
Command(*, destination_logical_id=120, event_id=0)
引数
**
で unpack した辞書を渡すことができます。
is_valid()
コマンドデータが有効であるか否かを確認します。
引数
なし
戻り値
model_*()
3.6 - mwings.serializers.app_uart_ascii モジュール
mwings.serializers.app_uart_ascii
シリアル通信アプリへ送信するデータ(書式モード:簡易形式)のパケットを表すコマンドを生成するシリアライザと、そのデータを扱います。
src/mwings/serializers/app_uart_ascii.py
CommandSerializer
シリアル通信アプリへ送信するデータ(書式モード:簡易形式)のパケットを表すコマンドを生成するシリアライザの静的クラス
継承:common.CommandSerializerBase
serialize()
与えられたコマンドを素のパケットのバイト列へ展開します。
引数
戻り値
Command
シリアル通信アプリへ送信するデータ(書式モード:簡易形式)のパケットを表すコマンドを生成する際に用意するデータを格納するための構造体
継承:common.CommandBase
Command()
Command(*, destination_logical_id=120, command_id=0, data)
引数
**
で unpack した辞書を渡すことができます。
is_valid()
コマンドデータが有効であるか否かを確認します。
引数
なし
戻り値
model_*()
4 - mwings.utils モジュール
mwings.utils
汎用的なユーティリティ関数を格納しています。
src/mwings/utils.py
ask_user()
ask_user(prompt, regex, on_error, ex_verifier=None, max_attempts=None)
コンソールでユーザからの入力を得ます。
引数
名称 | 型 | 内容 |
---|
prompt | str | プロンプトへ表示するメッセージ |
regex | str | ユーザの入力を検証する正規表現 |
on_error | str | ユーザの入力が不正であった場合のメッセージ |
ex_verifier | optional Callable[[str], bool] | 正規表現に加えて入力文字列を検証する関数 |
max_attempts | optional int | リトライ回数。None なら無限 |
戻り値
ask_user_for_port()
ユーザへ使用するポートを選択させます。
引数
なし
戻り値
byte_count_from()
byte_count_from(character_count)
アスキー文字列で表現されたバイト列の長さをバイナリ表現の長さへ変換します。
引数
名称 | 型 | 内容 |
---|
character_count | int | アスキー表現のバイト列の長さ |
戻り値
character_from()
0x0
-0xF
の数値を16進数表記の文字へ変換します。
引数
戻り値
find_ascii()
find_ascii(port, data, timeout, debugging=False)
指定されたアスキー文字列の受信を待機します。
引数
名称 | 型 | 内容 |
---|
port | serial.Serial | シリアルポート |
data | str | アスキー文字列 |
timeout | int | タイムアウト(秒) |
debuggign | bool | デバッグ出力 |
戻り値
型 | 値 | 内容 |
---|
bool | True | 受信を確認 |
bool | False | 受信を確認できず |
find_binary()
find_binary(port, data, timeout, debugging=False)
指定されたバイト列の受信を待機します。
引数
名称 | 型 | 内容 |
---|
port | serial.Serial | シリアルポート |
data | str | バイト列 |
with_terminal | bool | 終端データ使用の有無 |
terminal | int | 終端として扱うデータ |
timeout | int | タイムアウト(秒) |
debuggign | bool | デバッグ出力 |
戻り値
型 | 値 | 内容 |
---|
bool | True | 受信を確認 |
bool | False | 受信を確認できず |
flush_rx_buffer()
受信バッファをクリアします。
引数
戻り値
なし
flush_tx_buffer()
送信バッファをクリアします。
引数
戻り値
なし
get_ports()
使用できるシリアルポートの一覧を取得します。
引数
なし
戻り値
hex_from()
16進数を表すアスキー文字を数値へ変換します。0
-9
,A
-F
以外の数値を入力した場合の値は不定です。
引数
名称 | 型 | 内容 |
---|
character | int | 文字のアスキーコード |
戻り値
is_initialized()
シリアルポートが初期化されているかどうかを確認します。
引数
戻り値
型 | 値 | 内容 |
---|
bool | True | 初期化済み |
| False | 未初期化 |
is_readable()
シリアルポートからデータを取得できるかどうかを確認します。
引数
戻り値
型 | 値 | 内容 |
---|
bool | True | 受信バッファにデータあり |
| False | 受信不可 |
is_there_some_ports()
使用できるシリアルポートが存在するかどうかを確認します。
引数
なし
戻り値
型 | 値 | 内容 |
---|
bool | True | シリアルポートあり |
| False | なし |
is_writable()
シリアルポートへデータを送信できるかどうかを確認します。
引数
戻り値
lrc8()
8ビットのLRCを計算します。
引数
戻り値
millis()
現在のシステム時間をミリ秒単位で取得します。
引数
なし
戻り値
open_on_system()
指定されたパスのファイルをシステムの既定のアプリケーションで開きます。
引数
戻り値
なし
write_binary()
バイト列をシリアルポートへ送信します。
引数
戻り値
なし
write_in_ascii()
write_in_ascii(port, data)
アスキー表現のバイト列をシリアルポートへ送信します。
引数
戻り値
なし