SDRangel Web API 接口详解
概述
SDRangel 是一款开源的软件定义无线电(SDR)平台,提供基于 Qt5/OpenGL 的图形用户界面和服务器功能。本文详细解析 SDRangel 的 Web REST/JSON API 接口规范,帮助开发者理解和使用这套接口进行二次开发。
API 基础信息
- 版本: 7.0.0
- 协议: HTTP
- 数据格式: JSON
- 基础路径: /
核心功能接口
1. 实例管理
获取实例摘要
GET /sdrangel
返回 SDRangel 实例的基本信息摘要,包括版本、运行状态等。
停止实例(仅服务器)
DELETE /sdrangel
发送停止服务器实例的指令,仅适用于服务器模式。
2. 配置管理
获取配置
GET /sdrangel/config
获取 Qt 保存的主设置(MainSettings)中的首选项(Preferences)、预设(Presets)和命令(Commands)信息,可用于配置备份。
更新配置
PUT /sdrangel/config
用请求体中的内容完全替换当前配置,可用于配置恢复。
部分更新配置
PATCH /sdrangel/config
部分更新配置,请求体中的预设和命令会被添加,工作预设中的通道会被添加,设备会被更新或添加(upsert操作)。
3. 设备与插件管理
获取可用采样设备
GET /sdrangel/devices
返回可用于设备集的采样设备列表,可通过direction参数(0-Rx,1-Tx,2-任意)筛选。
获取可用通道插件
GET /sdrangel/channels
返回当前实例中可用的通道插件列表,同样支持direction参数筛选。
获取可用功能插件
GET /sdrangel/features
返回当前实例中可用的功能插件列表。
4. 音频管理
获取音频设备列表
GET /sdrangel/audio
返回当前实例可用的音频设备列表。
设置音频输入设备参数
PATCH /sdrangel/audio/input/parameters
配置音频输入设备参数,使用index标识设备,仅考虑可设置字段。
设置音频输出设备参数
PATCH /sdrangel/audio/output/parameters
配置音频输出设备参数,使用index标识设备,仅考虑可设置字段。
5. 预设管理
获取所有预设
GET /sdrangel/presets
返回实例中所有的预设列表。
加载预设到设备集
PATCH /sdrangel/preset
将指定预设加载到设备集。
更新预设
PUT /sdrangel/preset
用设备集的当前设置更新指定预设。
创建新预设
POST /sdrangel/preset
基于设备集的当前设置创建新预设。
特殊说明
-
设备集限制:
- GUI模式下第一个接收设备集不能被删除
- 服务器模式初始没有设备集,可通过多次DELETE操作将设备集数量减少到零
-
预设功能:
- 预设的导入/导出是服务器特有功能
- 设备集焦点是GUI特有功能
-
未实现功能:
- ATV和DATV解调器
- 通道分析器NG
- LoRa解调器
- 返回状态码501
-
数据结构特点:
- 设备设置和报告结构仅包含对应设备类型的子结构
- 通道设置和报告结构仅包含对应通道类型的子结构
错误处理
API 定义了标准化的错误响应,包括:
- 400: 无效请求
- 404: 资源未找到
- 500: 服务器内部错误
- 501: 未实现功能
总结
SDRangel 的 Web API 提供了全面的接口来管理和控制软件定义无线电系统。通过这套 RESTful 接口,开发者可以实现远程控制、自动化配置和集成其他系统等功能。理解这些接口的规范和使用方法,可以充分发挥 SDRangel 的潜力,构建更强大的无线电应用解决方案。