-
Notifications
You must be signed in to change notification settings - Fork 9
PythonSDK
Luke edited this page May 9, 2026
·
4 revisions
SimpleSensorSync Python是一个多传感器同步监控系统,支持通过网络(UDP)或串口(USB)连接传感器设备,实现实时数据采集、触发监控和时间同步。
┌─────────────────────────────────────────────────────────────┐
│ Synchronizer │
│ (主协调器,统一启动/停止) │
└─────────────────────┬─────────────────┬─────────────────────┘
│ │
┌───────────▼────────┐ ┌─────▼─────────┐
│ NetManager │ │ UsbManager │
│ (UDP 网络) │ │ (串口) │
└───────────┬────────┘ └──────┬────────┘
│ │
┌───────────▼────────────────────▼────────┐
│ Ptp │
│ (PTP 精确时间同步协议) │
└──────────────────┬──────────────────────┘
│
┌──────────────────▼──────────────────────┐
│ data.py │
│ (解析 trigger/IMU/GPS/log 数据) │
└──────────────────┬──────────────────────┘
│
┌──────────────────▼──────────────────────┐
│ Messenger │
│ (ZeroMQ 发布/订阅消息系统) │
└───────────────────────────────────────┘
| 设备 ID | 名称 |
|---|---|
| BIT 0 | IMU_1 |
| BIT 1 | IMU_2 |
| BIT 2 | CAM_1 |
| BIT 3 | CAM_2 |
| BIT 4 | CAM_3 |
| BIT 5 | CAM_4 |
| BIT 6 | LASER |
| BIT 7 | GPS |
cd python
pip install -r requirements.txt
# 或使用 uv
uv sync主要依赖:
-
pyzmq- ZeroMQ 消息队列 -
pyserial- 串口通信 -
PyQt6- GUI 框架
cd python
python gui_main.py界面功能:
- 设置菜单 → 连接配置:配置网络或串口参数
- 监控菜单 → 开始/停止监控 (F5/F6)
- 左侧面板:8个设备触发状态实时显示
- 右侧图表:触发信号可视化
编辑 main.py 修改连接参数后运行:
synchronizer.set_net_link("192.168.192.188", 8888)python main.py{"f": "t", "t": 1234567890123456, "s": 0xFF}-
f: 功能码"t"表示触发 -
t: 微秒时间戳 -
s: 8位状态掩码,标识哪些设备触发
{"f": "imu", "t": 1234567890123456, "d": [ax, ay, az, gx, gy, gz, temp], "q": [qx, qy, qz, qw]}{"f": "GNGGA", "t": 1234567890123456, "d": "...", "pps": 1234567890000000}配置文件保存于用户目录:~/.config/SimpleSensorSync/config.json
{
"connection_type": "network",
"net_ip": "192.168.192.188",
"net_port": 8888,
"serial_device": "/dev/ttyUSB0",
"serial_baudrate": 115200
}from infinite_sense_core.infinit_sense import Synchronizer
sync = Synchronizer()
# 配置网络连接
sync.set_net_link("192.168.192.188", 8888)
# 或配置串口连接
sync.set_usb_link("/dev/ttyUSB0", 115200)
# 设置传感器
sync.use_sensor(sensor_object)
# 启动/停止
sync.start()
sync.stop()from infinite_sense_core.message import Messenger
msg = Messenger.get_instance()
# 订阅主题
msg.sub("imu_1", callback_function)
msg.sub("cam_1", callback_function)
# 发布主题
msg.pub("topic_name", "message_content")from infinite_sense_core.data import get_trigger_processor, TriggerEvent
processor = get_trigger_processor()
def on_trigger(event: TriggerEvent):
print(f"触发设备: {event.triggered_devices}")
print(f"时间戳: {event.timestamp_str}")
processor.add_callback(on_trigger)- 当前版本:0.2.0
- 组织:InfiniteSenseLab
- 官网:https://github.com/InfiniteSenseLab