电台接口

电台接口(Radio Interface)

目录

Wavelog 的电台接口区域允许你控制「电台」下拉菜单中可用的电台;如果不再需要某台电台,随时都可以将其删除。

目前可以通过外部 API 将 Wavelog 与业余无线电设备对接,可用的工具如下。

这些第三方工具需要 API 密钥,可在 管理员 -> API 中生成

CAT 控制

强烈建议查看 wiki 上的 第三方工具 页面,以获取电台接口程序的完整列表。

我们推荐 Joerg(DJ7NT)开发的 WavelogGate。这款跨平台工具可在 Mac、Windows 和 Linux 上运行,提供图形界面,通过 API 将 FlRig 与 Wavelog 对接。

由于 Wavelog 是 Cloudlog 的分支,你也可以使用一些 Cloudlog 工具,例如:

在 QSO 面板中选择电台

image

配置好电台后,你需要选择用于 QSO 的电台。为此进入 QSO 区域,然后打开 台站 标签页,找到 电台(这是一个下拉选择菜单),选择正确的电台并记录一次 QSO。该选项会存入 cookie,在你取消选择或 cookie 过期之前会一直被记住。

为电台配置回调 URL

该功能允许将数据从 Wavelog 发送到与某个已配置电台相连的软件,从而实现新的功能,例如点击波段图(也就是 DX 集群)中的条目,并把选中的电台调到该频率。

注意

回调操作在点击集群条目的同一浏览器上执行,这意味着使用 127.0.0.1 作为回调 URL 时,改频请求会发送到访问 Wavelog 的同一台 PC

当电台设备能与 Wavelog 正常通信(参见下文的示例代码片段,或使用任何受支持的第三方软件),并已列在 Hardware Interfaces 页面中后,可以点击 Edit 按钮为每台电台配置各自的回调 URL。

每当在波段图中选中一个条目,回调 URL 都会收到通知,所使用的客户端软件应据此将电台调到该频率。

默认情况下,回调 URL 就是当前浏览 Wavelog 实例所用的地址,即 127.0.0.1:54321。该机器上应有一个 TCP 服务器监听 54321 端口,一旦在集群中选中条目,就会向该地址发起 GET 请求。目标 URL 类似:http://127.0.0.1:54321/7010600/cw,用于将收发信机调到 7010.6 KHz、CW 模式。

代码片段

向 Wavelog 发送电台数据的 Python 示例代码

以下代码片段可用于向 Wavelog 电台接口发送数据。

注意

这只是一个演示/测试脚本,它不会从任何设备读取频率。应添加与收发信机的正式连接流程,并使用某种循环或其他触发方式将更新发送到 Wavelog 实例

import requests
from datetime import datetime

WAVELOG_API_URL = "http://wavelog.localhost/index.php/api/radio"
WAVELOG_API_KEY = "aaBBccDDeeFFgg"
RADIO_NAME = "ICOM IC-7850"

# Define required headers
headers = {
    "Content-Type": "application/json",
    "Accept": "application/json"
}

payload = {
   "key": WAVELOG_API_KEY, 
   "radio": RADIO_NAME,
   "frequency": 14075000,
   "mode": "SSB",
   "power": '', # Optional field defined in watts
   "timestamp": datetime.now().strftime("%Y/%m/%d %H:%M")
}

# Send the POST request
try:
    response = requests.post(WAVELOG_API_URL, json=payload, headers=headers)
    # Check if the request was successful
    if response.status_code == 200:
        print("Request successful!")
        print("Response:", response)
    else:
        print(f"Request failed with status code: {response.status_code}")
        print("Response:", response.text)
except requests.exceptions.RequestException as e:
    print("An error occurred:", e)

测试

现在我们可以检查一切是否配置正确。

首先需要确保 python 依赖已安装

pip install requests

然后运行脚本

python ./main.py

如果配置文件中的所有参数都设置正确,我们应该会看到:

$#> python .\main.py
Request successful!
Response: <Response [200]>

而当我们访问用户菜单中的 Hardware interfaces 选项时,应该能看到新电台设备已列出,并显示正确的频率。

接收改频请求

以下 Python 代码会在 54321 端口启动一个 TCP 服务器,并把 GET 请求中的数据打印到控制台,可用于检查回调是否按预期工作

import socket

HOST = '127.0.0.1'
PORT = 54321

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as server_socket:
    server_socket.bind((HOST, PORT))
    server_socket.listen()
    print(f"Listening on {HOST}:{PORT}...")

    conn, addr = server_socket.accept()
    with conn:
        print(f"Connected by {addr}")
        while True:
            data = conn.recv(1024)
            if not data:
                break
            print(f"Received: {data.decode()}")
            conn.sendall(data)  # Echo the received data back to the client

使用浏览器访问 Wavelog 实例后,假设已为波段图页面中选中的电台正确配置了回调 URL,那么一旦从列表中选中条目,就应出现如下输出:

PS F:\Documenti\GitHub\WaveLogGate> python .\test.py
Listening on 127.0.0.1:54321...
Connected by ('127.0.0.1', 51492)
Received: OPTIONS /7010600/cw HTTP/1.1
Host: 127.0.0.1:54321
Connection: keep-alive
Access-Control-Request-Method: GET
Access-Control-Request-Private-Network: true
Origin: https://log.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site
Sec-Fetch-Dest: empty
Accept-Encoding: gzip, deflate, br, zstd
Accept-Language: it-IT,it;q=0.9,en-US;q=0.8,en;q=0.7,es-US;q=0.6,es;q=0.5
Wavelog 手册(中文版) / 电台接口 0 字 0 行 bg8lng
2026-10-21T12:42:35.907875967Z 2026-10-21T12:43:32.994122888Z