セクションの複数ページをまとめています。 印刷またはPDF形式で保存...

もとのページに戻る

2024-05-17 現在

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進数表記の文字列(小文字)