Skip to content

Commit 813ec32

Browse files
authored
Merge pull request #649 from mavlink/pr-update-v2
Update to MAVSDK v2.1.0
2 parents cd941eb + cbbc522 commit 813ec32

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+7951
-1267
lines changed

.github/workflows/main.yml

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -143,16 +143,21 @@ jobs:
143143
echo $?
144144
git tag --list
145145
146+
- name: Set up Python
147+
uses: actions/setup-python@v5
148+
with:
149+
python-version: 3.11
150+
146151
- name: Install prerequisites
147152
run: |
148-
python3 -m pip install -r requirements.txt
149-
python3 -m pip install twine wheel
150-
python3 -m pip install --user delocate
153+
python -m pip install -r requirements.txt
154+
python -m pip install twine wheel
155+
python -m pip install --user delocate
151156
152157
- name: Create wheel
153158
run: |
154-
python3 setup.py bdist_wheel
155-
export PATH="$(python3 -m site --user-base)/bin:$PATH"
159+
python setup.py bdist_wheel
160+
export PATH="$(python -m site --user-base)/bin:$PATH"
156161
echo "PATH: $PATH"
157162
delocate-wheel -w wheelhouse -v dist/*.whl
158163
ls wheelhouse/*any.whl | sed -e 'p;s/any/macosx_10_9_x86_64/' | xargs -n2 mv
@@ -195,9 +200,9 @@ jobs:
195200
git tag --list
196201
197202
- name: Set up Python
198-
uses: actions/setup-python@v2
203+
uses: actions/setup-python@v5
199204
with:
200-
python-version: 3.10
205+
python-version: 3.11
201206
architecture: ${{ matrix.arch }}
202207

203208
- name: Install prerequisites

MAVSDK_SERVER_VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
v1.4.17
1+
v2.1.0

mavsdk/action.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,9 @@ class Result(Enum):
127127
UNSUPPORTED
128128
Action not supported
129129
130+
FAILED
131+
Action failed
132+
130133
"""
131134

132135

@@ -143,6 +146,7 @@ class Result(Enum):
143146
NO_VTOL_TRANSITION_SUPPORT = 10
144147
PARAMETER_ERROR = 11
145148
UNSUPPORTED = 12
149+
FAILED = 13
146150

147151
def translate_to_rpc(self):
148152
if self == ActionResult.Result.UNKNOWN:
@@ -171,6 +175,8 @@ def translate_to_rpc(self):
171175
return action_pb2.ActionResult.RESULT_PARAMETER_ERROR
172176
if self == ActionResult.Result.UNSUPPORTED:
173177
return action_pb2.ActionResult.RESULT_UNSUPPORTED
178+
if self == ActionResult.Result.FAILED:
179+
return action_pb2.ActionResult.RESULT_FAILED
174180

175181
@staticmethod
176182
def translate_from_rpc(rpc_enum_value):
@@ -201,6 +207,8 @@ def translate_from_rpc(rpc_enum_value):
201207
return ActionResult.Result.PARAMETER_ERROR
202208
if rpc_enum_value == action_pb2.ActionResult.RESULT_UNSUPPORTED:
203209
return ActionResult.Result.UNSUPPORTED
210+
if rpc_enum_value == action_pb2.ActionResult.RESULT_FAILED:
211+
return ActionResult.Result.FAILED
204212

205213
def __str__(self):
206214
return self.name

mavsdk/action_pb2.py

Lines changed: 7 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

mavsdk/camera.py

Lines changed: 54 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,9 @@ class Result(Enum):
135135
NO_SYSTEM
136136
No system connected
137137
138+
PROTOCOL_UNSUPPORTED
139+
Definition file protocol not supported
140+
138141
"""
139142

140143

@@ -147,6 +150,7 @@ class Result(Enum):
147150
TIMEOUT = 6
148151
WRONG_ARGUMENT = 7
149152
NO_SYSTEM = 8
153+
PROTOCOL_UNSUPPORTED = 9
150154

151155
def translate_to_rpc(self):
152156
if self == CameraResult.Result.UNKNOWN:
@@ -167,6 +171,8 @@ def translate_to_rpc(self):
167171
return camera_pb2.CameraResult.RESULT_WRONG_ARGUMENT
168172
if self == CameraResult.Result.NO_SYSTEM:
169173
return camera_pb2.CameraResult.RESULT_NO_SYSTEM
174+
if self == CameraResult.Result.PROTOCOL_UNSUPPORTED:
175+
return camera_pb2.CameraResult.RESULT_PROTOCOL_UNSUPPORTED
170176

171177
@staticmethod
172178
def translate_from_rpc(rpc_enum_value):
@@ -189,6 +195,8 @@ def translate_from_rpc(rpc_enum_value):
189195
return CameraResult.Result.WRONG_ARGUMENT
190196
if rpc_enum_value == camera_pb2.CameraResult.RESULT_NO_SYSTEM:
191197
return CameraResult.Result.NO_SYSTEM
198+
if rpc_enum_value == camera_pb2.CameraResult.RESULT_PROTOCOL_UNSUPPORTED:
199+
return CameraResult.Result.PROTOCOL_UNSUPPORTED
192200

193201
def __str__(self):
194202
return self.name
@@ -1978,44 +1986,56 @@ async def stop_video(self):
19781986
raise CameraError(result, "stop_video()")
19791987

19801988

1981-
async def start_video_streaming(self):
1989+
async def start_video_streaming(self, stream_id):
19821990
"""
19831991
Start video streaming.
19841992
1993+
Parameters
1994+
----------
1995+
stream_id : int32_t
1996+
video stream id
1997+
19851998
Raises
19861999
------
19872000
CameraError
19882001
If the request fails. The error contains the reason for the failure.
19892002
"""
19902003

19912004
request = camera_pb2.StartVideoStreamingRequest()
2005+
request.stream_id = stream_id
19922006
response = await self._stub.StartVideoStreaming(request)
19932007

19942008

19952009
result = self._extract_result(response)
19962010

19972011
if result.result != CameraResult.Result.SUCCESS:
1998-
raise CameraError(result, "start_video_streaming()")
2012+
raise CameraError(result, "start_video_streaming()", stream_id)
19992013

20002014

2001-
async def stop_video_streaming(self):
2015+
async def stop_video_streaming(self, stream_id):
20022016
"""
20032017
Stop current video streaming.
20042018
2019+
Parameters
2020+
----------
2021+
stream_id : int32_t
2022+
video stream id
2023+
20052024
Raises
20062025
------
20072026
CameraError
20082027
If the request fails. The error contains the reason for the failure.
20092028
"""
20102029

20112030
request = camera_pb2.StopVideoStreamingRequest()
2031+
request.stream_id = stream_id
20122032
response = await self._stub.StopVideoStreaming(request)
20132033

20142034

20152035
result = self._extract_result(response)
20162036

20172037
if result.result != CameraResult.Result.SUCCESS:
2018-
raise CameraError(result, "stop_video_streaming()")
2038+
raise CameraError(result, "stop_video_streaming()", stream_id)
20192039

20202040

20212041
async def set_mode(self, mode):
@@ -2330,26 +2350,32 @@ async def get_setting(self, setting):
23302350
return Setting.translate_from_rpc(response.setting)
23312351

23322352

2333-
async def format_storage(self):
2353+
async def format_storage(self, storage_id):
23342354
"""
23352355
Format storage (e.g. SD card) in camera.
23362356
23372357
This will delete all content of the camera storage!
23382358
2359+
Parameters
2360+
----------
2361+
storage_id : int32_t
2362+
Storage identify to be format
2363+
23392364
Raises
23402365
------
23412366
CameraError
23422367
If the request fails. The error contains the reason for the failure.
23432368
"""
23442369

23452370
request = camera_pb2.FormatStorageRequest()
2371+
request.storage_id = storage_id
23462372
response = await self._stub.FormatStorage(request)
23472373

23482374

23492375
result = self._extract_result(response)
23502376

23512377
if result.result != CameraResult.Result.SUCCESS:
2352-
raise CameraError(result, "format_storage()")
2378+
raise CameraError(result, "format_storage()", storage_id)
23532379

23542380

23552381
async def select_camera(self, camera_id):
@@ -2378,4 +2404,26 @@ async def select_camera(self, camera_id):
23782404

23792405
if result.result != CameraResult.Result.SUCCESS:
23802406
raise CameraError(result, "select_camera()", camera_id)
2407+
2408+
2409+
async def reset_settings(self):
2410+
"""
2411+
Reset all settings in camera.
2412+
2413+
This will reset all camera settings to default value
2414+
2415+
Raises
2416+
------
2417+
CameraError
2418+
If the request fails. The error contains the reason for the failure.
2419+
"""
2420+
2421+
request = camera_pb2.ResetSettingsRequest()
2422+
response = await self._stub.ResetSettings(request)
2423+
2424+
2425+
result = self._extract_result(response)
2426+
2427+
if result.result != CameraResult.Result.SUCCESS:
2428+
raise CameraError(result, "reset_settings()")
23812429

mavsdk/camera_pb2.py

Lines changed: 120 additions & 100 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

mavsdk/camera_pb2_grpc.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,11 @@ def __init__(self, channel):
127127
request_serializer=camera_dot_camera__pb2.SelectCameraRequest.SerializeToString,
128128
response_deserializer=camera_dot_camera__pb2.SelectCameraResponse.FromString,
129129
)
130+
self.ResetSettings = channel.unary_unary(
131+
'/mavsdk.rpc.camera.CameraService/ResetSettings',
132+
request_serializer=camera_dot_camera__pb2.ResetSettingsRequest.SerializeToString,
133+
response_deserializer=camera_dot_camera__pb2.ResetSettingsResponse.FromString,
134+
)
130135

131136

132137
class CameraServiceServicer(object):
@@ -316,6 +321,16 @@ def SelectCamera(self, request, context):
316321
context.set_details('Method not implemented!')
317322
raise NotImplementedError('Method not implemented!')
318323

324+
def ResetSettings(self, request, context):
325+
"""
326+
Reset all settings in camera.
327+
328+
This will reset all camera settings to default value
329+
"""
330+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
331+
context.set_details('Method not implemented!')
332+
raise NotImplementedError('Method not implemented!')
333+
319334

320335
def add_CameraServiceServicer_to_server(servicer, server):
321336
rpc_method_handlers = {
@@ -424,6 +439,11 @@ def add_CameraServiceServicer_to_server(servicer, server):
424439
request_deserializer=camera_dot_camera__pb2.SelectCameraRequest.FromString,
425440
response_serializer=camera_dot_camera__pb2.SelectCameraResponse.SerializeToString,
426441
),
442+
'ResetSettings': grpc.unary_unary_rpc_method_handler(
443+
servicer.ResetSettings,
444+
request_deserializer=camera_dot_camera__pb2.ResetSettingsRequest.FromString,
445+
response_serializer=camera_dot_camera__pb2.ResetSettingsResponse.SerializeToString,
446+
),
427447
}
428448
generic_handler = grpc.method_handlers_generic_handler(
429449
'mavsdk.rpc.camera.CameraService', rpc_method_handlers)
@@ -798,3 +818,20 @@ def SelectCamera(request,
798818
camera_dot_camera__pb2.SelectCameraResponse.FromString,
799819
options, channel_credentials,
800820
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
821+
822+
@staticmethod
823+
def ResetSettings(request,
824+
target,
825+
options=(),
826+
channel_credentials=None,
827+
call_credentials=None,
828+
insecure=False,
829+
compression=None,
830+
wait_for_ready=None,
831+
timeout=None,
832+
metadata=None):
833+
return grpc.experimental.unary_unary(request, target, '/mavsdk.rpc.camera.CameraService/ResetSettings',
834+
camera_dot_camera__pb2.ResetSettingsRequest.SerializeToString,
835+
camera_dot_camera__pb2.ResetSettingsResponse.FromString,
836+
options, channel_credentials,
837+
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

0 commit comments

Comments
 (0)