# Generated by the protocol buffer compiler.  DO NOT EDIT!
# sources: pymammotion/proto/basestation.proto, pymammotion/proto/common.proto, pymammotion/proto/dev_net.proto, pymammotion/proto/luba_msg.proto, pymammotion/proto/luba_mul.proto, pymammotion/proto/mctrl_driver.proto, pymammotion/proto/mctrl_nav.proto, pymammotion/proto/mctrl_ota.proto, pymammotion/proto/mctrl_pept.proto, pymammotion/proto/mctrl_sys.proto
# plugin: python-betterproto2
# This file has been @generated

__all__ = (
    "ApnAuthType",
    "AppGetAllAreaHashName",
    "AppGetCutterWorkMode",
    "AppRequestCoverPathsT",
    "AppSetCutterWorkMode",
    "AppToBaseMqttRtkT",
    "AppToDevGetMqttConfigT",
    "AppToDevSetMqttRtkT",
    "AreaHashName",
    "BaseInfo",
    "BaseScore",
    "BaseStation",
    "BaseToAppMqttRtkT",
    "BladeUsed",
    "BleLogUploadUpdateProgress",
    "BleSignatureReq",
    "BleTestBytes",
    "ChargePileType",
    "CollectMotorState",
    "CollectorStatusT",
    "CommDataCouple",
    "CommandResult",
    "CostmapT",
    "CoverPathPacketT",
    "CoverPathUploadT",
    "CutterWorkMode",
    "DebugCfgReadT",
    "DebugCfgWriteT",
    "DebugCommonReportT",
    "DebugEnableT",
    "DebugErrocodeReportT",
    "DebugResCfgAbilityT",
    "DebugSunTimeT",
    "DevNet",
    "DevStatueT",
    "DevToAppGetMqttConfigT",
    "DevToAppSetMqttRtkT",
    "DeviceFwInfo",
    "DeviceProductTypeInfoT",
    "DownlinkT",
    "DrvCollectCtrlByHand",
    "DrvDebugDdsZmq",
    "DrvDevInfoReq",
    "DrvDevInfoReqId",
    "DrvDevInfoResp",
    "DrvDevInfoRespId",
    "DrvDevInfoResult",
    "DrvKnifeChangeReport",
    "DrvKnifeHeight",
    "DrvKnifeStatus",
    "DrvListUpload",
    "DrvMotionCtrl",
    "DrvMowCtrlByHand",
    "DrvSrSpeed",
    "DrvUpgradeReport",
    "DrvUploadFileCancel",
    "DrvUploadFileFileType",
    "DrvUploadFileReq",
    "DrvUploadFileToAppReq",
    "DrvUploadFileToAppRsp",
    "DrvWifiConf",
    "DrvWifiList",
    "DrvWifiMsg",
    "DrvWifiSet",
    "DrvWifiUpload",
    "FotaInfoT",
    "FotaSubInfoT",
    "FpvToAppInfoT",
    "FwDownloadCtrl",
    "GetHeadlamp",
    "GetInfoReq",
    "GetInfoRsp",
    "GetMnetCfgReq",
    "GetMnetCfgRsp",
    "GetMnetInfoReq",
    "GetMnetInfoRsp",
    "GetNetworkInfoReq",
    "GetNetworkInfoRsp",
    "Getlamprsp",
    "InfoType",
    "IotConctrlType",
    "LampCtrlSta",
    "LampManualCtrlSta",
    "LockStateT",
    "LoraCfgReq",
    "LoraCfgRsp",
    "LubaMsg",
    "MCtrlSimulationCmdData",
    "ManualElementMessage",
    "MctlDriver",
    "MctlNav",
    "MctlOta",
    "MctlPept",
    "MctlSys",
    "MnetApn",
    "MnetApnCfg",
    "MnetApnSetCfg",
    "MnetCfg",
    "MnetInetStatus",
    "MnetInfo",
    "MnetLinkType",
    "ModFwInfo",
    "MowToAppInfoT",
    "MowToAppQctoolsInfoT",
    "MqttRtkConnect",
    "MsgAttr",
    "MsgCmdType",
    "MsgDevice",
    "MsgNull",
    "MsgbusPkt",
    "MulAudioCfg",
    "MulCameraPosition",
    "MulLanguage",
    "MulSetAudio",
    "MulSetEncode",
    "MulSetVideo",
    "MulSetVideoAck",
    "MulSetWiper",
    "MulSetWiperAck",
    "MulSex",
    "MulVideoErrorCode",
    "MulWiperErrorCode",
    "NavBorderDataGet",
    "NavBorderDataGetAck",
    "NavBorderState",
    "NavCHlLineData",
    "NavCHlLineDataAck",
    "NavEdgePoints",
    "NavEdgePointsAck",
    "NavGetAllPlanTask",
    "NavGetCommData",
    "NavGetCommDataAck",
    "NavGetHashList",
    "NavGetHashListAck",
    "NavGetNameTime",
    "NavHeadingStateT",
    "NavLatLonUp",
    "NavMapNameMsg",
    "NavObstiBorderDataGet",
    "NavObstiBorderDataGetAck",
    "NavOptLineUp",
    "NavOptObsInfo",
    "NavOptiBorderInfo",
    "NavPlanJobSet",
    "NavPlanTaskExecute",
    "NavPosUp",
    "NavReqCoverPath",
    "NavResFrame",
    "NavStartJob",
    "NavSysHashOverview",
    "NavSysParamMsg",
    "NavTaskBreakPoint",
    "NavTaskCtrl",
    "NavTaskCtrlAck",
    "NavTaskIdRw",
    "NavTaskInfo",
    "NavTaskProgress",
    "NavUnableTimeSet",
    "NavUploadZigZagResult",
    "NavUploadZigZagResultAck",
    "NetSpeed",
    "NetType",
    "NetUsedType",
    "OffPartId",
    "Operation",
    "OtaInfo",
    "PerceptionLocalMapVisualizationT",
    "PerceptionObstaclesT",
    "PerceptionObstaclesVisualizationT",
    "PerceptionUniversalBuffT",
    "PlanTaskNameIdT",
    "PosScore",
    "QcAppTestConditions",
    "QcAppTestExcept",
    "QcAppTestId",
    "RemoteResetReqT",
    "RemoteResetRspT",
    "ReportInfoCfg",
    "ReportInfoData",
    "ReportInfoT",
    "RequestBasestationInfoT",
    "ResponseBasestationInfoT",
    "ResponseSetModeT",
    "RptAct",
    "RptBasestationInfo",
    "RptConnectStatus",
    "RptCutterRpm",
    "RptDevLocation",
    "RptDevStatus",
    "RptInfoType",
    "RptLora",
    "RptMaintain",
    "RptRtk",
    "RptWork",
    "RtkCfgReqAckT",
    "RtkCfgReqT",
    "RtkSysMaskQueryAckT",
    "RtkSysMaskQueryT",
    "RtkUsedType",
    "SetDrvBleMtu",
    "SetHeadlamp",
    "SetMnetCfgReq",
    "SetMnetCfgRsp",
    "SetPeripheralsT",
    "Setlamprsp",
    "SimCardSta",
    "SimulationCmdData",
    "SocMul",
    "SpecialModeT",
    "SvgMessageAckT",
    "SvgMessageT",
    "SysBatUp",
    "SysBoardType",
    "SysBorder",
    "SysCommCmd",
    "SysDelJobPlan",
    "SysDevErrCode",
    "SysErrorCode",
    "SysJobPlan",
    "SysJobPlanTime",
    "SysKnifeControl",
    "SysMowInfo",
    "SysOffChipFlash",
    "SysOptiLineAck",
    "SysPlanJobStatus",
    "SysResetBladeUsedTimeStatus",
    "SysResetSystemStatus",
    "SysSetDateTime",
    "SysSetTimeZone",
    "SysSwVersion",
    "SysUploadFileProgress",
    "SysWorkState",
    "SystemRapidStateTunnelMsg",
    "SystemTardStateTunnelMsg",
    "SystemTmpCycleTxMsg",
    "SystemUpdateBufMsg",
    "TimeCtrlLight",
    "UnloadMotorState",
    "UplinkT",
    "UserSetBladeUsedWarnTime",
    "VioSurvivalInfoT",
    "VioToAppInfoMsg",
    "VisionCtrlMsg",
    "VisionPointInfoMsg",
    "VisionPointMsg",
    "VisionStatisticInfoMsg",
    "VisionStatisticMsg",
    "WifiConfType",
    "WifiIotStatusReport",
    "WorkModeT",
    "WorkReportCmdData",
    "WorkReportInfoAck",
    "WorkReportUpdateAck",
    "WorkReportUpdateCmd",
    "ZoneStartPrecentT",
)

from dataclasses import dataclass

import betterproto2

from .message_pool import default_message_pool

_COMPILER_VERSION = "0.9.0"
betterproto2.check_compiler_version(_COMPILER_VERSION)


class ApnAuthType(betterproto2.Enum):
    APN_AUTH_NONE = 0

    APN_AUTH_PAP = 1

    APN_AUTH_CHAP = 2

    APN_AUTH_PAP_CHAP = 3


class CollectMotorState(betterproto2.Enum):
    COLLECT_CLOSE = 0

    COLLECT_OPEN = 1

    COLLECT_STUCK = 2

    COLLECT_ABNORMAL = 3


class CommandResult(betterproto2.Enum):
    RS_OK = 0

    RS_FAIL_MAGIC = 1

    RS_FAIL_OTA = 2

    RS_FAIL_SLOPE = 3


class CutterWorkMode(betterproto2.Enum):
    CUTTER_STANDARD = 0

    CUTTER_ECONOMIC = 1

    CUTTER_PERFORMANCE = 2


class DrvDevInfoResult(betterproto2.Enum):
    DRV_RESULT_FAIL = 0

    DRV_RESULT_SUC = 1

    DRV_RESULT_NOTSUP = 2


class DrvUploadFileFileType(betterproto2.Enum):
    FILE_TYPE_ALL = 0

    FILE_TYPE_SYSLOG = 1

    FILE_TYPE_NAVLOG = 2

    FILE_TYPE_RTKLOG = 3


class InfoType(betterproto2.Enum):
    IT_BASE = 0

    IT_OTA = 1


class IotConctrlType(betterproto2.Enum):
    IOT_TYPE_OFFLINE = 0

    IOT_TYPE_ONLINE = 1

    IOT_TYPE_RESET = 2


class LampCtrlSta(betterproto2.Enum):
    power_off = 0

    power_on = 1

    power_ctrl_on = 2


class LampManualCtrlSta(betterproto2.Enum):
    manual_power_off = 0

    manual_power_on = 1


class MnetLinkType(betterproto2.Enum):
    MNET_LINK_NONE = 0

    MNET_LINK_2G = 1

    MNET_LINK_3G = 2

    MNET_LINK_4G = 3

    MNET_LINK_5G = 4


class MsgAttr(betterproto2.Enum):
    NONE = 0

    REQ = 1

    RESP = 2

    REPORT = 3

    @classmethod
    def betterproto_value_to_renamed_proto_names(cls) -> dict[int, str]:
        return {
            0: "MSG_ATTR_NONE",
            1: "MSG_ATTR_REQ",
            2: "MSG_ATTR_RESP",
            3: "MSG_ATTR_REPORT",
        }

    @classmethod
    def betterproto_renamed_proto_names_to_value(cls) -> dict[str, int]:
        return {
            "MSG_ATTR_NONE": 0,
            "MSG_ATTR_REQ": 1,
            "MSG_ATTR_RESP": 2,
            "MSG_ATTR_REPORT": 3,
        }


class MsgCmdType(betterproto2.Enum):
    START = 0

    NAV = 240

    LOCALIZATION = 241

    PLANNING = 242

    EMBED_DRIVER = 243

    EMBED_SYS = 244

    EMBED_MIDWARE = 245

    EMBED_OTA = 246

    APPLICATION = 247

    ESP = 248

    MUL = 249

    PEPT = 250

    BASESTATION = 251

    @classmethod
    def betterproto_value_to_renamed_proto_names(cls) -> dict[int, str]:
        return {
            0: "MSG_CMD_TYPE_START",
            240: "MSG_CMD_TYPE_NAV",
            241: "MSG_CMD_TYPE_LOCALIZATION",
            242: "MSG_CMD_TYPE_PLANNING",
            243: "MSG_CMD_TYPE_EMBED_DRIVER",
            244: "MSG_CMD_TYPE_EMBED_SYS",
            245: "MSG_CMD_TYPE_EMBED_MIDWARE",
            246: "MSG_CMD_TYPE_EMBED_OTA",
            247: "MSG_CMD_TYPE_APPLICATION",
            248: "MSG_CMD_TYPE_ESP",
            249: "MSG_CMD_TYPE_MUL",
            250: "MSG_CMD_TYPE_PEPT",
            251: "MSG_CMD_TYPE_BASESTATION",
        }

    @classmethod
    def betterproto_renamed_proto_names_to_value(cls) -> dict[str, int]:
        return {
            "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,
            "MSG_CMD_TYPE_BASESTATION": 251,
        }


class MsgDevice(betterproto2.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 = 29


class MulCameraPosition(betterproto2.Enum):
    LEFT = 0

    RIGHT = 1

    REAR = 2

    ALL = 3


class MulLanguage(betterproto2.Enum):
    ENGLISH = 0

    GERMAN = 1

    FRENCH = 2

    ITALIAN = 3

    SPANISH = 4

    PORTUGUESE = 5

    DUTCH = 6

    SWEDISH = 7

    NONE_LAN = 8


class MulSex(betterproto2.Enum):
    MAN = 0

    WOMAN = 1

    NONE_SEX = 2


class MulVideoErrorCode(betterproto2.Enum):
    SUCCESS = 0

    ACTIVATION_FAILED = 1

    NETWORK_NOT_AVAILABLE = 2

    CREATE_CHANNEL_FAILED = 3

    PARAM_INVAILD = 4


class MulWiperErrorCode(betterproto2.Enum):
    SET_SUCCESS = 0

    HW_ERROR = 1

    NAVIGATION_WORK_FORBID = 2


class NetType(betterproto2.Enum):
    WIFI = 0

    MNET = 1

    @classmethod
    def betterproto_value_to_renamed_proto_names(cls) -> dict[int, str]:
        return {
            0: "NET_TYPE_WIFI",
            1: "NET_TYPE_MNET",
        }

    @classmethod
    def betterproto_renamed_proto_names_to_value(cls) -> dict[str, int]:
        return {
            "NET_TYPE_WIFI": 0,
            "NET_TYPE_MNET": 1,
        }


class NetUsedType(betterproto2.Enum):
    NONE = 0

    WIFI = 1

    MNET = 2

    @classmethod
    def betterproto_value_to_renamed_proto_names(cls) -> dict[int, str]:
        return {
            0: "NET_USED_TYPE_NONE",
            1: "NET_USED_TYPE_WIFI",
            2: "NET_USED_TYPE_MNET",
        }

    @classmethod
    def betterproto_renamed_proto_names_to_value(cls) -> dict[str, int]:
        return {
            "NET_USED_TYPE_NONE": 0,
            "NET_USED_TYPE_WIFI": 1,
            "NET_USED_TYPE_MNET": 2,
        }


class OffPartId(betterproto2.Enum):
    OFF_PART_DL_IMG = 0

    OFF_PART_UPDINFO_BACK = 1

    OFF_PART_UPDINFO = 2

    OFF_PART_NAKEDB = 3

    OFF_PART_FLASHDB = 4

    OFF_PART_UPD_APP_IMG = 5

    OFF_PART_UPD_BMS_IMG = 6

    OFF_PART_UPD_TMP_IMG = 7

    OFF_PART_DEV_INFO = 8

    OFF_PART_NAKEDB_BACK = 9

    OFF_PART_MAX = 10


class Operation(betterproto2.Enum):
    WRITE = 0

    READ = 1

    ERASE = 2


class QcAppTestId(betterproto2.Enum):
    QC_APP_ITEM_ON_CHARGESATSTION = 0

    QC_APP_TEST_X3_SPEAKER = 1

    QC_APP_TEST_STATIC_OBSTACLE_DETECTION = 2

    QC_APP_TEST_CHARGESTATION_TEMP = 3

    QC_APP_ITEM_KEY = 4

    QC_APP_TEST_BUMPER_FRONTLEFT = 5

    QC_APP_TEST_BUMPER_FRONTRIGHT = 6

    QC_APP_TEST_STOP = 7

    QC_APP_TEST_UNLOCK = 8

    QC_APP_TEST_BUZZ = 9

    QC_APP_TEST_LIFT = 10

    QC_APP_ITEM_SENEOR = 11

    QC_APP_TEST_ROLL_LEFT = 12

    QC_APP_TEST_ROLL_RIGHT = 13

    QC_APP_TEST_ULTRA_UNCOVER = 14

    QC_APP_TEST_ULTRA0_COVER = 15

    QC_APP_TEST_ULTRA1_COVER = 16

    QC_APP_TEST_ULTRA2_COVER = 17

    QC_APP_TEST_RAIN = 18

    QC_APP_ITEM_SQ = 19

    QC_APP_TEST_BLE_RSSI = 20

    QC_APP_TEST_SATELLITES_ROVER = 21

    QC_APP_TEST_SATELLITES_REF_STATION_L1 = 22

    QC_APP_TEST_SATELLITES_REF_STATION_L2 = 23

    QC_APP_TEST_SATELLITES_COMMON_VIEW = 24

    QC_APP_TEST_CNO_ROVER = 25

    QC_APP_TEST_CNO_REF_STATION = 26

    QC_APP_TEST_REF_STATION_LINK_STATUS = 27

    QC_APP_TEST_LOCATION_STATE = 28

    QC_APP_TEST_CHARGE_STATUS = 29

    QC_APP_TEST_PPS_EXTI_COUNT = 30

    QC_APP_TEST_SAFE_KEY = 50

    QC_APP_TEST_LORA_RSSI = 60

    QC_APP_TEST_WIPER_TEST = 80

    QC_APP_TEST_HEADLAMP_TEST = 81

    QC_APP_TEST_COMPLETE_SIGNAL = 99

    QC_APP_TEST_MAX = 100


class RptAct(betterproto2.Enum):
    RPT_START = 0

    RPT_STOP = 1

    RPT_KEEP = 2


class RptInfoType(betterproto2.Enum):
    RIT_CONNECT = 0

    RIT_DEV_STA = 1

    RIT_RTK = 2

    RIT_DEV_LOCAL = 3

    RIT_WORK = 4

    RIT_FW_INFO = 5

    RIT_MAINTAIN = 6

    RIT_VISION_POINT = 7

    RIT_VIO = 8

    RIT_VISION_STATISTIC = 9

    RIT_BASESTATION_INFO = 10

    RIT_CUTTER_INFO = 11


class RtkUsedType(betterproto2.Enum):
    RTK_USED_LORA = 0

    RTK_USED_INTERNET = 1

    RTK_USED_NRTK = 2


class SimCardSta(betterproto2.Enum):
    SIM_NONE = 0

    SIM_NO_CARD = 1

    SIM_INVALID = 2

    SIM_INPUT_PIN = 3

    SIM_INPUT_PUK = 4

    SIM_OK = 5


class UnloadMotorState(betterproto2.Enum):
    UNLOAD_CLOSE = 0

    UNLOAD_OPEN = 1

    UNLOAD_STOP = 2

    UNLOAD_RUNNING = 3


class WifiConfType(betterproto2.Enum):
    DisconnectWifi = 0

    ForgetWifi = 1

    DirectConnectWifi = 2

    ReconnectWifi = 3

    set_enable = 4


@dataclass(eq=False, repr=False)
class AppRequestCoverPathsT(betterproto2.Message):
    pver: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    sub_cmd: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    total_frame: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    current_frame: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    data_hash: "int" = betterproto2.field(5, betterproto2.TYPE_FIXED64)

    transaction_id: "int" = betterproto2.field(6, betterproto2.TYPE_INT64)

    reserved: "list[int]" = betterproto2.field(7, betterproto2.TYPE_INT64, repeated=True)

    hash_list: "list[int]" = betterproto2.field(8, betterproto2.TYPE_FIXED64, repeated=True)


default_message_pool.register_message("", "app_request_cover_paths_t", AppRequestCoverPathsT)


@dataclass(eq=False, repr=False)
class AppToBaseMqttRtkT(betterproto2.Message):
    rtk_switch: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    rtk_url: "str" = betterproto2.field(2, betterproto2.TYPE_STRING)

    rtk_port: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    rtk_username: "str" = betterproto2.field(4, betterproto2.TYPE_STRING)

    rtk_password: "str" = betterproto2.field(5, betterproto2.TYPE_STRING)


default_message_pool.register_message("", "app_to_base_mqtt_rtk_t", AppToBaseMqttRtkT)


@dataclass(eq=False, repr=False)
class AppToDevGetMqttConfigT(betterproto2.Message):
    get_mqtt_config: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "app_to_dev_get_mqtt_config_t", AppToDevGetMqttConfigT)


@dataclass(eq=False, repr=False)
class AppToDevSetMqttRtkT(betterproto2.Message):
    set_rtk_mode: "RtkUsedType" = betterproto2.field(1, betterproto2.TYPE_ENUM, default_factory=lambda: RtkUsedType(0))

    stop_nrtk_flag: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    set_nrtk_net_mode: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "app_to_dev_set_mqtt_rtk_t", AppToDevSetMqttRtkT)


@dataclass(eq=False, repr=False)
class AppGetAllAreaHashName(betterproto2.Message):
    device_id: "str" = betterproto2.field(1, betterproto2.TYPE_STRING)

    hashnames: "list[AreaHashName]" = betterproto2.field(2, betterproto2.TYPE_MESSAGE, repeated=True)


default_message_pool.register_message("", "AppGetAllAreaHashName", AppGetAllAreaHashName)


@dataclass(eq=False, repr=False)
class AppGetCutterWorkMode(betterproto2.Message):
    current_cutter_mode: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    current_cutter_rpm: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    query_result: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "AppGetCutterWorkMode", AppGetCutterWorkMode)


@dataclass(eq=False, repr=False)
class AppSetCutterWorkMode(betterproto2.Message):
    cutter_mode: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    set_result: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "AppSetCutterWorkMode", AppSetCutterWorkMode)


@dataclass(eq=False, repr=False)
class AreaHashName(betterproto2.Message):
    hash: "int" = betterproto2.field(1, betterproto2.TYPE_FIXED64)

    name: "str" = betterproto2.field(2, betterproto2.TYPE_STRING)


default_message_pool.register_message("", "area_hash_name", AreaHashName)


@dataclass(eq=False, repr=False)
class BaseScore(betterproto2.Message):
    base_score: "int" = betterproto2.field(1, betterproto2.TYPE_UINT32)

    base_leve: "int" = betterproto2.field(2, betterproto2.TYPE_UINT32)

    base_moved: "int" = betterproto2.field(3, betterproto2.TYPE_UINT32)

    base_moving: "int" = betterproto2.field(4, betterproto2.TYPE_UINT32)


default_message_pool.register_message("", "base_score", BaseScore)


@dataclass(eq=False, repr=False)
class BaseToAppMqttRtkT(betterproto2.Message):
    rtk_switch_status: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "base_to_app_mqtt_rtk_t", BaseToAppMqttRtkT)


@dataclass(eq=False, repr=False)
class BaseInfo(betterproto2.Message):
    dev_version: "str" = betterproto2.field(1, betterproto2.TYPE_STRING)

    dev_status: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    batt_val: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    init_status: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    is_tilt: "int" = betterproto2.field(5, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "baseInfo", BaseInfo)


@dataclass(eq=False, repr=False)
class BaseStation(betterproto2.Message):
    """


    Oneofs:
        - BaseStationSubType:
    """

    to_dev: "RequestBasestationInfoT | None" = betterproto2.field(
        1, betterproto2.TYPE_MESSAGE, optional=True, group="BaseStationSubType"
    )

    to_app: "ResponseBasestationInfoT | None" = betterproto2.field(
        2, betterproto2.TYPE_MESSAGE, optional=True, group="BaseStationSubType"
    )

    app_to_base_mqtt_rtk_msg: "AppToBaseMqttRtkT | None" = betterproto2.field(
        3, betterproto2.TYPE_MESSAGE, optional=True, group="BaseStationSubType"
    )

    base_to_app_mqtt_rtk_msg: "BaseToAppMqttRtkT | None" = betterproto2.field(
        4, betterproto2.TYPE_MESSAGE, optional=True, group="BaseStationSubType"
    )


default_message_pool.register_message("", "BaseStation", BaseStation)


@dataclass(eq=False, repr=False)
class BladeUsed(betterproto2.Message):
    blade_used_time: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    blade_used_warn_time: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "blade_used", BladeUsed)


@dataclass(eq=False, repr=False)
class BleLogUploadUpdateProgress(betterproto2.Message):
    ver: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    status: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    biz_id: "str" = betterproto2.field(3, betterproto2.TYPE_STRING)

    prog: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    sub_prog: "int" = betterproto2.field(5, betterproto2.TYPE_INT32)

    f_num: "int" = betterproto2.field(6, betterproto2.TYPE_INT32)

    speed: "int" = betterproto2.field(7, betterproto2.TYPE_INT32)

    f_idx: "int" = betterproto2.field(8, betterproto2.TYPE_INT32)

    f_path: "str" = betterproto2.field(9, betterproto2.TYPE_STRING)

    f_size: "int" = betterproto2.field(10, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "BleLogUploadUpdateProgress", BleLogUploadUpdateProgress)


@dataclass(eq=False, repr=False)
class BleSignatureReq(betterproto2.Message):
    signature_data: "str" = betterproto2.field(1, betterproto2.TYPE_STRING)

    random_data: "str" = betterproto2.field(2, betterproto2.TYPE_STRING)


default_message_pool.register_message("", "BleSignatureReq", BleSignatureReq)


@dataclass(eq=False, repr=False)
class BleTestBytes(betterproto2.Message):
    seqs: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    data: "list[int]" = betterproto2.field(2, betterproto2.TYPE_FIXED32, repeated=True)


default_message_pool.register_message("", "BleTestBytes", BleTestBytes)


@dataclass(eq=False, repr=False)
class ChargePileType(betterproto2.Message):
    toward: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    x: "float" = betterproto2.field(2, betterproto2.TYPE_FLOAT)

    y: "float" = betterproto2.field(3, betterproto2.TYPE_FLOAT)


default_message_pool.register_message("", "chargePileType", ChargePileType)


@dataclass(eq=False, repr=False)
class CollectorStatusT(betterproto2.Message):
    collector_installation_status: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "collector_status_t", CollectorStatusT)


@dataclass(eq=False, repr=False)
class CommDataCouple(betterproto2.Message):
    x: "float" = betterproto2.field(1, betterproto2.TYPE_FLOAT)

    y: "float" = betterproto2.field(2, betterproto2.TYPE_FLOAT)


default_message_pool.register_message("", "CommDataCouple", CommDataCouple)


@dataclass(eq=False, repr=False)
class CostmapT(betterproto2.Message):
    width: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    height: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    center_x: "float" = betterproto2.field(3, betterproto2.TYPE_FLOAT)

    center_y: "float" = betterproto2.field(4, betterproto2.TYPE_FLOAT)

    yaw: "float" = betterproto2.field(5, betterproto2.TYPE_FLOAT)

    res: "float" = betterproto2.field(6, betterproto2.TYPE_FLOAT)

    costmap: "list[int]" = betterproto2.field(7, betterproto2.TYPE_INT32, repeated=True)


default_message_pool.register_message("", "costmap_t", CostmapT)


@dataclass(eq=False, repr=False)
class CoverPathPacketT(betterproto2.Message):
    path_hash: "int" = betterproto2.field(1, betterproto2.TYPE_FIXED64)

    path_type: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    path_total: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    path_cur: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    zone_hash: "int" = betterproto2.field(5, betterproto2.TYPE_FIXED64)

    data_couple: "list[CommDataCouple]" = betterproto2.field(6, betterproto2.TYPE_MESSAGE, repeated=True)


default_message_pool.register_message("", "cover_path_packet_t", CoverPathPacketT)


@dataclass(eq=False, repr=False)
class CoverPathUploadT(betterproto2.Message):
    pver: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    result: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    sub_cmd: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    area: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    time: "int" = betterproto2.field(5, betterproto2.TYPE_INT32)

    total_frame: "int" = betterproto2.field(6, betterproto2.TYPE_INT32)

    current_frame: "int" = betterproto2.field(7, betterproto2.TYPE_INT32)

    total_path_num: "int" = betterproto2.field(8, betterproto2.TYPE_INT32)

    valid_path_num: "int" = betterproto2.field(9, betterproto2.TYPE_INT32)

    data_hash: "int" = betterproto2.field(10, betterproto2.TYPE_FIXED64)

    transaction_id: "int" = betterproto2.field(11, betterproto2.TYPE_INT64)

    reserved: "list[int]" = betterproto2.field(12, betterproto2.TYPE_INT64, repeated=True)

    data_len: "int" = betterproto2.field(13, betterproto2.TYPE_INT32)

    path_packets: "list[CoverPathPacketT]" = betterproto2.field(14, betterproto2.TYPE_MESSAGE, repeated=True)


default_message_pool.register_message("", "cover_path_upload_t", CoverPathUploadT)


@dataclass(eq=False, repr=False)
class DebugCfgReadT(betterproto2.Message):
    key: "str" = betterproto2.field(1, betterproto2.TYPE_STRING)

    value: "str" = betterproto2.field(2, betterproto2.TYPE_STRING)


default_message_pool.register_message("", "debug_cfg_read_t", DebugCfgReadT)


@dataclass(eq=False, repr=False)
class DebugCfgWriteT(betterproto2.Message):
    key: "str" = betterproto2.field(1, betterproto2.TYPE_STRING)

    value: "str" = betterproto2.field(2, betterproto2.TYPE_STRING)


default_message_pool.register_message("", "debug_cfg_write_t", DebugCfgWriteT)


@dataclass(eq=False, repr=False)
class DebugCommonReportT(betterproto2.Message):
    m_name: "str" = betterproto2.field(1, betterproto2.TYPE_STRING)

    key: "str" = betterproto2.field(2, betterproto2.TYPE_STRING)

    value: "str" = betterproto2.field(3, betterproto2.TYPE_STRING)

    gen_time: "int" = betterproto2.field(4, betterproto2.TYPE_INT64)


default_message_pool.register_message("", "debug_common_report_t", DebugCommonReportT)


@dataclass(eq=False, repr=False)
class DebugEnableT(betterproto2.Message):
    enbale: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "debug_enable_t", DebugEnableT)


@dataclass(eq=False, repr=False)
class DebugErrocodeReportT(betterproto2.Message):
    code: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    mname: "str" = betterproto2.field(2, betterproto2.TYPE_STRING)

    value: "str" = betterproto2.field(3, betterproto2.TYPE_STRING)

    gen_time: "int" = betterproto2.field(4, betterproto2.TYPE_INT64)


default_message_pool.register_message("", "debug_errocode_report_t", DebugErrocodeReportT)


@dataclass(eq=False, repr=False)
class DebugResCfgAbilityT(betterproto2.Message):
    total_keys: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    cur_key_id: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    keys: "str" = betterproto2.field(3, betterproto2.TYPE_STRING)

    value: "str" = betterproto2.field(4, betterproto2.TYPE_STRING)


default_message_pool.register_message("", "debug_res_cfg_ability_t", DebugResCfgAbilityT)


@dataclass(eq=False, repr=False)
class DebugSunTimeT(betterproto2.Message):
    sub_cmd: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    sun_rise_time: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    sun_set_time: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "debug_sun_time_t", DebugSunTimeT)


@dataclass(eq=False, repr=False)
class DevStatueT(betterproto2.Message):
    sys_status: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    charge_status: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    bat_val: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    wheel_status: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    pump_status: "int" = betterproto2.field(5, betterproto2.TYPE_INT32)

    work_mode: "int" = betterproto2.field(6, betterproto2.TYPE_INT32)

    model: "int" = betterproto2.field(7, betterproto2.TYPE_INT32)

    ble_rssi: "int" = betterproto2.field(8, betterproto2.TYPE_INT32)

    wifi_rssi: "int" = betterproto2.field(9, betterproto2.TYPE_INT32)

    wifi_connect_status: "int" = betterproto2.field(10, betterproto2.TYPE_INT32)

    iot_connect_status: "int" = betterproto2.field(11, betterproto2.TYPE_INT32)

    wifi_available: "int" = betterproto2.field(12, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "dev_statue_t", DevStatueT)


@dataclass(eq=False, repr=False)
class DevToAppGetMqttConfigT(betterproto2.Message):
    rtk_status: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    rtk_base_num: "str" = betterproto2.field(2, betterproto2.TYPE_STRING)


default_message_pool.register_message("", "dev_to_app_get_mqtt_config_t", DevToAppGetMqttConfigT)


@dataclass(eq=False, repr=False)
class DevToAppSetMqttRtkT(betterproto2.Message):
    set_rtk_mode_error: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "dev_to_app_set_mqtt_rtk_t", DevToAppSetMqttRtkT)


@dataclass(eq=False, repr=False)
class DeviceFwInfo(betterproto2.Message):
    result: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    version: "str" = betterproto2.field(2, betterproto2.TYPE_STRING)

    mod: "list[ModFwInfo]" = betterproto2.field(3, betterproto2.TYPE_MESSAGE, repeated=True)


default_message_pool.register_message("", "device_fw_info", DeviceFwInfo)


@dataclass(eq=False, repr=False)
class DeviceProductTypeInfoT(betterproto2.Message):
    result: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    main_product_type: "str" = betterproto2.field(2, betterproto2.TYPE_STRING)

    sub_product_type: "str" = betterproto2.field(3, betterproto2.TYPE_STRING)


default_message_pool.register_message("", "device_product_type_info_t", DeviceProductTypeInfoT)


@dataclass(eq=False, repr=False)
class DevNet(betterproto2.Message):
    """


    Oneofs:
        - NetSubType:
    """

    todev_ble_sync: "int | None" = betterproto2.field(1, betterproto2.TYPE_INT32, optional=True, group="NetSubType")

    todev_ConfType: "WifiConfType | None" = betterproto2.field(
        2, betterproto2.TYPE_ENUM, optional=True, group="NetSubType"
    )

    todev_WifiMsgUpload: "DrvWifiUpload | None" = betterproto2.field(
        3, betterproto2.TYPE_MESSAGE, optional=True, group="NetSubType"
    )

    todev_WifiListUpload: "DrvWifiList | None" = betterproto2.field(
        4, betterproto2.TYPE_MESSAGE, optional=True, group="NetSubType"
    )

    todev_Wifi_Configuration: "DrvWifiSet | None" = betterproto2.field(
        5, betterproto2.TYPE_MESSAGE, optional=True, group="NetSubType"
    )

    toapp_WifiMsg: "DrvWifiMsg | None" = betterproto2.field(
        6, betterproto2.TYPE_MESSAGE, optional=True, group="NetSubType"
    )

    toapp_WifiConf: "DrvWifiConf | None" = betterproto2.field(
        7, betterproto2.TYPE_MESSAGE, optional=True, group="NetSubType"
    )

    toapp_ListUpload: "DrvListUpload | None" = betterproto2.field(
        8, betterproto2.TYPE_MESSAGE, optional=True, group="NetSubType"
    )

    todev_req_log_info: "DrvUploadFileReq | None" = betterproto2.field(
        9, betterproto2.TYPE_MESSAGE, optional=True, group="NetSubType"
    )

    todev_log_data_cancel: "DrvUploadFileCancel | None" = betterproto2.field(
        10, betterproto2.TYPE_MESSAGE, optional=True, group="NetSubType"
    )

    todev_devinfo_req: "DrvDevInfoReq | None" = betterproto2.field(
        11, betterproto2.TYPE_MESSAGE, optional=True, group="NetSubType"
    )

    toapp_devinfo_resp: "DrvDevInfoResp | None" = betterproto2.field(
        12, betterproto2.TYPE_MESSAGE, optional=True, group="NetSubType"
    )

    toapp_upgrade_report: "DrvUpgradeReport | None" = betterproto2.field(
        13, betterproto2.TYPE_MESSAGE, optional=True, group="NetSubType"
    )

    toapp_wifi_iot_status: "WifiIotStatusReport | None" = betterproto2.field(
        14, betterproto2.TYPE_MESSAGE, optional=True, group="NetSubType"
    )

    todev_uploadfile_req: "DrvUploadFileToAppReq | None" = betterproto2.field(
        15, betterproto2.TYPE_MESSAGE, optional=True, group="NetSubType"
    )

    toapp_uploadfile_rsp: "DrvUploadFileToAppRsp | None" = betterproto2.field(
        16, betterproto2.TYPE_MESSAGE, optional=True, group="NetSubType"
    )

    todev_networkinfo_req: "GetNetworkInfoReq | None" = betterproto2.field(
        17, betterproto2.TYPE_MESSAGE, optional=True, group="NetSubType"
    )

    toapp_networkinfo_rsp: "GetNetworkInfoRsp | None" = betterproto2.field(
        18, betterproto2.TYPE_MESSAGE, optional=True, group="NetSubType"
    )

    bir_testdata: "BleTestBytes | None" = betterproto2.field(
        19, betterproto2.TYPE_MESSAGE, optional=True, group="NetSubType"
    )

    todev_mnet_info_req: "GetMnetInfoReq | None" = betterproto2.field(
        20, betterproto2.TYPE_MESSAGE, optional=True, group="NetSubType"
    )

    toapp_mnet_info_rsp: "GetMnetInfoRsp | None" = betterproto2.field(
        21, betterproto2.TYPE_MESSAGE, optional=True, group="NetSubType"
    )

    todev_get_mnet_cfg_req: "GetMnetCfgReq | None" = betterproto2.field(
        22, betterproto2.TYPE_MESSAGE, optional=True, group="NetSubType"
    )

    toapp_get_mnet_cfg_rsp: "GetMnetCfgRsp | None" = betterproto2.field(
        23, betterproto2.TYPE_MESSAGE, optional=True, group="NetSubType"
    )

    todev_set_mnet_cfg_req: "SetMnetCfgReq | None" = betterproto2.field(
        24, betterproto2.TYPE_MESSAGE, optional=True, group="NetSubType"
    )

    toapp_set_mnet_cfg_rsp: "SetMnetCfgRsp | None" = betterproto2.field(
        25, betterproto2.TYPE_MESSAGE, optional=True, group="NetSubType"
    )

    todev_set_dds2zmq: "DrvDebugDdsZmq | None" = betterproto2.field(
        26, betterproto2.TYPE_MESSAGE, optional=True, group="NetSubType"
    )

    todev_set_ble_mtu: "SetDrvBleMtu | None" = betterproto2.field(
        27, betterproto2.TYPE_MESSAGE, optional=True, group="NetSubType"
    )

    todev_set_iot_offline_req: "IotConctrlType | None" = betterproto2.field(
        28, betterproto2.TYPE_ENUM, optional=True, group="NetSubType"
    )

    todev_verify_signature_req: "BleSignatureReq | None" = betterproto2.field(
        29, betterproto2.TYPE_MESSAGE, optional=True, group="NetSubType"
    )

    toapp_log_upload_update_progress: "BleLogUploadUpdateProgress | None" = betterproto2.field(
        30, betterproto2.TYPE_MESSAGE, optional=True, group="NetSubType"
    )


default_message_pool.register_message("", "DevNet", DevNet)


@dataclass(eq=False, repr=False)
class DownlinkT(betterproto2.Message):
    fw_id: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    pkg_seq: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    data: "list[int]" = betterproto2.field(3, betterproto2.TYPE_INT32, repeated=True)


default_message_pool.register_message("", "downlink_t", DownlinkT)


@dataclass(eq=False, repr=False)
class DrvCollectCtrlByHand(betterproto2.Message):
    collect_ctrl: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    unload_ctrl: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "DrvCollectCtrlByHand", DrvCollectCtrlByHand)


@dataclass(eq=False, repr=False)
class DrvDebugDdsZmq(betterproto2.Message):
    is_enable: "bool" = betterproto2.field(1, betterproto2.TYPE_BOOL)

    rx_topic_name: "str" = betterproto2.field(2, betterproto2.TYPE_STRING)

    tx_zmq_url: "str" = betterproto2.field(3, betterproto2.TYPE_STRING)


default_message_pool.register_message("", "DrvDebugDdsZmq", DrvDebugDdsZmq)


@dataclass(eq=False, repr=False)
class DrvDevInfoReq(betterproto2.Message):
    req_ids: "list[DrvDevInfoReqId]" = betterproto2.field(1, betterproto2.TYPE_MESSAGE, repeated=True)


default_message_pool.register_message("", "DrvDevInfoReq", DrvDevInfoReq)


@dataclass(eq=False, repr=False)
class DrvDevInfoReqId(betterproto2.Message):
    id: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    type: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "DrvDevInfoReqId", DrvDevInfoReqId)


@dataclass(eq=False, repr=False)
class DrvDevInfoResp(betterproto2.Message):
    resp_ids: "list[DrvDevInfoRespId]" = betterproto2.field(1, betterproto2.TYPE_MESSAGE, repeated=True)


default_message_pool.register_message("", "DrvDevInfoResp", DrvDevInfoResp)


@dataclass(eq=False, repr=False)
class DrvDevInfoRespId(betterproto2.Message):
    id: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    type: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    res: "DrvDevInfoResult" = betterproto2.field(3, betterproto2.TYPE_ENUM, default_factory=lambda: DrvDevInfoResult(0))

    info: "str" = betterproto2.field(4, betterproto2.TYPE_STRING)


default_message_pool.register_message("", "DrvDevInfoRespId", DrvDevInfoRespId)


@dataclass(eq=False, repr=False)
class DrvKnifeChangeReport(betterproto2.Message):
    is_start: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    start_height: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    end_height: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    cur_height: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "DrvKnifeChangeReport", DrvKnifeChangeReport)


@dataclass(eq=False, repr=False)
class DrvKnifeHeight(betterproto2.Message):
    knife_height: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "DrvKnifeHeight", DrvKnifeHeight)


@dataclass(eq=False, repr=False)
class DrvKnifeStatus(betterproto2.Message):
    knife_status: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "DrvKnifeStatus", DrvKnifeStatus)


@dataclass(eq=False, repr=False)
class DrvListUpload(betterproto2.Message):
    sum: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    current: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    status: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    memssid: "str" = betterproto2.field(4, betterproto2.TYPE_STRING)

    rssi: "int" = betterproto2.field(5, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "DrvListUpload", DrvListUpload)


@dataclass(eq=False, repr=False)
class DrvMotionCtrl(betterproto2.Message):
    set_linear_speed: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    set_angular_speed: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "DrvMotionCtrl", DrvMotionCtrl)


@dataclass(eq=False, repr=False)
class DrvMowCtrlByHand(betterproto2.Message):
    main_ctrl: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    cut_knife_ctrl: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    cut_knife_height: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    max_run_speed: "float" = betterproto2.field(4, betterproto2.TYPE_FLOAT)


default_message_pool.register_message("", "DrvMowCtrlByHand", DrvMowCtrlByHand)


@dataclass(eq=False, repr=False)
class DrvSrSpeed(betterproto2.Message):
    rw: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    speed: "float" = betterproto2.field(2, betterproto2.TYPE_FLOAT)


default_message_pool.register_message("", "DrvSrSpeed", DrvSrSpeed)


@dataclass(eq=False, repr=False)
class DrvUpgradeReport(betterproto2.Message):
    devname: "str" = betterproto2.field(1, betterproto2.TYPE_STRING)

    otaid: "str" = betterproto2.field(2, betterproto2.TYPE_STRING)

    version: "str" = betterproto2.field(3, betterproto2.TYPE_STRING)

    progress: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    result: "int" = betterproto2.field(5, betterproto2.TYPE_INT32)

    message: "str" = betterproto2.field(6, betterproto2.TYPE_STRING)

    properties: "str" = betterproto2.field(7, betterproto2.TYPE_STRING)

    recv_cnt: "int" = betterproto2.field(8, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "DrvUpgradeReport", DrvUpgradeReport)


@dataclass(eq=False, repr=False)
class DrvUploadFileCancel(betterproto2.Message):
    biz_id: "str" = betterproto2.field(1, betterproto2.TYPE_STRING)


default_message_pool.register_message("", "DrvUploadFileCancel", DrvUploadFileCancel)


@dataclass(eq=False, repr=False)
class DrvUploadFileReq(betterproto2.Message):
    biz_id: "str" = betterproto2.field(1, betterproto2.TYPE_STRING)

    url: "str" = betterproto2.field(2, betterproto2.TYPE_STRING)

    user_id: "str" = betterproto2.field(3, betterproto2.TYPE_STRING)

    num: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    type: "int" = betterproto2.field(5, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "DrvUploadFileReq", DrvUploadFileReq)


@dataclass(eq=False, repr=False)
class DrvUploadFileToAppReq(betterproto2.Message):
    biz_id: "str" = betterproto2.field(1, betterproto2.TYPE_STRING)

    operation: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    server_ip: "int" = betterproto2.field(3, betterproto2.TYPE_FIXED32)

    server_port: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    num: "int" = betterproto2.field(5, betterproto2.TYPE_INT32)

    type: "int" = betterproto2.field(6, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "DrvUploadFileToAppReq", DrvUploadFileToAppReq)


@dataclass(eq=False, repr=False)
class DrvUploadFileToAppRsp(betterproto2.Message):
    biz_id: "str" = betterproto2.field(1, betterproto2.TYPE_STRING)

    operation: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    result: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "DrvUploadFileToAppRsp", DrvUploadFileToAppRsp)


@dataclass(eq=False, repr=False)
class DrvWifiConf(betterproto2.Message):
    succ_flag: "bool" = betterproto2.field(1, betterproto2.TYPE_BOOL)

    code: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    confssid: "str" = betterproto2.field(3, betterproto2.TYPE_STRING)


default_message_pool.register_message("", "DrvWifiConf", DrvWifiConf)


@dataclass(eq=False, repr=False)
class DrvWifiList(betterproto2.Message):
    nvs_wifi_upload: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "DrvWifiList", DrvWifiList)


@dataclass(eq=False, repr=False)
class DrvWifiMsg(betterproto2.Message):
    status1: "bool" = betterproto2.field(1, betterproto2.TYPE_BOOL)

    status2: "bool" = betterproto2.field(2, betterproto2.TYPE_BOOL)

    ip: "str" = betterproto2.field(3, betterproto2.TYPE_STRING)

    msgssid: "str" = betterproto2.field(4, betterproto2.TYPE_STRING)

    password: "str" = betterproto2.field(5, betterproto2.TYPE_STRING)

    rssi: "int" = betterproto2.field(6, betterproto2.TYPE_INT32)

    productkey: "str" = betterproto2.field(7, betterproto2.TYPE_STRING)

    devicename: "str" = betterproto2.field(8, betterproto2.TYPE_STRING)

    wifi_enable: "bool" = betterproto2.field(9, betterproto2.TYPE_BOOL)


default_message_pool.register_message("", "DrvWifiMsg", DrvWifiMsg)


@dataclass(eq=False, repr=False)
class DrvWifiSet(betterproto2.Message):
    config_param: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    confssid: "str" = betterproto2.field(2, betterproto2.TYPE_STRING)

    wifi_enable: "bool" = betterproto2.field(3, betterproto2.TYPE_BOOL)


default_message_pool.register_message("", "DrvWifiSet", DrvWifiSet)


@dataclass(eq=False, repr=False)
class DrvWifiUpload(betterproto2.Message):
    wifi_msg_upload: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "DrvWifiUpload", DrvWifiUpload)


@dataclass(eq=False, repr=False)
class FotaInfoT(betterproto2.Message):
    need_ota_num: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    need_ota_img_size: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    ota_otype: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    ota_oid: "str" = betterproto2.field(4, betterproto2.TYPE_STRING)

    ota_version: "str" = betterproto2.field(5, betterproto2.TYPE_STRING)


default_message_pool.register_message("", "FotaInfo_t", FotaInfoT)


@dataclass(eq=False, repr=False)
class FotaSubInfoT(betterproto2.Message):
    sub_mod_ota_flag: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    sub_mod_id: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    sub_img_size: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    sub_mod_version: "str" = betterproto2.field(4, betterproto2.TYPE_STRING)

    sub_img_url: "str" = betterproto2.field(5, betterproto2.TYPE_STRING)


default_message_pool.register_message("", "FotaSubInfo_t", FotaSubInfoT)


@dataclass(eq=False, repr=False)
class FpvToAppInfoT(betterproto2.Message):
    fpv_flag: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    wifi_available: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    mobile_net_available: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "fpv_to_app_info_t", FpvToAppInfoT)


@dataclass(eq=False, repr=False)
class FwDownloadCtrl(betterproto2.Message):
    """


    Oneofs:
        - SubFwDownloadCtrl:
    """

    uplink: "UplinkT | None" = betterproto2.field(
        2, betterproto2.TYPE_MESSAGE, optional=True, group="SubFwDownloadCtrl"
    )

    downlink: "DownlinkT | None" = betterproto2.field(
        3, betterproto2.TYPE_MESSAGE, optional=True, group="SubFwDownloadCtrl"
    )

    cmd: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "fwDownloadCtrl", FwDownloadCtrl)


@dataclass(eq=False, repr=False)
class GetHeadlamp(betterproto2.Message):
    get_ids: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "GetHeadlamp", GetHeadlamp)


@dataclass(eq=False, repr=False)
class GetInfoReq(betterproto2.Message):
    type: "InfoType" = betterproto2.field(1, betterproto2.TYPE_ENUM, default_factory=lambda: InfoType(0))


default_message_pool.register_message("", "getInfoReq", GetInfoReq)


@dataclass(eq=False, repr=False)
class GetInfoRsp(betterproto2.Message):
    """


    Oneofs:
        - info:
    """

    base: "BaseInfo | None" = betterproto2.field(3, betterproto2.TYPE_MESSAGE, optional=True, group="info")

    ota: "OtaInfo | None" = betterproto2.field(4, betterproto2.TYPE_MESSAGE, optional=True, group="info")

    result: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    type: "InfoType" = betterproto2.field(2, betterproto2.TYPE_ENUM, default_factory=lambda: InfoType(0))


default_message_pool.register_message("", "getInfoRsp", GetInfoRsp)


@dataclass(eq=False, repr=False)
class Getlamprsp(betterproto2.Message):
    get_ids: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    result: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    lamp_ctrl: "LampCtrlSta" = betterproto2.field(3, betterproto2.TYPE_ENUM, default_factory=lambda: LampCtrlSta(0))

    lamp_bright: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    lamp_manual_ctrl: "LampManualCtrlSta" = betterproto2.field(
        5, betterproto2.TYPE_ENUM, default_factory=lambda: LampManualCtrlSta(0)
    )


default_message_pool.register_message("", "Getlamprsp", Getlamprsp)


@dataclass(eq=False, repr=False)
class GetMnetCfgReq(betterproto2.Message):
    req_ids: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "GetMnetCfgReq", GetMnetCfgReq)


@dataclass(eq=False, repr=False)
class GetMnetCfgRsp(betterproto2.Message):
    req_ids: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    result: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    cfg: "MnetCfg | None" = betterproto2.field(3, betterproto2.TYPE_MESSAGE, optional=True)


default_message_pool.register_message("", "GetMnetCfgRsp", GetMnetCfgRsp)


@dataclass(eq=False, repr=False)
class GetMnetInfoReq(betterproto2.Message):
    req_ids: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "GetMnetInfoReq", GetMnetInfoReq)


@dataclass(eq=False, repr=False)
class GetMnetInfoRsp(betterproto2.Message):
    req_ids: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    result: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    mnet: "MnetInfo | None" = betterproto2.field(3, betterproto2.TYPE_MESSAGE, optional=True)


default_message_pool.register_message("", "GetMnetInfoRsp", GetMnetInfoRsp)


@dataclass(eq=False, repr=False)
class GetNetworkInfoReq(betterproto2.Message):
    req_ids: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "GetNetworkInfoReq", GetNetworkInfoReq)


@dataclass(eq=False, repr=False)
class GetNetworkInfoRsp(betterproto2.Message):
    req_ids: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    wifi_ssid: "str" = betterproto2.field(2, betterproto2.TYPE_STRING)

    wifi_mac: "str" = betterproto2.field(3, betterproto2.TYPE_STRING)

    wifi_rssi: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    ip: "int" = betterproto2.field(5, betterproto2.TYPE_FIXED32)

    mask: "int" = betterproto2.field(6, betterproto2.TYPE_FIXED32)

    gateway: "int" = betterproto2.field(7, betterproto2.TYPE_FIXED32)


default_message_pool.register_message("", "GetNetworkInfoRsp", GetNetworkInfoRsp)


@dataclass(eq=False, repr=False)
class LockStateT(betterproto2.Message):
    lock_state: "int" = betterproto2.field(1, betterproto2.TYPE_UINT32)


default_message_pool.register_message("", "lock_state_t", LockStateT)


@dataclass(eq=False, repr=False)
class LoraCfgReq(betterproto2.Message):
    op: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    cfg: "str" = betterproto2.field(2, betterproto2.TYPE_STRING)


default_message_pool.register_message("", "LoraCfgReq", LoraCfgReq)


@dataclass(eq=False, repr=False)
class LoraCfgRsp(betterproto2.Message):
    result: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    op: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    cfg: "str" = betterproto2.field(3, betterproto2.TYPE_STRING)

    fac_cfg: "bytes" = betterproto2.field(4, betterproto2.TYPE_BYTES)


default_message_pool.register_message("", "LoraCfgRsp", LoraCfgRsp)


@dataclass(eq=False, repr=False)
class LubaMsg(betterproto2.Message):
    """


    Oneofs:
        - LubaSubMsg:
    """

    msgtype: "MsgCmdType" = betterproto2.field(1, betterproto2.TYPE_ENUM, default_factory=lambda: MsgCmdType(0))

    sender: "MsgDevice" = betterproto2.field(2, betterproto2.TYPE_ENUM, default_factory=lambda: MsgDevice(0))

    rcver: "MsgDevice" = betterproto2.field(3, betterproto2.TYPE_ENUM, default_factory=lambda: MsgDevice(0))

    msgattr: "MsgAttr" = betterproto2.field(4, betterproto2.TYPE_ENUM, default_factory=lambda: MsgAttr(0))

    seqs: "int" = betterproto2.field(5, betterproto2.TYPE_INT32)

    version: "int" = betterproto2.field(6, betterproto2.TYPE_INT32)

    subtype: "int" = betterproto2.field(7, betterproto2.TYPE_INT32)

    net: "DevNet | None" = betterproto2.field(8, betterproto2.TYPE_MESSAGE, optional=True, group="LubaSubMsg")

    sys: "MctlSys | None" = betterproto2.field(10, betterproto2.TYPE_MESSAGE, optional=True, group="LubaSubMsg")

    nav: "MctlNav | None" = betterproto2.field(11, betterproto2.TYPE_MESSAGE, optional=True, group="LubaSubMsg")

    driver: "MctlDriver | None" = betterproto2.field(12, betterproto2.TYPE_MESSAGE, optional=True, group="LubaSubMsg")

    ota: "MctlOta | None" = betterproto2.field(13, betterproto2.TYPE_MESSAGE, optional=True, group="LubaSubMsg")

    mul: "SocMul | None" = betterproto2.field(14, betterproto2.TYPE_MESSAGE, optional=True, group="LubaSubMsg")

    null: "MsgNull | None" = betterproto2.field(16, betterproto2.TYPE_MESSAGE, optional=True, group="LubaSubMsg")

    pept: "MctlPept | None" = betterproto2.field(17, betterproto2.TYPE_MESSAGE, optional=True, group="LubaSubMsg")

    base: "BaseStation | None" = betterproto2.field(18, betterproto2.TYPE_MESSAGE, optional=True, group="LubaSubMsg")

    timestamp: "int" = betterproto2.field(15, betterproto2.TYPE_UINT64)


default_message_pool.register_message("", "LubaMsg", LubaMsg)


@dataclass(eq=False, repr=False)
class ManualElementMessage(betterproto2.Message):
    pver: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    type: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    shape: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    result: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    sub_cmd: "int" = betterproto2.field(5, betterproto2.TYPE_INT32)

    data_hash: "int" = betterproto2.field(6, betterproto2.TYPE_FIXED64)

    if_hide: "bool" = betterproto2.field(7, betterproto2.TYPE_BOOL)

    reserved: "str" = betterproto2.field(8, betterproto2.TYPE_STRING)

    point1_center_x: "float" = betterproto2.field(9, betterproto2.TYPE_DOUBLE)

    point1_center_y: "float" = betterproto2.field(10, betterproto2.TYPE_DOUBLE)

    point2_width_x: "float" = betterproto2.field(11, betterproto2.TYPE_DOUBLE)

    point2_height_y: "float" = betterproto2.field(12, betterproto2.TYPE_DOUBLE)

    rotate_radius: "float" = betterproto2.field(13, betterproto2.TYPE_DOUBLE)


default_message_pool.register_message("", "ManualElementMessage", ManualElementMessage)


@dataclass(eq=False, repr=False)
class MctlDriver(betterproto2.Message):
    """


    Oneofs:
        - SubDrvMsg:
    """

    todev_devmotion_ctrl: "DrvMotionCtrl | None" = betterproto2.field(
        1, betterproto2.TYPE_MESSAGE, optional=True, group="SubDrvMsg"
    )

    todev_knife_height_set: "DrvKnifeHeight | None" = betterproto2.field(
        2, betterproto2.TYPE_MESSAGE, optional=True, group="SubDrvMsg"
    )

    bidire_speed_read_set: "DrvSrSpeed | None" = betterproto2.field(
        3, betterproto2.TYPE_MESSAGE, optional=True, group="SubDrvMsg"
    )

    bidire_knife_height_report: "DrvKnifeHeight | None" = betterproto2.field(
        4, betterproto2.TYPE_MESSAGE, optional=True, group="SubDrvMsg"
    )

    toapp_knife_status: "DrvKnifeStatus | None" = betterproto2.field(
        5, betterproto2.TYPE_MESSAGE, optional=True, group="SubDrvMsg"
    )

    mow_ctrl_by_hand: "DrvMowCtrlByHand | None" = betterproto2.field(
        6, betterproto2.TYPE_MESSAGE, optional=True, group="SubDrvMsg"
    )

    rtk_cfg_req: "RtkCfgReqT | None" = betterproto2.field(
        7, betterproto2.TYPE_MESSAGE, optional=True, group="SubDrvMsg"
    )

    rtk_cfg_req_ack: "RtkCfgReqAckT | None" = betterproto2.field(
        8, betterproto2.TYPE_MESSAGE, optional=True, group="SubDrvMsg"
    )

    rtk_sys_mask_query: "RtkSysMaskQueryT | None" = betterproto2.field(
        9, betterproto2.TYPE_MESSAGE, optional=True, group="SubDrvMsg"
    )

    rtk_sys_mask_query_ack: "RtkSysMaskQueryAckT | None" = betterproto2.field(
        10, betterproto2.TYPE_MESSAGE, optional=True, group="SubDrvMsg"
    )

    toapp_knife_status_change: "DrvKnifeChangeReport | None" = betterproto2.field(
        11, betterproto2.TYPE_MESSAGE, optional=True, group="SubDrvMsg"
    )

    collect_ctrl_by_hand: "DrvCollectCtrlByHand | None" = betterproto2.field(
        12, betterproto2.TYPE_MESSAGE, optional=True, group="SubDrvMsg"
    )

    cutter_mode_ctrl_by_hand: "AppSetCutterWorkMode | None" = betterproto2.field(
        13, betterproto2.TYPE_MESSAGE, optional=True, group="SubDrvMsg"
    )

    current_cutter_mode: "AppGetCutterWorkMode | None" = betterproto2.field(
        14, betterproto2.TYPE_MESSAGE, optional=True, group="SubDrvMsg"
    )


default_message_pool.register_message("", "MctlDriver", MctlDriver)


@dataclass(eq=False, repr=False)
class MctlNav(betterproto2.Message):
    """


    Oneofs:
        - SubNavMsg:
    """

    toapp_lat_up: "NavLatLonUp | None" = betterproto2.field(
        1, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    toapp_pos_up: "NavPosUp | None" = betterproto2.field(2, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg")

    todev_chl_line_data: "NavCHlLineData | None" = betterproto2.field(
        3, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    toapp_task_info: "NavTaskInfo | None" = betterproto2.field(
        4, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    toapp_opt_line_up: "NavOptLineUp | None" = betterproto2.field(
        5, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    toapp_opt_border_info: "NavOptiBorderInfo | None" = betterproto2.field(
        6, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    toapp_opt_obs_info: "NavOptObsInfo | None" = betterproto2.field(
        7, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    todev_task_info_ack: "NavResFrame | None" = betterproto2.field(
        8, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    todev_opt_border_info_ack: "NavResFrame | None" = betterproto2.field(
        9, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    todev_opt_obs_info_ack: "NavResFrame | None" = betterproto2.field(
        10, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    todev_opt_line_up_ack: "NavResFrame | None" = betterproto2.field(
        11, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    toapp_chgpileto: "ChargePileType | None" = betterproto2.field(
        12, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    todev_sustask: "int | None" = betterproto2.field(13, betterproto2.TYPE_INT32, optional=True, group="SubNavMsg")

    todev_rechgcmd: "int | None" = betterproto2.field(14, betterproto2.TYPE_INT32, optional=True, group="SubNavMsg")

    todev_edgecmd: "int | None" = betterproto2.field(15, betterproto2.TYPE_INT32, optional=True, group="SubNavMsg")

    todev_draw_border: "int | None" = betterproto2.field(16, betterproto2.TYPE_INT32, optional=True, group="SubNavMsg")

    todev_draw_border_end: "int | None" = betterproto2.field(
        17, betterproto2.TYPE_INT32, optional=True, group="SubNavMsg"
    )

    todev_draw_obs: "int | None" = betterproto2.field(18, betterproto2.TYPE_INT32, optional=True, group="SubNavMsg")

    todev_draw_obs_end: "int | None" = betterproto2.field(19, betterproto2.TYPE_INT32, optional=True, group="SubNavMsg")

    todev_chl_line: "int | None" = betterproto2.field(20, betterproto2.TYPE_INT32, optional=True, group="SubNavMsg")

    todev_chl_line_end: "int | None" = betterproto2.field(21, betterproto2.TYPE_INT32, optional=True, group="SubNavMsg")

    todev_save_task: "int | None" = betterproto2.field(22, betterproto2.TYPE_INT32, optional=True, group="SubNavMsg")

    todev_cancel_suscmd: "int | None" = betterproto2.field(
        23, betterproto2.TYPE_INT32, optional=True, group="SubNavMsg"
    )

    todev_reset_chg_pile: "int | None" = betterproto2.field(
        24, betterproto2.TYPE_INT32, optional=True, group="SubNavMsg"
    )

    todev_cancel_draw_cmd: "int | None" = betterproto2.field(
        25, betterproto2.TYPE_INT32, optional=True, group="SubNavMsg"
    )

    todev_one_touch_leave_pile: "int | None" = betterproto2.field(
        26, betterproto2.TYPE_INT32, optional=True, group="SubNavMsg"
    )

    todev_mow_task: "NavStartJob | None" = betterproto2.field(
        27, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    toapp_bstate: "NavBorderState | None" = betterproto2.field(
        28, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    todev_lat_up_ack: "int | None" = betterproto2.field(29, betterproto2.TYPE_INT32, optional=True, group="SubNavMsg")

    todev_gethash: "NavGetHashList | None" = betterproto2.field(
        30, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    toapp_gethash_ack: "NavGetHashListAck | None" = betterproto2.field(
        31, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    todev_get_commondata: "NavGetCommData | None" = betterproto2.field(
        32, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    toapp_get_commondata_ack: "NavGetCommDataAck | None" = betterproto2.field(
        33, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    bidire_reqconver_path: "NavReqCoverPath | None" = betterproto2.field(
        34, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    toapp_zigzag: "NavUploadZigZagResult | None" = betterproto2.field(
        35, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    todev_zigzag_ack: "NavUploadZigZagResultAck | None" = betterproto2.field(
        36, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    todev_taskctrl: "NavTaskCtrl | None" = betterproto2.field(
        37, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    bidire_taskid: "NavTaskIdRw | None" = betterproto2.field(
        38, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    toapp_bp: "NavTaskBreakPoint | None" = betterproto2.field(
        39, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    todev_planjob_set: "NavPlanJobSet | None" = betterproto2.field(
        40, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    todev_unable_time_set: "NavUnableTimeSet | None" = betterproto2.field(
        41, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    simulation_cmd: "SimulationCmdData | None" = betterproto2.field(
        42, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    todev_work_report_update_cmd: "WorkReportUpdateCmd | None" = betterproto2.field(
        43, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    toapp_work_report_update_ack: "WorkReportUpdateAck | None" = betterproto2.field(
        44, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    todev_work_report_cmd: "WorkReportCmdData | None" = betterproto2.field(
        45, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    toapp_work_report_ack: "WorkReportInfoAck | None" = betterproto2.field(
        46, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    toapp_work_report_upload: "WorkReportInfoAck | None" = betterproto2.field(
        47, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    app_request_cover_paths: "AppRequestCoverPathsT | None" = betterproto2.field(
        48, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    cover_path_upload: "CoverPathUploadT | None" = betterproto2.field(
        49, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    zone_start_precent: "ZoneStartPrecentT | None" = betterproto2.field(
        50, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    vision_ctrl: "VisionCtrlMsg | None" = betterproto2.field(
        51, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    nav_sys_param_cmd: "NavSysParamMsg | None" = betterproto2.field(
        52, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    plan_task_execute: "NavPlanTaskExecute | None" = betterproto2.field(
        53, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    toapp_costmap: "CostmapT | None" = betterproto2.field(
        54, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    plan_task_name_id: "PlanTaskNameIdT | None" = betterproto2.field(
        55, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    all_plan_task: "NavGetAllPlanTask | None" = betterproto2.field(
        56, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    todev_taskctrl_ack: "NavTaskCtrlAck | None" = betterproto2.field(
        57, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    toapp_map_name_msg: "NavMapNameMsg | None" = betterproto2.field(
        58, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    todev_svg_msg: "SvgMessageAckT | None" = betterproto2.field(
        59, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    toapp_svg_msg: "SvgMessageAckT | None" = betterproto2.field(
        60, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    toapp_all_hash_name: "AppGetAllAreaHashName | None" = betterproto2.field(
        61, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    toapp_edge_points: "NavEdgePoints | None" = betterproto2.field(
        62, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    toapp_edge_points_ack: "NavEdgePointsAck | None" = betterproto2.field(
        63, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )

    toapp_manual_element: "ManualElementMessage | None" = betterproto2.field(
        64, betterproto2.TYPE_MESSAGE, optional=True, group="SubNavMsg"
    )


default_message_pool.register_message("", "MctlNav", MctlNav)


@dataclass(eq=False, repr=False)
class MctlOta(betterproto2.Message):
    """


    Oneofs:
        - SubOtaMsg:
    """

    todev_get_info_req: "GetInfoReq | None" = betterproto2.field(
        1, betterproto2.TYPE_MESSAGE, optional=True, group="SubOtaMsg"
    )

    toapp_get_info_rsp: "GetInfoRsp | None" = betterproto2.field(
        2, betterproto2.TYPE_MESSAGE, optional=True, group="SubOtaMsg"
    )

    fw_download_ctrl: "FwDownloadCtrl | None" = betterproto2.field(
        3, betterproto2.TYPE_MESSAGE, optional=True, group="SubOtaMsg"
    )

    fota_info: "FotaInfoT | None" = betterproto2.field(4, betterproto2.TYPE_MESSAGE, optional=True, group="SubOtaMsg")

    fota_sub_info: "FotaSubInfoT | None" = betterproto2.field(
        5, betterproto2.TYPE_MESSAGE, optional=True, group="SubOtaMsg"
    )


default_message_pool.register_message("", "MctlOta", MctlOta)


@dataclass(eq=False, repr=False)
class MctlPept(betterproto2.Message):
    """


    Oneofs:
        - SubPeptMsg:
    """

    perception_obstacles_visualization: "PerceptionObstaclesVisualizationT | None" = betterproto2.field(
        1, betterproto2.TYPE_MESSAGE, optional=True, group="SubPeptMsg"
    )

    perception_universal_buff: "PerceptionUniversalBuffT | None" = betterproto2.field(
        2, betterproto2.TYPE_MESSAGE, optional=True, group="SubPeptMsg"
    )

    perception_local_map_visualization: "PerceptionLocalMapVisualizationT | None" = betterproto2.field(
        3, betterproto2.TYPE_MESSAGE, optional=True, group="SubPeptMsg"
    )


default_message_pool.register_message("", "MctlPept", MctlPept)


@dataclass(eq=False, repr=False)
class MctlSys(betterproto2.Message):
    """


    Oneofs:
        - SubSysMsg:
    """

    toapp_batinfo: "SysBatUp | None" = betterproto2.field(
        1, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    toapp_work_state: "SysWorkState | None" = betterproto2.field(
        2, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    todev_time_zone: "SysSetTimeZone | None" = betterproto2.field(
        3, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    todev_data_time: "SysSetDateTime | None" = betterproto2.field(
        4, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    job_plan: "SysJobPlan | None" = betterproto2.field(6, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg")

    toapp_err_code: "SysDevErrCode | None" = betterproto2.field(
        7, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    todev_job_plan_time: "SysJobPlanTime | None" = betterproto2.field(
        10, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    toapp_mow_info: "SysMowInfo | None" = betterproto2.field(
        11, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    bidire_comm_cmd: "SysCommCmd | None" = betterproto2.field(
        12, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    plan_job_del: "int | None" = betterproto2.field(14, betterproto2.TYPE_INT64, optional=True, group="SubSysMsg")

    border: "SysBorder | None" = betterproto2.field(15, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg")

    toapp_plan_status: "SysPlanJobStatus | None" = betterproto2.field(
        18, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    toapp_ul_fprogress: "SysUploadFileProgress | None" = betterproto2.field(
        19, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    todev_deljobplan: "SysDelJobPlan | None" = betterproto2.field(
        20, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    todev_mow_info_up: "int | None" = betterproto2.field(21, betterproto2.TYPE_INT32, optional=True, group="SubSysMsg")

    todev_knife_ctrl: "SysKnifeControl | None" = betterproto2.field(
        22, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    todev_reset_system: "int | None" = betterproto2.field(23, betterproto2.TYPE_INT32, optional=True, group="SubSysMsg")

    todev_reset_system_status: "SysResetSystemStatus | None" = betterproto2.field(
        24, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    system_rapid_state_tunnel: "SystemRapidStateTunnelMsg | None" = betterproto2.field(
        25, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    system_tard_state_tunnel: "SystemTardStateTunnelMsg | None" = betterproto2.field(
        26, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    system_update_buf: "SystemUpdateBufMsg | None" = betterproto2.field(
        27, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    todev_time_ctrl_light: "TimeCtrlLight | None" = betterproto2.field(
        28, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    system_tmp_cycle_tx: "SystemTmpCycleTxMsg | None" = betterproto2.field(
        29, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    todev_off_chip_flash: "SysOffChipFlash | None" = betterproto2.field(
        30, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    todev_get_dev_fw_info: "int | None" = betterproto2.field(
        31, betterproto2.TYPE_INT32, optional=True, group="SubSysMsg"
    )

    toapp_dev_fw_info: "DeviceFwInfo | None" = betterproto2.field(
        32, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    todev_lora_cfg_req: "LoraCfgReq | None" = betterproto2.field(
        33, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    toapp_lora_cfg_rsp: "LoraCfgRsp | None" = betterproto2.field(
        34, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    mow_to_app_info: "MowToAppInfoT | None" = betterproto2.field(
        35, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    device_product_type_info: "DeviceProductTypeInfoT | None" = betterproto2.field(
        36, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    mow_to_app_qctools_info: "MowToAppQctoolsInfoT | None" = betterproto2.field(
        37, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    todev_report_cfg: "ReportInfoCfg | None" = betterproto2.field(
        38, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    toapp_report_data: "ReportInfoData | None" = betterproto2.field(
        39, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    simulation_cmd: "MCtrlSimulationCmdData | None" = betterproto2.field(
        42, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    app_to_dev_get_mqtt_config_msg: "AppToDevGetMqttConfigT | None" = betterproto2.field(
        43, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    dev_to_app_get_mqtt_config_msg: "DevToAppGetMqttConfigT | None" = betterproto2.field(
        44, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    app_to_dev_set_mqtt_rtk_msg: "AppToDevSetMqttRtkT | None" = betterproto2.field(
        45, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    dev_to_app_set_mqtt_rtk_msg: "DevToAppSetMqttRtkT | None" = betterproto2.field(
        46, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    todev_reset_blade_used_time: "int | None" = betterproto2.field(
        47, betterproto2.TYPE_INT32, optional=True, group="SubSysMsg"
    )

    todev_reset_blade_used_time_status: "SysResetBladeUsedTimeStatus | None" = betterproto2.field(
        48, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    todev_factor_reset_system: "int | None" = betterproto2.field(
        49, betterproto2.TYPE_INT32, optional=True, group="SubSysMsg"
    )

    blade_used_warn_time: "UserSetBladeUsedWarnTime | None" = betterproto2.field(
        50, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    debug_common_report: "DebugCommonReportT | None" = betterproto2.field(
        51, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    debug_errocode_report: "DebugErrocodeReportT | None" = betterproto2.field(
        52, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    debug_enable: "DebugEnableT | None" = betterproto2.field(
        53, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    debug_cfg_read: "DebugCfgReadT | None" = betterproto2.field(
        54, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    debug_cfg_write: "DebugCfgWriteT | None" = betterproto2.field(
        55, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    debug_res_cfg_ability: "DebugResCfgAbilityT | None" = betterproto2.field(
        56, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    to_dev_msgbus: "MsgbusPkt | None" = betterproto2.field(
        57, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    to_app_msgbus: "MsgbusPkt | None" = betterproto2.field(
        58, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    response_set_mode: "ResponseSetModeT | None" = betterproto2.field(
        59, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    report_info: "ReportInfoT | None" = betterproto2.field(
        60, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    set_work_mode: "WorkModeT | None" = betterproto2.field(
        61, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    set_special_mode: "SpecialModeT | None" = betterproto2.field(
        62, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    set_peripherals: "SetPeripheralsT | None" = betterproto2.field(
        63, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    to_dev_set_sun_time: "DebugSunTimeT | None" = betterproto2.field(
        64, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    to_dev_remote_reset: "RemoteResetReqT | None" = betterproto2.field(
        65, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    to_app_remote_reset: "RemoteResetRspT | None" = betterproto2.field(
        66, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )

    current_cutter_mode: "RptCutterRpm | None" = betterproto2.field(
        67, betterproto2.TYPE_MESSAGE, optional=True, group="SubSysMsg"
    )


default_message_pool.register_message("", "MctlSys", MctlSys)


@dataclass(eq=False, repr=False)
class MCtrlSimulationCmdData(betterproto2.Message):
    sub_cmd: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    param_id: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    param_value: "list[int]" = betterproto2.field(3, betterproto2.TYPE_INT32, repeated=True)


default_message_pool.register_message("", "mCtrlSimulationCmdData", MCtrlSimulationCmdData)


@dataclass(eq=False, repr=False)
class MnetInetStatus(betterproto2.Message):
    connect: "bool" = betterproto2.field(1, betterproto2.TYPE_BOOL)

    ip: "int" = betterproto2.field(2, betterproto2.TYPE_FIXED32)

    mask: "int" = betterproto2.field(3, betterproto2.TYPE_FIXED32)

    gateway: "int" = betterproto2.field(4, betterproto2.TYPE_FIXED32)


default_message_pool.register_message("", "mnet_inet_status", MnetInetStatus)


@dataclass(eq=False, repr=False)
class MnetApn(betterproto2.Message):
    cid: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    apn_alias: "str" = betterproto2.field(2, betterproto2.TYPE_STRING)

    apn_name: "str" = betterproto2.field(3, betterproto2.TYPE_STRING)

    auth: "ApnAuthType" = betterproto2.field(4, betterproto2.TYPE_ENUM, default_factory=lambda: ApnAuthType(0))

    username: "str" = betterproto2.field(5, betterproto2.TYPE_STRING)

    password: "str" = betterproto2.field(6, betterproto2.TYPE_STRING)


default_message_pool.register_message("", "MnetApn", MnetApn)


@dataclass(eq=False, repr=False)
class MnetApnCfg(betterproto2.Message):
    apn_used_idx: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    apn: "list[MnetApn]" = betterproto2.field(2, betterproto2.TYPE_MESSAGE, repeated=True)


default_message_pool.register_message("", "MnetApnCfg", MnetApnCfg)


@dataclass(eq=False, repr=False)
class MnetApnSetCfg(betterproto2.Message):
    use_default: "bool" = betterproto2.field(1, betterproto2.TYPE_BOOL)

    cfg: "MnetApnCfg | None" = betterproto2.field(2, betterproto2.TYPE_MESSAGE, optional=True)


default_message_pool.register_message("", "MnetApnSetCfg", MnetApnSetCfg)


@dataclass(eq=False, repr=False)
class MnetCfg(betterproto2.Message):
    mnet_enable: "bool" = betterproto2.field(1, betterproto2.TYPE_BOOL)

    inet_enable: "bool" = betterproto2.field(2, betterproto2.TYPE_BOOL)

    type: "NetType" = betterproto2.field(3, betterproto2.TYPE_ENUM, default_factory=lambda: NetType(0))

    apn: "MnetApnSetCfg | None" = betterproto2.field(4, betterproto2.TYPE_MESSAGE, optional=True)

    auto_select: "bool" = betterproto2.field(5, betterproto2.TYPE_BOOL)


default_message_pool.register_message("", "MnetCfg", MnetCfg)


@dataclass(eq=False, repr=False)
class MnetInfo(betterproto2.Message):
    model: "str" = betterproto2.field(1, betterproto2.TYPE_STRING)

    revision: "str" = betterproto2.field(2, betterproto2.TYPE_STRING)

    imei: "str" = betterproto2.field(3, betterproto2.TYPE_STRING)

    sim: "SimCardSta" = betterproto2.field(4, betterproto2.TYPE_ENUM, default_factory=lambda: SimCardSta(0))

    imsi: "str" = betterproto2.field(5, betterproto2.TYPE_STRING)

    link_type: "MnetLinkType" = betterproto2.field(6, betterproto2.TYPE_ENUM, default_factory=lambda: MnetLinkType(0))

    rssi: "int" = betterproto2.field(7, betterproto2.TYPE_INT32)

    inet: "MnetInetStatus | None" = betterproto2.field(8, betterproto2.TYPE_MESSAGE, optional=True)

    iccid: "str" = betterproto2.field(9, betterproto2.TYPE_STRING)

    operator: "str" = betterproto2.field(10, betterproto2.TYPE_STRING)


default_message_pool.register_message("", "MnetInfo", MnetInfo)


@dataclass(eq=False, repr=False)
class ModFwInfo(betterproto2.Message):
    type: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    identify: "str" = betterproto2.field(2, betterproto2.TYPE_STRING)

    version: "str" = betterproto2.field(3, betterproto2.TYPE_STRING)


default_message_pool.register_message("", "mod_fw_info", ModFwInfo)


@dataclass(eq=False, repr=False)
class MowToAppInfoT(betterproto2.Message):
    type: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    cmd: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    mow_data: "list[int]" = betterproto2.field(3, betterproto2.TYPE_INT32, repeated=True)


default_message_pool.register_message("", "mow_to_app_info_t", MowToAppInfoT)


@dataclass(eq=False, repr=False)
class MowToAppQctoolsInfoT(betterproto2.Message):
    type: "QcAppTestId" = betterproto2.field(1, betterproto2.TYPE_ENUM, default_factory=lambda: QcAppTestId(0))

    time_of_duration: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    result: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    result_details: "str" = betterproto2.field(4, betterproto2.TYPE_STRING)

    except_: "list[QcAppTestExcept]" = betterproto2.field(5, betterproto2.TYPE_MESSAGE, repeated=True)


default_message_pool.register_message("", "mow_to_app_qctools_info_t", MowToAppQctoolsInfoT)


@dataclass(eq=False, repr=False)
class MqttRtkConnect(betterproto2.Message):
    rtk_switch: "RtkUsedType" = betterproto2.field(1, betterproto2.TYPE_ENUM, default_factory=lambda: RtkUsedType(0))

    rtk_channel: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    rtk_base_num: "str" = betterproto2.field(3, betterproto2.TYPE_STRING)

    latitude: "float" = betterproto2.field(4, betterproto2.TYPE_DOUBLE)

    longitude: "float" = betterproto2.field(5, betterproto2.TYPE_DOUBLE)

    nrtk_map_convert_status: "int" = betterproto2.field(6, betterproto2.TYPE_INT32)

    nrtk_net_mode: "int" = betterproto2.field(7, betterproto2.TYPE_INT32)

    new_rtk_mode: "int" = betterproto2.field(8, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "mqtt_rtk_connect", MqttRtkConnect)


@dataclass(eq=False, repr=False)
class MsgbusPkt(betterproto2.Message):
    type: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    type_command: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    recv_device_id: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    send_device_id: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    data_length: "int" = betterproto2.field(5, betterproto2.TYPE_INT32)

    data: "str" = betterproto2.field(6, betterproto2.TYPE_STRING)

    ctrl: "int" = betterproto2.field(7, betterproto2.TYPE_INT32)

    flag: "int" = betterproto2.field(8, betterproto2.TYPE_INT32)

    seqs: "int" = betterproto2.field(9, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "msgbus_pkt", MsgbusPkt)


@dataclass(eq=False, repr=False)
class MsgNull(betterproto2.Message):
    pass


default_message_pool.register_message("", "MsgNull", MsgNull)


@dataclass(eq=False, repr=False)
class MulAudioCfg(betterproto2.Message):
    au_switch: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    au_language: "MulLanguage" = betterproto2.field(2, betterproto2.TYPE_ENUM, default_factory=lambda: MulLanguage(0))

    sex: "MulSex" = betterproto2.field(3, betterproto2.TYPE_ENUM, default_factory=lambda: MulSex(0))


default_message_pool.register_message("", "MulAudioCfg", MulAudioCfg)


@dataclass(eq=False, repr=False)
class MulSetAudio(betterproto2.Message):
    """


    Oneofs:
        - AudioCfg_u:
    """

    at_switch: "int | None" = betterproto2.field(1, betterproto2.TYPE_INT32, optional=True, group="AudioCfg_u")

    au_language: "MulLanguage | None" = betterproto2.field(2, betterproto2.TYPE_ENUM, optional=True, group="AudioCfg_u")

    sex: "MulSex | None" = betterproto2.field(3, betterproto2.TYPE_ENUM, optional=True, group="AudioCfg_u")


default_message_pool.register_message("", "MulSetAudio", MulSetAudio)


@dataclass(eq=False, repr=False)
class MulSetEncode(betterproto2.Message):
    encode: "bool" = betterproto2.field(1, betterproto2.TYPE_BOOL)


default_message_pool.register_message("", "MulSetEncode", MulSetEncode)


@dataclass(eq=False, repr=False)
class MulSetVideo(betterproto2.Message):
    position: "MulCameraPosition" = betterproto2.field(
        1, betterproto2.TYPE_ENUM, default_factory=lambda: MulCameraPosition(0)
    )

    vi_switch: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "MulSetVideo", MulSetVideo)


@dataclass(eq=False, repr=False)
class MulSetVideoAck(betterproto2.Message):
    error_code: "MulVideoErrorCode" = betterproto2.field(
        1, betterproto2.TYPE_ENUM, default_factory=lambda: MulVideoErrorCode(0)
    )


default_message_pool.register_message("", "MulSetVideoAck", MulSetVideoAck)


@dataclass(eq=False, repr=False)
class MulSetWiper(betterproto2.Message):
    round: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "MulSetWiper", MulSetWiper)


@dataclass(eq=False, repr=False)
class MulSetWiperAck(betterproto2.Message):
    error_code: "MulWiperErrorCode" = betterproto2.field(
        1, betterproto2.TYPE_ENUM, default_factory=lambda: MulWiperErrorCode(0)
    )


default_message_pool.register_message("", "MulSetWiperAck", MulSetWiperAck)


@dataclass(eq=False, repr=False)
class NavGetAllPlanTask(betterproto2.Message):
    tasks: "list[PlanTaskNameIdT]" = betterproto2.field(1, betterproto2.TYPE_MESSAGE, repeated=True)


default_message_pool.register_message("", "nav_get_all_plan_task", NavGetAllPlanTask)


@dataclass(eq=False, repr=False)
class NavHeadingStateT(betterproto2.Message):
    heading_state: "int" = betterproto2.field(1, betterproto2.TYPE_UINT32)


default_message_pool.register_message("", "nav_heading_state_t", NavHeadingStateT)


@dataclass(eq=False, repr=False)
class NavPlanTaskExecute(betterproto2.Message):
    sub_cmd: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    id: "str" = betterproto2.field(2, betterproto2.TYPE_STRING)

    name: "str" = betterproto2.field(3, betterproto2.TYPE_STRING)

    result: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "nav_plan_task_execute", NavPlanTaskExecute)


@dataclass(eq=False, repr=False)
class NavSysParamMsg(betterproto2.Message):
    rw: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    id: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    context: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "nav_sys_param_msg", NavSysParamMsg)


@dataclass(eq=False, repr=False)
class NavBorderDataGet(betterproto2.Message):
    job_id: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    current_frame: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    border_len: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "NavBorderDataGet", NavBorderDataGet)


@dataclass(eq=False, repr=False)
class NavBorderDataGetAck(betterproto2.Message):
    job_id: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    current_frame: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "NavBorderDataGetAck", NavBorderDataGetAck)


@dataclass(eq=False, repr=False)
class NavBorderState(betterproto2.Message):
    bdstate: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "NavBorderState", NavBorderState)


@dataclass(eq=False, repr=False)
class NavCHlLineData(betterproto2.Message):
    start_job_ri: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    end_job_ri: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    current_frame: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    channel_line_len: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "NavCHlLineData", NavCHlLineData)


@dataclass(eq=False, repr=False)
class NavCHlLineDataAck(betterproto2.Message):
    start_job_ri: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    end_job_ri: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    current_frame: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "NavCHlLineDataAck", NavCHlLineDataAck)


@dataclass(eq=False, repr=False)
class NavEdgePoints(betterproto2.Message):
    result: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    action: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    type: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    hash: "int" = betterproto2.field(4, betterproto2.TYPE_FIXED64)

    total_frame: "int" = betterproto2.field(5, betterproto2.TYPE_INT32)

    current_frame: "int" = betterproto2.field(6, betterproto2.TYPE_INT32)

    data_couple: "list[CommDataCouple]" = betterproto2.field(7, betterproto2.TYPE_MESSAGE, repeated=True)


default_message_pool.register_message("", "NavEdgePoints", NavEdgePoints)


@dataclass(eq=False, repr=False)
class NavEdgePointsAck(betterproto2.Message):
    result: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    action: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    type: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    hash: "int" = betterproto2.field(4, betterproto2.TYPE_FIXED64)

    total_frame: "int" = betterproto2.field(5, betterproto2.TYPE_INT32)

    current_frame: "int" = betterproto2.field(6, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "NavEdgePointsAck", NavEdgePointsAck)


@dataclass(eq=False, repr=False)
class NavGetCommData(betterproto2.Message):
    pver: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    sub_cmd: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    action: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    type: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    hash: "int" = betterproto2.field(5, betterproto2.TYPE_INT64)

    paternal_hash_a: "int" = betterproto2.field(6, betterproto2.TYPE_INT64)

    paternal_hash_b: "int" = betterproto2.field(7, betterproto2.TYPE_INT64)

    total_frame: "int" = betterproto2.field(8, betterproto2.TYPE_INT32)

    current_frame: "int" = betterproto2.field(9, betterproto2.TYPE_INT32)

    data_hash: "int" = betterproto2.field(10, betterproto2.TYPE_FIXED64)

    reserved: "str" = betterproto2.field(11, betterproto2.TYPE_STRING)


default_message_pool.register_message("", "NavGetCommData", NavGetCommData)


@dataclass(eq=False, repr=False)
class NavGetCommDataAck(betterproto2.Message):
    pver: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    sub_cmd: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    result: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    action: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    type: "int" = betterproto2.field(5, betterproto2.TYPE_INT32)

    hash: "int" = betterproto2.field(6, betterproto2.TYPE_FIXED64)

    paternal_hash_a: "int" = betterproto2.field(7, betterproto2.TYPE_FIXED64)

    paternal_hash_b: "int" = betterproto2.field(8, betterproto2.TYPE_FIXED64)

    total_frame: "int" = betterproto2.field(9, betterproto2.TYPE_INT32)

    current_frame: "int" = betterproto2.field(10, betterproto2.TYPE_INT32)

    data_hash: "int" = betterproto2.field(11, betterproto2.TYPE_FIXED64)

    data_len: "int" = betterproto2.field(12, betterproto2.TYPE_INT32)

    data_couple: "list[CommDataCouple]" = betterproto2.field(13, betterproto2.TYPE_MESSAGE, repeated=True)

    reserved: "str" = betterproto2.field(14, betterproto2.TYPE_STRING)

    name_time: "NavGetNameTime | None" = betterproto2.field(15, betterproto2.TYPE_MESSAGE, optional=True)


default_message_pool.register_message("", "NavGetCommDataAck", NavGetCommDataAck)


@dataclass(eq=False, repr=False)
class NavGetHashList(betterproto2.Message):
    pver: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    sub_cmd: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    total_frame: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    current_frame: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    data_hash: "int" = betterproto2.field(5, betterproto2.TYPE_FIXED64)

    reserved: "str" = betterproto2.field(6, betterproto2.TYPE_STRING)


default_message_pool.register_message("", "NavGetHashList", NavGetHashList)


@dataclass(eq=False, repr=False)
class NavGetHashListAck(betterproto2.Message):
    pver: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    sub_cmd: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    total_frame: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    current_frame: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    data_hash: "int" = betterproto2.field(5, betterproto2.TYPE_FIXED64)

    hash_len: "int" = betterproto2.field(6, betterproto2.TYPE_INT32)

    reserved: "str" = betterproto2.field(7, betterproto2.TYPE_STRING)

    result: "int" = betterproto2.field(8, betterproto2.TYPE_INT32)

    data_couple: "list[int]" = betterproto2.field(13, betterproto2.TYPE_INT64, repeated=True)


default_message_pool.register_message("", "NavGetHashListAck", NavGetHashListAck)


@dataclass(eq=False, repr=False)
class NavGetNameTime(betterproto2.Message):
    name: "str" = betterproto2.field(1, betterproto2.TYPE_STRING)

    create_time: "int" = betterproto2.field(2, betterproto2.TYPE_FIXED64)

    modify_time: "int" = betterproto2.field(3, betterproto2.TYPE_FIXED64)


default_message_pool.register_message("", "NavGetNameTime", NavGetNameTime)


@dataclass(eq=False, repr=False)
class NavLatLonUp(betterproto2.Message):
    lat: "float" = betterproto2.field(1, betterproto2.TYPE_DOUBLE)

    lon: "float" = betterproto2.field(2, betterproto2.TYPE_DOUBLE)


default_message_pool.register_message("", "NavLatLonUp", NavLatLonUp)


@dataclass(eq=False, repr=False)
class NavMapNameMsg(betterproto2.Message):
    rw: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    hash: "int" = betterproto2.field(2, betterproto2.TYPE_FIXED64)

    name: "str" = betterproto2.field(3, betterproto2.TYPE_STRING)

    result: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    device_id: "str" = betterproto2.field(5, betterproto2.TYPE_STRING)


default_message_pool.register_message("", "NavMapNameMsg", NavMapNameMsg)


@dataclass(eq=False, repr=False)
class NavObstiBorderDataGet(betterproto2.Message):
    obstacle_index: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    current_frame: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    obstacles_len: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "NavObstiBorderDataGet", NavObstiBorderDataGet)


@dataclass(eq=False, repr=False)
class NavObstiBorderDataGetAck(betterproto2.Message):
    obstacle_index: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    current_frame: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "NavObstiBorderDataGetAck", NavObstiBorderDataGetAck)


@dataclass(eq=False, repr=False)
class NavOptiBorderInfo(betterproto2.Message):
    job_id: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    all_frame: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    current_frame: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    border_data_len: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    dc: "list[CommDataCouple]" = betterproto2.field(5, betterproto2.TYPE_MESSAGE, repeated=True)


default_message_pool.register_message("", "NavOptiBorderInfo", NavOptiBorderInfo)


@dataclass(eq=False, repr=False)
class NavOptLineUp(betterproto2.Message):
    start_job_ri: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    end_job_ri: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    all_frame: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    current_frame: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    channel_data_len: "int" = betterproto2.field(5, betterproto2.TYPE_INT32)

    dc: "list[CommDataCouple]" = betterproto2.field(6, betterproto2.TYPE_MESSAGE, repeated=True)


default_message_pool.register_message("", "NavOptLineUp", NavOptLineUp)


@dataclass(eq=False, repr=False)
class NavOptObsInfo(betterproto2.Message):
    obstacle_id: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    all_frame: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    current_frame: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    obstacle_data_len: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    dc: "list[CommDataCouple]" = betterproto2.field(5, betterproto2.TYPE_MESSAGE, repeated=True)


default_message_pool.register_message("", "NavOptObsInfo", NavOptObsInfo)


@dataclass(eq=False, repr=False)
class NavPlanJobSet(betterproto2.Message):
    pver: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    sub_cmd: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    area: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    work_time: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    version: "str" = betterproto2.field(5, betterproto2.TYPE_STRING)

    id: "str" = betterproto2.field(6, betterproto2.TYPE_STRING)

    user_id: "str" = betterproto2.field(7, betterproto2.TYPE_STRING)

    device_id: "str" = betterproto2.field(8, betterproto2.TYPE_STRING)

    plan_id: "str" = betterproto2.field(9, betterproto2.TYPE_STRING)

    task_id: "str" = betterproto2.field(10, betterproto2.TYPE_STRING)

    job_id: "str" = betterproto2.field(11, betterproto2.TYPE_STRING)

    start_time: "str" = betterproto2.field(12, betterproto2.TYPE_STRING)

    end_time: "str" = betterproto2.field(13, betterproto2.TYPE_STRING)

    week: "int" = betterproto2.field(14, betterproto2.TYPE_INT32)

    knife_height: "int" = betterproto2.field(15, betterproto2.TYPE_INT32)

    model: "int" = betterproto2.field(16, betterproto2.TYPE_INT32)

    edge_mode: "int" = betterproto2.field(17, betterproto2.TYPE_INT32)

    required_time: "int" = betterproto2.field(18, betterproto2.TYPE_INT32)

    route_angle: "int" = betterproto2.field(19, betterproto2.TYPE_INT32)

    route_model: "int" = betterproto2.field(20, betterproto2.TYPE_INT32)

    route_spacing: "int" = betterproto2.field(21, betterproto2.TYPE_INT32)

    ultrasonic_barrier: "int" = betterproto2.field(22, betterproto2.TYPE_INT32)

    total_plan_num: "int" = betterproto2.field(23, betterproto2.TYPE_INT32)

    plan_index: "int" = betterproto2.field(24, betterproto2.TYPE_INT32)

    result: "int" = betterproto2.field(25, betterproto2.TYPE_INT32)

    speed: "float" = betterproto2.field(26, betterproto2.TYPE_FLOAT)

    task_name: "str" = betterproto2.field(27, betterproto2.TYPE_STRING)

    job_name: "str" = betterproto2.field(28, betterproto2.TYPE_STRING)

    zone_hashs: "list[int]" = betterproto2.field(29, betterproto2.TYPE_FIXED64, repeated=True)

    reserved: "str" = betterproto2.field(30, betterproto2.TYPE_STRING)

    start_date: "str" = betterproto2.field(31, betterproto2.TYPE_STRING)

    end_date: "str" = betterproto2.field(32, betterproto2.TYPE_STRING)

    trigger_type: "int" = betterproto2.field(33, betterproto2.TYPE_INT32)

    day: "int" = betterproto2.field(34, betterproto2.TYPE_INT32)

    weeks: "list[int]" = betterproto2.field(35, betterproto2.TYPE_FIXED32, repeated=True)

    remained_seconds: "int" = betterproto2.field(36, betterproto2.TYPE_INT64)

    toward_mode: "int" = betterproto2.field(37, betterproto2.TYPE_INT32)

    toward_included_angle: "int" = betterproto2.field(38, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "NavPlanJobSet", NavPlanJobSet)


@dataclass(eq=False, repr=False)
class NavPosUp(betterproto2.Message):
    x: "float" = betterproto2.field(1, betterproto2.TYPE_FLOAT)

    y: "float" = betterproto2.field(2, betterproto2.TYPE_FLOAT)

    status: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    toward: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    stars: "int" = betterproto2.field(5, betterproto2.TYPE_INT32)

    age: "float" = betterproto2.field(6, betterproto2.TYPE_FLOAT)

    lat_stddev: "float" = betterproto2.field(7, betterproto2.TYPE_FLOAT)

    lon_stddev: "float" = betterproto2.field(8, betterproto2.TYPE_FLOAT)

    l_2df_stars: "int" = betterproto2.field(9, betterproto2.TYPE_INT32)

    pos_type: "int" = betterproto2.field(10, betterproto2.TYPE_INT32)

    c_hash_id: "int" = betterproto2.field(11, betterproto2.TYPE_INT64)

    pos_level: "int" = betterproto2.field(12, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "NavPosUp", NavPosUp)


@dataclass(eq=False, repr=False)
class NavReqCoverPath(betterproto2.Message):
    pver: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    job_id: "int" = betterproto2.field(2, betterproto2.TYPE_FIXED64)

    job_ver: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    job_mode: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    sub_cmd: "int" = betterproto2.field(5, betterproto2.TYPE_INT32)

    edge_mode: "int" = betterproto2.field(6, betterproto2.TYPE_INT32)

    knife_height: "int" = betterproto2.field(7, betterproto2.TYPE_INT32)

    channel_width: "int" = betterproto2.field(8, betterproto2.TYPE_INT32)

    ultra_wave: "int" = betterproto2.field(9, betterproto2.TYPE_INT32)

    channel_mode: "int" = betterproto2.field(10, betterproto2.TYPE_INT32)

    toward: "int" = betterproto2.field(11, betterproto2.TYPE_INT32)

    speed: "float" = betterproto2.field(12, betterproto2.TYPE_FLOAT)

    zone_hashs: "list[int]" = betterproto2.field(13, betterproto2.TYPE_FIXED64, repeated=True)

    path_hash: "int" = betterproto2.field(14, betterproto2.TYPE_FIXED64)

    reserved: "str" = betterproto2.field(15, betterproto2.TYPE_STRING)

    result: "int" = betterproto2.field(16, betterproto2.TYPE_INT32)

    toward_mode: "int" = betterproto2.field(17, betterproto2.TYPE_INT32)

    toward_included_angle: "int" = betterproto2.field(18, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "NavReqCoverPath", NavReqCoverPath)


@dataclass(eq=False, repr=False)
class NavResFrame(betterproto2.Message):
    frameid: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "NavResFrame", NavResFrame)


@dataclass(eq=False, repr=False)
class NavStartJob(betterproto2.Message):
    job_id: "int" = betterproto2.field(1, betterproto2.TYPE_INT64)

    job_ver: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    job_mode: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    rain_tactics: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    knife_height: "int" = betterproto2.field(5, betterproto2.TYPE_INT32)

    speed: "float" = betterproto2.field(6, betterproto2.TYPE_FLOAT)

    channel_width: "int" = betterproto2.field(7, betterproto2.TYPE_INT32)

    ultra_wave: "int" = betterproto2.field(8, betterproto2.TYPE_INT32)

    channel_mode: "int" = betterproto2.field(9, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "NavStartJob", NavStartJob)


@dataclass(eq=False, repr=False)
class NavSysHashOverview(betterproto2.Message):
    commonhash_overview: "int" = betterproto2.field(1, betterproto2.TYPE_FIXED64)

    path_hash_overview: "int" = betterproto2.field(2, betterproto2.TYPE_FIXED64)


default_message_pool.register_message("", "NavSysHashOverview", NavSysHashOverview)


@dataclass(eq=False, repr=False)
class NavTaskBreakPoint(betterproto2.Message):
    x: "float" = betterproto2.field(1, betterproto2.TYPE_FLOAT)

    y: "float" = betterproto2.field(2, betterproto2.TYPE_FLOAT)

    toward: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    flag: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    action: "int" = betterproto2.field(5, betterproto2.TYPE_INT32)

    zone_hash: "int" = betterproto2.field(6, betterproto2.TYPE_FIXED64)


default_message_pool.register_message("", "NavTaskBreakPoint", NavTaskBreakPoint)


@dataclass(eq=False, repr=False)
class NavTaskCtrl(betterproto2.Message):
    type: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    action: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    result: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    reserved: "str" = betterproto2.field(4, betterproto2.TYPE_STRING)


default_message_pool.register_message("", "NavTaskCtrl", NavTaskCtrl)


@dataclass(eq=False, repr=False)
class NavTaskCtrlAck(betterproto2.Message):
    type: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    action: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    result: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    nav_state: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    reserved: "str" = betterproto2.field(5, betterproto2.TYPE_STRING)


default_message_pool.register_message("", "NavTaskCtrlAck", NavTaskCtrlAck)


@dataclass(eq=False, repr=False)
class NavTaskIdRw(betterproto2.Message):
    pver: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    sub_cmd: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    task_name: "str" = betterproto2.field(3, betterproto2.TYPE_STRING)

    task_id: "str" = betterproto2.field(4, betterproto2.TYPE_STRING)

    result: "int" = betterproto2.field(5, betterproto2.TYPE_INT32)

    reserved: "str" = betterproto2.field(6, betterproto2.TYPE_STRING)


default_message_pool.register_message("", "NavTaskIdRw", NavTaskIdRw)


@dataclass(eq=False, repr=False)
class NavTaskInfo(betterproto2.Message):
    area: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    time: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    all_frame: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    current_frame: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    pathlen: "int" = betterproto2.field(5, betterproto2.TYPE_INT32)

    dc: "list[CommDataCouple]" = betterproto2.field(6, betterproto2.TYPE_MESSAGE, repeated=True)


default_message_pool.register_message("", "NavTaskInfo", NavTaskInfo)


@dataclass(eq=False, repr=False)
class NavTaskProgress(betterproto2.Message):
    task_progress: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "NavTaskProgress", NavTaskProgress)


@dataclass(eq=False, repr=False)
class NavUnableTimeSet(betterproto2.Message):
    sub_cmd: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    device_id: "str" = betterproto2.field(2, betterproto2.TYPE_STRING)

    unable_start_time: "str" = betterproto2.field(3, betterproto2.TYPE_STRING)

    unable_end_time: "str" = betterproto2.field(4, betterproto2.TYPE_STRING)

    result: "int" = betterproto2.field(5, betterproto2.TYPE_INT32)

    reserved: "str" = betterproto2.field(6, betterproto2.TYPE_STRING)

    trigger: "int" = betterproto2.field(7, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "NavUnableTimeSet", NavUnableTimeSet)


@dataclass(eq=False, repr=False)
class NavUploadZigZagResult(betterproto2.Message):
    pver: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    job_id: "int" = betterproto2.field(2, betterproto2.TYPE_FIXED64)

    job_ver: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    result: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    area: "int" = betterproto2.field(5, betterproto2.TYPE_INT32)

    time: "int" = betterproto2.field(6, betterproto2.TYPE_INT32)

    total_zone_num: "int" = betterproto2.field(7, betterproto2.TYPE_INT32)

    current_zone_path_num: "int" = betterproto2.field(8, betterproto2.TYPE_INT32)

    current_zone_path_id: "int" = betterproto2.field(9, betterproto2.TYPE_INT32)

    current_zone: "int" = betterproto2.field(10, betterproto2.TYPE_INT32)

    current_hash: "int" = betterproto2.field(11, betterproto2.TYPE_FIXED64)

    total_frame: "int" = betterproto2.field(12, betterproto2.TYPE_INT32)

    current_frame: "int" = betterproto2.field(13, betterproto2.TYPE_INT32)

    channel_mode: "int" = betterproto2.field(14, betterproto2.TYPE_INT32)

    channel_mode_id: "int" = betterproto2.field(15, betterproto2.TYPE_INT32)

    data_hash: "int" = betterproto2.field(16, betterproto2.TYPE_FIXED64)

    data_len: "int" = betterproto2.field(17, betterproto2.TYPE_INT32)

    reserved: "str" = betterproto2.field(18, betterproto2.TYPE_STRING)

    data_couple: "list[CommDataCouple]" = betterproto2.field(19, betterproto2.TYPE_MESSAGE, repeated=True)

    sub_cmd: "int" = betterproto2.field(20, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "NavUploadZigZagResult", NavUploadZigZagResult)


@dataclass(eq=False, repr=False)
class NavUploadZigZagResultAck(betterproto2.Message):
    pver: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    current_zone: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    current_hash: "int" = betterproto2.field(3, betterproto2.TYPE_FIXED64)

    total_frame: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    current_frame: "int" = betterproto2.field(5, betterproto2.TYPE_INT32)

    data_hash: "int" = betterproto2.field(6, betterproto2.TYPE_FIXED64)

    reserved: "str" = betterproto2.field(7, betterproto2.TYPE_STRING)

    sub_cmd: "int" = betterproto2.field(8, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "NavUploadZigZagResultAck", NavUploadZigZagResultAck)


@dataclass(eq=False, repr=False)
class NetSpeed(betterproto2.Message):
    download: "int" = betterproto2.field(1, betterproto2.TYPE_UINT32)

    upload: "int" = betterproto2.field(2, betterproto2.TYPE_UINT32)


default_message_pool.register_message("", "net_speed", NetSpeed)


@dataclass(eq=False, repr=False)
class OtaInfo(betterproto2.Message):
    otaid: "str" = betterproto2.field(1, betterproto2.TYPE_STRING)

    version: "str" = betterproto2.field(2, betterproto2.TYPE_STRING)

    progress: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    result: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    message: "str" = betterproto2.field(5, betterproto2.TYPE_STRING)


default_message_pool.register_message("", "otaInfo", OtaInfo)


@dataclass(eq=False, repr=False)
class PerceptionLocalMapVisualizationT(betterproto2.Message):
    map: "bytes" = betterproto2.field(1, betterproto2.TYPE_BYTES)


default_message_pool.register_message("", "perception_local_map_visualization_t", PerceptionLocalMapVisualizationT)


@dataclass(eq=False, repr=False)
class PerceptionObstaclesT(betterproto2.Message):
    label: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    num: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    points_x: "list[int]" = betterproto2.field(3, betterproto2.TYPE_SINT32, repeated=True)

    points_y: "list[int]" = betterproto2.field(4, betterproto2.TYPE_SINT32, repeated=True)


default_message_pool.register_message("", "perception_obstacles_t", PerceptionObstaclesT)


@dataclass(eq=False, repr=False)
class PerceptionObstaclesVisualizationT(betterproto2.Message):
    status: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    num: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    obstacles: "list[PerceptionObstaclesT]" = betterproto2.field(3, betterproto2.TYPE_MESSAGE, repeated=True)

    timestamp: "float" = betterproto2.field(4, betterproto2.TYPE_DOUBLE)

    scale: "float" = betterproto2.field(5, betterproto2.TYPE_FLOAT)


default_message_pool.register_message("", "perception_obstacles_visualization_t", PerceptionObstaclesVisualizationT)


@dataclass(eq=False, repr=False)
class PerceptionUniversalBuffT(betterproto2.Message):
    perception_type: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    perception_len: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    universal_buff: "list[int]" = betterproto2.field(3, betterproto2.TYPE_INT64, repeated=True)


default_message_pool.register_message("", "perception_universal_buff_t", PerceptionUniversalBuffT)


@dataclass(eq=False, repr=False)
class PlanTaskNameIdT(betterproto2.Message):
    id: "str" = betterproto2.field(1, betterproto2.TYPE_STRING)

    name: "str" = betterproto2.field(2, betterproto2.TYPE_STRING)


default_message_pool.register_message("", "plan_task_name_id_t", PlanTaskNameIdT)


@dataclass(eq=False, repr=False)
class PosScore(betterproto2.Message):
    rover_score: "int" = betterproto2.field(1, betterproto2.TYPE_UINT32)

    rover_level: "int" = betterproto2.field(2, betterproto2.TYPE_UINT32)

    base_score: "int" = betterproto2.field(3, betterproto2.TYPE_UINT32)

    base_level: "int" = betterproto2.field(4, betterproto2.TYPE_UINT32)

    base_moved: "int" = betterproto2.field(5, betterproto2.TYPE_UINT32)

    base_moving: "int" = betterproto2.field(6, betterproto2.TYPE_UINT32)


default_message_pool.register_message("", "pos_score", PosScore)


@dataclass(eq=False, repr=False)
class QcAppTestConditions(betterproto2.Message):
    cond_type: "str" = betterproto2.field(1, betterproto2.TYPE_STRING)

    int_val: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    float_val: "float" = betterproto2.field(3, betterproto2.TYPE_FLOAT)

    double_val: "float" = betterproto2.field(4, betterproto2.TYPE_DOUBLE)

    string_val: "str" = betterproto2.field(5, betterproto2.TYPE_STRING)


default_message_pool.register_message("", "QCAppTestConditions", QcAppTestConditions)


@dataclass(eq=False, repr=False)
class QcAppTestExcept(betterproto2.Message):
    except_type: "str" = betterproto2.field(1, betterproto2.TYPE_STRING)

    conditions: "list[QcAppTestConditions]" = betterproto2.field(2, betterproto2.TYPE_MESSAGE, repeated=True)


default_message_pool.register_message("", "QCAppTestExcept", QcAppTestExcept)


@dataclass(eq=False, repr=False)
class RemoteResetReqT(betterproto2.Message):
    magic: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    bizid: "int" = betterproto2.field(2, betterproto2.TYPE_INT64)

    reset_mode: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    force_reset: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    account: "int" = betterproto2.field(5, betterproto2.TYPE_INT64)


default_message_pool.register_message("", "remote_reset_req_t", RemoteResetReqT)


@dataclass(eq=False, repr=False)
class RemoteResetRspT(betterproto2.Message):
    magic: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    bizid: "int" = betterproto2.field(2, betterproto2.TYPE_INT64)

    result: "CommandResult" = betterproto2.field(3, betterproto2.TYPE_ENUM, default_factory=lambda: CommandResult(0))


default_message_pool.register_message("", "remote_reset_rsp_t", RemoteResetRspT)


@dataclass(eq=False, repr=False)
class ReportInfoCfg(betterproto2.Message):
    act: "RptAct" = betterproto2.field(1, betterproto2.TYPE_ENUM, default_factory=lambda: RptAct(0))

    timeout: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    period: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    no_change_period: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    count: "int" = betterproto2.field(5, betterproto2.TYPE_INT32)

    sub: "list[RptInfoType]" = betterproto2.field(6, betterproto2.TYPE_ENUM, repeated=True)


default_message_pool.register_message("", "report_info_cfg", ReportInfoCfg)


@dataclass(eq=False, repr=False)
class ReportInfoData(betterproto2.Message):
    connect: "RptConnectStatus | None" = betterproto2.field(1, betterproto2.TYPE_MESSAGE, optional=True)

    dev: "RptDevStatus | None" = betterproto2.field(2, betterproto2.TYPE_MESSAGE, optional=True)

    rtk: "RptRtk | None" = betterproto2.field(3, betterproto2.TYPE_MESSAGE, optional=True)

    locations: "list[RptDevLocation]" = betterproto2.field(4, betterproto2.TYPE_MESSAGE, repeated=True)

    work: "RptWork | None" = betterproto2.field(5, betterproto2.TYPE_MESSAGE, optional=True)

    fw_info: "DeviceFwInfo | None" = betterproto2.field(6, betterproto2.TYPE_MESSAGE, optional=True)

    maintain: "RptMaintain | None" = betterproto2.field(7, betterproto2.TYPE_MESSAGE, optional=True)

    vision_point_info: "list[VisionPointInfoMsg]" = betterproto2.field(8, betterproto2.TYPE_MESSAGE, repeated=True)

    vio_to_app_info: "VioToAppInfoMsg | None" = betterproto2.field(9, betterproto2.TYPE_MESSAGE, optional=True)

    vision_statistic_info: "VisionStatisticInfoMsg | None" = betterproto2.field(
        10, betterproto2.TYPE_MESSAGE, optional=True
    )

    basestation_info: "RptBasestationInfo | None" = betterproto2.field(11, betterproto2.TYPE_MESSAGE, optional=True)

    cutter_work_mode_info: "RptCutterRpm | None" = betterproto2.field(12, betterproto2.TYPE_MESSAGE, optional=True)


default_message_pool.register_message("", "report_info_data", ReportInfoData)


@dataclass(eq=False, repr=False)
class ReportInfoT(betterproto2.Message):
    dev_status: "DevStatueT | None" = betterproto2.field(1, betterproto2.TYPE_MESSAGE, optional=True)


default_message_pool.register_message("", "report_info_t", ReportInfoT)


@dataclass(eq=False, repr=False)
class RequestBasestationInfoT(betterproto2.Message):
    request_type: "int" = betterproto2.field(1, betterproto2.TYPE_UINT32)


default_message_pool.register_message("", "request_basestation_info_t", RequestBasestationInfoT)


@dataclass(eq=False, repr=False)
class ResponseBasestationInfoT(betterproto2.Message):
    system_status: "int" = betterproto2.field(1, betterproto2.TYPE_UINT64)

    app_connect_type: "int" = betterproto2.field(2, betterproto2.TYPE_UINT32)

    ble_rssi: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    wifi_rssi: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    sats_num: "int" = betterproto2.field(5, betterproto2.TYPE_UINT64)

    lora_scan: "int" = betterproto2.field(6, betterproto2.TYPE_INT64)

    lora_channel: "int" = betterproto2.field(7, betterproto2.TYPE_INT64)

    lora_locid: "int" = betterproto2.field(8, betterproto2.TYPE_INT64)

    lora_netid: "int" = betterproto2.field(9, betterproto2.TYPE_INT64)

    rtk_status: "int" = betterproto2.field(10, betterproto2.TYPE_UINT64)

    lowpower_status: "int" = betterproto2.field(11, betterproto2.TYPE_INT32)

    mqtt_rtk_status: "int" = betterproto2.field(12, betterproto2.TYPE_INT32)

    rtk_channel: "int" = betterproto2.field(13, betterproto2.TYPE_INT32)

    rtk_switch: "int" = betterproto2.field(14, betterproto2.TYPE_INT32)

    score_info: "BaseScore | None" = betterproto2.field(15, betterproto2.TYPE_MESSAGE, optional=True)


default_message_pool.register_message("", "response_basestation_info_t", ResponseBasestationInfoT)


@dataclass(eq=False, repr=False)
class ResponseSetModeT(betterproto2.Message):
    statue: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    set_work_mode: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    cur_work_mode: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    start_work_time: "int" = betterproto2.field(4, betterproto2.TYPE_INT64)

    end_work_time: "int" = betterproto2.field(5, betterproto2.TYPE_INT64)

    interruptflag: "int" = betterproto2.field(6, betterproto2.TYPE_INT32)

    cur_work_time: "int" = betterproto2.field(7, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "response_set_mode_t", ResponseSetModeT)


@dataclass(eq=False, repr=False)
class RptBasestationInfo(betterproto2.Message):
    ver_major: "int" = betterproto2.field(1, betterproto2.TYPE_UINT32)

    ver_minor: "int" = betterproto2.field(2, betterproto2.TYPE_UINT32)

    ver_patch: "int" = betterproto2.field(3, betterproto2.TYPE_UINT32)

    ver_build: "int" = betterproto2.field(4, betterproto2.TYPE_UINT32)

    basestation_status: "int" = betterproto2.field(5, betterproto2.TYPE_UINT32)

    connect_status_since_poweron: "int" = betterproto2.field(6, betterproto2.TYPE_UINT32)


default_message_pool.register_message("", "rpt_basestation_info", RptBasestationInfo)


@dataclass(eq=False, repr=False)
class RptConnectStatus(betterproto2.Message):
    connect_type: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    ble_rssi: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    wifi_rssi: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    link_type: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    mnet_rssi: "int" = betterproto2.field(5, betterproto2.TYPE_INT32)

    mnet_inet: "int" = betterproto2.field(6, betterproto2.TYPE_INT32)

    used_net: "NetUsedType" = betterproto2.field(7, betterproto2.TYPE_ENUM, default_factory=lambda: NetUsedType(0))

    mnet_cfg: "MnetCfg | None" = betterproto2.field(8, betterproto2.TYPE_MESSAGE, optional=True)

    dev_net_speed: "NetSpeed | None" = betterproto2.field(9, betterproto2.TYPE_MESSAGE, optional=True)

    iot_wifi_report: "bool" = betterproto2.field(10, betterproto2.TYPE_BOOL)

    iot_con_status: "int" = betterproto2.field(11, betterproto2.TYPE_INT32)

    wifi_con_status: "int" = betterproto2.field(12, betterproto2.TYPE_INT32)

    wifi_is_available: "int" = betterproto2.field(13, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "rpt_connect_status", RptConnectStatus)


@dataclass(eq=False, repr=False)
class RptCutterRpm(betterproto2.Message):
    current_cutter_mode: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    current_cutter_rpm: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "rpt_cutter_rpm", RptCutterRpm)


@dataclass(eq=False, repr=False)
class RptDevLocation(betterproto2.Message):
    real_pos_x: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    real_pos_y: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    real_toward: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    pos_type: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    zone_hash: "int" = betterproto2.field(5, betterproto2.TYPE_INT64)

    bol_hash: "int" = betterproto2.field(6, betterproto2.TYPE_INT64)


default_message_pool.register_message("", "rpt_dev_location", RptDevLocation)


@dataclass(eq=False, repr=False)
class RptDevStatus(betterproto2.Message):
    sys_status: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    charge_state: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    battery_val: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    sensor_status: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    last_status: "int" = betterproto2.field(5, betterproto2.TYPE_INT32)

    sys_time_stamp: "int" = betterproto2.field(6, betterproto2.TYPE_INT64)

    vslam_status: "int" = betterproto2.field(7, betterproto2.TYPE_INT32)

    mnet_info: "MnetInfo | None" = betterproto2.field(8, betterproto2.TYPE_MESSAGE, optional=True)

    vio_survival_info: "VioSurvivalInfoT | None" = betterproto2.field(9, betterproto2.TYPE_MESSAGE, optional=True)

    collector_status: "CollectorStatusT | None" = betterproto2.field(10, betterproto2.TYPE_MESSAGE, optional=True)

    lock_state: "LockStateT | None" = betterproto2.field(11, betterproto2.TYPE_MESSAGE, optional=True)

    self_check_status: "int" = betterproto2.field(12, betterproto2.TYPE_UINT32)

    fpv_info: "FpvToAppInfoT | None" = betterproto2.field(13, betterproto2.TYPE_MESSAGE, optional=True)


default_message_pool.register_message("", "rpt_dev_status", RptDevStatus)


@dataclass(eq=False, repr=False)
class RptLora(betterproto2.Message):
    pair_code_scan: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    pair_code_channel: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    pair_code_locid: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    pair_code_netid: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    lora_connection_status: "int" = betterproto2.field(5, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "rpt_lora", RptLora)


@dataclass(eq=False, repr=False)
class RptMaintain(betterproto2.Message):
    mileage: "int" = betterproto2.field(1, betterproto2.TYPE_INT64)

    work_time: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    bat_cycles: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    blade_used_time: "BladeUsed | None" = betterproto2.field(4, betterproto2.TYPE_MESSAGE, optional=True)


default_message_pool.register_message("", "rpt_maintain", RptMaintain)


@dataclass(eq=False, repr=False)
class RptRtk(betterproto2.Message):
    status: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    pos_level: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    gps_stars: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    age: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    lat_std: "int" = betterproto2.field(5, betterproto2.TYPE_INT32)

    lon_std: "int" = betterproto2.field(6, betterproto2.TYPE_INT32)

    l2_stars: "int" = betterproto2.field(7, betterproto2.TYPE_INT32)

    dis_status: "int" = betterproto2.field(8, betterproto2.TYPE_INT64)

    top4_total_mean: "int" = betterproto2.field(9, betterproto2.TYPE_INT64)

    co_view_stars: "int" = betterproto2.field(10, betterproto2.TYPE_INT32)

    reset: "int" = betterproto2.field(11, betterproto2.TYPE_INT32)

    lora_info: "RptLora | None" = betterproto2.field(12, betterproto2.TYPE_MESSAGE, optional=True)

    mqtt_rtk_info: "MqttRtkConnect | None" = betterproto2.field(13, betterproto2.TYPE_MESSAGE, optional=True)

    score_info: "PosScore | None" = betterproto2.field(14, betterproto2.TYPE_MESSAGE, optional=True)


default_message_pool.register_message("", "rpt_rtk", RptRtk)


@dataclass(eq=False, repr=False)
class RptWork(betterproto2.Message):
    plan: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    path_hash: "int" = betterproto2.field(2, betterproto2.TYPE_INT64)

    progress: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    area: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    bp_info: "int" = betterproto2.field(5, betterproto2.TYPE_INT32)

    bp_hash: "int" = betterproto2.field(6, betterproto2.TYPE_INT64)

    bp_pos_x: "int" = betterproto2.field(7, betterproto2.TYPE_INT32)

    bp_pos_y: "int" = betterproto2.field(8, betterproto2.TYPE_INT32)

    real_path_num: "int" = betterproto2.field(9, betterproto2.TYPE_INT64)

    path_pos_x: "int" = betterproto2.field(10, betterproto2.TYPE_INT32)

    path_pos_y: "int" = betterproto2.field(11, betterproto2.TYPE_INT32)

    ub_zone_hash: "int" = betterproto2.field(12, betterproto2.TYPE_INT64)

    ub_path_hash: "int" = betterproto2.field(13, betterproto2.TYPE_INT64)

    init_cfg_hash: "int" = betterproto2.field(14, betterproto2.TYPE_INT64)

    ub_ecode_hash: "int" = betterproto2.field(15, betterproto2.TYPE_INT64)

    nav_run_mode: "int" = betterproto2.field(16, betterproto2.TYPE_INT32)

    test_mode_status: "int" = betterproto2.field(17, betterproto2.TYPE_INT64)

    man_run_speed: "int" = betterproto2.field(18, betterproto2.TYPE_INT32)

    nav_edit_status: "int" = betterproto2.field(19, betterproto2.TYPE_INT32)

    knife_height: "int" = betterproto2.field(20, betterproto2.TYPE_INT32)

    nav_heading_state: "NavHeadingStateT | None" = betterproto2.field(21, betterproto2.TYPE_MESSAGE, optional=True)

    cutter_offset: "float" = betterproto2.field(22, betterproto2.TYPE_FLOAT)

    cutter_width: "float" = betterproto2.field(23, betterproto2.TYPE_FLOAT)


default_message_pool.register_message("", "rpt_work", RptWork)


@dataclass(eq=False, repr=False)
class RtkCfgReqAckT(betterproto2.Message):
    cmd_length: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    cmd_response: "str" = betterproto2.field(2, betterproto2.TYPE_STRING)


default_message_pool.register_message("", "rtk_cfg_req_ack_t", RtkCfgReqAckT)


@dataclass(eq=False, repr=False)
class RtkCfgReqT(betterproto2.Message):
    cmd_length: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    cmd_req: "str" = betterproto2.field(2, betterproto2.TYPE_STRING)


default_message_pool.register_message("", "rtk_cfg_req_t", RtkCfgReqT)


@dataclass(eq=False, repr=False)
class RtkSysMaskQueryAckT(betterproto2.Message):
    sat_system: "int" = betterproto2.field(1, betterproto2.TYPE_UINT32)

    system_mask_bits: "list[int]" = betterproto2.field(2, betterproto2.TYPE_UINT32, repeated=True)


default_message_pool.register_message("", "rtk_sys_mask_query_ack_t", RtkSysMaskQueryAckT)


@dataclass(eq=False, repr=False)
class RtkSysMaskQueryT(betterproto2.Message):
    sat_system: "int" = betterproto2.field(1, betterproto2.TYPE_UINT32)


default_message_pool.register_message("", "rtk_sys_mask_query_t", RtkSysMaskQueryT)


@dataclass(eq=False, repr=False)
class SetPeripheralsT(betterproto2.Message):
    buzz_enable: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "set_peripherals_t", SetPeripheralsT)


@dataclass(eq=False, repr=False)
class SetDrvBleMtu(betterproto2.Message):
    mtu_count: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "SetDrvBleMTU", SetDrvBleMtu)


@dataclass(eq=False, repr=False)
class SetHeadlamp(betterproto2.Message):
    set_ids: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    lamp_power_ctrl: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    lamp_ctrl: "LampCtrlSta" = betterproto2.field(3, betterproto2.TYPE_ENUM, default_factory=lambda: LampCtrlSta(0))

    ctrl_lamp_bright: "bool" = betterproto2.field(4, betterproto2.TYPE_BOOL)

    lamp_bright: "int" = betterproto2.field(5, betterproto2.TYPE_INT32)

    lamp_manual_ctrl: "LampManualCtrlSta" = betterproto2.field(
        6, betterproto2.TYPE_ENUM, default_factory=lambda: LampManualCtrlSta(0)
    )


default_message_pool.register_message("", "SetHeadlamp", SetHeadlamp)


@dataclass(eq=False, repr=False)
class Setlamprsp(betterproto2.Message):
    set_ids: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    result: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "Setlamprsp", Setlamprsp)


@dataclass(eq=False, repr=False)
class SetMnetCfgReq(betterproto2.Message):
    req_ids: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    cfg: "MnetCfg | None" = betterproto2.field(2, betterproto2.TYPE_MESSAGE, optional=True)


default_message_pool.register_message("", "SetMnetCfgReq", SetMnetCfgReq)


@dataclass(eq=False, repr=False)
class SetMnetCfgRsp(betterproto2.Message):
    req_ids: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    result: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "SetMnetCfgRsp", SetMnetCfgRsp)


@dataclass(eq=False, repr=False)
class SimulationCmdData(betterproto2.Message):
    sub_cmd: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    param_id: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    param_value: "list[int]" = betterproto2.field(3, betterproto2.TYPE_INT32, repeated=True)


default_message_pool.register_message("", "SimulationCmdData", SimulationCmdData)


@dataclass(eq=False, repr=False)
class SocMul(betterproto2.Message):
    """


    Oneofs:
        - SubMul:
    """

    set_audio: "MulSetAudio | None" = betterproto2.field(1, betterproto2.TYPE_MESSAGE, optional=True, group="SubMul")

    audio_cfg: "MulAudioCfg | None" = betterproto2.field(2, betterproto2.TYPE_MESSAGE, optional=True, group="SubMul")

    set_video: "MulSetVideo | None" = betterproto2.field(3, betterproto2.TYPE_MESSAGE, optional=True, group="SubMul")

    set_video_ack: "MulSetVideoAck | None" = betterproto2.field(
        4, betterproto2.TYPE_MESSAGE, optional=True, group="SubMul"
    )

    set_wiper: "MulSetWiper | None" = betterproto2.field(5, betterproto2.TYPE_MESSAGE, optional=True, group="SubMul")

    set_wiper_ack: "MulSetWiperAck | None" = betterproto2.field(
        6, betterproto2.TYPE_MESSAGE, optional=True, group="SubMul"
    )

    get_lamp: "GetHeadlamp | None" = betterproto2.field(7, betterproto2.TYPE_MESSAGE, optional=True, group="SubMul")

    set_lamp: "SetHeadlamp | None" = betterproto2.field(8, betterproto2.TYPE_MESSAGE, optional=True, group="SubMul")

    set_lamp_rsp: "Setlamprsp | None" = betterproto2.field(9, betterproto2.TYPE_MESSAGE, optional=True, group="SubMul")

    get_lamp_rsp: "Getlamprsp | None" = betterproto2.field(10, betterproto2.TYPE_MESSAGE, optional=True, group="SubMul")

    req_encode: "MulSetEncode | None" = betterproto2.field(11, betterproto2.TYPE_MESSAGE, optional=True, group="SubMul")


default_message_pool.register_message("", "SocMul", SocMul)


@dataclass(eq=False, repr=False)
class SpecialModeT(betterproto2.Message):
    stair_mode: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    violent_mode: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    berthing_mode: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "special_mode_t", SpecialModeT)


@dataclass(eq=False, repr=False)
class SvgMessageAckT(betterproto2.Message):
    pver: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    sub_cmd: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    total_frame: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    current_frame: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    data_hash: "int" = betterproto2.field(5, betterproto2.TYPE_FIXED64)

    paternal_hash_a: "int" = betterproto2.field(6, betterproto2.TYPE_FIXED64)

    type: "int" = betterproto2.field(7, betterproto2.TYPE_INT32)

    result: "int" = betterproto2.field(8, betterproto2.TYPE_INT32)

    svg_message: "SvgMessageT | None" = betterproto2.field(9, betterproto2.TYPE_MESSAGE, optional=True)


default_message_pool.register_message("", "svg_message_ack_t", SvgMessageAckT)


@dataclass(eq=False, repr=False)
class SvgMessageT(betterproto2.Message):
    x_move: "float" = betterproto2.field(1, betterproto2.TYPE_DOUBLE)

    y_move: "float" = betterproto2.field(2, betterproto2.TYPE_DOUBLE)

    scale: "float" = betterproto2.field(3, betterproto2.TYPE_DOUBLE)

    rotate: "float" = betterproto2.field(4, betterproto2.TYPE_DOUBLE)

    base_width_m: "float" = betterproto2.field(5, betterproto2.TYPE_DOUBLE)

    base_height_m: "float" = betterproto2.field(6, betterproto2.TYPE_DOUBLE)

    base_width_pix: "int" = betterproto2.field(7, betterproto2.TYPE_INT32)

    base_height_pix: "int" = betterproto2.field(8, betterproto2.TYPE_INT32)

    svg_file_name: "str" = betterproto2.field(9, betterproto2.TYPE_STRING)

    svg_file_data: "str" = betterproto2.field(10, betterproto2.TYPE_STRING)

    name_count: "int" = betterproto2.field(11, betterproto2.TYPE_INT32)

    data_count: "int" = betterproto2.field(12, betterproto2.TYPE_INT32)

    hide_svg: "bool" = betterproto2.field(13, betterproto2.TYPE_BOOL)


default_message_pool.register_message("", "svg_message_t", SvgMessageT)


@dataclass(eq=False, repr=False)
class SysBatUp(betterproto2.Message):
    bat_val: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "SysBatUp", SysBatUp)


@dataclass(eq=False, repr=False)
class SysBoardType(betterproto2.Message):
    board_type: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "SysBoardType", SysBoardType)


@dataclass(eq=False, repr=False)
class SysBorder(betterproto2.Message):
    borderval: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "SysBorder", SysBorder)


@dataclass(eq=False, repr=False)
class SysCommCmd(betterproto2.Message):
    rw: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    id: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    context: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "SysCommCmd", SysCommCmd)


@dataclass(eq=False, repr=False)
class SysDelJobPlan(betterproto2.Message):
    device_id: "str" = betterproto2.field(1, betterproto2.TYPE_STRING)

    plan_id: "str" = betterproto2.field(2, betterproto2.TYPE_STRING)


default_message_pool.register_message("", "SysDelJobPlan", SysDelJobPlan)


@dataclass(eq=False, repr=False)
class SysDevErrCode(betterproto2.Message):
    error_code: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "SysDevErrCode", SysDevErrCode)


@dataclass(eq=False, repr=False)
class SysErrorCode(betterproto2.Message):
    code_no: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "SysErrorCode", SysErrorCode)


@dataclass(eq=False, repr=False)
class SysJobPlan(betterproto2.Message):
    job_id: "int" = betterproto2.field(1, betterproto2.TYPE_INT64)

    job_mode: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    rain_tactics: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    knife_height: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "SysJobPlan", SysJobPlan)


@dataclass(eq=False, repr=False)
class SysJobPlanTime(betterproto2.Message):
    plan_id: "int" = betterproto2.field(1, betterproto2.TYPE_INT64)

    start_job_time: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    end_job_time: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    time_in_day: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    job_plan_mode: "int" = betterproto2.field(5, betterproto2.TYPE_INT32)

    job_plan_enable: "int" = betterproto2.field(6, betterproto2.TYPE_INT32)

    week_day: "list[int]" = betterproto2.field(7, betterproto2.TYPE_INT32, repeated=True)

    time_in_week_day: "list[int]" = betterproto2.field(8, betterproto2.TYPE_INT32, repeated=True)

    every_day: "int" = betterproto2.field(9, betterproto2.TYPE_INT32)

    job_plan: "SysJobPlan | None" = betterproto2.field(10, betterproto2.TYPE_MESSAGE, optional=True)


default_message_pool.register_message("", "SysJobPlanTime", SysJobPlanTime)


@dataclass(eq=False, repr=False)
class SysKnifeControl(betterproto2.Message):
    knife_status: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    knife_height: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "SysKnifeControl", SysKnifeControl)


@dataclass(eq=False, repr=False)
class SysMowInfo(betterproto2.Message):
    device_state: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    bat_val: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    knife_height: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    rt_kstatus: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    rt_kstars: "int" = betterproto2.field(5, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "SysMowInfo", SysMowInfo)


@dataclass(eq=False, repr=False)
class SysOffChipFlash(betterproto2.Message):
    op: "Operation" = betterproto2.field(1, betterproto2.TYPE_ENUM, default_factory=lambda: Operation(0))

    id: "OffPartId" = betterproto2.field(2, betterproto2.TYPE_ENUM, default_factory=lambda: OffPartId(0))

    start_addr: "int" = betterproto2.field(3, betterproto2.TYPE_UINT32)

    offset: "int" = betterproto2.field(4, betterproto2.TYPE_UINT32)

    length: "int" = betterproto2.field(5, betterproto2.TYPE_INT32)

    data: "bytes" = betterproto2.field(6, betterproto2.TYPE_BYTES)

    code: "int" = betterproto2.field(7, betterproto2.TYPE_INT32)

    msg: "str" = betterproto2.field(8, betterproto2.TYPE_STRING)


default_message_pool.register_message("", "SysOffChipFlash", SysOffChipFlash)


@dataclass(eq=False, repr=False)
class SysOptiLineAck(betterproto2.Message):
    respones_cmd: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    current_frame: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "SysOptiLineAck", SysOptiLineAck)


@dataclass(eq=False, repr=False)
class SysPlanJobStatus(betterproto2.Message):
    planjob_status: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "SysPlanJobStatus", SysPlanJobStatus)


@dataclass(eq=False, repr=False)
class SysResetBladeUsedTimeStatus(betterproto2.Message):
    reset_blade_used_time_status: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "SysResetBladeUsedTimeStatus", SysResetBladeUsedTimeStatus)


@dataclass(eq=False, repr=False)
class SysResetSystemStatus(betterproto2.Message):
    reset_staus: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "SysResetSystemStatus", SysResetSystemStatus)


@dataclass(eq=False, repr=False)
class SysSetDateTime(betterproto2.Message):
    year: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    month: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    date: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    week: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    hours: "int" = betterproto2.field(5, betterproto2.TYPE_INT32)

    minutes: "int" = betterproto2.field(6, betterproto2.TYPE_INT32)

    seconds: "int" = betterproto2.field(7, betterproto2.TYPE_INT32)

    time_zone: "int" = betterproto2.field(8, betterproto2.TYPE_INT32)

    daylight: "int" = betterproto2.field(9, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "SysSetDateTime", SysSetDateTime)


@dataclass(eq=False, repr=False)
class SysSetTimeZone(betterproto2.Message):
    time_stamp: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    time_area: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "SysSetTimeZone", SysSetTimeZone)


@dataclass(eq=False, repr=False)
class SysSwVersion(betterproto2.Message):
    board_type: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    version_len: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "SysSwVersion", SysSwVersion)


@dataclass(eq=False, repr=False)
class SystemRapidStateTunnelMsg(betterproto2.Message):
    rapid_state_data: "list[int]" = betterproto2.field(1, betterproto2.TYPE_INT64, repeated=True)

    vision_point_info: "list[VisionPointInfoMsg]" = betterproto2.field(2, betterproto2.TYPE_MESSAGE, repeated=True)

    vio_to_app_info: "VioToAppInfoMsg | None" = betterproto2.field(3, betterproto2.TYPE_MESSAGE, optional=True)

    vision_statistic_info: "VisionStatisticInfoMsg | None" = betterproto2.field(
        4, betterproto2.TYPE_MESSAGE, optional=True
    )


default_message_pool.register_message("", "systemRapidStateTunnel_msg", SystemRapidStateTunnelMsg)


@dataclass(eq=False, repr=False)
class SystemTardStateTunnelMsg(betterproto2.Message):
    tard_state_data: "list[int]" = betterproto2.field(1, betterproto2.TYPE_INT64, repeated=True)


default_message_pool.register_message("", "systemTardStateTunnel_msg", SystemTardStateTunnelMsg)


@dataclass(eq=False, repr=False)
class SystemTmpCycleTxMsg(betterproto2.Message):
    cycle_tx_data: "list[int]" = betterproto2.field(1, betterproto2.TYPE_INT64, repeated=True)


default_message_pool.register_message("", "systemTmpCycleTx_msg", SystemTmpCycleTxMsg)


@dataclass(eq=False, repr=False)
class SystemUpdateBufMsg(betterproto2.Message):
    update_buf_data: "list[int]" = betterproto2.field(1, betterproto2.TYPE_INT64, repeated=True)


default_message_pool.register_message("", "systemUpdateBuf_msg", SystemUpdateBufMsg)


@dataclass(eq=False, repr=False)
class SysUploadFileProgress(betterproto2.Message):
    biz_id: "str" = betterproto2.field(1, betterproto2.TYPE_STRING)

    result: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    progress: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "SysUploadFileProgress", SysUploadFileProgress)


@dataclass(eq=False, repr=False)
class SysWorkState(betterproto2.Message):
    device_state: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    charge_state: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    cm_hash: "int" = betterproto2.field(3, betterproto2.TYPE_INT64)

    path_hash: "int" = betterproto2.field(4, betterproto2.TYPE_INT64)


default_message_pool.register_message("", "SysWorkState", SysWorkState)


@dataclass(eq=False, repr=False)
class TimeCtrlLight(betterproto2.Message):
    operate: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    enable: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    start_hour: "int" = betterproto2.field(3, betterproto2.TYPE_INT32)

    start_min: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    end_hour: "int" = betterproto2.field(5, betterproto2.TYPE_INT32)

    end_min: "int" = betterproto2.field(6, betterproto2.TYPE_INT32)

    action: "int" = betterproto2.field(7, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "TimeCtrlLight", TimeCtrlLight)


@dataclass(eq=False, repr=False)
class UplinkT(betterproto2.Message):
    pkg_seq: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    status: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "uplink_t", UplinkT)


@dataclass(eq=False, repr=False)
class UserSetBladeUsedWarnTime(betterproto2.Message):
    blade_used_warn_time: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "user_set_blade_used_warn_time", UserSetBladeUsedWarnTime)


@dataclass(eq=False, repr=False)
class VioSurvivalInfoT(betterproto2.Message):
    vio_survival_distance: "float" = betterproto2.field(1, betterproto2.TYPE_FLOAT)


default_message_pool.register_message("", "vio_survival_info_t", VioSurvivalInfoT)


@dataclass(eq=False, repr=False)
class VioToAppInfoMsg(betterproto2.Message):
    x: "float" = betterproto2.field(1, betterproto2.TYPE_DOUBLE)

    y: "float" = betterproto2.field(2, betterproto2.TYPE_DOUBLE)

    heading: "float" = betterproto2.field(3, betterproto2.TYPE_DOUBLE)

    vio_state: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    brightness: "int" = betterproto2.field(5, betterproto2.TYPE_INT32)

    detect_feature_num: "int" = betterproto2.field(6, betterproto2.TYPE_INT32)

    track_feature_num: "int" = betterproto2.field(7, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "vio_to_app_info_msg", VioToAppInfoMsg)


@dataclass(eq=False, repr=False)
class VisionCtrlMsg(betterproto2.Message):
    type: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    cmd: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "vision_ctrl_msg", VisionCtrlMsg)


@dataclass(eq=False, repr=False)
class VisionPointInfoMsg(betterproto2.Message):
    label: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    num: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    vision_point: "list[VisionPointMsg]" = betterproto2.field(3, betterproto2.TYPE_MESSAGE, repeated=True)


default_message_pool.register_message("", "vision_point_info_msg", VisionPointInfoMsg)


@dataclass(eq=False, repr=False)
class VisionPointMsg(betterproto2.Message):
    x: "float" = betterproto2.field(1, betterproto2.TYPE_FLOAT)

    y: "float" = betterproto2.field(2, betterproto2.TYPE_FLOAT)

    z: "float" = betterproto2.field(3, betterproto2.TYPE_FLOAT)


default_message_pool.register_message("", "vision_point_msg", VisionPointMsg)


@dataclass(eq=False, repr=False)
class VisionStatisticInfoMsg(betterproto2.Message):
    timestamp: "float" = betterproto2.field(1, betterproto2.TYPE_DOUBLE)

    num: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)

    vision_statistics: "list[VisionStatisticMsg]" = betterproto2.field(3, betterproto2.TYPE_MESSAGE, repeated=True)


default_message_pool.register_message("", "vision_statistic_info_msg", VisionStatisticInfoMsg)


@dataclass(eq=False, repr=False)
class VisionStatisticMsg(betterproto2.Message):
    mean: "float" = betterproto2.field(1, betterproto2.TYPE_FLOAT)

    var: "float" = betterproto2.field(2, betterproto2.TYPE_FLOAT)


default_message_pool.register_message("", "vision_statistic_msg", VisionStatisticMsg)


@dataclass(eq=False, repr=False)
class WifiIotStatusReport(betterproto2.Message):
    wifi_connected: "bool" = betterproto2.field(1, betterproto2.TYPE_BOOL)

    iot_connected: "bool" = betterproto2.field(2, betterproto2.TYPE_BOOL)

    productkey: "str" = betterproto2.field(3, betterproto2.TYPE_STRING)

    devicename: "str" = betterproto2.field(4, betterproto2.TYPE_STRING)


default_message_pool.register_message("", "WifiIotStatusReport", WifiIotStatusReport)


@dataclass(eq=False, repr=False)
class WorkModeT(betterproto2.Message):
    work_mode: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "work_mode_t", WorkModeT)


@dataclass(eq=False, repr=False)
class WorkReportCmdData(betterproto2.Message):
    sub_cmd: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)

    get_info_num: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "WorkReportCmdData", WorkReportCmdData)


@dataclass(eq=False, repr=False)
class WorkReportInfoAck(betterproto2.Message):
    interrupt_flag: "bool" = betterproto2.field(1, betterproto2.TYPE_BOOL)

    start_work_time: "int" = betterproto2.field(2, betterproto2.TYPE_INT64)

    end_work_time: "int" = betterproto2.field(3, betterproto2.TYPE_INT64)

    work_time_used: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)

    work_ares: "float" = betterproto2.field(5, betterproto2.TYPE_DOUBLE)

    work_progress: "int" = betterproto2.field(6, betterproto2.TYPE_INT32)

    height_of_knife: "int" = betterproto2.field(7, betterproto2.TYPE_INT32)

    work_type: "int" = betterproto2.field(8, betterproto2.TYPE_INT32)

    work_result: "int" = betterproto2.field(9, betterproto2.TYPE_INT32)

    total_ack_num: "int" = betterproto2.field(10, betterproto2.TYPE_INT32)

    current_ack_num: "int" = betterproto2.field(11, betterproto2.TYPE_INT32)

    job_content: "int" = betterproto2.field(12, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "WorkReportInfoAck", WorkReportInfoAck)


@dataclass(eq=False, repr=False)
class WorkReportUpdateAck(betterproto2.Message):
    update_flag: "bool" = betterproto2.field(1, betterproto2.TYPE_BOOL)

    info_num: "int" = betterproto2.field(2, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "WorkReportUpdateAck", WorkReportUpdateAck)


@dataclass(eq=False, repr=False)
class WorkReportUpdateCmd(betterproto2.Message):
    sub_cmd: "int" = betterproto2.field(1, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "WorkReportUpdateCmd", WorkReportUpdateCmd)


@dataclass(eq=False, repr=False)
class ZoneStartPrecentT(betterproto2.Message):
    data_hash: "int" = betterproto2.field(1, betterproto2.TYPE_FIXED64)

    x: "float" = betterproto2.field(2, betterproto2.TYPE_FLOAT)

    y: "float" = betterproto2.field(3, betterproto2.TYPE_FLOAT)

    index: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)


default_message_pool.register_message("", "zone_start_precent_t", ZoneStartPrecentT)
