pymammotion 0.4.0a2__py3-none-any.whl → 0.5.51__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.

Potentially problematic release.


This version of pymammotion might be problematic. Click here for more details.

Files changed (133) hide show
  1. pymammotion/__init__.py +5 -4
  2. pymammotion/aliyun/client.py +235 -0
  3. pymammotion/aliyun/cloud_gateway.py +312 -64
  4. pymammotion/aliyun/model/aep_response.py +1 -2
  5. pymammotion/aliyun/model/dev_by_account_response.py +170 -23
  6. pymammotion/aliyun/model/login_by_oauth_response.py +2 -3
  7. pymammotion/aliyun/model/regions_response.py +3 -3
  8. pymammotion/aliyun/model/session_by_authcode_response.py +2 -2
  9. pymammotion/aliyun/model/thing_response.py +12 -0
  10. pymammotion/aliyun/regions.py +62 -0
  11. pymammotion/aliyun/tea/core.py +297 -0
  12. pymammotion/bluetooth/ble.py +7 -9
  13. pymammotion/bluetooth/ble_message.py +10 -14
  14. pymammotion/const.py +3 -0
  15. pymammotion/data/model/__init__.py +1 -2
  16. pymammotion/data/model/device.py +95 -27
  17. pymammotion/data/model/device_config.py +4 -4
  18. pymammotion/data/model/device_info.py +35 -0
  19. pymammotion/data/model/device_limits.py +10 -10
  20. pymammotion/data/model/enums.py +12 -2
  21. pymammotion/data/model/errors.py +12 -0
  22. pymammotion/data/model/events.py +14 -0
  23. pymammotion/data/model/generate_geojson.py +521 -0
  24. pymammotion/data/model/generate_route_information.py +2 -2
  25. pymammotion/data/model/hash_list.py +370 -57
  26. pymammotion/data/model/location.py +4 -4
  27. pymammotion/data/model/mowing_modes.py +17 -1
  28. pymammotion/data/model/raw_data.py +2 -10
  29. pymammotion/data/model/region_data.py +10 -11
  30. pymammotion/data/model/report_info.py +31 -5
  31. pymammotion/data/model/work.py +27 -0
  32. pymammotion/data/mower_state_manager.py +316 -0
  33. pymammotion/data/mqtt/event.py +73 -28
  34. pymammotion/data/mqtt/mammotion_properties.py +257 -0
  35. pymammotion/data/mqtt/properties.py +93 -78
  36. pymammotion/data/mqtt/status.py +18 -17
  37. pymammotion/event/event.py +27 -6
  38. pymammotion/homeassistant/__init__.py +3 -0
  39. pymammotion/homeassistant/mower_api.py +484 -0
  40. pymammotion/homeassistant/rtk_api.py +54 -0
  41. pymammotion/http/encryption.py +5 -6
  42. pymammotion/http/http.py +574 -28
  43. pymammotion/http/model/__init__.py +0 -0
  44. pymammotion/{aliyun/model/stream_subscription_response.py → http/model/camera_stream.py} +14 -2
  45. pymammotion/http/model/http.py +129 -4
  46. pymammotion/http/model/response_factory.py +61 -0
  47. pymammotion/http/model/rtk.py +16 -0
  48. pymammotion/mammotion/commands/abstract_message.py +7 -5
  49. pymammotion/mammotion/commands/mammotion_command.py +30 -1
  50. pymammotion/mammotion/commands/messages/basestation.py +43 -0
  51. pymammotion/mammotion/commands/messages/driver.py +61 -29
  52. pymammotion/mammotion/commands/messages/media.py +68 -15
  53. pymammotion/mammotion/commands/messages/navigation.py +61 -25
  54. pymammotion/mammotion/commands/messages/network.py +17 -23
  55. pymammotion/mammotion/commands/messages/ota.py +18 -18
  56. pymammotion/mammotion/commands/messages/system.py +32 -49
  57. pymammotion/mammotion/commands/messages/video.py +15 -16
  58. pymammotion/mammotion/devices/__init__.py +27 -3
  59. pymammotion/mammotion/devices/base.py +40 -131
  60. pymammotion/mammotion/devices/mammotion.py +436 -201
  61. pymammotion/mammotion/devices/mammotion_bluetooth.py +57 -47
  62. pymammotion/mammotion/devices/mammotion_cloud.py +134 -105
  63. pymammotion/mammotion/devices/mammotion_mower_ble.py +49 -0
  64. pymammotion/mammotion/devices/mammotion_mower_cloud.py +39 -0
  65. pymammotion/mammotion/devices/managers/managers.py +81 -0
  66. pymammotion/mammotion/devices/mower_device.py +124 -0
  67. pymammotion/mammotion/devices/mower_manager.py +107 -0
  68. pymammotion/mammotion/devices/rtk_ble.py +89 -0
  69. pymammotion/mammotion/devices/rtk_cloud.py +113 -0
  70. pymammotion/mammotion/devices/rtk_device.py +50 -0
  71. pymammotion/mammotion/devices/rtk_manager.py +122 -0
  72. pymammotion/mqtt/__init__.py +2 -1
  73. pymammotion/mqtt/aliyun_mqtt.py +232 -0
  74. pymammotion/mqtt/linkkit/__init__.py +5 -0
  75. pymammotion/mqtt/linkkit/h2client.py +585 -0
  76. pymammotion/mqtt/linkkit/linkkit.py +3023 -0
  77. pymammotion/mqtt/mammotion_mqtt.py +176 -169
  78. pymammotion/mqtt/mqtt_models.py +66 -0
  79. pymammotion/proto/__init__.py +4839 -4
  80. pymammotion/proto/basestation.proto +8 -0
  81. pymammotion/proto/basestation_pb2.py +11 -9
  82. pymammotion/proto/basestation_pb2.pyi +16 -2
  83. pymammotion/proto/dev_net.proto +79 -55
  84. pymammotion/proto/dev_net_pb2.py +60 -56
  85. pymammotion/proto/dev_net_pb2.pyi +49 -6
  86. pymammotion/proto/luba_msg.proto +2 -1
  87. pymammotion/proto/luba_msg_pb2.py +6 -6
  88. pymammotion/proto/luba_msg_pb2.pyi +1 -0
  89. pymammotion/proto/luba_mul.proto +62 -1
  90. pymammotion/proto/luba_mul_pb2.py +38 -22
  91. pymammotion/proto/luba_mul_pb2.pyi +94 -7
  92. pymammotion/proto/mctrl_driver.proto +44 -4
  93. pymammotion/proto/mctrl_driver_pb2.py +26 -14
  94. pymammotion/proto/mctrl_driver_pb2.pyi +66 -11
  95. pymammotion/proto/mctrl_nav.proto +93 -52
  96. pymammotion/proto/mctrl_nav_pb2.py +75 -67
  97. pymammotion/proto/mctrl_nav_pb2.pyi +142 -56
  98. pymammotion/proto/mctrl_ota.proto +40 -2
  99. pymammotion/proto/mctrl_ota_pb2.py +23 -13
  100. pymammotion/proto/mctrl_ota_pb2.pyi +67 -4
  101. pymammotion/proto/mctrl_pept.proto +8 -3
  102. pymammotion/proto/mctrl_pept_pb2.py +8 -6
  103. pymammotion/proto/mctrl_pept_pb2.pyi +14 -6
  104. pymammotion/proto/mctrl_sys.proto +325 -86
  105. pymammotion/proto/mctrl_sys_pb2.py +162 -98
  106. pymammotion/proto/mctrl_sys_pb2.pyi +451 -25
  107. pymammotion/proto/message_pool.py +3 -0
  108. pymammotion/proto/py.typed +0 -0
  109. pymammotion/utility/constant/device_constant.py +29 -5
  110. pymammotion/utility/datatype_converter.py +13 -12
  111. pymammotion/utility/device_config.py +522 -130
  112. pymammotion/utility/device_type.py +218 -21
  113. pymammotion/utility/map.py +238 -51
  114. pymammotion/utility/mur_mur_hash.py +159 -0
  115. {pymammotion-0.4.0a2.dist-info → pymammotion-0.5.51.dist-info}/METADATA +26 -31
  116. pymammotion-0.5.51.dist-info/RECORD +152 -0
  117. {pymammotion-0.4.0a2.dist-info → pymammotion-0.5.51.dist-info}/WHEEL +1 -1
  118. pymammotion/aliyun/cloud_service.py +0 -65
  119. pymammotion/data/model/plan.py +0 -58
  120. pymammotion/data/state_manager.py +0 -129
  121. pymammotion/proto/basestation.py +0 -59
  122. pymammotion/proto/common.py +0 -12
  123. pymammotion/proto/dev_net.py +0 -381
  124. pymammotion/proto/luba_msg.py +0 -81
  125. pymammotion/proto/luba_mul.py +0 -76
  126. pymammotion/proto/mctrl_driver.py +0 -100
  127. pymammotion/proto/mctrl_nav.py +0 -664
  128. pymammotion/proto/mctrl_ota.py +0 -48
  129. pymammotion/proto/mctrl_pept.py +0 -41
  130. pymammotion/proto/mctrl_sys.py +0 -574
  131. pymammotion-0.4.0a2.dist-info/RECORD +0 -131
  132. /pymammotion/http/{_init_.py → __init__.py} +0 -0
  133. {pymammotion-0.4.0a2.dist-info → pymammotion-0.5.51.dist-info/licenses}/LICENSE +0 -0
@@ -31,6 +31,7 @@ MSG_ATTR_REPORT: MsgAttr
31
31
  MSG_ATTR_REQ: MsgAttr
32
32
  MSG_ATTR_RESP: MsgAttr
33
33
  MSG_CMD_TYPE_APPLICATION: MsgCmdType
34
+ MSG_CMD_TYPE_BASESTATION: MsgCmdType
34
35
  MSG_CMD_TYPE_EMBED_DRIVER: MsgCmdType
35
36
  MSG_CMD_TYPE_EMBED_MIDWARE: MsgCmdType
36
37
  MSG_CMD_TYPE_EMBED_OTA: MsgCmdType
@@ -3,6 +3,19 @@ syntax = "proto3";
3
3
  enum MUL_LANGUAGE {
4
4
  ENGLISH = 0;
5
5
  GERMAN = 1;
6
+ FRENCH = 2;
7
+ ITALIAN = 3;
8
+ SPANISH = 4;
9
+ PORTUGUESE = 5;
10
+ DUTCH = 6;
11
+ SWEDISH = 7;
12
+ NONE_LAN = 8;
13
+ }
14
+
15
+ enum MUL_SEX {
16
+ MAN = 0;
17
+ WOMAN = 1;
18
+ NONE_SEX = 2;
6
19
  }
7
20
 
8
21
  enum MUL_CAMERA_POSITION {
@@ -18,7 +31,6 @@ enum MUL_VIDEO_ERROR_CODE {
18
31
  NETWORK_NOT_AVAILABLE = 2;
19
32
  CREATE_CHANNEL_FAILED = 3;
20
33
  PARAM_INVAILD = 4;
21
- CELLULAR_RESTRICTION = 5;
22
34
  }
23
35
 
24
36
  enum MUL_WIPER_ERROR_CODE {
@@ -27,10 +39,22 @@ enum MUL_WIPER_ERROR_CODE {
27
39
  NAVIGATION_WORK_FORBID = 2;
28
40
  }
29
41
 
42
+ enum lamp_ctrl_sta {
43
+ power_off = 0;
44
+ power_on = 1;
45
+ power_ctrl_on = 2;
46
+ }
47
+
48
+ enum lamp_manual_ctrl_sta {
49
+ manual_power_off = 0;
50
+ manual_power_on = 1;
51
+ }
52
+
30
53
  message MulSetAudio {
31
54
  oneof AudioCfg_u {
32
55
  int32 at_switch = 1;
33
56
  MUL_LANGUAGE au_language = 2;
57
+ MUL_SEX sex = 3;
34
58
  }
35
59
  }
36
60
 
@@ -46,16 +70,48 @@ message MulSetVideoAck {
46
70
  message MulAudioCfg {
47
71
  int32 au_switch = 1;
48
72
  MUL_LANGUAGE au_language = 2;
73
+ MUL_SEX sex = 3;
49
74
  }
50
75
 
51
76
  message MulSetWiper {
52
77
  int32 round = 1;
53
78
  }
54
79
 
80
+ message GetHeadlamp {
81
+ int32 get_ids = 1;
82
+ }
83
+
84
+
85
+ message SetHeadlamp {
86
+ int32 set_ids = 1;
87
+ int32 lamp_power_ctrl = 2;
88
+ lamp_ctrl_sta lamp_ctrl = 3;
89
+ bool ctrl_lamp_bright = 4;
90
+ int32 lamp_bright = 5;
91
+ lamp_manual_ctrl_sta lamp_manual_ctrl = 6;
92
+ }
93
+
94
+ message Setlamprsp {
95
+ int32 set_ids = 1;
96
+ int32 result = 2;
97
+ }
98
+
99
+ message Getlamprsp {
100
+ int32 get_ids = 1;
101
+ int32 result = 2;
102
+ lamp_ctrl_sta lamp_ctrl = 3;
103
+ int32 lamp_bright = 4;
104
+ lamp_manual_ctrl_sta lamp_manual_ctrl = 5;
105
+ }
106
+
55
107
  message MulSetWiperAck {
56
108
  MUL_WIPER_ERROR_CODE error_code = 1;
57
109
  }
58
110
 
111
+ message MulSetEncode {
112
+ bool encode = 1;
113
+ }
114
+
59
115
  message SocMul {
60
116
  oneof SubMul {
61
117
  MulSetAudio set_audio = 1;
@@ -64,5 +120,10 @@ message SocMul {
64
120
  MulSetVideoAck set_video_ack = 4;
65
121
  MulSetWiper set_wiper = 5;
66
122
  MulSetWiperAck set_wiper_ack = 6;
123
+ GetHeadlamp get_lamp = 7;
124
+ SetHeadlamp set_lamp = 8;
125
+ Setlamprsp set_lamp_rsp = 9;
126
+ Getlamprsp get_lamp_rsp = 10;
127
+ MulSetEncode req_encode = 11;
67
128
  }
68
129
  }
@@ -13,33 +13,49 @@ _sym_db = _symbol_database.Default()
13
13
 
14
14
 
15
15
 
16
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n pymammotion/proto/luba_mul.proto\"V\n\x0bMulSetAudio\x12\x13\n\tat_switch\x18\x01 \x01(\x05H\x00\x12$\n\x0b\x61u_language\x18\x02 \x01(\x0e\x32\r.MUL_LANGUAGEH\x00\x42\x0c\n\nAudioCfg_u\"H\n\x0bMulSetVideo\x12&\n\x08position\x18\x01 \x01(\x0e\x32\x14.MUL_CAMERA_POSITION\x12\x11\n\tvi_switch\x18\x02 \x01(\x05\";\n\x0eMulSetVideoAck\x12)\n\nerror_code\x18\x01 \x01(\x0e\x32\x15.MUL_VIDEO_ERROR_CODE\"D\n\x0bMulAudioCfg\x12\x11\n\tau_switch\x18\x01 \x01(\x05\x12\"\n\x0b\x61u_language\x18\x02 \x01(\x0e\x32\r.MUL_LANGUAGE\"\x1c\n\x0bMulSetWiper\x12\r\n\x05round\x18\x01 \x01(\x05\";\n\x0eMulSetWiperAck\x12)\n\nerror_code\x18\x01 \x01(\x0e\x32\x15.MUL_WIPER_ERROR_CODE\"\xf2\x01\n\x06SocMul\x12!\n\tset_audio\x18\x01 \x01(\x0b\x32\x0c.MulSetAudioH\x00\x12!\n\taudio_cfg\x18\x02 \x01(\x0b\x32\x0c.MulAudioCfgH\x00\x12!\n\tset_video\x18\x03 \x01(\x0b\x32\x0c.MulSetVideoH\x00\x12(\n\rset_video_ack\x18\x04 \x01(\x0b\x32\x0f.MulSetVideoAckH\x00\x12!\n\tset_wiper\x18\x05 \x01(\x0b\x32\x0c.MulSetWiperH\x00\x12(\n\rset_wiper_ack\x18\x06 \x01(\x0b\x32\x0f.MulSetWiperAckH\x00\x42\x08\n\x06SubMul*\'\n\x0cMUL_LANGUAGE\x12\x0b\n\x07\x45NGLISH\x10\x00\x12\n\n\x06GERMAN\x10\x01*=\n\x13MUL_CAMERA_POSITION\x12\x08\n\x04LEFT\x10\x00\x12\t\n\x05RIGHT\x10\x01\x12\x08\n\x04REAR\x10\x02\x12\x07\n\x03\x41LL\x10\x03*\x9d\x01\n\x14MUL_VIDEO_ERROR_CODE\x12\x0b\n\x07SUCCESS\x10\x00\x12\x15\n\x11\x41\x43TIVATION_FAILED\x10\x01\x12\x19\n\x15NETWORK_NOT_AVAILABLE\x10\x02\x12\x19\n\x15\x43REATE_CHANNEL_FAILED\x10\x03\x12\x11\n\rPARAM_INVAILD\x10\x04\x12\x18\n\x14\x43\x45LLULAR_RESTRICTION\x10\x05*Q\n\x14MUL_WIPER_ERROR_CODE\x12\x0f\n\x0bSET_SUCCESS\x10\x00\x12\x0c\n\x08HW_ERROR\x10\x01\x12\x1a\n\x16NAVIGATION_WORK_FORBID\x10\x02\x62\x06proto3')
16
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n pymammotion/proto/luba_mul.proto\"o\n\x0bMulSetAudio\x12\x13\n\tat_switch\x18\x01 \x01(\x05H\x00\x12$\n\x0b\x61u_language\x18\x02 \x01(\x0e\x32\r.MUL_LANGUAGEH\x00\x12\x17\n\x03sex\x18\x03 \x01(\x0e\x32\x08.MUL_SEXH\x00\x42\x0c\n\nAudioCfg_u\"H\n\x0bMulSetVideo\x12&\n\x08position\x18\x01 \x01(\x0e\x32\x14.MUL_CAMERA_POSITION\x12\x11\n\tvi_switch\x18\x02 \x01(\x05\";\n\x0eMulSetVideoAck\x12)\n\nerror_code\x18\x01 \x01(\x0e\x32\x15.MUL_VIDEO_ERROR_CODE\"[\n\x0bMulAudioCfg\x12\x11\n\tau_switch\x18\x01 \x01(\x05\x12\"\n\x0b\x61u_language\x18\x02 \x01(\x0e\x32\r.MUL_LANGUAGE\x12\x15\n\x03sex\x18\x03 \x01(\x0e\x32\x08.MUL_SEX\"\x1c\n\x0bMulSetWiper\x12\r\n\x05round\x18\x01 \x01(\x05\"\x1e\n\x0bGetHeadlamp\x12\x0f\n\x07get_ids\x18\x01 \x01(\x05\"\xba\x01\n\x0bSetHeadlamp\x12\x0f\n\x07set_ids\x18\x01 \x01(\x05\x12\x17\n\x0flamp_power_ctrl\x18\x02 \x01(\x05\x12!\n\tlamp_ctrl\x18\x03 \x01(\x0e\x32\x0e.lamp_ctrl_sta\x12\x18\n\x10\x63trl_lamp_bright\x18\x04 \x01(\x08\x12\x13\n\x0blamp_bright\x18\x05 \x01(\x05\x12/\n\x10lamp_manual_ctrl\x18\x06 \x01(\x0e\x32\x15.lamp_manual_ctrl_sta\"-\n\nSetlamprsp\x12\x0f\n\x07set_ids\x18\x01 \x01(\x05\x12\x0e\n\x06result\x18\x02 \x01(\x05\"\x96\x01\n\nGetlamprsp\x12\x0f\n\x07get_ids\x18\x01 \x01(\x05\x12\x0e\n\x06result\x18\x02 \x01(\x05\x12!\n\tlamp_ctrl\x18\x03 \x01(\x0e\x32\x0e.lamp_ctrl_sta\x12\x13\n\x0blamp_bright\x18\x04 \x01(\x05\x12/\n\x10lamp_manual_ctrl\x18\x05 \x01(\x0e\x32\x15.lamp_manual_ctrl_sta\";\n\x0eMulSetWiperAck\x12)\n\nerror_code\x18\x01 \x01(\x0e\x32\x15.MUL_WIPER_ERROR_CODE\"\x1e\n\x0cMulSetEncode\x12\x0e\n\x06\x65ncode\x18\x01 \x01(\x08\"\xa5\x03\n\x06SocMul\x12!\n\tset_audio\x18\x01 \x01(\x0b\x32\x0c.MulSetAudioH\x00\x12!\n\taudio_cfg\x18\x02 \x01(\x0b\x32\x0c.MulAudioCfgH\x00\x12!\n\tset_video\x18\x03 \x01(\x0b\x32\x0c.MulSetVideoH\x00\x12(\n\rset_video_ack\x18\x04 \x01(\x0b\x32\x0f.MulSetVideoAckH\x00\x12!\n\tset_wiper\x18\x05 \x01(\x0b\x32\x0c.MulSetWiperH\x00\x12(\n\rset_wiper_ack\x18\x06 \x01(\x0b\x32\x0f.MulSetWiperAckH\x00\x12 \n\x08get_lamp\x18\x07 \x01(\x0b\x32\x0c.GetHeadlampH\x00\x12 \n\x08set_lamp\x18\x08 \x01(\x0b\x32\x0c.SetHeadlampH\x00\x12#\n\x0cset_lamp_rsp\x18\t \x01(\x0b\x32\x0b.SetlamprspH\x00\x12#\n\x0cget_lamp_rsp\x18\n \x01(\x0b\x32\x0b.GetlamprspH\x00\x12#\n\nreq_encode\x18\x0b \x01(\x0b\x32\r.MulSetEncodeH\x00\x42\x08\n\x06SubMul*\x83\x01\n\x0cMUL_LANGUAGE\x12\x0b\n\x07\x45NGLISH\x10\x00\x12\n\n\x06GERMAN\x10\x01\x12\n\n\x06\x46RENCH\x10\x02\x12\x0b\n\x07ITALIAN\x10\x03\x12\x0b\n\x07SPANISH\x10\x04\x12\x0e\n\nPORTUGUESE\x10\x05\x12\t\n\x05\x44UTCH\x10\x06\x12\x0b\n\x07SWEDISH\x10\x07\x12\x0c\n\x08NONE_LAN\x10\x08*+\n\x07MUL_SEX\x12\x07\n\x03MAN\x10\x00\x12\t\n\x05WOMAN\x10\x01\x12\x0c\n\x08NONE_SEX\x10\x02*=\n\x13MUL_CAMERA_POSITION\x12\x08\n\x04LEFT\x10\x00\x12\t\n\x05RIGHT\x10\x01\x12\x08\n\x04REAR\x10\x02\x12\x07\n\x03\x41LL\x10\x03*\x83\x01\n\x14MUL_VIDEO_ERROR_CODE\x12\x0b\n\x07SUCCESS\x10\x00\x12\x15\n\x11\x41\x43TIVATION_FAILED\x10\x01\x12\x19\n\x15NETWORK_NOT_AVAILABLE\x10\x02\x12\x19\n\x15\x43REATE_CHANNEL_FAILED\x10\x03\x12\x11\n\rPARAM_INVAILD\x10\x04*Q\n\x14MUL_WIPER_ERROR_CODE\x12\x0f\n\x0bSET_SUCCESS\x10\x00\x12\x0c\n\x08HW_ERROR\x10\x01\x12\x1a\n\x16NAVIGATION_WORK_FORBID\x10\x02*?\n\rlamp_ctrl_sta\x12\r\n\tpower_off\x10\x00\x12\x0c\n\x08power_on\x10\x01\x12\x11\n\rpower_ctrl_on\x10\x02*A\n\x14lamp_manual_ctrl_sta\x12\x14\n\x10manual_power_off\x10\x00\x12\x13\n\x0fmanual_power_on\x10\x01\x62\x06proto3')
17
17
 
18
18
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
19
19
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'pymammotion.proto.luba_mul_pb2', globals())
20
20
  if _descriptor._USE_C_DESCRIPTORS == False:
21
21
 
22
22
  DESCRIPTOR._options = None
23
- _MUL_LANGUAGE._serialized_start=665
24
- _MUL_LANGUAGE._serialized_end=704
25
- _MUL_CAMERA_POSITION._serialized_start=706
26
- _MUL_CAMERA_POSITION._serialized_end=767
27
- _MUL_VIDEO_ERROR_CODE._serialized_start=770
28
- _MUL_VIDEO_ERROR_CODE._serialized_end=927
29
- _MUL_WIPER_ERROR_CODE._serialized_start=929
30
- _MUL_WIPER_ERROR_CODE._serialized_end=1010
23
+ _MUL_LANGUAGE._serialized_start=1346
24
+ _MUL_LANGUAGE._serialized_end=1477
25
+ _MUL_SEX._serialized_start=1479
26
+ _MUL_SEX._serialized_end=1522
27
+ _MUL_CAMERA_POSITION._serialized_start=1524
28
+ _MUL_CAMERA_POSITION._serialized_end=1585
29
+ _MUL_VIDEO_ERROR_CODE._serialized_start=1588
30
+ _MUL_VIDEO_ERROR_CODE._serialized_end=1719
31
+ _MUL_WIPER_ERROR_CODE._serialized_start=1721
32
+ _MUL_WIPER_ERROR_CODE._serialized_end=1802
33
+ _LAMP_CTRL_STA._serialized_start=1804
34
+ _LAMP_CTRL_STA._serialized_end=1867
35
+ _LAMP_MANUAL_CTRL_STA._serialized_start=1869
36
+ _LAMP_MANUAL_CTRL_STA._serialized_end=1934
31
37
  _MULSETAUDIO._serialized_start=36
32
- _MULSETAUDIO._serialized_end=122
33
- _MULSETVIDEO._serialized_start=124
34
- _MULSETVIDEO._serialized_end=196
35
- _MULSETVIDEOACK._serialized_start=198
36
- _MULSETVIDEOACK._serialized_end=257
37
- _MULAUDIOCFG._serialized_start=259
38
- _MULAUDIOCFG._serialized_end=327
39
- _MULSETWIPER._serialized_start=329
40
- _MULSETWIPER._serialized_end=357
41
- _MULSETWIPERACK._serialized_start=359
42
- _MULSETWIPERACK._serialized_end=418
43
- _SOCMUL._serialized_start=421
44
- _SOCMUL._serialized_end=663
38
+ _MULSETAUDIO._serialized_end=147
39
+ _MULSETVIDEO._serialized_start=149
40
+ _MULSETVIDEO._serialized_end=221
41
+ _MULSETVIDEOACK._serialized_start=223
42
+ _MULSETVIDEOACK._serialized_end=282
43
+ _MULAUDIOCFG._serialized_start=284
44
+ _MULAUDIOCFG._serialized_end=375
45
+ _MULSETWIPER._serialized_start=377
46
+ _MULSETWIPER._serialized_end=405
47
+ _GETHEADLAMP._serialized_start=407
48
+ _GETHEADLAMP._serialized_end=437
49
+ _SETHEADLAMP._serialized_start=440
50
+ _SETHEADLAMP._serialized_end=626
51
+ _SETLAMPRSP._serialized_start=628
52
+ _SETLAMPRSP._serialized_end=673
53
+ _GETLAMPRSP._serialized_start=676
54
+ _GETLAMPRSP._serialized_end=826
55
+ _MULSETWIPERACK._serialized_start=828
56
+ _MULSETWIPERACK._serialized_end=887
57
+ _MULSETENCODE._serialized_start=889
58
+ _MULSETENCODE._serialized_end=919
59
+ _SOCMUL._serialized_start=922
60
+ _SOCMUL._serialized_end=1343
45
61
  # @@protoc_insertion_point(module_scope)
@@ -5,36 +5,80 @@ from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Opti
5
5
 
6
6
  ACTIVATION_FAILED: MUL_VIDEO_ERROR_CODE
7
7
  ALL: MUL_CAMERA_POSITION
8
- CELLULAR_RESTRICTION: MUL_VIDEO_ERROR_CODE
9
8
  CREATE_CHANNEL_FAILED: MUL_VIDEO_ERROR_CODE
10
9
  DESCRIPTOR: _descriptor.FileDescriptor
10
+ DUTCH: MUL_LANGUAGE
11
11
  ENGLISH: MUL_LANGUAGE
12
+ FRENCH: MUL_LANGUAGE
12
13
  GERMAN: MUL_LANGUAGE
13
14
  HW_ERROR: MUL_WIPER_ERROR_CODE
15
+ ITALIAN: MUL_LANGUAGE
14
16
  LEFT: MUL_CAMERA_POSITION
17
+ MAN: MUL_SEX
15
18
  NAVIGATION_WORK_FORBID: MUL_WIPER_ERROR_CODE
16
19
  NETWORK_NOT_AVAILABLE: MUL_VIDEO_ERROR_CODE
20
+ NONE_LAN: MUL_LANGUAGE
21
+ NONE_SEX: MUL_SEX
17
22
  PARAM_INVAILD: MUL_VIDEO_ERROR_CODE
23
+ PORTUGUESE: MUL_LANGUAGE
18
24
  REAR: MUL_CAMERA_POSITION
19
25
  RIGHT: MUL_CAMERA_POSITION
20
26
  SET_SUCCESS: MUL_WIPER_ERROR_CODE
27
+ SPANISH: MUL_LANGUAGE
21
28
  SUCCESS: MUL_VIDEO_ERROR_CODE
29
+ SWEDISH: MUL_LANGUAGE
30
+ WOMAN: MUL_SEX
31
+ manual_power_off: lamp_manual_ctrl_sta
32
+ manual_power_on: lamp_manual_ctrl_sta
33
+ power_ctrl_on: lamp_ctrl_sta
34
+ power_off: lamp_ctrl_sta
35
+ power_on: lamp_ctrl_sta
36
+
37
+ class GetHeadlamp(_message.Message):
38
+ __slots__ = ["get_ids"]
39
+ GET_IDS_FIELD_NUMBER: _ClassVar[int]
40
+ get_ids: int
41
+ def __init__(self, get_ids: _Optional[int] = ...) -> None: ...
42
+
43
+ class Getlamprsp(_message.Message):
44
+ __slots__ = ["get_ids", "lamp_bright", "lamp_ctrl", "lamp_manual_ctrl", "result"]
45
+ GET_IDS_FIELD_NUMBER: _ClassVar[int]
46
+ LAMP_BRIGHT_FIELD_NUMBER: _ClassVar[int]
47
+ LAMP_CTRL_FIELD_NUMBER: _ClassVar[int]
48
+ LAMP_MANUAL_CTRL_FIELD_NUMBER: _ClassVar[int]
49
+ RESULT_FIELD_NUMBER: _ClassVar[int]
50
+ get_ids: int
51
+ lamp_bright: int
52
+ lamp_ctrl: lamp_ctrl_sta
53
+ lamp_manual_ctrl: lamp_manual_ctrl_sta
54
+ result: int
55
+ def __init__(self, get_ids: _Optional[int] = ..., result: _Optional[int] = ..., lamp_ctrl: _Optional[_Union[lamp_ctrl_sta, str]] = ..., lamp_bright: _Optional[int] = ..., lamp_manual_ctrl: _Optional[_Union[lamp_manual_ctrl_sta, str]] = ...) -> None: ...
22
56
 
23
57
  class MulAudioCfg(_message.Message):
24
- __slots__ = ["au_language", "au_switch"]
58
+ __slots__ = ["au_language", "au_switch", "sex"]
25
59
  AU_LANGUAGE_FIELD_NUMBER: _ClassVar[int]
26
60
  AU_SWITCH_FIELD_NUMBER: _ClassVar[int]
61
+ SEX_FIELD_NUMBER: _ClassVar[int]
27
62
  au_language: MUL_LANGUAGE
28
63
  au_switch: int
29
- def __init__(self, au_switch: _Optional[int] = ..., au_language: _Optional[_Union[MUL_LANGUAGE, str]] = ...) -> None: ...
64
+ sex: MUL_SEX
65
+ def __init__(self, au_switch: _Optional[int] = ..., au_language: _Optional[_Union[MUL_LANGUAGE, str]] = ..., sex: _Optional[_Union[MUL_SEX, str]] = ...) -> None: ...
30
66
 
31
67
  class MulSetAudio(_message.Message):
32
- __slots__ = ["at_switch", "au_language"]
68
+ __slots__ = ["at_switch", "au_language", "sex"]
33
69
  AT_SWITCH_FIELD_NUMBER: _ClassVar[int]
34
70
  AU_LANGUAGE_FIELD_NUMBER: _ClassVar[int]
71
+ SEX_FIELD_NUMBER: _ClassVar[int]
35
72
  at_switch: int
36
73
  au_language: MUL_LANGUAGE
37
- def __init__(self, at_switch: _Optional[int] = ..., au_language: _Optional[_Union[MUL_LANGUAGE, str]] = ...) -> None: ...
74
+ sex: MUL_SEX
75
+ def __init__(self, at_switch: _Optional[int] = ..., au_language: _Optional[_Union[MUL_LANGUAGE, str]] = ..., sex: _Optional[_Union[MUL_SEX, str]] = ...) -> None: ...
76
+
77
+ class MulSetEncode(_message.Message):
78
+ __slots__ = ["encode"]
79
+ ENCODE_FIELD_NUMBER: _ClassVar[int]
80
+ encode: bool
81
+ def __init__(self, encode: bool = ...) -> None: ...
38
82
 
39
83
  class MulSetVideo(_message.Message):
40
84
  __slots__ = ["position", "vi_switch"]
@@ -62,25 +106,62 @@ class MulSetWiperAck(_message.Message):
62
106
  error_code: MUL_WIPER_ERROR_CODE
63
107
  def __init__(self, error_code: _Optional[_Union[MUL_WIPER_ERROR_CODE, str]] = ...) -> None: ...
64
108
 
109
+ class SetHeadlamp(_message.Message):
110
+ __slots__ = ["ctrl_lamp_bright", "lamp_bright", "lamp_ctrl", "lamp_manual_ctrl", "lamp_power_ctrl", "set_ids"]
111
+ CTRL_LAMP_BRIGHT_FIELD_NUMBER: _ClassVar[int]
112
+ LAMP_BRIGHT_FIELD_NUMBER: _ClassVar[int]
113
+ LAMP_CTRL_FIELD_NUMBER: _ClassVar[int]
114
+ LAMP_MANUAL_CTRL_FIELD_NUMBER: _ClassVar[int]
115
+ LAMP_POWER_CTRL_FIELD_NUMBER: _ClassVar[int]
116
+ SET_IDS_FIELD_NUMBER: _ClassVar[int]
117
+ ctrl_lamp_bright: bool
118
+ lamp_bright: int
119
+ lamp_ctrl: lamp_ctrl_sta
120
+ lamp_manual_ctrl: lamp_manual_ctrl_sta
121
+ lamp_power_ctrl: int
122
+ set_ids: int
123
+ def __init__(self, set_ids: _Optional[int] = ..., lamp_power_ctrl: _Optional[int] = ..., lamp_ctrl: _Optional[_Union[lamp_ctrl_sta, str]] = ..., ctrl_lamp_bright: bool = ..., lamp_bright: _Optional[int] = ..., lamp_manual_ctrl: _Optional[_Union[lamp_manual_ctrl_sta, str]] = ...) -> None: ...
124
+
125
+ class Setlamprsp(_message.Message):
126
+ __slots__ = ["result", "set_ids"]
127
+ RESULT_FIELD_NUMBER: _ClassVar[int]
128
+ SET_IDS_FIELD_NUMBER: _ClassVar[int]
129
+ result: int
130
+ set_ids: int
131
+ def __init__(self, set_ids: _Optional[int] = ..., result: _Optional[int] = ...) -> None: ...
132
+
65
133
  class SocMul(_message.Message):
66
- __slots__ = ["audio_cfg", "set_audio", "set_video", "set_video_ack", "set_wiper", "set_wiper_ack"]
134
+ __slots__ = ["audio_cfg", "get_lamp", "get_lamp_rsp", "req_encode", "set_audio", "set_lamp", "set_lamp_rsp", "set_video", "set_video_ack", "set_wiper", "set_wiper_ack"]
67
135
  AUDIO_CFG_FIELD_NUMBER: _ClassVar[int]
136
+ GET_LAMP_FIELD_NUMBER: _ClassVar[int]
137
+ GET_LAMP_RSP_FIELD_NUMBER: _ClassVar[int]
138
+ REQ_ENCODE_FIELD_NUMBER: _ClassVar[int]
68
139
  SET_AUDIO_FIELD_NUMBER: _ClassVar[int]
140
+ SET_LAMP_FIELD_NUMBER: _ClassVar[int]
141
+ SET_LAMP_RSP_FIELD_NUMBER: _ClassVar[int]
69
142
  SET_VIDEO_ACK_FIELD_NUMBER: _ClassVar[int]
70
143
  SET_VIDEO_FIELD_NUMBER: _ClassVar[int]
71
144
  SET_WIPER_ACK_FIELD_NUMBER: _ClassVar[int]
72
145
  SET_WIPER_FIELD_NUMBER: _ClassVar[int]
73
146
  audio_cfg: MulAudioCfg
147
+ get_lamp: GetHeadlamp
148
+ get_lamp_rsp: Getlamprsp
149
+ req_encode: MulSetEncode
74
150
  set_audio: MulSetAudio
151
+ set_lamp: SetHeadlamp
152
+ set_lamp_rsp: Setlamprsp
75
153
  set_video: MulSetVideo
76
154
  set_video_ack: MulSetVideoAck
77
155
  set_wiper: MulSetWiper
78
156
  set_wiper_ack: MulSetWiperAck
79
- def __init__(self, set_audio: _Optional[_Union[MulSetAudio, _Mapping]] = ..., audio_cfg: _Optional[_Union[MulAudioCfg, _Mapping]] = ..., set_video: _Optional[_Union[MulSetVideo, _Mapping]] = ..., set_video_ack: _Optional[_Union[MulSetVideoAck, _Mapping]] = ..., set_wiper: _Optional[_Union[MulSetWiper, _Mapping]] = ..., set_wiper_ack: _Optional[_Union[MulSetWiperAck, _Mapping]] = ...) -> None: ...
157
+ def __init__(self, set_audio: _Optional[_Union[MulSetAudio, _Mapping]] = ..., audio_cfg: _Optional[_Union[MulAudioCfg, _Mapping]] = ..., set_video: _Optional[_Union[MulSetVideo, _Mapping]] = ..., set_video_ack: _Optional[_Union[MulSetVideoAck, _Mapping]] = ..., set_wiper: _Optional[_Union[MulSetWiper, _Mapping]] = ..., set_wiper_ack: _Optional[_Union[MulSetWiperAck, _Mapping]] = ..., get_lamp: _Optional[_Union[GetHeadlamp, _Mapping]] = ..., set_lamp: _Optional[_Union[SetHeadlamp, _Mapping]] = ..., set_lamp_rsp: _Optional[_Union[Setlamprsp, _Mapping]] = ..., get_lamp_rsp: _Optional[_Union[Getlamprsp, _Mapping]] = ..., req_encode: _Optional[_Union[MulSetEncode, _Mapping]] = ...) -> None: ...
80
158
 
81
159
  class MUL_LANGUAGE(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
82
160
  __slots__ = []
83
161
 
162
+ class MUL_SEX(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
163
+ __slots__ = []
164
+
84
165
  class MUL_CAMERA_POSITION(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
85
166
  __slots__ = []
86
167
 
@@ -89,3 +170,9 @@ class MUL_VIDEO_ERROR_CODE(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
89
170
 
90
171
  class MUL_WIPER_ERROR_CODE(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
91
172
  __slots__ = []
173
+
174
+ class lamp_ctrl_sta(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
175
+ __slots__ = []
176
+
177
+ class lamp_manual_ctrl_sta(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
178
+ __slots__ = []
@@ -1,5 +1,25 @@
1
1
  syntax = "proto3";
2
2
 
3
+ enum CutterWorkMode {
4
+ CUTTER_STANDARD = 0;
5
+ CUTTER_ECONOMIC = 1;
6
+ CUTTER_PERFORMANCE = 2;
7
+ }
8
+
9
+ enum CollectMotorState {
10
+ COLLECT_CLOSE = 0;
11
+ COLLECT_OPEN = 1;
12
+ COLLECT_STUCK = 2;
13
+ COLLECT_ABNORMAL = 3;
14
+ }
15
+
16
+ enum UnloadMotorState {
17
+ UNLOAD_CLOSE = 0;
18
+ UNLOAD_OPEN = 1;
19
+ UNLOAD_STOP = 2;
20
+ UNLOAD_RUNNING = 3;
21
+ }
22
+
3
23
  message DrvMotionCtrl {
4
24
  int32 setLinearSpeed = 1;
5
25
  int32 setAngularSpeed = 2;
@@ -20,15 +40,21 @@ message DrvKnifeStatus {
20
40
 
21
41
  message DrvKnifeChangeReport {
22
42
  int32 is_start = 1;
23
- int32 start_high = 2;
24
- int32 end_high = 3;
43
+ int32 start_height = 2;
44
+ int32 end_height = 3;
45
+ int32 cur_height = 4;
46
+ }
47
+
48
+ message DrvCollectCtrlByHand {
49
+ int32 collect_ctrl = 1;
50
+ int32 unload_ctrl = 2;
25
51
  }
26
52
 
27
53
  message DrvMowCtrlByHand {
28
54
  int32 main_ctrl = 1;
29
55
  int32 cut_knife_ctrl = 2;
30
56
  int32 cut_knife_height = 3;
31
- float max_run_Speed = 4;
57
+ float max_run_speed = 4;
32
58
  }
33
59
 
34
60
  message rtk_cfg_req_t {
@@ -50,6 +76,17 @@ message rtk_sys_mask_query_ack_t {
50
76
  repeated uint32 system_mask_bits = 2;
51
77
  }
52
78
 
79
+ message AppSetCutterWorkMode {
80
+ int32 CutterMode = 1;
81
+ int32 SetResult = 2;
82
+ }
83
+
84
+ message AppGetCutterWorkMode {
85
+ int32 current_cutter_mode = 1;
86
+ int32 current_cutter_rpm = 2;
87
+ int32 QueryResult = 3;
88
+ }
89
+
53
90
  message MctlDriver {
54
91
  oneof SubDrvMsg {
55
92
  DrvMotionCtrl todev_devmotion_ctrl = 1;
@@ -63,5 +100,8 @@ message MctlDriver {
63
100
  rtk_sys_mask_query_t rtk_sys_mask_query = 9;
64
101
  rtk_sys_mask_query_ack_t rtk_sys_mask_query_ack = 10;
65
102
  DrvKnifeChangeReport toapp_knife_status_change = 11;
103
+ DrvCollectCtrlByHand collect_ctrl_by_hand = 12;
104
+ AppSetCutterWorkMode cutter_mode_ctrl_by_hand = 13;
105
+ AppGetCutterWorkMode current_cutter_mode = 14;
66
106
  }
67
- }
107
+ }
@@ -13,13 +13,19 @@ _sym_db = _symbol_database.Default()
13
13
 
14
14
 
15
15
 
16
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$pymammotion/proto/mctrl_driver.proto\"@\n\rDrvMotionCtrl\x12\x16\n\x0esetLinearSpeed\x18\x01 \x01(\x05\x12\x17\n\x0fsetAngularSpeed\x18\x02 \x01(\x05\"%\n\x0e\x44rvKnifeHeight\x12\x13\n\x0bknifeHeight\x18\x01 \x01(\x05\"\'\n\nDrvSrSpeed\x12\n\n\x02rw\x18\x01 \x01(\x05\x12\r\n\x05speed\x18\x02 \x01(\x02\"&\n\x0e\x44rvKnifeStatus\x12\x14\n\x0cknife_status\x18\x01 \x01(\x05\"N\n\x14\x44rvKnifeChangeReport\x12\x10\n\x08is_start\x18\x01 \x01(\x05\x12\x12\n\nstart_high\x18\x02 \x01(\x05\x12\x10\n\x08\x65nd_high\x18\x03 \x01(\x05\"n\n\x10\x44rvMowCtrlByHand\x12\x11\n\tmain_ctrl\x18\x01 \x01(\x05\x12\x16\n\x0e\x63ut_knife_ctrl\x18\x02 \x01(\x05\x12\x18\n\x10\x63ut_knife_height\x18\x03 \x01(\x05\x12\x15\n\rmax_run_Speed\x18\x04 \x01(\x02\"4\n\rrtk_cfg_req_t\x12\x12\n\ncmd_length\x18\x01 \x01(\x05\x12\x0f\n\x07\x63md_req\x18\x02 \x01(\t\"=\n\x11rtk_cfg_req_ack_t\x12\x12\n\ncmd_length\x18\x01 \x01(\x05\x12\x14\n\x0c\x63md_response\x18\x02 \x01(\t\"*\n\x14rtk_sys_mask_query_t\x12\x12\n\nsat_system\x18\x01 \x01(\r\"H\n\x18rtk_sys_mask_query_ack_t\x12\x12\n\nsat_system\x18\x01 \x01(\r\x12\x18\n\x10system_mask_bits\x18\x02 \x03(\r\"\xc3\x04\n\nMctlDriver\x12.\n\x14todev_devmotion_ctrl\x18\x01 \x01(\x0b\x32\x0e.DrvMotionCtrlH\x00\x12\x31\n\x16todev_knife_height_set\x18\x02 \x01(\x0b\x32\x0f.DrvKnifeHeightH\x00\x12,\n\x15\x62idire_speed_read_set\x18\x03 \x01(\x0b\x32\x0b.DrvSrSpeedH\x00\x12\x35\n\x1a\x62idire_knife_height_report\x18\x04 \x01(\x0b\x32\x0f.DrvKnifeHeightH\x00\x12-\n\x12toapp_knife_status\x18\x05 \x01(\x0b\x32\x0f.DrvKnifeStatusH\x00\x12-\n\x10mow_ctrl_by_hand\x18\x06 \x01(\x0b\x32\x11.DrvMowCtrlByHandH\x00\x12%\n\x0brtk_cfg_req\x18\x07 \x01(\x0b\x32\x0e.rtk_cfg_req_tH\x00\x12-\n\x0frtk_cfg_req_ack\x18\x08 \x01(\x0b\x32\x12.rtk_cfg_req_ack_tH\x00\x12\x33\n\x12rtk_sys_mask_query\x18\t \x01(\x0b\x32\x15.rtk_sys_mask_query_tH\x00\x12;\n\x16rtk_sys_mask_query_ack\x18\n \x01(\x0b\x32\x19.rtk_sys_mask_query_ack_tH\x00\x12:\n\x19toapp_knife_status_change\x18\x0b \x01(\x0b\x32\x15.DrvKnifeChangeReportH\x00\x42\x0b\n\tSubDrvMsgb\x06proto3')
16
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$pymammotion/proto/mctrl_driver.proto\"@\n\rDrvMotionCtrl\x12\x16\n\x0esetLinearSpeed\x18\x01 \x01(\x05\x12\x17\n\x0fsetAngularSpeed\x18\x02 \x01(\x05\"%\n\x0e\x44rvKnifeHeight\x12\x13\n\x0bknifeHeight\x18\x01 \x01(\x05\"\'\n\nDrvSrSpeed\x12\n\n\x02rw\x18\x01 \x01(\x05\x12\r\n\x05speed\x18\x02 \x01(\x02\"&\n\x0e\x44rvKnifeStatus\x12\x14\n\x0cknife_status\x18\x01 \x01(\x05\"f\n\x14\x44rvKnifeChangeReport\x12\x10\n\x08is_start\x18\x01 \x01(\x05\x12\x14\n\x0cstart_height\x18\x02 \x01(\x05\x12\x12\n\nend_height\x18\x03 \x01(\x05\x12\x12\n\ncur_height\x18\x04 \x01(\x05\"A\n\x14\x44rvCollectCtrlByHand\x12\x14\n\x0c\x63ollect_ctrl\x18\x01 \x01(\x05\x12\x13\n\x0bunload_ctrl\x18\x02 \x01(\x05\"n\n\x10\x44rvMowCtrlByHand\x12\x11\n\tmain_ctrl\x18\x01 \x01(\x05\x12\x16\n\x0e\x63ut_knife_ctrl\x18\x02 \x01(\x05\x12\x18\n\x10\x63ut_knife_height\x18\x03 \x01(\x05\x12\x15\n\rmax_run_speed\x18\x04 \x01(\x02\"4\n\rrtk_cfg_req_t\x12\x12\n\ncmd_length\x18\x01 \x01(\x05\x12\x0f\n\x07\x63md_req\x18\x02 \x01(\t\"=\n\x11rtk_cfg_req_ack_t\x12\x12\n\ncmd_length\x18\x01 \x01(\x05\x12\x14\n\x0c\x63md_response\x18\x02 \x01(\t\"*\n\x14rtk_sys_mask_query_t\x12\x12\n\nsat_system\x18\x01 \x01(\r\"H\n\x18rtk_sys_mask_query_ack_t\x12\x12\n\nsat_system\x18\x01 \x01(\r\x12\x18\n\x10system_mask_bits\x18\x02 \x03(\r\"=\n\x14\x41ppSetCutterWorkMode\x12\x12\n\nCutterMode\x18\x01 \x01(\x05\x12\x11\n\tSetResult\x18\x02 \x01(\x05\"d\n\x14\x41ppGetCutterWorkMode\x12\x1b\n\x13\x63urrent_cutter_mode\x18\x01 \x01(\x05\x12\x1a\n\x12\x63urrent_cutter_rpm\x18\x02 \x01(\x05\x12\x13\n\x0bQueryResult\x18\x03 \x01(\x05\"\xeb\x05\n\nMctlDriver\x12.\n\x14todev_devmotion_ctrl\x18\x01 \x01(\x0b\x32\x0e.DrvMotionCtrlH\x00\x12\x31\n\x16todev_knife_height_set\x18\x02 \x01(\x0b\x32\x0f.DrvKnifeHeightH\x00\x12,\n\x15\x62idire_speed_read_set\x18\x03 \x01(\x0b\x32\x0b.DrvSrSpeedH\x00\x12\x35\n\x1a\x62idire_knife_height_report\x18\x04 \x01(\x0b\x32\x0f.DrvKnifeHeightH\x00\x12-\n\x12toapp_knife_status\x18\x05 \x01(\x0b\x32\x0f.DrvKnifeStatusH\x00\x12-\n\x10mow_ctrl_by_hand\x18\x06 \x01(\x0b\x32\x11.DrvMowCtrlByHandH\x00\x12%\n\x0brtk_cfg_req\x18\x07 \x01(\x0b\x32\x0e.rtk_cfg_req_tH\x00\x12-\n\x0frtk_cfg_req_ack\x18\x08 \x01(\x0b\x32\x12.rtk_cfg_req_ack_tH\x00\x12\x33\n\x12rtk_sys_mask_query\x18\t \x01(\x0b\x32\x15.rtk_sys_mask_query_tH\x00\x12;\n\x16rtk_sys_mask_query_ack\x18\n \x01(\x0b\x32\x19.rtk_sys_mask_query_ack_tH\x00\x12:\n\x19toapp_knife_status_change\x18\x0b \x01(\x0b\x32\x15.DrvKnifeChangeReportH\x00\x12\x35\n\x14\x63ollect_ctrl_by_hand\x18\x0c \x01(\x0b\x32\x15.DrvCollectCtrlByHandH\x00\x12\x39\n\x18\x63utter_mode_ctrl_by_hand\x18\r \x01(\x0b\x32\x15.AppSetCutterWorkModeH\x00\x12\x34\n\x13\x63urrent_cutter_mode\x18\x0e \x01(\x0b\x32\x15.AppGetCutterWorkModeH\x00\x42\x0b\n\tSubDrvMsg*R\n\x0e\x43utterWorkMode\x12\x13\n\x0f\x43UTTER_STANDARD\x10\x00\x12\x13\n\x0f\x43UTTER_ECONOMIC\x10\x01\x12\x16\n\x12\x43UTTER_PERFORMANCE\x10\x02*a\n\x11\x43ollectMotorState\x12\x11\n\rCOLLECT_CLOSE\x10\x00\x12\x10\n\x0c\x43OLLECT_OPEN\x10\x01\x12\x11\n\rCOLLECT_STUCK\x10\x02\x12\x14\n\x10\x43OLLECT_ABNORMAL\x10\x03*Z\n\x10UnloadMotorState\x12\x10\n\x0cUNLOAD_CLOSE\x10\x00\x12\x0f\n\x0bUNLOAD_OPEN\x10\x01\x12\x0f\n\x0bUNLOAD_STOP\x10\x02\x12\x12\n\x0eUNLOAD_RUNNING\x10\x03\x62\x06proto3')
17
17
 
18
18
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
19
19
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'pymammotion.proto.mctrl_driver_pb2', globals())
20
20
  if _descriptor._USE_C_DESCRIPTORS == False:
21
21
 
22
22
  DESCRIPTOR._options = None
23
+ _CUTTERWORKMODE._serialized_start=1659
24
+ _CUTTERWORKMODE._serialized_end=1741
25
+ _COLLECTMOTORSTATE._serialized_start=1743
26
+ _COLLECTMOTORSTATE._serialized_end=1840
27
+ _UNLOADMOTORSTATE._serialized_start=1842
28
+ _UNLOADMOTORSTATE._serialized_end=1932
23
29
  _DRVMOTIONCTRL._serialized_start=40
24
30
  _DRVMOTIONCTRL._serialized_end=104
25
31
  _DRVKNIFEHEIGHT._serialized_start=106
@@ -29,17 +35,23 @@ if _descriptor._USE_C_DESCRIPTORS == False:
29
35
  _DRVKNIFESTATUS._serialized_start=186
30
36
  _DRVKNIFESTATUS._serialized_end=224
31
37
  _DRVKNIFECHANGEREPORT._serialized_start=226
32
- _DRVKNIFECHANGEREPORT._serialized_end=304
33
- _DRVMOWCTRLBYHAND._serialized_start=306
34
- _DRVMOWCTRLBYHAND._serialized_end=416
35
- _RTK_CFG_REQ_T._serialized_start=418
36
- _RTK_CFG_REQ_T._serialized_end=470
37
- _RTK_CFG_REQ_ACK_T._serialized_start=472
38
- _RTK_CFG_REQ_ACK_T._serialized_end=533
39
- _RTK_SYS_MASK_QUERY_T._serialized_start=535
40
- _RTK_SYS_MASK_QUERY_T._serialized_end=577
41
- _RTK_SYS_MASK_QUERY_ACK_T._serialized_start=579
42
- _RTK_SYS_MASK_QUERY_ACK_T._serialized_end=651
43
- _MCTLDRIVER._serialized_start=654
44
- _MCTLDRIVER._serialized_end=1233
38
+ _DRVKNIFECHANGEREPORT._serialized_end=328
39
+ _DRVCOLLECTCTRLBYHAND._serialized_start=330
40
+ _DRVCOLLECTCTRLBYHAND._serialized_end=395
41
+ _DRVMOWCTRLBYHAND._serialized_start=397
42
+ _DRVMOWCTRLBYHAND._serialized_end=507
43
+ _RTK_CFG_REQ_T._serialized_start=509
44
+ _RTK_CFG_REQ_T._serialized_end=561
45
+ _RTK_CFG_REQ_ACK_T._serialized_start=563
46
+ _RTK_CFG_REQ_ACK_T._serialized_end=624
47
+ _RTK_SYS_MASK_QUERY_T._serialized_start=626
48
+ _RTK_SYS_MASK_QUERY_T._serialized_end=668
49
+ _RTK_SYS_MASK_QUERY_ACK_T._serialized_start=670
50
+ _RTK_SYS_MASK_QUERY_ACK_T._serialized_end=742
51
+ _APPSETCUTTERWORKMODE._serialized_start=744
52
+ _APPSETCUTTERWORKMODE._serialized_end=805
53
+ _APPGETCUTTERWORKMODE._serialized_start=807
54
+ _APPGETCUTTERWORKMODE._serialized_end=907
55
+ _MCTLDRIVER._serialized_start=910
56
+ _MCTLDRIVER._serialized_end=1657
45
57
  # @@protoc_insertion_point(module_scope)
@@ -1,19 +1,59 @@
1
1
  from google.protobuf.internal import containers as _containers
2
+ from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
2
3
  from google.protobuf import descriptor as _descriptor
3
4
  from google.protobuf import message as _message
4
5
  from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
5
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
6
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: ...
7
45
 
8
46
  class DrvKnifeChangeReport(_message.Message):
9
- __slots__ = ["end_high", "is_start", "start_high"]
10
- END_HIGH_FIELD_NUMBER: _ClassVar[int]
47
+ __slots__ = ["cur_height", "end_height", "is_start", "start_height"]
48
+ CUR_HEIGHT_FIELD_NUMBER: _ClassVar[int]
49
+ END_HEIGHT_FIELD_NUMBER: _ClassVar[int]
11
50
  IS_START_FIELD_NUMBER: _ClassVar[int]
12
- START_HIGH_FIELD_NUMBER: _ClassVar[int]
13
- end_high: int
51
+ START_HEIGHT_FIELD_NUMBER: _ClassVar[int]
52
+ cur_height: int
53
+ end_height: int
14
54
  is_start: int
15
- start_high: int
16
- def __init__(self, is_start: _Optional[int] = ..., start_high: _Optional[int] = ..., end_high: _Optional[int] = ...) -> None: ...
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: ...
17
57
 
18
58
  class DrvKnifeHeight(_message.Message):
19
59
  __slots__ = ["knifeHeight"]
@@ -36,7 +76,7 @@ class DrvMotionCtrl(_message.Message):
36
76
  def __init__(self, setLinearSpeed: _Optional[int] = ..., setAngularSpeed: _Optional[int] = ...) -> None: ...
37
77
 
38
78
  class DrvMowCtrlByHand(_message.Message):
39
- __slots__ = ["cut_knife_ctrl", "cut_knife_height", "main_ctrl", "max_run_Speed"]
79
+ __slots__ = ["cut_knife_ctrl", "cut_knife_height", "main_ctrl", "max_run_speed"]
40
80
  CUT_KNIFE_CTRL_FIELD_NUMBER: _ClassVar[int]
41
81
  CUT_KNIFE_HEIGHT_FIELD_NUMBER: _ClassVar[int]
42
82
  MAIN_CTRL_FIELD_NUMBER: _ClassVar[int]
@@ -44,8 +84,8 @@ class DrvMowCtrlByHand(_message.Message):
44
84
  cut_knife_ctrl: int
45
85
  cut_knife_height: int
46
86
  main_ctrl: int
47
- max_run_Speed: float
48
- def __init__(self, main_ctrl: _Optional[int] = ..., cut_knife_ctrl: _Optional[int] = ..., cut_knife_height: _Optional[int] = ..., max_run_Speed: _Optional[float] = ...) -> None: ...
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: ...
49
89
 
50
90
  class DrvSrSpeed(_message.Message):
51
91
  __slots__ = ["rw", "speed"]
@@ -56,9 +96,12 @@ class DrvSrSpeed(_message.Message):
56
96
  def __init__(self, rw: _Optional[int] = ..., speed: _Optional[float] = ...) -> None: ...
57
97
 
58
98
  class MctlDriver(_message.Message):
59
- __slots__ = ["bidire_knife_height_report", "bidire_speed_read_set", "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"]
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"]
60
100
  BIDIRE_KNIFE_HEIGHT_REPORT_FIELD_NUMBER: _ClassVar[int]
61
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]
62
105
  MOW_CTRL_BY_HAND_FIELD_NUMBER: _ClassVar[int]
63
106
  RTK_CFG_REQ_ACK_FIELD_NUMBER: _ClassVar[int]
64
107
  RTK_CFG_REQ_FIELD_NUMBER: _ClassVar[int]
@@ -70,6 +113,9 @@ class MctlDriver(_message.Message):
70
113
  TODEV_KNIFE_HEIGHT_SET_FIELD_NUMBER: _ClassVar[int]
71
114
  bidire_knife_height_report: DrvKnifeHeight
72
115
  bidire_speed_read_set: DrvSrSpeed
116
+ collect_ctrl_by_hand: DrvCollectCtrlByHand
117
+ current_cutter_mode: AppGetCutterWorkMode
118
+ cutter_mode_ctrl_by_hand: AppSetCutterWorkMode
73
119
  mow_ctrl_by_hand: DrvMowCtrlByHand
74
120
  rtk_cfg_req: rtk_cfg_req_t
75
121
  rtk_cfg_req_ack: rtk_cfg_req_ack_t
@@ -79,7 +125,7 @@ class MctlDriver(_message.Message):
79
125
  toapp_knife_status_change: DrvKnifeChangeReport
80
126
  todev_devmotion_ctrl: DrvMotionCtrl
81
127
  todev_knife_height_set: DrvKnifeHeight
82
- 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]] = ...) -> None: ...
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: ...
83
129
 
84
130
  class rtk_cfg_req_ack_t(_message.Message):
85
131
  __slots__ = ["cmd_length", "cmd_response"]
@@ -110,3 +156,12 @@ class rtk_sys_mask_query_t(_message.Message):
110
156
  SAT_SYSTEM_FIELD_NUMBER: _ClassVar[int]
111
157
  sat_system: int
112
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__ = []