update mesh message parser with some minor changes

This commit is contained in:
Laura Klünder 2022-04-06 21:05:52 +02:00
parent e7a4effc99
commit 333b96f24f

View file

@ -48,7 +48,7 @@ class MacAddressesListFormat:
class Message: class Message:
dst: str = field(metadata={'format': MacAddressFormat()}) dst: str = field(metadata={'format': MacAddressFormat()})
src: str = field(metadata={'format': MacAddressFormat()}) src: str = field(metadata={'format': MacAddressFormat()})
msg_id: int = field(metadata={'format': SimpleFormat('B')}, init=False) msg_id: int = field(metadata={'format': SimpleFormat('B')}, init=False, repr=True)
msg_types = {} msg_types = {}
# noinspection PyMethodOverriding # noinspection PyMethodOverriding
@ -76,30 +76,30 @@ class Message:
@dataclass @dataclass
class EchoMessage(Message, msg_id=0x01): class EchoRequestMessage(Message, msg_id=0x01):
content: str = field(default='', metadata={'format': VarStrFormat()}) content: str = field(default='', metadata={'format': VarStrFormat()})
@dataclass @dataclass
class MeshSigninMessage(Message, msg_id=0x02): class EchoResponseMessage(Message, msg_id=0x02):
mac_address: str = field(metadata={'format': MacAddressFormat()}) content: str = field(default='', metadata={'format': VarStrFormat()})
@dataclass @dataclass
class MeshLayerAnnounceMessage(Message, msg_id=0x03): class MeshSigninMessage(Message, msg_id=0x03):
pass
@dataclass
class MeshLayerAnnounceMessage(Message, msg_id=0x04):
layer: int = field(metadata={'format': SimpleFormat('B')}) layer: int = field(metadata={'format': SimpleFormat('B')})
@dataclass @dataclass
class BaseMeshDestinationsMessage(Message): class MeshAddDestinationsMessage(Message, msg_id=0x05):
mac_addresses: list[str] = field(default_factory=list, metadata={'format': MacAddressesListFormat()}) mac_addresses: list[str] = field(default_factory=list, metadata={'format': MacAddressesListFormat()})
@dataclass @dataclass
class MeshAddDestinationsMessage(BaseMeshDestinationsMessage, msg_id=0x04): class MeshRemoveDestinationsMessage(Message, msg_id=0x06):
pass mac_addresses: list[str] = field(default_factory=list, metadata={'format': MacAddressesListFormat()})
@dataclass
class MeshRemoveDestinationsMessage(BaseMeshDestinationsMessage, msg_id=0x05):
pass