pymammotion 0.5.69__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pymammotion/__init__.py +53 -0
- pymammotion/agora/__init__.py +0 -0
- pymammotion/agora/agora_api.py +755 -0
- pymammotion/agora/agora_rtc_capabilities.py +748 -0
- pymammotion/agora/agora_websockets.py +1175 -0
- pymammotion/aliyun/__init__.py +1 -0
- pymammotion/aliyun/client.py +235 -0
- pymammotion/aliyun/cloud_gateway.py +982 -0
- pymammotion/aliyun/model/aep_response.py +21 -0
- pymammotion/aliyun/model/connect_response.py +51 -0
- pymammotion/aliyun/model/dev_by_account_response.py +195 -0
- pymammotion/aliyun/model/login_by_oauth_response.py +64 -0
- pymammotion/aliyun/model/regions_response.py +29 -0
- pymammotion/aliyun/model/session_by_authcode_response.py +19 -0
- pymammotion/aliyun/model/thing_response.py +12 -0
- pymammotion/aliyun/regions.py +62 -0
- pymammotion/aliyun/tea/core.py +297 -0
- pymammotion/aliyun/tmp_constant.py +171 -0
- pymammotion/bluetooth/__init__.py +1 -0
- pymammotion/bluetooth/ble.py +62 -0
- pymammotion/bluetooth/ble_message.py +676 -0
- pymammotion/bluetooth/const.py +27 -0
- pymammotion/bluetooth/data/__init__.py +0 -0
- pymammotion/bluetooth/data/convert.py +25 -0
- pymammotion/bluetooth/data/framectrldata.py +40 -0
- pymammotion/bluetooth/data/notifydata.py +62 -0
- pymammotion/bluetooth/model/__init__.py +0 -0
- pymammotion/bluetooth/model/atomic_integer.py +54 -0
- pymammotion/const.py +13 -0
- pymammotion/data/__init__.py +0 -0
- pymammotion/data/model/__init__.py +8 -0
- pymammotion/data/model/account.py +8 -0
- pymammotion/data/model/device.py +192 -0
- pymammotion/data/model/device_config.py +72 -0
- pymammotion/data/model/device_info.py +60 -0
- pymammotion/data/model/device_limits.py +49 -0
- pymammotion/data/model/enums.py +77 -0
- pymammotion/data/model/errors.py +12 -0
- pymammotion/data/model/events.py +14 -0
- pymammotion/data/model/generate_geojson.py +565 -0
- pymammotion/data/model/generate_route_information.py +26 -0
- pymammotion/data/model/hash_list.py +475 -0
- pymammotion/data/model/location.py +36 -0
- pymammotion/data/model/mowing_modes.py +77 -0
- pymammotion/data/model/rapid_state.py +45 -0
- pymammotion/data/model/raw_data.py +215 -0
- pymammotion/data/model/region_data.py +102 -0
- pymammotion/data/model/report_info.py +182 -0
- pymammotion/data/model/work.py +27 -0
- pymammotion/data/mower_state_manager.py +369 -0
- pymammotion/data/mqtt/__init__.py +1 -0
- pymammotion/data/mqtt/event.py +227 -0
- pymammotion/data/mqtt/mammotion_properties.py +276 -0
- pymammotion/data/mqtt/properties.py +203 -0
- pymammotion/data/mqtt/status.py +57 -0
- pymammotion/event/__init__.py +6 -0
- pymammotion/event/event.py +96 -0
- pymammotion/homeassistant/__init__.py +3 -0
- pymammotion/homeassistant/mower_api.py +514 -0
- pymammotion/homeassistant/rtk_api.py +54 -0
- pymammotion/http/__init__.py +0 -0
- pymammotion/http/encryption.py +220 -0
- pymammotion/http/http.py +673 -0
- pymammotion/http/model/__init__.py +0 -0
- pymammotion/http/model/camera_stream.py +31 -0
- pymammotion/http/model/http.py +249 -0
- pymammotion/http/model/response_factory.py +61 -0
- pymammotion/http/model/rtk.py +16 -0
- pymammotion/mammotion/__init__.py +0 -0
- pymammotion/mammotion/commands/__init__.py +0 -0
- pymammotion/mammotion/commands/abstract_message.py +24 -0
- pymammotion/mammotion/commands/mammotion_command.py +81 -0
- pymammotion/mammotion/commands/messages/__init__.py +0 -0
- pymammotion/mammotion/commands/messages/basestation.py +43 -0
- pymammotion/mammotion/commands/messages/driver.py +122 -0
- pymammotion/mammotion/commands/messages/media.py +87 -0
- pymammotion/mammotion/commands/messages/navigation.py +564 -0
- pymammotion/mammotion/commands/messages/network.py +205 -0
- pymammotion/mammotion/commands/messages/ota.py +38 -0
- pymammotion/mammotion/commands/messages/system.py +330 -0
- pymammotion/mammotion/commands/messages/video.py +33 -0
- pymammotion/mammotion/control/__init__.py +0 -0
- pymammotion/mammotion/control/joystick.py +145 -0
- pymammotion/mammotion/devices/__init__.py +29 -0
- pymammotion/mammotion/devices/base.py +163 -0
- pymammotion/mammotion/devices/mammotion.py +571 -0
- pymammotion/mammotion/devices/mammotion_bluetooth.py +496 -0
- pymammotion/mammotion/devices/mammotion_cloud.py +355 -0
- pymammotion/mammotion/devices/mammotion_mower_ble.py +48 -0
- pymammotion/mammotion/devices/mammotion_mower_cloud.py +39 -0
- pymammotion/mammotion/devices/managers/managers.py +81 -0
- pymammotion/mammotion/devices/mower_device.py +120 -0
- pymammotion/mammotion/devices/mower_manager.py +107 -0
- pymammotion/mammotion/devices/rtk_ble.py +89 -0
- pymammotion/mammotion/devices/rtk_cloud.py +115 -0
- pymammotion/mammotion/devices/rtk_device.py +50 -0
- pymammotion/mammotion/devices/rtk_manager.py +125 -0
- pymammotion/mqtt/__init__.py +6 -0
- pymammotion/mqtt/aliyun_mqtt.py +237 -0
- pymammotion/mqtt/linkkit/__init__.py +5 -0
- pymammotion/mqtt/linkkit/h2client.py +585 -0
- pymammotion/mqtt/linkkit/linkkit.py +3025 -0
- pymammotion/mqtt/mammotion_future.py +26 -0
- pymammotion/mqtt/mammotion_mqtt.py +214 -0
- pymammotion/mqtt/mqtt_models.py +66 -0
- pymammotion/proto/__init__.py +4841 -0
- pymammotion/proto/basestation.proto +51 -0
- pymammotion/proto/basestation_pb2.py +35 -0
- pymammotion/proto/basestation_pb2.pyi +89 -0
- pymammotion/proto/common.proto +7 -0
- pymammotion/proto/common_pb2.py +25 -0
- pymammotion/proto/common_pb2.pyi +13 -0
- pymammotion/proto/dev_net.proto +321 -0
- pymammotion/proto/dev_net_pb2.py +111 -0
- pymammotion/proto/dev_net_pb2.pyi +515 -0
- pymammotion/proto/luba_msg.proto +76 -0
- pymammotion/proto/luba_msg_pb2.py +41 -0
- pymammotion/proto/luba_msg_pb2.pyi +97 -0
- pymammotion/proto/luba_mul.proto +129 -0
- pymammotion/proto/luba_mul_pb2.py +61 -0
- pymammotion/proto/luba_mul_pb2.pyi +178 -0
- pymammotion/proto/mctrl_driver.proto +107 -0
- pymammotion/proto/mctrl_driver_pb2.py +57 -0
- pymammotion/proto/mctrl_driver_pb2.pyi +167 -0
- pymammotion/proto/mctrl_nav.proto +591 -0
- pymammotion/proto/mctrl_nav_pb2.py +136 -0
- pymammotion/proto/mctrl_nav_pb2.pyi +1067 -0
- pymammotion/proto/mctrl_ota.proto +80 -0
- pymammotion/proto/mctrl_ota_pb2.py +45 -0
- pymammotion/proto/mctrl_ota_pb2.pyi +128 -0
- pymammotion/proto/mctrl_pept.proto +34 -0
- pymammotion/proto/mctrl_pept_pb2.py +33 -0
- pymammotion/proto/mctrl_pept_pb2.pyi +58 -0
- pymammotion/proto/mctrl_sys.proto +741 -0
- pymammotion/proto/mctrl_sys_pb2.py +206 -0
- pymammotion/proto/mctrl_sys_pb2.pyi +1213 -0
- pymammotion/proto/message_pool.py +3 -0
- pymammotion/proto/py.typed +0 -0
- pymammotion/py.typed +0 -0
- pymammotion/utility/constant/__init__.py +3 -0
- pymammotion/utility/constant/device_constant.py +315 -0
- pymammotion/utility/conversions.py +5 -0
- pymammotion/utility/datatype_converter.py +124 -0
- pymammotion/utility/device_config.py +755 -0
- pymammotion/utility/device_type.py +489 -0
- pymammotion/utility/map.py +259 -0
- pymammotion/utility/movement.py +18 -0
- pymammotion/utility/mur_mur_hash.py +159 -0
- pymammotion/utility/periodic.py +106 -0
- pymammotion/utility/rocker_util.py +194 -0
- pymammotion-0.5.69.dist-info/METADATA +93 -0
- pymammotion-0.5.69.dist-info/RECORD +154 -0
- pymammotion-0.5.69.dist-info/WHEEL +4 -0
- pymammotion-0.5.69.dist-info/licenses/LICENSE +674 -0
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
from google.protobuf.internal import containers as _containers
|
|
2
|
+
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
|
|
3
|
+
from google.protobuf import descriptor as _descriptor
|
|
4
|
+
from google.protobuf import message as _message
|
|
5
|
+
from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
|
|
6
|
+
|
|
7
|
+
COLLECT_ABNORMAL: CollectMotorState
|
|
8
|
+
COLLECT_CLOSE: CollectMotorState
|
|
9
|
+
COLLECT_OPEN: CollectMotorState
|
|
10
|
+
COLLECT_STUCK: CollectMotorState
|
|
11
|
+
CUTTER_ECONOMIC: CutterWorkMode
|
|
12
|
+
CUTTER_PERFORMANCE: CutterWorkMode
|
|
13
|
+
CUTTER_STANDARD: CutterWorkMode
|
|
14
|
+
DESCRIPTOR: _descriptor.FileDescriptor
|
|
15
|
+
UNLOAD_CLOSE: UnloadMotorState
|
|
16
|
+
UNLOAD_OPEN: UnloadMotorState
|
|
17
|
+
UNLOAD_RUNNING: UnloadMotorState
|
|
18
|
+
UNLOAD_STOP: UnloadMotorState
|
|
19
|
+
|
|
20
|
+
class AppGetCutterWorkMode(_message.Message):
|
|
21
|
+
__slots__ = ["QueryResult", "current_cutter_mode", "current_cutter_rpm"]
|
|
22
|
+
CURRENT_CUTTER_MODE_FIELD_NUMBER: _ClassVar[int]
|
|
23
|
+
CURRENT_CUTTER_RPM_FIELD_NUMBER: _ClassVar[int]
|
|
24
|
+
QUERYRESULT_FIELD_NUMBER: _ClassVar[int]
|
|
25
|
+
QueryResult: int
|
|
26
|
+
current_cutter_mode: int
|
|
27
|
+
current_cutter_rpm: int
|
|
28
|
+
def __init__(self, current_cutter_mode: _Optional[int] = ..., current_cutter_rpm: _Optional[int] = ..., QueryResult: _Optional[int] = ...) -> None: ...
|
|
29
|
+
|
|
30
|
+
class AppSetCutterWorkMode(_message.Message):
|
|
31
|
+
__slots__ = ["CutterMode", "SetResult"]
|
|
32
|
+
CUTTERMODE_FIELD_NUMBER: _ClassVar[int]
|
|
33
|
+
CutterMode: int
|
|
34
|
+
SETRESULT_FIELD_NUMBER: _ClassVar[int]
|
|
35
|
+
SetResult: int
|
|
36
|
+
def __init__(self, CutterMode: _Optional[int] = ..., SetResult: _Optional[int] = ...) -> None: ...
|
|
37
|
+
|
|
38
|
+
class DrvCollectCtrlByHand(_message.Message):
|
|
39
|
+
__slots__ = ["collect_ctrl", "unload_ctrl"]
|
|
40
|
+
COLLECT_CTRL_FIELD_NUMBER: _ClassVar[int]
|
|
41
|
+
UNLOAD_CTRL_FIELD_NUMBER: _ClassVar[int]
|
|
42
|
+
collect_ctrl: int
|
|
43
|
+
unload_ctrl: int
|
|
44
|
+
def __init__(self, collect_ctrl: _Optional[int] = ..., unload_ctrl: _Optional[int] = ...) -> None: ...
|
|
45
|
+
|
|
46
|
+
class DrvKnifeChangeReport(_message.Message):
|
|
47
|
+
__slots__ = ["cur_height", "end_height", "is_start", "start_height"]
|
|
48
|
+
CUR_HEIGHT_FIELD_NUMBER: _ClassVar[int]
|
|
49
|
+
END_HEIGHT_FIELD_NUMBER: _ClassVar[int]
|
|
50
|
+
IS_START_FIELD_NUMBER: _ClassVar[int]
|
|
51
|
+
START_HEIGHT_FIELD_NUMBER: _ClassVar[int]
|
|
52
|
+
cur_height: int
|
|
53
|
+
end_height: int
|
|
54
|
+
is_start: int
|
|
55
|
+
start_height: int
|
|
56
|
+
def __init__(self, is_start: _Optional[int] = ..., start_height: _Optional[int] = ..., end_height: _Optional[int] = ..., cur_height: _Optional[int] = ...) -> None: ...
|
|
57
|
+
|
|
58
|
+
class DrvKnifeHeight(_message.Message):
|
|
59
|
+
__slots__ = ["knifeHeight"]
|
|
60
|
+
KNIFEHEIGHT_FIELD_NUMBER: _ClassVar[int]
|
|
61
|
+
knifeHeight: int
|
|
62
|
+
def __init__(self, knifeHeight: _Optional[int] = ...) -> None: ...
|
|
63
|
+
|
|
64
|
+
class DrvKnifeStatus(_message.Message):
|
|
65
|
+
__slots__ = ["knife_status"]
|
|
66
|
+
KNIFE_STATUS_FIELD_NUMBER: _ClassVar[int]
|
|
67
|
+
knife_status: int
|
|
68
|
+
def __init__(self, knife_status: _Optional[int] = ...) -> None: ...
|
|
69
|
+
|
|
70
|
+
class DrvMotionCtrl(_message.Message):
|
|
71
|
+
__slots__ = ["setAngularSpeed", "setLinearSpeed"]
|
|
72
|
+
SETANGULARSPEED_FIELD_NUMBER: _ClassVar[int]
|
|
73
|
+
SETLINEARSPEED_FIELD_NUMBER: _ClassVar[int]
|
|
74
|
+
setAngularSpeed: int
|
|
75
|
+
setLinearSpeed: int
|
|
76
|
+
def __init__(self, setLinearSpeed: _Optional[int] = ..., setAngularSpeed: _Optional[int] = ...) -> None: ...
|
|
77
|
+
|
|
78
|
+
class DrvMowCtrlByHand(_message.Message):
|
|
79
|
+
__slots__ = ["cut_knife_ctrl", "cut_knife_height", "main_ctrl", "max_run_speed"]
|
|
80
|
+
CUT_KNIFE_CTRL_FIELD_NUMBER: _ClassVar[int]
|
|
81
|
+
CUT_KNIFE_HEIGHT_FIELD_NUMBER: _ClassVar[int]
|
|
82
|
+
MAIN_CTRL_FIELD_NUMBER: _ClassVar[int]
|
|
83
|
+
MAX_RUN_SPEED_FIELD_NUMBER: _ClassVar[int]
|
|
84
|
+
cut_knife_ctrl: int
|
|
85
|
+
cut_knife_height: int
|
|
86
|
+
main_ctrl: int
|
|
87
|
+
max_run_speed: float
|
|
88
|
+
def __init__(self, main_ctrl: _Optional[int] = ..., cut_knife_ctrl: _Optional[int] = ..., cut_knife_height: _Optional[int] = ..., max_run_speed: _Optional[float] = ...) -> None: ...
|
|
89
|
+
|
|
90
|
+
class DrvSrSpeed(_message.Message):
|
|
91
|
+
__slots__ = ["rw", "speed"]
|
|
92
|
+
RW_FIELD_NUMBER: _ClassVar[int]
|
|
93
|
+
SPEED_FIELD_NUMBER: _ClassVar[int]
|
|
94
|
+
rw: int
|
|
95
|
+
speed: float
|
|
96
|
+
def __init__(self, rw: _Optional[int] = ..., speed: _Optional[float] = ...) -> None: ...
|
|
97
|
+
|
|
98
|
+
class MctlDriver(_message.Message):
|
|
99
|
+
__slots__ = ["bidire_knife_height_report", "bidire_speed_read_set", "collect_ctrl_by_hand", "current_cutter_mode", "cutter_mode_ctrl_by_hand", "mow_ctrl_by_hand", "rtk_cfg_req", "rtk_cfg_req_ack", "rtk_sys_mask_query", "rtk_sys_mask_query_ack", "toapp_knife_status", "toapp_knife_status_change", "todev_devmotion_ctrl", "todev_knife_height_set"]
|
|
100
|
+
BIDIRE_KNIFE_HEIGHT_REPORT_FIELD_NUMBER: _ClassVar[int]
|
|
101
|
+
BIDIRE_SPEED_READ_SET_FIELD_NUMBER: _ClassVar[int]
|
|
102
|
+
COLLECT_CTRL_BY_HAND_FIELD_NUMBER: _ClassVar[int]
|
|
103
|
+
CURRENT_CUTTER_MODE_FIELD_NUMBER: _ClassVar[int]
|
|
104
|
+
CUTTER_MODE_CTRL_BY_HAND_FIELD_NUMBER: _ClassVar[int]
|
|
105
|
+
MOW_CTRL_BY_HAND_FIELD_NUMBER: _ClassVar[int]
|
|
106
|
+
RTK_CFG_REQ_ACK_FIELD_NUMBER: _ClassVar[int]
|
|
107
|
+
RTK_CFG_REQ_FIELD_NUMBER: _ClassVar[int]
|
|
108
|
+
RTK_SYS_MASK_QUERY_ACK_FIELD_NUMBER: _ClassVar[int]
|
|
109
|
+
RTK_SYS_MASK_QUERY_FIELD_NUMBER: _ClassVar[int]
|
|
110
|
+
TOAPP_KNIFE_STATUS_CHANGE_FIELD_NUMBER: _ClassVar[int]
|
|
111
|
+
TOAPP_KNIFE_STATUS_FIELD_NUMBER: _ClassVar[int]
|
|
112
|
+
TODEV_DEVMOTION_CTRL_FIELD_NUMBER: _ClassVar[int]
|
|
113
|
+
TODEV_KNIFE_HEIGHT_SET_FIELD_NUMBER: _ClassVar[int]
|
|
114
|
+
bidire_knife_height_report: DrvKnifeHeight
|
|
115
|
+
bidire_speed_read_set: DrvSrSpeed
|
|
116
|
+
collect_ctrl_by_hand: DrvCollectCtrlByHand
|
|
117
|
+
current_cutter_mode: AppGetCutterWorkMode
|
|
118
|
+
cutter_mode_ctrl_by_hand: AppSetCutterWorkMode
|
|
119
|
+
mow_ctrl_by_hand: DrvMowCtrlByHand
|
|
120
|
+
rtk_cfg_req: rtk_cfg_req_t
|
|
121
|
+
rtk_cfg_req_ack: rtk_cfg_req_ack_t
|
|
122
|
+
rtk_sys_mask_query: rtk_sys_mask_query_t
|
|
123
|
+
rtk_sys_mask_query_ack: rtk_sys_mask_query_ack_t
|
|
124
|
+
toapp_knife_status: DrvKnifeStatus
|
|
125
|
+
toapp_knife_status_change: DrvKnifeChangeReport
|
|
126
|
+
todev_devmotion_ctrl: DrvMotionCtrl
|
|
127
|
+
todev_knife_height_set: DrvKnifeHeight
|
|
128
|
+
def __init__(self, todev_devmotion_ctrl: _Optional[_Union[DrvMotionCtrl, _Mapping]] = ..., todev_knife_height_set: _Optional[_Union[DrvKnifeHeight, _Mapping]] = ..., bidire_speed_read_set: _Optional[_Union[DrvSrSpeed, _Mapping]] = ..., bidire_knife_height_report: _Optional[_Union[DrvKnifeHeight, _Mapping]] = ..., toapp_knife_status: _Optional[_Union[DrvKnifeStatus, _Mapping]] = ..., mow_ctrl_by_hand: _Optional[_Union[DrvMowCtrlByHand, _Mapping]] = ..., rtk_cfg_req: _Optional[_Union[rtk_cfg_req_t, _Mapping]] = ..., rtk_cfg_req_ack: _Optional[_Union[rtk_cfg_req_ack_t, _Mapping]] = ..., rtk_sys_mask_query: _Optional[_Union[rtk_sys_mask_query_t, _Mapping]] = ..., rtk_sys_mask_query_ack: _Optional[_Union[rtk_sys_mask_query_ack_t, _Mapping]] = ..., toapp_knife_status_change: _Optional[_Union[DrvKnifeChangeReport, _Mapping]] = ..., collect_ctrl_by_hand: _Optional[_Union[DrvCollectCtrlByHand, _Mapping]] = ..., cutter_mode_ctrl_by_hand: _Optional[_Union[AppSetCutterWorkMode, _Mapping]] = ..., current_cutter_mode: _Optional[_Union[AppGetCutterWorkMode, _Mapping]] = ...) -> None: ...
|
|
129
|
+
|
|
130
|
+
class rtk_cfg_req_ack_t(_message.Message):
|
|
131
|
+
__slots__ = ["cmd_length", "cmd_response"]
|
|
132
|
+
CMD_LENGTH_FIELD_NUMBER: _ClassVar[int]
|
|
133
|
+
CMD_RESPONSE_FIELD_NUMBER: _ClassVar[int]
|
|
134
|
+
cmd_length: int
|
|
135
|
+
cmd_response: str
|
|
136
|
+
def __init__(self, cmd_length: _Optional[int] = ..., cmd_response: _Optional[str] = ...) -> None: ...
|
|
137
|
+
|
|
138
|
+
class rtk_cfg_req_t(_message.Message):
|
|
139
|
+
__slots__ = ["cmd_length", "cmd_req"]
|
|
140
|
+
CMD_LENGTH_FIELD_NUMBER: _ClassVar[int]
|
|
141
|
+
CMD_REQ_FIELD_NUMBER: _ClassVar[int]
|
|
142
|
+
cmd_length: int
|
|
143
|
+
cmd_req: str
|
|
144
|
+
def __init__(self, cmd_length: _Optional[int] = ..., cmd_req: _Optional[str] = ...) -> None: ...
|
|
145
|
+
|
|
146
|
+
class rtk_sys_mask_query_ack_t(_message.Message):
|
|
147
|
+
__slots__ = ["sat_system", "system_mask_bits"]
|
|
148
|
+
SAT_SYSTEM_FIELD_NUMBER: _ClassVar[int]
|
|
149
|
+
SYSTEM_MASK_BITS_FIELD_NUMBER: _ClassVar[int]
|
|
150
|
+
sat_system: int
|
|
151
|
+
system_mask_bits: _containers.RepeatedScalarFieldContainer[int]
|
|
152
|
+
def __init__(self, sat_system: _Optional[int] = ..., system_mask_bits: _Optional[_Iterable[int]] = ...) -> None: ...
|
|
153
|
+
|
|
154
|
+
class rtk_sys_mask_query_t(_message.Message):
|
|
155
|
+
__slots__ = ["sat_system"]
|
|
156
|
+
SAT_SYSTEM_FIELD_NUMBER: _ClassVar[int]
|
|
157
|
+
sat_system: int
|
|
158
|
+
def __init__(self, sat_system: _Optional[int] = ...) -> None: ...
|
|
159
|
+
|
|
160
|
+
class CutterWorkMode(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
|
161
|
+
__slots__ = []
|
|
162
|
+
|
|
163
|
+
class CollectMotorState(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
|
164
|
+
__slots__ = []
|
|
165
|
+
|
|
166
|
+
class UnloadMotorState(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
|
167
|
+
__slots__ = []
|