# Generated by the protocol buffer compiler.  DO NOT EDIT!
# sources: pymammotion/proto/luba_msg.proto
# plugin: python-betterproto
from dataclasses import dataclass

import betterproto
from .common import *
from .basestation import *
from .dev_net import *
from .luba_mul import *
from .mctrl_driver import *
from .mctrl_nav import *
from .mctrl_ota import *
from .mctrl_pept import *
from .mctrl_sys import *


class MsgCmdType(betterproto.Enum):
    MSG_CMD_TYPE_START = 0
    MSG_CMD_TYPE_NAV = 240
    MSG_CMD_TYPE_LOCALIZATION = 241
    MSG_CMD_TYPE_PLANNING = 242
    MSG_CMD_TYPE_EMBED_DRIVER = 243
    MSG_CMD_TYPE_EMBED_SYS = 244
    MSG_CMD_TYPE_EMBED_MIDWARE = 245
    MSG_CMD_TYPE_EMBED_OTA = 246
    MSG_CMD_TYPE_APPLICATION = 247
    MSG_CMD_TYPE_ESP = 248
    MSG_CMD_TYPE_MUL = 249
    MSG_CMD_TYPE_PEPT = 250


class MsgAttr(betterproto.Enum):
    MSG_ATTR_NONE = 0
    MSG_ATTR_REQ = 1
    MSG_ATTR_RESP = 2
    MSG_ATTR_REPORT = 3


class MsgDevice(betterproto.Enum):
    DEV_COMM_ESP = 0
    DEV_MAINCTL = 1
    DEV_LEFTMOTOR = 2
    DEV_RIGHTMOTOR = 3
    DEV_BASESTATION = 4
    DEV_RTKCLI = 5
    DEV_USBHOST = 6
    DEV_MOBILEAPP = 7
    DEV_IOTSERVER = 8
    DEV_BMS = 9
    DEV_NAVIGATION = 17
    DEV_LOCALIZATION = 18
    DEV_PERCEPTION = 19
    SOC_MODULE_MULTIMEDIA = 21
    DEV_IOTCTRL = 25


@dataclass
class MsgNull(betterproto.Message):
    pass


@dataclass
class LubaMsg(betterproto.Message):
    msgtype: "MsgCmdType" = betterproto.enum_field(1)
    sender: "MsgDevice" = betterproto.enum_field(2)
    rcver: "MsgDevice" = betterproto.enum_field(3)
    msgattr: "MsgAttr" = betterproto.enum_field(4)
    seqs: int = betterproto.int32_field(5)
    version: int = betterproto.int32_field(6)
    subtype: int = betterproto.int32_field(7)
    net: "DevNet" = betterproto.message_field(8, group="LubaSubMsg")
    sys: "MctlSys" = betterproto.message_field(10, group="LubaSubMsg")
    nav: "MctlNav" = betterproto.message_field(11, group="LubaSubMsg")
    driver: "MctlDriver" = betterproto.message_field(12, group="LubaSubMsg")
    ota: "MctlOta" = betterproto.message_field(13, group="LubaSubMsg")
    mul: "SocMul" = betterproto.message_field(14, group="LubaSubMsg")
    null: "MsgNull" = betterproto.message_field(16, group="LubaSubMsg")
    pept: "MctlPept" = betterproto.message_field(17, group="LubaSubMsg")
    base: "BaseStation" = betterproto.message_field(18, group="LubaSubMsg")
    timestamp: int = betterproto.uint64_field(15)
