1. 新增 serial_udp_bitrans.py 該程式連結 serial 的封包 經過轉換後 再向 udp 口丟出 (反之亦然)
2. 其餘檔案只是 名稱與註解修正chiyu
parent
5769f9ab3b
commit
417d9e8f57
@ -1,33 +0,0 @@
|
|||||||
import socket
|
|
||||||
import os
|
|
||||||
|
|
||||||
# socket file path
|
|
||||||
SOCKET_PATH = "/tmp/unix_socket_example"
|
|
||||||
|
|
||||||
# 若檔案存在就先刪除
|
|
||||||
if os.path.exists(SOCKET_PATH):
|
|
||||||
os.remove(SOCKET_PATH)
|
|
||||||
|
|
||||||
# 建立 socket
|
|
||||||
server = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
|
|
||||||
|
|
||||||
# 綁定 socket 到檔案
|
|
||||||
server.bind(SOCKET_PATH)
|
|
||||||
server.listen(1)
|
|
||||||
|
|
||||||
print("🔌 Server waiting for connection...")
|
|
||||||
|
|
||||||
# 等待 client 連線
|
|
||||||
conn, _ = server.accept()
|
|
||||||
print("✅ Client connected.")
|
|
||||||
|
|
||||||
while True:
|
|
||||||
data = conn.recv(1024)
|
|
||||||
if not data:
|
|
||||||
break
|
|
||||||
print("📥 Received:", data.decode())
|
|
||||||
conn.sendall(b"Echo: " + data)
|
|
||||||
|
|
||||||
conn.close()
|
|
||||||
server.close()
|
|
||||||
os.remove(SOCKET_PATH)
|
|
||||||
@ -0,0 +1,94 @@
|
|||||||
|
import socket
|
||||||
|
import os
|
||||||
|
|
||||||
|
# # socket file path
|
||||||
|
# SOCKET_PATH = "/tmp/unix_socket_example"
|
||||||
|
|
||||||
|
# # 若檔案存在就先刪除
|
||||||
|
# if os.path.exists(SOCKET_PATH):
|
||||||
|
# os.remove(SOCKET_PATH)
|
||||||
|
|
||||||
|
# # 建立 socket
|
||||||
|
# server = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
|
||||||
|
|
||||||
|
# # 綁定 socket 到檔案
|
||||||
|
# server.bind(SOCKET_PATH)
|
||||||
|
# server.listen(1)
|
||||||
|
|
||||||
|
# print("🔌 Server waiting for connection...")
|
||||||
|
|
||||||
|
# # 等待 client 連線
|
||||||
|
# conn, _ = server.accept()
|
||||||
|
# print("✅ Client connected.")
|
||||||
|
|
||||||
|
# while True:
|
||||||
|
# data = conn.recv(1024)
|
||||||
|
# if not data:
|
||||||
|
# break
|
||||||
|
# print("📥 Received:", data.decode())
|
||||||
|
# conn.sendall(b"Echo: " + data)
|
||||||
|
|
||||||
|
# conn.close()
|
||||||
|
# server.close()
|
||||||
|
# os.remove(SOCKET_PATH)
|
||||||
|
|
||||||
|
|
||||||
|
# =====================
|
||||||
|
|
||||||
|
# from pymavlink import mavutil
|
||||||
|
|
||||||
|
|
||||||
|
# def create_unix_socket_connection():
|
||||||
|
# # 建立一個 mavtcpin 實例
|
||||||
|
# mav_conn = mavutil.mavtcpin("127.0.0.250:9999", source_system=1, source_component=1)
|
||||||
|
|
||||||
|
# # 替換底層 socket
|
||||||
|
# # 關閉原有的 socket
|
||||||
|
# mav_conn.listen.close()
|
||||||
|
|
||||||
|
# # 創建 Unix socket 並替換
|
||||||
|
# unix_socket = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
|
||||||
|
# unix_socket_path = "/tmp/unix_socket_mavlink.sock"
|
||||||
|
|
||||||
|
# # 確保先前的 unix socket 已被移除
|
||||||
|
# if os.path.exists(unix_socket_path):
|
||||||
|
# os.remove(unix_socket_path)
|
||||||
|
|
||||||
|
# # 綁定並設定 Unix socket
|
||||||
|
# unix_socket.bind(unix_socket_path)
|
||||||
|
# unix_socket.listen(1)
|
||||||
|
# unix_socket.setblocking(0)
|
||||||
|
# mavutil.set_close_on_exec(unix_socket.fileno())
|
||||||
|
|
||||||
|
# # 替換 listen socket
|
||||||
|
# mav_conn.listen = unix_socket
|
||||||
|
# mav_conn.fd = unix_socket.fileno()
|
||||||
|
|
||||||
|
# # mav_conn.port = unix_socket
|
||||||
|
|
||||||
|
# return mav_conn
|
||||||
|
|
||||||
|
|
||||||
|
# a = create_unix_socket_connection()
|
||||||
|
|
||||||
|
# # print(a.port)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ===============================
|
||||||
|
|
||||||
|
import mavunixin
|
||||||
|
mav_conn = mavunixin.mavunixin("unix:/tmp/unix_socket_mavlink.sock", source_system=1, source_component=1)
|
||||||
|
|
||||||
|
import time
|
||||||
|
print("🔌 Server waiting for connection...")
|
||||||
|
while True:
|
||||||
|
time.sleep(1)
|
||||||
|
mavlinkMsg = mav_conn.recv_msg()
|
||||||
|
if mavlinkMsg is not None:
|
||||||
|
print("📥 Received:", mavlinkMsg)
|
||||||
|
# a.send(mavlinkMsg)
|
||||||
|
# print("📤 Server replied:", data.decode())
|
||||||
|
else:
|
||||||
|
print("No message received.")
|
||||||
Loading…
Reference in New Issue