/

mwings.common モジュール

mwings.common

ライブラリ全体で使用するデータや手続きを格納しています。

src/mwings/common.py

AccelEvent

加速度イベントの識別子

継承:enum.IntEnum

  • DICE_1 サイコロ:1
  • DICE_2 サイコロ:2
  • DICE_3 サイコロ:3
  • DICE_4 サイコロ:4
  • DICE_5 サイコロ:5
  • DICE_6 サイコロ:6
  • SHAKE シェイク
  • 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)

引数

名称内容
redcommon.UInt8赤:0-0xF
greencommon.UInt8緑:0-0xF
bluecommon.UInt8青:0-0xF
whitecommon.UInt8白:0-0xF

** で unpack した辞書を渡すことができます。

u16()

u16()

RGBWの16ビット表現を取得します。

引数

なし

戻り値

内容
common.UInt16-RGBWの16ビット表現

BarePacket

素のパケットデータ

継承:pydantic.BaseModel

BarePacket()

BarePacket(payload, checksum=None, logical_and_command_id=None)

引数

名称内容
payloadbytesペイロードのバイナリデータ
checksumoptional common.UInt8LRC8:Noneで自動計算
logical_and_command_idoptional tuple(common.UInt8, common.UInt8)論理デバイスIDとコマンドID

第3引数を指定する場合は、ペイロードの冒頭を省略します。

i16_at()

i16_at(index)

指定した位置の符号あり16ビット整数を取得します。

引数

名称内容
indexintペイロードにおける位置

戻り値

内容
common.Int16-数値データ

i32_at()

i32_at(index)

指定した位置の符号あり32ビット整数を取得します。

引数

名称内容
indexintペイロードにおける位置

戻り値

内容
common.Int32-数値データ

i8_at()

i8_at(index)

指定した位置の符号あり8ビット整数を取得します。

引数

名称内容
indexintペイロードにおける位置

戻り値

内容
common.Int8-数値データ

u16_at()

u16_at(index)

指定した位置の符号なし16ビット整数を取得します。

引数

名称内容
indexintペイロードにおける位置

戻り値

内容
common.UInt16-数値データ

u32_at()

u32_at(index)

指定した位置の符号なし32ビット整数を取得します。

引数

名称内容
indexintペイロードにおける位置

戻り値

内容
common.UInt32-数値データ

u8_at()

u8_at(index)

指定した位置の符号なし8ビット整数を取得します。

引数

名称内容
indexintペイロードにおける位置

戻り値

内容
common.UInt8-数値データ

u8_from()

u8_from(index)

指定した位置に続くバイト列を取得します。

引数

名称内容
indexintペイロードにおける先頭の位置

戻り値

内容
optional bytesbytes部分的なバイト列
None指定位置が無効

CommandBase

コマンドの抽象基底クラス

継承:ABC, pydantic.BaseModel

CommandBase()

CommandBase(*, destination_logical_id=120)

引数

名称内容
destination_logical_idcommon.UInt8送信先の論理デバイスID

** で unpack した辞書を渡すことができます。

is_valid()

is_valid()

コマンドデータが有効であるか否かを確認します。

引数

なし

戻り値

内容
boolTrue有効
False無効

CommandSerializerBase

コマンドシリアライザの静的抽象基底クラス

継承:ABC

serialize()

serialize(command)

与えられたコマンドを素のパケットのバイト列へ展開します。

引数

名称内容
commandcommon.SomeCommand何らかのコマンドデータ

戻り値

内容
optional common.BarePacketcommon.BarePacket展開したデータ
None無効なコマンドデータである

CrossSectional[T]

特定の時刻における横断的なデータ列を格納するためのタプルに相当するクラス

継承:common.FixedTuple[T]

CrossSectional[T]()

CrossSectional[T](length, elements)

引数

名称内容
Tcommon.T要素の型
lengthint要素の数
elementsIterable[T]要素

例外

  • ValueError 要素の数が不正

DtypedDecimal

pandas の dtype 属性を保持する数値型のための抽象基底クラス

get_dtype()

get_dtype()

pandas の dtype 識別子を取得します。

引数

なし

戻り値

内容
str-dtype 識別子

FixedList[T]

固定長リストに相当するクラス

継承:MutableSequence[T]

FixedList[T]()

FixedList[T](length, initial_elements)

引数

名称内容
Tcommon.T要素の型
lengthint要素の数
initial_elementsIterable[T]初期の要素

例外

  • ValueError 要素の数が不正

insert()

insert(index, value)

指定した位置へ要素を配置します。

引数

名称内容
indexint配置する位置
valuecommon.T配置する要素

戻り値

なし

例外

  • IndexError 位置が不正

FixedTuple[T]

固定長タプルに相当するクラス

継承:Sequence[T]

FixedTuple[T]()

FixedTuple[T](length, elements)

引数

名称内容
Tcommon.T要素の型
lengthint要素の数
elementsIterable[T]要素

例外

  • ValueError 要素の数が不正

Float32

32ビット浮動小数点数を格納するクラス

継承:float, common.DtypedDecimal

Float32()

Float32(value=None)

引数

名称内容
valueoptional float初期の値

例外

  • ValueError 範囲外の値

Float64

64ビット浮動小数点数を格納するクラス

継承:float, common.DtypedDecimal

Float64()

Float64(value=None)

引数

名称内容
valueoptional float初期の値

例外

  • ValueError 範囲外の値

Int16

16ビット整数を格納するクラス

継承:int, common.DtypedDecimal

Int16()

Int16(value=None)

引数

名称内容
valueoptional int初期の値

例外

  • ValueError 範囲外の値

hex()

hex()

16進数表記の文字列を取得します。

Python 組み込み関数の hex()int のサブクラスを受け付けません。float に対する組み込みメソッド hex() と同じように扱えるようにしています。

引数

なし

戻り値

内容
str-16進数表記の文字列(小文字)

Int32

32ビット整数を格納するクラス

継承:int, common.DtypedDecimal

Int32()

Int32(value=None)

引数

名称内容
valueoptional int初期の値

例外

  • ValueError 範囲外の値

hex()

hex()

16進数表記の文字列を取得します。

Python 組み込み関数の hex()int のサブクラスを受け付けません。float に対する組み込みメソッド hex() と同じように扱えるようにしています。

引数

なし

戻り値

内容
str-16進数表記の文字列(小文字)

Int8

8ビット整数を格納するクラス

継承:int, common.DtypedDecimal

Int8()

Int8(value=None)

引数

名称内容
valueoptional int初期の値

例外

  • ValueError 範囲外の値

hex()

hex()

16進数表記の文字列を取得します。

Python 組み込み関数の hex()int のサブクラスを受け付けません。float に対する組み込みメソッド hex() と同じように扱えるようにしています。

引数

なし

戻り値

内容
str-16進数表記の文字列(小文字)

MagnetState

磁石イベントの識別子

継承:enum.IntEnum

  • NOT_DETECTED 磁石なし
  • N_POLE_IS_CLOSE N極が近くにある
  • S_POLE_IS_CLOSE S極が近くにある

PacketParserBase

パケットパーサの静的抽象基底クラス

継承:ABC

is_valid()

is_valid(bare_packet)

与えられた素のパケットが有効であるか否かを確認します。

引数

名称内容
bare_packetcommon.BarePacket素のパケットデータ

戻り値

内容
boolTrue有効、パース可
False無効、パース不可

parse()

parse(bare_packet)

与えられた素のパケットをパースします。

引数

名称内容
bare_packetcommon.BarePacket素のパケットデータ

戻り値

内容
optional common.ParsedPacketBasecommon.ParsedPacketBaseを基底クラスにもつデータパースしたデータ
Noneパース不可

PacketType

パケット種別の識別子

継承:enum.StrEnum

  • BARE 素のパケット(未パース)
  • ACT act
  • APP_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)

引数

名称内容
time_parsedoptional AwareDatetimeパース時刻
packet_typecommon.PacketTypeパケット種別
sequence_numberoptional common.UInt16シーケンス番号
source_serial_idcommon.UInt32送信元のシリアルID
source_logical_idcommon.UInt8送信元の論理デバイスID
lqicommon.UInt8電波通信品質
supply_voltageoptional common.UInt16電源電圧(mV)

** で unpack した辞書を渡すことができます。

to_df()

to_df(include=None, exclude=None, verbose=True)

パースしたデータを pandas のデータフレーム形式へ変換します。

引数

名称内容
includeoptional set[str]データフレームへ含めるカラム(メンバ)の集合
excludeoptional set[str]データフレームへ含めないカラム(メンバ)の集合
verboseboolシステム情報の有無(他の引数がNoneの場合のみ)

戻り値

内容
pd.DataFrame-変換したデータフレーム

例外

  • EnvironmentError pandas のない場合

to_dict()

to_dict(include=None, exclude=None, verbose=True, spread=False, sort_keys=False)

パースしたデータを辞書形式へ変換します。

引数

名称内容
includeoptional set[str]辞書へ含めるキー(メンバ)の集合
excludeoptional set[str]辞書へ含めないキー(メンバ)の集合
verboseboolシステム情報の有無(他の引数がNoneの場合のみ)
spreadbool時系列でないlist-likeデータの分割の有無
sort_keysboolキーによるソートの有無

戻り値

内容
dict[str, Any]-変換した辞書

to_json()

to_json(include=None, exclude=None, verbose=True, spread=False, indent=2, sort_keys=False)

パースしたデータをJSON形式へ変換します。

引数

名称内容
includeoptional set[str]JSONへ含めるキー(メンバ)の集合
excludeoptional set[str]JSONへ含めないキー(メンバ)の集合
verboseboolシステム情報の有無(他の引数がNoneの場合のみ)
spreadbool時系列でないlist-likeデータの分割の有無
indentoptional intインデントの数(Noneで改行なし)
sort_keysboolキーによるソートの有無

戻り値

内容
str-変換したJSON文字列

SomeCallable

TypeVar("SomeCallable", bound=Callable[..., Any])

各種ハンドラを表す型

SomeCommand

TypeVar(SomeCommand, bound=CommandBase)

各種コマンドデータを表す型

SomeParsedPacket

TypeVar(SomeParsedPacket, bound=ParsedPacketBase)

各種パケットデータを表す型

T

TypeVar("T")

ジェネリクスで利用する型

TimeSeries[T]

時系列データを格納するためのタプルに相当するクラス

継承:common.FixedTuple[T]

TimeSeries[T]()

TimeSeries[T](length, elements)

引数

名称内容
Tcommon.T要素の型
lengthint要素の数
elementsIterable[T]要素

例外

  • ValueError 要素の数が不正

Timezone

全体へ適用するtzinfo

UInt16

16ビット非不整数を格納するクラス

継承:int, common.DtypedDecimal

UInt16()

UInt16(value=None)

引数

名称内容
valueoptional int初期の値

例外

  • ValueError 範囲外の値

hex()

hex()

16進数表記の文字列を取得します。

Python 組み込み関数の hex()int のサブクラスを受け付けません。float に対する組み込みメソッド hex() と同じように扱えるようにしています。

引数

なし

戻り値

内容
str-16進数表記の文字列(小文字)

UInt32

32ビット非不整数を格納するクラス

継承:int, common.DtypedDecimal

UInt32()

UInt32(value=None)

引数

名称内容
valueoptional int初期の値

例外

  • ValueError 範囲外の値

hex()

hex()

16進数表記の文字列を取得します。

Python 組み込み関数の hex()int のサブクラスを受け付けません。float に対する組み込みメソッド hex() と同じように扱えるようにしています。

引数

なし

戻り値

内容
str-16進数表記の文字列(小文字)

UInt8

8ビット非不整数を格納するクラス

継承:int, common.DtypedDecimal

UInt8()

UInt8(value=None)

引数

名称内容
valueoptional int初期の値

例外

  • ValueError 範囲外の値

hex()

hex()

16進数表記の文字列を取得します。

Python 組み込み関数の hex()int のサブクラスを受け付けません。float に対する組み込みメソッド hex() と同じように扱えるようにしています。

引数

なし

戻り値

内容
str-16進数表記の文字列(小文字)