mwings.parsers.app_cue_pal_event Module
Parsers for packets sent from TWELITE CUE in PAL event mode (Dice/Move mode) and data structures to store their contents.
PacketParser
Static class parser that interprets packets representing data sent from the CUE app (operation PAL mode: Dice/Move mode).
Inherits from:
common.PacketParserBase
is_valid()
is_valid(bare_packet)
Checks whether the given raw packet is valid.
Arguments
| Name | Type | Description |
|---|---|---|
bare_packet | common.BarePacket | Raw packet data |
Returns
| Type | Value | Description |
|---|---|---|
bool | True | Valid, parsable |
False | Invalid, not parsable |
parse()
parse(bare_packet)
Parses the given raw packet.
Arguments
| Name | Type | Description |
|---|---|---|
bare_packet | common.BarePacket | Raw packet data |
Returns
| Type | Value | Description |
|---|---|---|
optional ParsedPacket | Data of type ParsedPacket | Parsed data |
None | Parsing failed |
ParsedPacket
Data structure to store the result of parsing packets representing data sent from the CUE app (operation PAL mode: Dice/Move mode).
Inherits from:
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)
Arguments
Includes inherited properties as well.
| Name | Type | Description |
|---|---|---|
time_parsed | optional AwareDatetime | Parsing timestamp |
packet_type | common.PacketType | Packet type |
sequence_number | optional common.UInt16 | Sequence number |
source_serial_id | common.UInt32 | Source serial ID |
source_logical_id | common.UInt8 | Source logical device ID |
lqi | optional common.UInt8 | Radio communication quality |
supply_voltage | optional common.UInt16 | Supply voltage (mV) |
router_serial_id | common.UInt32 | Serial ID of the first relay device (no relay is 0x80000000) v1.0.13+ |
ai1_voltage | common.UInt16 | Voltage of AI1 (mV) |
accel_event | common.AccelEvent | Acceleration event |
You can also pass a dictionary unpacked with
**.
In addition to the variables specified as constructor arguments, the following @computed_field are available.
| Name | Type | Description |
|---|---|---|
mwings_implementation | str | MWings implementation (only "python") |
mwings_version | str | MWings version (PEP440 format) |
hostname | str | Host machine name |
system_type | str | System type (e.g., "Linux") |
Applicable field_validator
source_logical_id: Automatically validates the value rangecheck_source_logical_id(lid)
time_parsed: Automatically validates that timezone is attacheddatetime_must_be_clear(dt)
Applicable field_serializer
packet_type: Serializes enum name as-is for JSON etc.serialize_packet_type(packet_type)
source_serial_id: Serializes as hexadecimal string for JSON etc.serialize_source_serial_id(source_serial_id)
time_parsed: Serializes as ISO 8601 string for JSON etc.serialize_time_parsed(dt)
accel_event: Serializes enum name as-is for JSON etc.serialize_accel_event(accel_event)
to_df()
to_df(include=None, exclude=None, verbose=True)
Converts the parsed data into a pandas DataFrame format.
Arguments
| Name | Type | Description |
|---|---|---|
include | optional set[str] | Set of columns (members) to include in the DataFrame |
exclude | optional set[str] | Set of columns (members) to exclude from the DataFrame |
verbose | bool | Include system information (only if other arguments are None) |
Returns
| Type | Value | Description |
|---|---|---|
pd.DataFrame | - | Converted DataFrame |
Exceptions
EnvironmentErrorif pandas is not installed
to_dict()
to_dict(include=None, exclude=None, verbose=True, spread=False, sort_keys=False)
Converts the parsed data into dictionary format.
Arguments
| Name | Type | Description |
|---|---|---|
include | optional set[str] | Set of keys (members) to include in the dictionary |
exclude | optional set[str] | Set of keys (members) to exclude from the dictionary |
verbose | bool | Include system information (only if other arguments are None) |
spread | bool | Whether to split non-time-series list-like data |
sort_keys | bool | Whether to sort keys |
spread is set, data of type common.CrossSectional[T] will be split. Time-series data of type common.TimeSeries[T] will not be split.Returns
| Type | Value | Description |
|---|---|---|
dict[str, Any] | - | Converted dictionary |
to_json()
to_json(include=None, exclude=None, verbose=True, spread=False, indent=2, sort_keys=False)
Converts the parsed data into JSON format.
Arguments
| Name | Type | Description |
|---|---|---|
include | optional set[str] | Set of keys (members) to include in the JSON |
exclude | optional set[str] | Set of keys (members) to exclude from the JSON |
verbose | bool | Include system information (only if other arguments are None) |
spread | bool | Whether to split non-time-series list-like data |
indent | optional int | Number of spaces for indentation (None means no line breaks) |
sort_keys | bool | Whether to sort keys |
spread is set, data of type common.CrossSectional[T] will be split. Time-series data of type common.TimeSeries[T] will not be split.Returns
| Type | Value | Description |
|---|---|---|
str | - | Converted JSON string |
model_*()
pydantic.BaseModel.