pymammotion 0.3.7__py3-none-any.whl → 0.4.0__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 +2 -2
- pymammotion/aliyun/cloud_gateway.py +12 -9
- pymammotion/aliyun/model/aep_response.py +1 -2
- pymammotion/aliyun/model/dev_by_account_response.py +7 -8
- pymammotion/aliyun/model/login_by_oauth_response.py +2 -3
- pymammotion/aliyun/model/regions_response.py +3 -3
- pymammotion/aliyun/model/session_by_authcode_response.py +1 -2
- pymammotion/aliyun/model/stream_subscription_response.py +1 -2
- pymammotion/bluetooth/ble.py +5 -5
- pymammotion/bluetooth/ble_message.py +9 -13
- pymammotion/data/model/device.py +31 -228
- pymammotion/data/model/device_config.py +0 -10
- pymammotion/data/model/device_info.py +13 -0
- pymammotion/data/model/device_limits.py +49 -0
- pymammotion/data/model/generate_route_information.py +1 -1
- pymammotion/data/model/hash_list.py +6 -2
- pymammotion/data/model/plan.py +0 -3
- pymammotion/data/model/raw_data.py +215 -0
- pymammotion/data/model/region_data.py +10 -11
- pymammotion/data/model/report_info.py +1 -1
- pymammotion/data/mqtt/event.py +18 -14
- pymammotion/data/mqtt/properties.py +1 -1
- pymammotion/data/mqtt/status.py +1 -1
- pymammotion/data/state_manager.py +83 -23
- pymammotion/http/encryption.py +220 -0
- pymammotion/http/http.py +92 -39
- pymammotion/http/model/http.py +4 -2
- pymammotion/mammotion/commands/abstract_message.py +2 -2
- pymammotion/mammotion/commands/messages/driver.py +28 -21
- pymammotion/mammotion/commands/messages/media.py +10 -14
- pymammotion/mammotion/commands/messages/navigation.py +14 -11
- pymammotion/mammotion/commands/messages/network.py +17 -14
- pymammotion/mammotion/commands/messages/ota.py +9 -14
- pymammotion/mammotion/commands/messages/system.py +32 -29
- pymammotion/mammotion/commands/messages/video.py +9 -14
- pymammotion/mammotion/devices/base.py +7 -14
- pymammotion/mammotion/devices/mammotion.py +22 -13
- pymammotion/mammotion/devices/mammotion_bluetooth.py +15 -4
- pymammotion/mammotion/devices/mammotion_cloud.py +30 -12
- pymammotion/mqtt/linkkit/__init__.py +5 -0
- pymammotion/mqtt/linkkit/h2client.py +585 -0
- pymammotion/mqtt/linkkit/linkkit.py +3020 -0
- pymammotion/mqtt/mammotion_mqtt.py +13 -9
- pymammotion/proto/__init__.py +2176 -1
- pymammotion/proto/luba_mul.proto +1 -0
- pymammotion/proto/luba_mul_pb2.py +8 -8
- pymammotion/proto/luba_mul_pb2.pyi +1 -0
- pymammotion/proto/mctrl_nav_pb2.py +69 -67
- pymammotion/proto/mctrl_nav_pb2.pyi +13 -5
- pymammotion/proto/mctrl_sys_pb2.py +41 -37
- pymammotion/proto/mctrl_sys_pb2.pyi +34 -11
- pymammotion/utility/constant/device_constant.py +14 -5
- pymammotion/utility/device_config.py +754 -0
- pymammotion/utility/device_type.py +64 -16
- {pymammotion-0.3.7.dist-info → pymammotion-0.4.0.dist-info}/METADATA +9 -9
- {pymammotion-0.3.7.dist-info → pymammotion-0.4.0.dist-info}/RECORD +58 -62
- {pymammotion-0.3.7.dist-info → pymammotion-0.4.0.dist-info}/WHEEL +1 -1
- pymammotion/aliyun/cloud_service.py +0 -65
- pymammotion/proto/basestation.py +0 -59
- pymammotion/proto/common.py +0 -12
- pymammotion/proto/dev_net.py +0 -381
- pymammotion/proto/luba_msg.py +0 -81
- pymammotion/proto/luba_mul.py +0 -76
- pymammotion/proto/mctrl_driver.py +0 -100
- pymammotion/proto/mctrl_nav.py +0 -664
- pymammotion/proto/mctrl_ota.py +0 -48
- pymammotion/proto/mctrl_pept.py +0 -41
- pymammotion/proto/mctrl_sys.py +0 -574
- {pymammotion-0.3.7.dist-info → pymammotion-0.4.0.dist-info}/LICENSE +0 -0
@@ -52,6 +52,7 @@ QC_APP_TEST_ULTRA_UNCOVER: QCAppTestId
|
|
52
52
|
QC_APP_TEST_UNLOCK: QCAppTestId
|
53
53
|
QC_APP_TEST_X3_SPEAKER: QCAppTestId
|
54
54
|
READ: Operation
|
55
|
+
RIT_BASESTATION_INFO: rpt_info_type
|
55
56
|
RIT_CONNECT: rpt_info_type
|
56
57
|
RIT_DEV_LOCAL: rpt_info_type
|
57
58
|
RIT_DEV_STA: rpt_info_type
|
@@ -85,7 +86,7 @@ class LoraCfgRsp(_message.Message):
|
|
85
86
|
fac_cfg: bytes
|
86
87
|
op: int
|
87
88
|
result: int
|
88
|
-
def __init__(self, result: _Optional[int] = ..., op: _Optional[int] = ..., cfg: _Optional[str] = ..., fac_cfg: _Optional[
|
89
|
+
def __init__(self, result: _Optional[int] = ..., op: _Optional[int] = ..., cfg: _Optional[str] = ..., fac_cfg: _Optional[bytes] = ...) -> None: ...
|
89
90
|
|
90
91
|
class MctlSys(_message.Message):
|
91
92
|
__slots__ = ["bidire_comm_cmd", "border", "device_product_type_info", "job_plan", "mow_to_app_info", "mow_to_app_qctools_info", "plan_job_del", "simulation_cmd", "systemRapidStateTunnel", "systemTardStateTunnel", "systemTmpCycleTx", "systemUpdateBuf", "toapp_batinfo", "toapp_dev_fw_info", "toapp_err_code", "toapp_lora_cfg_rsp", "toapp_mow_info", "toapp_plan_status", "toapp_report_data", "toapp_ul_fprogress", "toapp_work_state", "todev_data_time", "todev_deljobplan", "todev_get_dev_fw_info", "todev_job_plan_time", "todev_knife_ctrl", "todev_lora_cfg_req", "todev_mow_info_up", "todev_off_chip_flash", "todev_report_cfg", "todev_reset_system", "todev_reset_system_status", "todev_time_ctrl_light", "todev_time_zone"]
|
@@ -480,6 +481,22 @@ class mow_to_app_qctools_info_t(_message.Message):
|
|
480
481
|
type: QCAppTestId
|
481
482
|
def __init__(self, type: _Optional[_Union[QCAppTestId, str]] = ..., timeOfDuration: _Optional[int] = ..., result: _Optional[int] = ..., result_details: _Optional[str] = ..., **kwargs) -> None: ...
|
482
483
|
|
484
|
+
class mqtt_rtk_connect(_message.Message):
|
485
|
+
__slots__ = ["rtk_base_num", "rtk_channel", "rtk_switch"]
|
486
|
+
RTK_BASE_NUM_FIELD_NUMBER: _ClassVar[int]
|
487
|
+
RTK_CHANNEL_FIELD_NUMBER: _ClassVar[int]
|
488
|
+
RTK_SWITCH_FIELD_NUMBER: _ClassVar[int]
|
489
|
+
rtk_base_num: str
|
490
|
+
rtk_channel: int
|
491
|
+
rtk_switch: int
|
492
|
+
def __init__(self, rtk_switch: _Optional[int] = ..., rtk_channel: _Optional[int] = ..., rtk_base_num: _Optional[str] = ...) -> None: ...
|
493
|
+
|
494
|
+
class nav_heading_state_t(_message.Message):
|
495
|
+
__slots__ = ["heading_state"]
|
496
|
+
HEADING_STATE_FIELD_NUMBER: _ClassVar[int]
|
497
|
+
heading_state: int
|
498
|
+
def __init__(self, heading_state: _Optional[int] = ...) -> None: ...
|
499
|
+
|
483
500
|
class report_info_cfg(_message.Message):
|
484
501
|
__slots__ = ["act", "count", "no_change_period", "period", "sub", "timeout"]
|
485
502
|
ACT_FIELD_NUMBER: _ClassVar[int]
|
@@ -521,10 +538,11 @@ class report_info_data(_message.Message):
|
|
521
538
|
def __init__(self, connect: _Optional[_Union[rpt_connect_status, _Mapping]] = ..., dev: _Optional[_Union[rpt_dev_status, _Mapping]] = ..., rtk: _Optional[_Union[rpt_rtk, _Mapping]] = ..., locations: _Optional[_Iterable[_Union[rpt_dev_location, _Mapping]]] = ..., work: _Optional[_Union[rpt_work, _Mapping]] = ..., fw_info: _Optional[_Union[device_fw_info, _Mapping]] = ..., maintain: _Optional[_Union[rpt_maintain, _Mapping]] = ..., vision_point_info: _Optional[_Iterable[_Union[vision_point_info_msg, _Mapping]]] = ..., vio_to_app_info: _Optional[_Union[vio_to_app_info_msg, _Mapping]] = ..., vision_statistic_info: _Optional[_Union[vision_statistic_info_msg, _Mapping]] = ...) -> None: ...
|
522
539
|
|
523
540
|
class rpt_connect_status(_message.Message):
|
524
|
-
__slots__ = ["ble_rssi", "connect_type", "link_type", "mnet_inet", "mnet_rssi", "used_net", "wifi_rssi"]
|
541
|
+
__slots__ = ["ble_rssi", "connect_type", "link_type", "mnet_cfg", "mnet_inet", "mnet_rssi", "used_net", "wifi_rssi"]
|
525
542
|
BLE_RSSI_FIELD_NUMBER: _ClassVar[int]
|
526
543
|
CONNECT_TYPE_FIELD_NUMBER: _ClassVar[int]
|
527
544
|
LINK_TYPE_FIELD_NUMBER: _ClassVar[int]
|
545
|
+
MNET_CFG_FIELD_NUMBER: _ClassVar[int]
|
528
546
|
MNET_INET_FIELD_NUMBER: _ClassVar[int]
|
529
547
|
MNET_RSSI_FIELD_NUMBER: _ClassVar[int]
|
530
548
|
USED_NET_FIELD_NUMBER: _ClassVar[int]
|
@@ -532,11 +550,12 @@ class rpt_connect_status(_message.Message):
|
|
532
550
|
ble_rssi: int
|
533
551
|
connect_type: int
|
534
552
|
link_type: int
|
553
|
+
mnet_cfg: _dev_net_pb2.MnetCfg
|
535
554
|
mnet_inet: int
|
536
555
|
mnet_rssi: int
|
537
556
|
used_net: net_used_type
|
538
557
|
wifi_rssi: int
|
539
|
-
def __init__(self, connect_type: _Optional[int] = ..., ble_rssi: _Optional[int] = ..., wifi_rssi: _Optional[int] = ..., link_type: _Optional[int] = ..., mnet_rssi: _Optional[int] = ..., mnet_inet: _Optional[int] = ..., used_net: _Optional[_Union[net_used_type, str]] = ...) -> None: ...
|
558
|
+
def __init__(self, connect_type: _Optional[int] = ..., ble_rssi: _Optional[int] = ..., wifi_rssi: _Optional[int] = ..., link_type: _Optional[int] = ..., mnet_rssi: _Optional[int] = ..., mnet_inet: _Optional[int] = ..., used_net: _Optional[_Union[net_used_type, str]] = ..., mnet_cfg: _Optional[_Union[_dev_net_pb2.MnetCfg, _Mapping]] = ...) -> None: ...
|
540
559
|
|
541
560
|
class rpt_dev_location(_message.Message):
|
542
561
|
__slots__ = ["bol_hash", "pos_type", "real_pos_x", "real_pos_y", "real_toward", "zone_hash"]
|
@@ -605,7 +624,7 @@ class rpt_maintain(_message.Message):
|
|
605
624
|
def __init__(self, mileage: _Optional[int] = ..., work_time: _Optional[int] = ..., bat_cycles: _Optional[int] = ...) -> None: ...
|
606
625
|
|
607
626
|
class rpt_rtk(_message.Message):
|
608
|
-
__slots__ = ["age", "co_view_stars", "dis_status", "gps_stars", "l2_stars", "lat_std", "lon_std", "lora_info", "pos_level", "reset", "status", "top4_total_mean"]
|
627
|
+
__slots__ = ["age", "co_view_stars", "dis_status", "gps_stars", "l2_stars", "lat_std", "lon_std", "lora_info", "mqtt_rtk_info", "pos_level", "reset", "status", "top4_total_mean"]
|
609
628
|
AGE_FIELD_NUMBER: _ClassVar[int]
|
610
629
|
CO_VIEW_STARS_FIELD_NUMBER: _ClassVar[int]
|
611
630
|
DIS_STATUS_FIELD_NUMBER: _ClassVar[int]
|
@@ -614,6 +633,7 @@ class rpt_rtk(_message.Message):
|
|
614
633
|
LAT_STD_FIELD_NUMBER: _ClassVar[int]
|
615
634
|
LON_STD_FIELD_NUMBER: _ClassVar[int]
|
616
635
|
LORA_INFO_FIELD_NUMBER: _ClassVar[int]
|
636
|
+
MQTT_RTK_INFO_FIELD_NUMBER: _ClassVar[int]
|
617
637
|
POS_LEVEL_FIELD_NUMBER: _ClassVar[int]
|
618
638
|
RESET_FIELD_NUMBER: _ClassVar[int]
|
619
639
|
STATUS_FIELD_NUMBER: _ClassVar[int]
|
@@ -626,14 +646,15 @@ class rpt_rtk(_message.Message):
|
|
626
646
|
lat_std: int
|
627
647
|
lon_std: int
|
628
648
|
lora_info: rpt_lora
|
649
|
+
mqtt_rtk_info: mqtt_rtk_connect
|
629
650
|
pos_level: int
|
630
651
|
reset: int
|
631
652
|
status: int
|
632
653
|
top4_total_mean: int
|
633
|
-
def __init__(self, status: _Optional[int] = ..., pos_level: _Optional[int] = ..., gps_stars: _Optional[int] = ..., age: _Optional[int] = ..., lat_std: _Optional[int] = ..., lon_std: _Optional[int] = ..., l2_stars: _Optional[int] = ..., dis_status: _Optional[int] = ..., top4_total_mean: _Optional[int] = ..., co_view_stars: _Optional[int] = ..., reset: _Optional[int] = ..., lora_info: _Optional[_Union[rpt_lora, _Mapping]] = ...) -> None: ...
|
654
|
+
def __init__(self, status: _Optional[int] = ..., pos_level: _Optional[int] = ..., gps_stars: _Optional[int] = ..., age: _Optional[int] = ..., lat_std: _Optional[int] = ..., lon_std: _Optional[int] = ..., l2_stars: _Optional[int] = ..., dis_status: _Optional[int] = ..., top4_total_mean: _Optional[int] = ..., co_view_stars: _Optional[int] = ..., reset: _Optional[int] = ..., lora_info: _Optional[_Union[rpt_lora, _Mapping]] = ..., mqtt_rtk_info: _Optional[_Union[mqtt_rtk_connect, _Mapping]] = ...) -> None: ...
|
634
655
|
|
635
656
|
class rpt_work(_message.Message):
|
636
|
-
__slots__ = ["area", "bp_hash", "bp_info", "bp_pos_x", "bp_pos_y", "init_cfg_hash", "knife_height", "man_run_speed", "nav_edit_status", "nav_run_mode", "path_hash", "path_pos_x", "path_pos_y", "plan", "progress", "real_path_num", "test_mode_status", "ub_ecode_hash", "ub_path_hash", "ub_zone_hash"]
|
657
|
+
__slots__ = ["area", "bp_hash", "bp_info", "bp_pos_x", "bp_pos_y", "init_cfg_hash", "knife_height", "man_run_speed", "nav_edit_status", "nav_heading_state", "nav_run_mode", "path_hash", "path_pos_x", "path_pos_y", "plan", "progress", "real_path_num", "test_mode_status", "ub_ecode_hash", "ub_path_hash", "ub_zone_hash"]
|
637
658
|
AREA_FIELD_NUMBER: _ClassVar[int]
|
638
659
|
BP_HASH_FIELD_NUMBER: _ClassVar[int]
|
639
660
|
BP_INFO_FIELD_NUMBER: _ClassVar[int]
|
@@ -643,6 +664,7 @@ class rpt_work(_message.Message):
|
|
643
664
|
KNIFE_HEIGHT_FIELD_NUMBER: _ClassVar[int]
|
644
665
|
MAN_RUN_SPEED_FIELD_NUMBER: _ClassVar[int]
|
645
666
|
NAV_EDIT_STATUS_FIELD_NUMBER: _ClassVar[int]
|
667
|
+
NAV_HEADING_STATE_FIELD_NUMBER: _ClassVar[int]
|
646
668
|
NAV_RUN_MODE_FIELD_NUMBER: _ClassVar[int]
|
647
669
|
PATH_HASH_FIELD_NUMBER: _ClassVar[int]
|
648
670
|
PATH_POS_X_FIELD_NUMBER: _ClassVar[int]
|
@@ -663,6 +685,7 @@ class rpt_work(_message.Message):
|
|
663
685
|
knife_height: int
|
664
686
|
man_run_speed: int
|
665
687
|
nav_edit_status: int
|
688
|
+
nav_heading_state: nav_heading_state_t
|
666
689
|
nav_run_mode: int
|
667
690
|
path_hash: int
|
668
691
|
path_pos_x: int
|
@@ -674,7 +697,7 @@ class rpt_work(_message.Message):
|
|
674
697
|
ub_ecode_hash: int
|
675
698
|
ub_path_hash: int
|
676
699
|
ub_zone_hash: int
|
677
|
-
def __init__(self, plan: _Optional[int] = ..., path_hash: _Optional[int] = ..., progress: _Optional[int] = ..., area: _Optional[int] = ..., bp_info: _Optional[int] = ..., bp_hash: _Optional[int] = ..., bp_pos_x: _Optional[int] = ..., bp_pos_y: _Optional[int] = ..., real_path_num: _Optional[int] = ..., path_pos_x: _Optional[int] = ..., path_pos_y: _Optional[int] = ..., ub_zone_hash: _Optional[int] = ..., ub_path_hash: _Optional[int] = ..., init_cfg_hash: _Optional[int] = ..., ub_ecode_hash: _Optional[int] = ..., nav_run_mode: _Optional[int] = ..., test_mode_status: _Optional[int] = ..., man_run_speed: _Optional[int] = ..., nav_edit_status: _Optional[int] = ..., knife_height: _Optional[int] = ...) -> None: ...
|
700
|
+
def __init__(self, plan: _Optional[int] = ..., path_hash: _Optional[int] = ..., progress: _Optional[int] = ..., area: _Optional[int] = ..., bp_info: _Optional[int] = ..., bp_hash: _Optional[int] = ..., bp_pos_x: _Optional[int] = ..., bp_pos_y: _Optional[int] = ..., real_path_num: _Optional[int] = ..., path_pos_x: _Optional[int] = ..., path_pos_y: _Optional[int] = ..., ub_zone_hash: _Optional[int] = ..., ub_path_hash: _Optional[int] = ..., init_cfg_hash: _Optional[int] = ..., ub_ecode_hash: _Optional[int] = ..., nav_run_mode: _Optional[int] = ..., test_mode_status: _Optional[int] = ..., man_run_speed: _Optional[int] = ..., nav_edit_status: _Optional[int] = ..., knife_height: _Optional[int] = ..., nav_heading_state: _Optional[_Union[nav_heading_state_t, _Mapping]] = ...) -> None: ...
|
678
701
|
|
679
702
|
class systemRapidStateTunnel_msg(_message.Message):
|
680
703
|
__slots__ = ["rapid_state_data", "vio_to_app_info", "vision_point_info", "vision_statistic_info"]
|
@@ -731,14 +754,14 @@ class vio_to_app_info_msg(_message.Message):
|
|
731
754
|
def __init__(self, x: _Optional[float] = ..., y: _Optional[float] = ..., heading: _Optional[float] = ..., vio_state: _Optional[int] = ..., brightness: _Optional[int] = ..., detect_feature_num: _Optional[int] = ..., track_feature_num: _Optional[int] = ...) -> None: ...
|
732
755
|
|
733
756
|
class vision_point_info_msg(_message.Message):
|
734
|
-
__slots__ = ["
|
735
|
-
|
757
|
+
__slots__ = ["label", "num", "vision_point"]
|
758
|
+
LABEL_FIELD_NUMBER: _ClassVar[int]
|
736
759
|
NUM_FIELD_NUMBER: _ClassVar[int]
|
737
760
|
VISION_POINT_FIELD_NUMBER: _ClassVar[int]
|
738
|
-
|
761
|
+
label: int
|
739
762
|
num: int
|
740
763
|
vision_point: _containers.RepeatedCompositeFieldContainer[vision_point_msg]
|
741
|
-
def __init__(self,
|
764
|
+
def __init__(self, label: _Optional[int] = ..., num: _Optional[int] = ..., vision_point: _Optional[_Iterable[_Union[vision_point_msg, _Mapping]]] = ...) -> None: ...
|
742
765
|
|
743
766
|
class vision_point_msg(_message.Message):
|
744
767
|
__slots__ = ["x", "y", "z"]
|
@@ -1,5 +1,7 @@
|
|
1
1
|
from enum import IntEnum
|
2
2
|
|
3
|
+
from pymammotion.data.model.report_info import ConnectData
|
4
|
+
|
3
5
|
|
4
6
|
class bleOrderCmd:
|
5
7
|
allpowerfullRW = 67
|
@@ -211,15 +213,22 @@ class WorkMode:
|
|
211
213
|
MODE_CHARGING_PAUSE = 39
|
212
214
|
|
213
215
|
|
214
|
-
def device_connection(
|
216
|
+
def device_connection(connect: ConnectData) -> str:
|
215
217
|
"""Return string representation of device connection."""
|
216
|
-
if value == 1:
|
217
|
-
return "BLE"
|
218
218
|
|
219
|
-
if
|
219
|
+
if connect.wifi_rssi != 0 and connect.ble_rssi != 0:
|
220
|
+
return "WIFI/BLE"
|
221
|
+
|
222
|
+
if connect.connect_type == 2 or connect.used_net == "NET_USED_TYPE_WIFI" or connect.wifi_rssi != 0:
|
220
223
|
return "WIFI"
|
221
224
|
|
222
|
-
|
225
|
+
if connect.connect_type == 1 or connect.used_net == "NET_USED_TYPE_MNET":
|
226
|
+
return "3G/4G"
|
227
|
+
|
228
|
+
if connect.ble_rssi != 0:
|
229
|
+
return "BLE"
|
230
|
+
|
231
|
+
return "None"
|
223
232
|
|
224
233
|
|
225
234
|
def device_mode(value: int) -> str:
|