Skip to content

Commit 8ca8390

Browse files
authored
Merge pull request mavlink#407 from mavlink/pr-sysid-compid
system: allow setting sysid/compid
2 parents cc14017 + 58f5596 commit 8ca8390

File tree

1 file changed

+16
-5
lines changed

1 file changed

+16
-5
lines changed

mavsdk/system.py

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,18 @@ class System:
5757
Port of the running mavsdk_server instance specified by
5858
mavsdk_server_address.
5959
60+
sysid: int
61+
MAVLink system ID of the mavsdk_server (1..255).
62+
63+
compid: int
64+
MAVLink component ID of the mavsdk_server (1..255).
65+
6066
"""
61-
def __init__(self, mavsdk_server_address=None, port=50051):
67+
def __init__(self, mavsdk_server_address=None, port=50051, sysid=245, compid=190):
6268
self._mavsdk_server_address = mavsdk_server_address
6369
self._port = port
70+
self._sysid = sysid
71+
self._compid = compid
6472

6573
self._plugins = {}
6674
self._server_process = None
@@ -94,7 +102,7 @@ async def connect(self, system_address=None):
94102

95103
if self._mavsdk_server_address is None:
96104
self._mavsdk_server_address = 'localhost'
97-
self._server_process = self._start_mavsdk_server(system_address,self._port)
105+
self._server_process = self._start_mavsdk_server(system_address,self._port, self._sysid, self._compid)
98106

99107
await self._init_plugins(self._mavsdk_server_address, self._port)
100108

@@ -168,7 +176,7 @@ def failure(self) -> failure.Failure:
168176
if "failure" not in self._plugins:
169177
raise RuntimeError(self.error_uninitialized("Failure"))
170178
return self._plugins["failure"]
171-
179+
172180
@property
173181
def follow_me(self) -> follow_me.FollowMe:
174182
if "follow_me" not in self._plugins:
@@ -272,7 +280,7 @@ def tune(self) -> tune.Tune:
272280
return self._plugins["tune"]
273281

274282
@staticmethod
275-
def _start_mavsdk_server(system_address=None,port=50051):
283+
def _start_mavsdk_server(system_address, port, sysid, compid):
276284
"""
277285
Starts the gRPC server in a subprocess, listening on localhost:port
278286
port parameter can be specified now to allow multiple mavsdk servers to be spawned via code
@@ -289,7 +297,10 @@ def _start_mavsdk_server(system_address=None,port=50051):
289297

290298
try:
291299
with path(bin, 'mavsdk_server') as backend:
292-
bin_path_and_args = [os.fspath(backend), "-p", str(port)]
300+
bin_path_and_args = [os.fspath(backend),
301+
"-p", str(port),
302+
"--sysid", str(sysid),
303+
"--compid", str(compid)]
293304
if system_address:
294305
bin_path_and_args.append(system_address)
295306
p = subprocess.Popen(bin_path_and_args,

0 commit comments

Comments
 (0)