[pprzlink] fix pprzlink proxy and add it as a tool (#3526)
Issues due date / Add labels to issues (push) Has been cancelled
Doxygen / build (push) Has been cancelled

also update pprzlink
This commit is contained in:
Gautier Hattenberger
2025-08-28 22:33:50 +02:00
committed by GitHub
parent 67f9388f85
commit 8900f6e47f
3 changed files with 12 additions and 11 deletions
+1
View File
@@ -0,0 +1 @@
<program command="sw/ground_segment/tmtc/pprzlink_proxy.py" name="PprzLink Proxy"/>
+10 -10
View File
@@ -63,8 +63,8 @@ class Proxy:
self.gcs_id = int(gcs_conf[0]) self.gcs_id = int(gcs_conf[0])
self.gcs_addr = gcs_conf[1] self.gcs_addr = gcs_conf[1]
self.gcs = pprzlink.udp.UdpMessagesInterface(self.proccess_gcs_msg, False, self.gcs = pprzlink.udp.UdpMessagesInterface(self.proccess_gcs_msg, True,
int(gcs_conf[3]), int(gcs_conf[2]), 'datalink') # crossing ports here int(gcs_conf[3]), int(gcs_conf[2]), 'datalink', None) # crossing ports here
self.acs = [] self.acs = []
for ac in ac_conf: for ac in ac_conf:
self.acs.append((int(ac[0]), ac[1], self.acs.append((int(ac[0]), ac[1],
@@ -77,17 +77,17 @@ class Proxy:
return return
if self.verbose: if self.verbose:
print("new message from %i (%s) [%d Bytes]: %s" % (sender, address, length, msg)) print("new message from %i (%s) [%d Bytes]: %s" % (sender, address, length, msg))
if receiver_id == self.gcs_id: if receiver_id == self.gcs_id or receiver_id == 255:
# normal telemetry message for the GCS # normal telemetry message for the GCS
if self.verbose: if self.verbose:
print("sending to %i: %s" % (receiver_id, msg)) print("mav %d sending to gcs %i: %s" % (sender, receiver_id, msg))
self.gcs.send(msg, sender, self.gcs_addr, receiver_id, component_id) self.gcs.send(msg, sender, self.gcs_addr, receiver_id, component_id)
else: if receiver_id != self.gcs_id or receiver_id == 255:
for (ac_id, ac_addr, m) in self.acs: for (ac_id, ac_addr, m) in self.acs:
if receiver_id == ac_id: if receiver_id == ac_id or receiver_id == 255:
# send air to air message to correct MAV # send air to air message to correct MAV
if self.verbose: if self.verbose:
print("sending to %i (%i): %s" % (receiver_id, ac_id, msg)) print("mav %d sending to %d (%i) [%s]: %s" % (sender, ac_id, receiver_id, ac_addr, msg))
m.send(msg, sender, ac_addr, receiver_id, component_id) m.send(msg, sender, ac_addr, receiver_id, component_id)
def proccess_gcs_msg(self, sender, address, msg, length, receiver_id=None, component_id=None): def proccess_gcs_msg(self, sender, address, msg, length, receiver_id=None, component_id=None):
@@ -99,7 +99,7 @@ class Proxy:
for (ac_id, ac_addr, m) in self.acs: for (ac_id, ac_addr, m) in self.acs:
# broadcast to all MAVs # broadcast to all MAVs
if self.verbose: if self.verbose:
print("sending to %i: %s" % (receiver_id, msg)) print("gcs %d broadcasting to %d (%i) [%s]: %s" % (sender, ac_id, receiver_id, ac_addr, msg))
m.send(msg, sender, ac_addr, receiver_id) m.send(msg, sender, ac_addr, receiver_id)
else: else:
try: try:
@@ -107,10 +107,10 @@ class Proxy:
except: except:
receiver_id = None receiver_id = None
for (ac_id, ac_addr, m) in self.acs: for (ac_id, ac_addr, m) in self.acs:
if receiver_id == ac_id: if receiver_id == ac_id or receiver_id == 255:
# send datalink message to correct MAV # send datalink message to correct MAV
if self.verbose: if self.verbose:
print("sending to %i (%i): %s" % (receiver_id, ac_id, msg)) print("gcs %d sending to %i (%i) [%s]: %s" % (sender, ac_id, receiver_id, ac_addr, msg))
m.send(msg, sender, ac_addr, receiver_id) m.send(msg, sender, ac_addr, receiver_id)
def run(self): def run(self):