mirror of
https://github.com/okalachev/flix.git
synced 2025-07-27 09:39:33 +00:00
38 lines
922 B
Python
Executable File
38 lines
922 B
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
"""Proxy for running pyflix library alongside QGroundControl app."""
|
|
|
|
import socket
|
|
|
|
LOCAL = ('0.0.0.0', 14550) # from Flix
|
|
TARGETS = (
|
|
('127.0.0.1', 14560), # to QGroundControl
|
|
('127.0.0.1', 14555), # to pyflix
|
|
)
|
|
|
|
def main():
|
|
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
|
sock.bind(LOCAL)
|
|
|
|
source_addr = None
|
|
packets = 0
|
|
|
|
print('Proxy started - run QGroundControl')
|
|
|
|
while True:
|
|
data, addr = sock.recvfrom(1024) # read entire UDP packet
|
|
if addr in TARGETS: # packet from target
|
|
if source_addr is None:
|
|
continue
|
|
sock.sendto(data, source_addr)
|
|
else: # packet from source
|
|
source_addr = addr
|
|
for target in TARGETS:
|
|
sock.sendto(data, target)
|
|
|
|
packets += 1
|
|
print(f'\rPackets: {packets}', end='')
|
|
|
|
if __name__ == '__main__':
|
|
main()
|