pymammotion 0.4.0b8__py3-none-any.whl → 0.4.1__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.
Files changed (41) hide show
  1. pymammotion/bluetooth/ble_message.py +6 -7
  2. pymammotion/data/model/device.py +2 -7
  3. pymammotion/data/model/hash_list.py +84 -10
  4. pymammotion/data/model/raw_data.py +1 -8
  5. pymammotion/data/state_manager.py +30 -10
  6. pymammotion/mammotion/commands/abstract_message.py +2 -2
  7. pymammotion/mammotion/commands/messages/driver.py +27 -20
  8. pymammotion/mammotion/commands/messages/media.py +13 -14
  9. pymammotion/mammotion/commands/messages/navigation.py +16 -13
  10. pymammotion/mammotion/commands/messages/network.py +13 -10
  11. pymammotion/mammotion/commands/messages/ota.py +9 -14
  12. pymammotion/mammotion/commands/messages/system.py +36 -25
  13. pymammotion/mammotion/commands/messages/video.py +8 -10
  14. pymammotion/mammotion/devices/base.py +10 -10
  15. pymammotion/mammotion/devices/mammotion.py +18 -14
  16. pymammotion/mammotion/devices/mammotion_bluetooth.py +2 -3
  17. pymammotion/mammotion/devices/mammotion_cloud.py +1 -2
  18. pymammotion/mqtt/mammotion_mqtt.py +1 -1
  19. pymammotion/proto/__init__.py +2174 -1
  20. pymammotion/proto/luba_mul_pb2.py +8 -8
  21. pymammotion/proto/luba_mul_pb2.pyi +1 -0
  22. pymammotion/proto/mctrl_nav.proto +3 -3
  23. pymammotion/proto/mctrl_nav_pb2.py +69 -67
  24. pymammotion/proto/mctrl_nav_pb2.pyi +13 -5
  25. pymammotion/proto/mctrl_sys_pb2.py +41 -37
  26. pymammotion/proto/mctrl_sys_pb2.pyi +34 -11
  27. pymammotion/utility/device_config.py +2 -2
  28. {pymammotion-0.4.0b8.dist-info → pymammotion-0.4.1.dist-info}/METADATA +1 -1
  29. {pymammotion-0.4.0b8.dist-info → pymammotion-0.4.1.dist-info}/RECORD +31 -41
  30. pymammotion/proto/basestation.py +0 -59
  31. pymammotion/proto/common.py +0 -12
  32. pymammotion/proto/dev_net.py +0 -381
  33. pymammotion/proto/luba_msg.py +0 -81
  34. pymammotion/proto/luba_mul.py +0 -77
  35. pymammotion/proto/mctrl_driver.py +0 -100
  36. pymammotion/proto/mctrl_nav.py +0 -664
  37. pymammotion/proto/mctrl_ota.py +0 -48
  38. pymammotion/proto/mctrl_pept.py +0 -41
  39. pymammotion/proto/mctrl_sys.py +0 -574
  40. {pymammotion-0.4.0b8.dist-info → pymammotion-0.4.1.dist-info}/LICENSE +0 -0
  41. {pymammotion-0.4.0b8.dist-info → pymammotion-0.4.1.dist-info}/WHEEL +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[str] = ...) -> None: ...
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__ = ["lable", "num", "vision_point"]
735
- LABLE_FIELD_NUMBER: _ClassVar[int]
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
- lable: int
761
+ label: int
739
762
  num: int
740
763
  vision_point: _containers.RepeatedCompositeFieldContainer[vision_point_msg]
741
- def __init__(self, lable: _Optional[int] = ..., num: _Optional[int] = ..., vision_point: _Optional[_Iterable[_Union[vision_point_msg, _Mapping]]] = ...) -> None: ...
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"]
@@ -40,7 +40,7 @@ class DeviceConfig:
40
40
  "cutter_height_min": 30,
41
41
  "cutter_height_max": 70,
42
42
  "working_speed_min": 0.2,
43
- "working_speed_max": 0.4,
43
+ "working_speed_max": 0.6,
44
44
  "work_area_num_max": 6,
45
45
  "working_path_min": 20,
46
46
  "working_path_max": 35,
@@ -51,7 +51,7 @@ class DeviceConfig:
51
51
  "cutter_height_min": 30,
52
52
  "cutter_height_max": 70,
53
53
  "working_speed_min": 0.2,
54
- "working_speed_max": 0.4,
54
+ "working_speed_max": 0.6,
55
55
  "work_area_num_max": 3,
56
56
  "working_path_min": 20,
57
57
  "working_path_max": 35,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pymammotion
3
- Version: 0.4.0b8
3
+ Version: 0.4.1
4
4
  Summary:
5
5
  License: GPL-3.0
6
6
  Author: Michael Arthur
@@ -11,7 +11,7 @@ pymammotion/aliyun/model/stream_subscription_response.py,sha256=7d0i8cNMAMX7aQjd
11
11
  pymammotion/aliyun/tmp_constant.py,sha256=M4Hq_lrGB3LZdX6R2XohRPFoK1NDnNV-pTJwJcJ9838,6650
12
12
  pymammotion/bluetooth/__init__.py,sha256=LAl8jqZ1fPh-3mLmViNQsP3s814C1vsocYUa6oSaXt0,36
13
13
  pymammotion/bluetooth/ble.py,sha256=k5o2BVXSF2vLZ75U3PsUE8NomWFirJkYDVWfQQs_P1I,2484
14
- pymammotion/bluetooth/ble_message.py,sha256=Uz64_PiQPqulEZIUhGg9g5ABr3wSVDChO8grfqsV4f8,18871
14
+ pymammotion/bluetooth/ble_message.py,sha256=47xoj22Kw5XF9VT965J_BxpvTdOgSXy4opqkbsojvDo,18795
15
15
  pymammotion/bluetooth/const.py,sha256=CCqyHsYbB0BAYjwdhXt_n6eWWxmhlUrAFjvVv57mbvE,1749
16
16
  pymammotion/bluetooth/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
17
  pymammotion/bluetooth/data/convert.py,sha256=6DMwvzVr9FWCoQFIKSI2poFXjISc_m6X59g8FlVO0-o,800
@@ -23,7 +23,7 @@ pymammotion/const.py,sha256=lWRxvTVdXnNHuxqvRkjO5ziK0Ic-fZMM6J2dbe5M6Nc,385
23
23
  pymammotion/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
24
  pymammotion/data/model/__init__.py,sha256=aSyroxYQQS-WMRi6WmWm2js4wLa9nmsi160gx9tts4o,323
25
25
  pymammotion/data/model/account.py,sha256=vJM-KTf2q6eBfVC-UlNHBSmJvqHiCawZ40vnuhXhaz8,140
26
- pymammotion/data/model/device.py,sha256=lZEuWfEr4My0BUjY3OdIpUui91t9KbONhBc2t9oS2ro,6883
26
+ pymammotion/data/model/device.py,sha256=ZiGlBCOKs0qmQ9qZtG77BoW00xbOrSw4H8CYgJ-BrCU,6867
27
27
  pymammotion/data/model/device_config.py,sha256=wjayKnzoPDmBhqWZKTPDSueNEPCIWCB20tFEDSGIUsM,2602
28
28
  pymammotion/data/model/device_info.py,sha256=Q0qJ6BflQycH_VFugwaFFXcvM69q2v9JAe2wWOcCggE,904
29
29
  pymammotion/data/model/device_limits.py,sha256=saW3iUvGq8WEn6CASn5hS5tVJpSeak4FDy_gnHtYqTQ,1955
@@ -31,19 +31,19 @@ pymammotion/data/model/enums.py,sha256=EpKmO8yVUZyEnTY4yH0DMMVKYNQM42zpW1maUu0i3
31
31
  pymammotion/data/model/excute_boarder_params.py,sha256=9CpUqrygcle1C_1hDW-riLmm4map4ZbE842NXjcomEI,1394
32
32
  pymammotion/data/model/execute_boarder.py,sha256=9rd_h4fbcsXxgnLOd2rO2hWyD1abnTGc47QTEpp8DD0,1103
33
33
  pymammotion/data/model/generate_route_information.py,sha256=pgjqURwmEIzjCMbl4Z5JDDkfxyUAdry1KhPfyir3-mU,777
34
- pymammotion/data/model/hash_list.py,sha256=ZPg5d1hy4bPMgPw5JkHujT06LIoEmXn7qSdQW79FF3A,6257
34
+ pymammotion/data/model/hash_list.py,sha256=2wBrXLN_sRDzkBrTwtFfGC1IufULdljF0FvPe9QG8Fo,7848
35
35
  pymammotion/data/model/location.py,sha256=PwmITejfI4pm7PI4rzqSuuHetwle6IJr_CV95435s2M,871
36
36
  pymammotion/data/model/mowing_modes.py,sha256=87R4T-hs6tZ0baPvdYII9Fd6ZbJRqkXj7MRFZ7nIPOY,941
37
37
  pymammotion/data/model/plan.py,sha256=wGlcJT-w0EdbWK9jI838TCOm_MABFg7WoR664VB8RWg,2880
38
38
  pymammotion/data/model/rapid_state.py,sha256=mIdhAG_LZXpVcybxqTLgLXkNOmVmDTn04B9PGIDA8Ls,1251
39
- pymammotion/data/model/raw_data.py,sha256=oO8JX4JP8YuWGj_-6XdooCQn8MnXuNYJ3S6e502NzpU,6754
39
+ pymammotion/data/model/raw_data.py,sha256=x2xuqVC8CQuV3ui3QK4G5EqRET9EsNljHLHR11ByYgo,6471
40
40
  pymammotion/data/model/region_data.py,sha256=VokMRqB_o4OFL1TWAM90Fvm-1z4jcYrw3X2o760qpx4,2949
41
41
  pymammotion/data/model/report_info.py,sha256=cWr0FC9B0M4ZHS2bY4V5nzjXSMd8qHq2NRhm6TzNXnw,3440
42
42
  pymammotion/data/mqtt/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
43
43
  pymammotion/data/mqtt/event.py,sha256=r14gzZVxmlGVAwFdZQ1CUsMZFHHwRKnbt2VHnjugP28,5123
44
44
  pymammotion/data/mqtt/properties.py,sha256=pX5JRVmmpVO04CSPm5xAGcSWA_OeLd0JnBagLsfiSEc,3755
45
45
  pymammotion/data/mqtt/status.py,sha256=DuNC3JdewLPKNqNHx76_FPXRvheYSiM-CdiVTCCYY8s,1079
46
- pymammotion/data/state_manager.py,sha256=7NjzupxP-B9BDXTBNrdm7fcryW24-QZ5vJyjv6Y_dEU,8071
46
+ pymammotion/data/state_manager.py,sha256=H3xHcLorw4xBtDAhyigl5rd1SYkLaSTBB9qQ6XQV9SM,8646
47
47
  pymammotion/event/__init__.py,sha256=mgATR6vPHACNQ-0zH5fi7NdzeTCDV1CZyaWPmtUusi8,115
48
48
  pymammotion/event/event.py,sha256=bj2RirSIRyBs0QvkcrOtwZWUX_8F3m1sySuHVyKmZLs,2143
49
49
  pymammotion/http/_init_.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -52,82 +52,72 @@ pymammotion/http/http.py,sha256=gFAvmjGorqUh35U4b9z-Bqy8bKS02lLrp0Lu6Giz4xk,6687
52
52
  pymammotion/http/model/http.py,sha256=tM5ikwVkWhRdXc2xi1NOLmWPH2mQEQelpaVgMlAEmlI,2333
53
53
  pymammotion/mammotion/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
54
54
  pymammotion/mammotion/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
- pymammotion/mammotion/commands/abstract_message.py,sha256=l2Wcyg7tIEjRGyQAk9T2rQVOLwilxG1hXTNf7811jGA,727
55
+ pymammotion/mammotion/commands/abstract_message.py,sha256=iZans5v1Z41rMgIbcWEbrSDIvBbaJ8N3Z8xHUKQQVAE,705
56
56
  pymammotion/mammotion/commands/mammotion_command.py,sha256=PM9UCuBCKp_TWDfkeVJsBelSbRrKosRa2LvHA-By1k8,2510
57
57
  pymammotion/mammotion/commands/messages/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
58
- pymammotion/mammotion/commands/messages/driver.py,sha256=xyGuzBJeHUiu_9lsOznh2rftzuMEDeXMLB0s3a-C46w,3766
59
- pymammotion/mammotion/commands/messages/media.py,sha256=l-m4l2Vp1ZOHPHyJTceuLaLvdgHOEfmykkbDncCDUI4,1359
60
- pymammotion/mammotion/commands/messages/navigation.py,sha256=BE5h8xN2XCkcfynb5cQou24dt5tn7_shZG90nydJbww,23241
61
- pymammotion/mammotion/commands/messages/network.py,sha256=vUjBvuiBhRkOA4nftqTFw6rFdXNjho-ZA9Y37hL2q5Q,7623
62
- pymammotion/mammotion/commands/messages/ota.py,sha256=g937HT_-OQXV6A3zUiZ53b45cOX6y-rzs5m-4b0IcTk,1473
63
- pymammotion/mammotion/commands/messages/system.py,sha256=CYf_Ju5nMK9cFd0r5jOzEJ_w4k70PzassdhE8xLeSJU,14371
64
- pymammotion/mammotion/commands/messages/video.py,sha256=JBPyK1C9gZ6B3QcNe3IUTUnn0QWNXR4Pwj9W0qNO9Ps,1304
58
+ pymammotion/mammotion/commands/messages/driver.py,sha256=4DH6Q0Xzu1whS7shjDg2N3gzCH1KEYpojPQ1GsasMIY,3597
59
+ pymammotion/mammotion/commands/messages/media.py,sha256=JaFMJiC-vtfG68dBfHmbDSvEHY-GTVkhPq02Mc_dGPg,1232
60
+ pymammotion/mammotion/commands/messages/navigation.py,sha256=HQhkIu8ZEkyZAuZ0eN_jBuk5luw3YLo3hvlnDRCHt6c,23198
61
+ pymammotion/mammotion/commands/messages/network.py,sha256=EDMXjX_j2aPUZvz5izSV913YSLrEVvdW1lVjfojEhYI,7557
62
+ pymammotion/mammotion/commands/messages/ota.py,sha256=gySHuPw52tEmK0MT2ng2U1sn6r7O42z0Gvnb3E5KYgc,1305
63
+ pymammotion/mammotion/commands/messages/system.py,sha256=6h7NYwQX5V4MfT_V1CUwe8YGZJZgy6EMN34eOkj0jSk,14557
64
+ pymammotion/mammotion/commands/messages/video.py,sha256=_q2R-ePcR2IaS5KjLm_H63iF0INj_GelmfAnIwJj09Y,1145
65
65
  pymammotion/mammotion/control/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
66
66
  pymammotion/mammotion/control/joystick.py,sha256=QfBVxM_gxpWsZAGO90whtgxCI2tIZ3TTad9wHIPsU9s,5640
67
67
  pymammotion/mammotion/devices/__init__.py,sha256=f2qQFPgLGmV85W2hSlMUh5BYuht9o_Ar_JEAAMD4fsE,102
68
- pymammotion/mammotion/devices/base.py,sha256=evNKt1PDDGPkm4wleIEC2dtHuyDP_nHRCg35nrQg6qg,10260
69
- pymammotion/mammotion/devices/mammotion.py,sha256=W5kzq-1nzianRMNDR2YXgc5KenjxS95EDRcczgi75TA,12817
70
- pymammotion/mammotion/devices/mammotion_bluetooth.py,sha256=XFnbAz3l9QWBf0JMhR79bR59gnuesjnOprSbEoUNoUI,19613
71
- pymammotion/mammotion/devices/mammotion_cloud.py,sha256=ai9wZf-nBz9pDlEKsRef-Fsp9PNIonM0zWdHvA5IVKs,13967
68
+ pymammotion/mammotion/devices/base.py,sha256=Klkmvo56VgAX_zqen__lhbRb41k2U9HEHzA7t9FoZjc,10333
69
+ pymammotion/mammotion/devices/mammotion.py,sha256=Zz2tUIdGA-jFSHLM3aO8tBMvVl7sBIBiqC9Kg7f-lm8,13190
70
+ pymammotion/mammotion/devices/mammotion_bluetooth.py,sha256=oNDwtDKsdsG62frehBCg6xmwF3CD3VJ32iUwQcAjzKo,19576
71
+ pymammotion/mammotion/devices/mammotion_cloud.py,sha256=-mUZkLP5vgApG-5r3GIRUNmjCGwas11H5u2JhrI0X3U,13929
72
72
  pymammotion/mqtt/__init__.py,sha256=Ocs5e-HLJvTuDpVXyECEsWIvwsUaxzj7lZ9mSYutNDY,105
73
73
  pymammotion/mqtt/linkkit/__init__.py,sha256=ENgc3ynd2kd9gMQR3-kgmCu6Ed9Y6XCIzU0zFReUlkk,80
74
74
  pymammotion/mqtt/linkkit/h2client.py,sha256=w9Nvi_nY4CLD_fw-pHtYChwQf7e2TiAGeqkY_sF4cf0,19659
75
75
  pymammotion/mqtt/linkkit/linkkit.py,sha256=NzFpdtfxNHQ6xNu-POyp45fTK7AWUAWV7RavFevX4m4,132772
76
76
  pymammotion/mqtt/mammotion_future.py,sha256=_OWqKOlUGl2yT1xOsXFQYpGd-1zQ63OxqXgy7KRQgYc,710
77
- pymammotion/mqtt/mammotion_mqtt.py,sha256=csnKHAOqjmNYtk2uAly2_Qg7J6ZNtiULZO7q5Poua30,8876
78
- pymammotion/proto/__init__.py,sha256=v3_P1LOsYRBN9qCAhaWrWMX7GWHrox9XD3hdZQxcPZM,190
77
+ pymammotion/mqtt/mammotion_mqtt.py,sha256=dQuGz-dQnOYI7vz_v5Kn9nHcizs-S0E2lZzJlZVkG5Y,8867
78
+ pymammotion/proto/__init__.py,sha256=fdgTL9vzIw-QJN0_sRmemUmw07tR3L57DW4LuDkjwvM,71908
79
79
  pymammotion/proto/basestation.proto,sha256=_x5gAz3FkZXS1jtq4GgZgaDCuRU-UV-7HTFdsfQ3zbo,1034
80
- pymammotion/proto/basestation.py,sha256=js64_N2xQYRxWPRdVNEapO0qe7vBlfYnjW5sE8hi7hw,2026
81
80
  pymammotion/proto/basestation_pb2.py,sha256=PTVlHcDLQeRV6qv7ZPjGke9MF68mpqoUeJA0Sw_AoT0,2776
82
81
  pymammotion/proto/basestation_pb2.pyi,sha256=eeYW9l_5OsokGzP9OE_lg6TdJwXGAFvPiojQ3tipcak,3970
83
82
  pymammotion/proto/common.proto,sha256=op8TCU1ppCMeP-izK2tXMoJXQyZXdgj1EgOKcd14A-A,81
84
- pymammotion/proto/common.py,sha256=stFYSHAjVKasFfPacxLcMfpGuUtGYkTb8RUAoJEtaRc,324
85
83
  pymammotion/proto/common_pb2.py,sha256=8OpJ04lLq8sAktY6CkP8TxVGar9x858sCf6FqLy7Rs4,1030
86
84
  pymammotion/proto/common_pb2.pyi,sha256=skF2ydSIQIvoobjiCUjXVD-pTfJiAILbaUl6nkdh2SY,460
87
85
  pymammotion/proto/dev_net.proto,sha256=sh10FFXCkcQHBt3OlvW-4Jvv_EATOLxkcIGWDKzivs8,5502
88
- pymammotion/proto/dev_net.py,sha256=7RPkgEBa6z8jwQ3h15WZZfXSo2t_srxtGQtBoCEOJQM,11260
89
86
  pymammotion/proto/dev_net_pb2.py,sha256=URvPWl3bDTpgcXsPR7GMOTcbrmDgBgm-PxWcd4ZGiCM,12868
90
87
  pymammotion/proto/dev_net_pb2.pyi,sha256=0S1HyPT1WQUNQXsW9xEgKSAoEy-0LBfP9ZBJeQlhChc,21825
91
88
  pymammotion/proto/luba_msg.proto,sha256=KfEKnPy4HyI2msoFyE5tY2tp913PGyWuki9G6tuju_A,1661
92
- pymammotion/proto/luba_msg.py,sha256=Q9I8R7xmhLuenn5r0XOmYzH3UmWrPk6KJF0xzkjfvDM,2473
93
89
  pymammotion/proto/luba_msg_pb2.py,sha256=tM_jjxnRcAL_PFbNSbY2i11YP27boXYxysB0VE1Rjdc,4514
94
90
  pymammotion/proto/luba_msg_pb2.pyi,sha256=u1YgUrGoqfuizHt2ckQUL1Y_u9tLOievwrJ2e_ySOss,4288
95
91
  pymammotion/proto/luba_mul.proto,sha256=kHe_dfxCNR9Yu0-3xjjxMoDVNVWdLH_SWbVKBWxCHbc,1135
96
- pymammotion/proto/luba_mul.py,sha256=pAnz7MpGLhnsMcuWIltNwksxT-E9hL-bjZ-pc1cUBL0,2083
97
- pymammotion/proto/luba_mul_pb2.py,sha256=nJ25xWmuBldTQsAddTR5EImTEN-D2FSUCd_5vBUUTwA,3399
98
- pymammotion/proto/luba_mul_pb2.pyi,sha256=_ndK0hvvHtMOzsJ8rGSXZbp7fVEsiafycbYfWG1WPKo,3913
92
+ pymammotion/proto/luba_mul_pb2.py,sha256=b4e-CcIW8m9xMykf0ID7NYt_WxcY2fSW2mQJ17EtZNw,3468
93
+ pymammotion/proto/luba_mul_pb2.pyi,sha256=f_lR1S7kkvwq67t7WO0SPG84dljA7fM3iCEz4xhAaQU,3940
99
94
  pymammotion/proto/mctrl_driver.proto,sha256=I0BncdAa3laeqT17Sn95r_1HuBD3dSc9IVu9U3o0fU4,1385
100
- pymammotion/proto/mctrl_driver.py,sha256=sseY2MxUtaQZvg7fvbA_gNvtqx9MVDW_rvUcfA2CWVs,2971
101
95
  pymammotion/proto/mctrl_driver_pb2.py,sha256=bfLwZb5Hehb6OIkgFrZMkQ0oTBXoOBxpruszKz-UM1U,3785
102
96
  pymammotion/proto/mctrl_driver_pb2.pyi,sha256=9_rcQELsSeOfeIQMTEFIpeXICpDe3arQeA4kAYWNSWw,5860
103
- pymammotion/proto/mctrl_nav.proto,sha256=g7Mh9tqhA2bA7LRn9Cmgb9zTngO4ghUDPFTAGo2z_i8,12453
104
- pymammotion/proto/mctrl_nav.py,sha256=okOznE_1dCi1yE5sSdQNKWkgI8CpbGRxMAISL5zqiT4,25040
105
- pymammotion/proto/mctrl_nav_pb2.py,sha256=LAHfEmGfNVZCN6vuLSZF6s2wd1Qk-siaWe4mdPWPdxc,24213
106
- pymammotion/proto/mctrl_nav_pb2.pyi,sha256=qmGYfKh2o63e5ppl9QIWnwDbmGVUVOf7EqhC9ApE5fg,51336
97
+ pymammotion/proto/mctrl_nav.proto,sha256=bNnMQOp0lz61Xc4hiOCWGIcHF0BLk6wtfbLc7BHqn1Y,12459
98
+ pymammotion/proto/mctrl_nav_pb2.py,sha256=FmR32_Fh0MEALsuXpjQtzQPNG98-dlsWA5g17F5C7RI,24390
99
+ pymammotion/proto/mctrl_nav_pb2.pyi,sha256=MKc6uXAhEpKE_b28wC7I09DefoDtF2ciKsfCW8uCcgk,51655
107
100
  pymammotion/proto/mctrl_ota.proto,sha256=4iHr-v1R0QiNndCnv3b6mhXiERLukB67ZzhTgt1iMc0,629
108
- pymammotion/proto/mctrl_ota.py,sha256=nIJgTWXemRuE622XqCym6TFHugV3PzAzX5IOTlE3muM,1427
109
101
  pymammotion/proto/mctrl_ota_pb2.py,sha256=-atzWg8USf4DMhlEL39q83paIyAO-CzsZhQjHvV4H68,2271
110
102
  pymammotion/proto/mctrl_ota_pb2.pyi,sha256=hFAQh5FOT8XbtTylYXQk9wCHH4Xn5C6MbW8bRgZPjt8,2821
111
103
  pymammotion/proto/mctrl_pept.proto,sha256=HBTRiP1XJB5w9hT1V38aePPREpePBk5jkjupu_kskuQ,664
112
- pymammotion/proto/mctrl_pept.py,sha256=utMtbXsCwGS14YggTqUdVIbTZsR0w49B6gKU8jHzbJg,1332
113
104
  pymammotion/proto/mctrl_pept_pb2.py,sha256=QqQ1BXo_EBs7cLmQGtRbnNy0rRxvaqtrGfKxXS8R5A8,2134
114
105
  pymammotion/proto/mctrl_pept_pb2.pyi,sha256=gr0lxUPqhyEnDdni9vpIQnAIhqAGtHlv1rFeb5EJnMY,2840
115
106
  pymammotion/proto/mctrl_sys.proto,sha256=FawssbrJkz2ZuwBGCCbFm-EO2qCYsXpeiFNHahCc9ug,10506
116
- pymammotion/proto/mctrl_sys.py,sha256=UJMQVXMjXVksp4O_eD_bUNPFM4ijvdSuma-sOIUsNUw,19138
117
- pymammotion/proto/mctrl_sys_pb2.py,sha256=DYemb514mlC7c27t-k1YqqBif0xxhLmnIWk8rXtSj1c,21497
118
- pymammotion/proto/mctrl_sys_pb2.pyi,sha256=Dj_1UM86kZ5MfcVyNC76Z0gKrfl5YFsVWP2b-bKoZvk,38912
107
+ pymammotion/proto/mctrl_sys_pb2.py,sha256=iV71QFq4kk1qqwS9pVDX671LMUseqQS8TxHjKE9PiDc,22127
108
+ pymammotion/proto/mctrl_sys_pb2.pyi,sha256=DSi0N3gqyn6iMxw1us8SGN71Is5O7Po0rEiCtQiDR0w,40131
119
109
  pymammotion/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
120
110
  pymammotion/utility/constant/__init__.py,sha256=tcY0LDeD-qDDHx2LKt55KOyv9ZI0UfCNM6fknLCmm8s,110
121
111
  pymammotion/utility/constant/device_constant.py,sha256=6uTZReQxMJvZxgHuJWAPYR9pQmK-VNz4FwJZJBjtIao,7906
122
112
  pymammotion/utility/conversions.py,sha256=v3YICy0zZwwBBzrUZgabI7GRfiDBnkiAX2qdtk3NxOY,89
123
113
  pymammotion/utility/datatype_converter.py,sha256=SPM_HuaaD_XOawlqEnA8qlRRZXGba3WjA8kGOZgeBlQ,4284
124
- pymammotion/utility/device_config.py,sha256=hHVyT8uSsHZB4_kuaN6K5wfsC2V5Ixevm1aFi2oYDFk,27956
114
+ pymammotion/utility/device_config.py,sha256=fhl7lNgmWSyi_Py2EIKSEhGcO9zxASGMGhwt7CIvNoU,27956
125
115
  pymammotion/utility/device_type.py,sha256=Nkje79xlcRWB8sV2ZWCjduowJ4KNfjlKF9JLbw95Eg4,10584
126
116
  pymammotion/utility/map.py,sha256=GYscVMg2cX3IPlNpCBNHDW0S55yS1WGRf1iHnNZ7TfQ,2227
127
117
  pymammotion/utility/movement.py,sha256=N75oAoAgFydqoaOedYIxGUHmuTCtPzAOtb-d_29tpfI,615
128
118
  pymammotion/utility/periodic.py,sha256=MbeSb9cfhxzYmdT_RiE0dZe3H9IfbQW_zSqhmSX2RUc,3321
129
119
  pymammotion/utility/rocker_util.py,sha256=6tX7sS87qoQC_tsxbx3NLL-HgS08wtzXiZkhDiz7uo0,7179
130
- pymammotion-0.4.0b8.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
131
- pymammotion-0.4.0b8.dist-info/METADATA,sha256=47kTxiMfeOfiLnem-ta88h91Wec53wuQY_XauFORA8I,3886
132
- pymammotion-0.4.0b8.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
133
- pymammotion-0.4.0b8.dist-info/RECORD,,
120
+ pymammotion-0.4.1.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
121
+ pymammotion-0.4.1.dist-info/METADATA,sha256=xKCNih4Ls6t6YvCs8RyJb1nSOXpTxRZCr0Nj_Y6ldEA,3884
122
+ pymammotion-0.4.1.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
123
+ pymammotion-0.4.1.dist-info/RECORD,,
@@ -1,59 +0,0 @@
1
- # Generated by the protocol buffer compiler. DO NOT EDIT!
2
- # sources: pymammotion/proto/basestation.proto
3
- # plugin: python-betterproto
4
- from dataclasses import dataclass
5
-
6
- import betterproto
7
-
8
-
9
- @dataclass
10
- class RequestBasestationInfoT(betterproto.Message):
11
- request_type: int = betterproto.uint32_field(1)
12
-
13
-
14
- @dataclass
15
- class ResponseBasestationInfoT(betterproto.Message):
16
- system_status: int = betterproto.uint64_field(1)
17
- app_connect_type: int = betterproto.uint32_field(2)
18
- ble_rssi: int = betterproto.int32_field(3)
19
- wifi_rssi: int = betterproto.int32_field(4)
20
- sats_num: int = betterproto.uint64_field(5)
21
- lora_scan: int = betterproto.int64_field(6)
22
- lora_channel: int = betterproto.int64_field(7)
23
- lora_locid: int = betterproto.int64_field(8)
24
- lora_netid: int = betterproto.int64_field(9)
25
- rtk_status: int = betterproto.uint64_field(10)
26
- lowpower_status: int = betterproto.int32_field(11)
27
- mqtt_rtk_status: int = betterproto.int32_field(12)
28
- rtk_channel: int = betterproto.int32_field(13)
29
- rtk_switch: int = betterproto.int32_field(14)
30
-
31
-
32
- @dataclass
33
- class AppToBaseMqttRtkT(betterproto.Message):
34
- rtk_switch: int = betterproto.int32_field(1)
35
- rtk_url: str = betterproto.string_field(2)
36
- rtk_port: int = betterproto.int32_field(3)
37
- rtk_username: str = betterproto.string_field(4)
38
- rtk_password: str = betterproto.string_field(5)
39
-
40
-
41
- @dataclass
42
- class BaseToAppMqttRtkT(betterproto.Message):
43
- rtk_switch_status: int = betterproto.int32_field(1)
44
-
45
-
46
- @dataclass
47
- class BaseStation(betterproto.Message):
48
- to_dev: "RequestBasestationInfoT" = betterproto.message_field(
49
- 1, group="BaseStationSubType"
50
- )
51
- to_app: "ResponseBasestationInfoT" = betterproto.message_field(
52
- 2, group="BaseStationSubType"
53
- )
54
- app_to_base_mqtt_rtk_msg: "AppToBaseMqttRtkT" = betterproto.message_field(
55
- 3, group="BaseStationSubType"
56
- )
57
- base_to_app_mqtt_rtk_msg: "BaseToAppMqttRtkT" = betterproto.message_field(
58
- 4, group="BaseStationSubType"
59
- )
@@ -1,12 +0,0 @@
1
- # Generated by the protocol buffer compiler. DO NOT EDIT!
2
- # sources: pymammotion/proto/common.proto
3
- # plugin: python-betterproto
4
- from dataclasses import dataclass
5
-
6
- import betterproto
7
-
8
-
9
- @dataclass
10
- class CommDataCouple(betterproto.Message):
11
- x: float = betterproto.float_field(1)
12
- y: float = betterproto.float_field(2)