通过 USB/LAN 控制 Icom IC-7610 电台,获取/设置频率、模式、功率、S表、SWR,支持 CW 按键和信标模式,具备远程开关机功能。
Icom IC-7610.是一项面向实际任务的技能,主要用于Prerequistites.;Hamlib(rigctl):酿造安装 hamlib.curl:通常预安装. python3:通常预安装. pyserial(仅用于串行功率): pip3 安装 pyserial.wfview(opti)。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;
涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
brew install hamlibpip3 install pyserial台站配置位于 .env 文件中(不纳入 Git 版本管理)。首次安装时执行:cp .env.example .env。
| 变量 | 默认值 | 说明 |
|---|---|---|
CALLSIGN |
(CW/信标模式必需) | 您的呼号 |
SERIAL_PORT |
/dev/cu.usbserial-11320 |
CI-V USB 串口设备路径 |
BAUD_RATE |
19200 |
串口波特率(⚠️ 注意:非 115200!) |
HAMLIB_MODEL |
3078 |
Icom IC-7610 对应的 Hamlib 型号 ID |
FLRIG_URL |
http://127.0.0.1:12345/RPC2 |
flrig 的 XML-RPC 接口地址 |
RIGCTLD_ADDR |
127.0.0.1:4533 |
rigctld TCP 地址(wfview 或 hamlib 使用) |
MAX_POWER_W |
50 |
硬件功率上限(单位:瓦) |
source "$(dirname "$0")/.env" 2>/dev/null || true
PORT="${SERIAL_PORT:-/dev/cu.usbserial-11320}"
BAUD="${BAUD_RATE:-19200}"
MODEL="${HAMLIB_MODEL:-3078}"
FLRIG="${FLRIG_URL:-http://127.0.0.1:12345/RPC2}"
RIGCTLD="${RIGCTLD_ADDR:-127.0.0.1:4533}"
MAX_POWER="${MAX_POWER_W:-50}"
rigctl 使用 **0.0–1.0** 归一化范围表示功率,其中 1.0 = 100 W。换算公式为:RFPOWER = 实际功率(W) / 100。
例如:5 W → 0.05,50 W → 0.50。⚠️ 注意:L RFPOWER 5 表示等效 500 W,**并非** 5 W!
flrig 则直接使用瓦特数值:rig.set_power 50 即表示设置为 50 W。
共支持三种连接方式,按优先级顺序自动检测:自动检测逻辑如下:
# 1. 检查 rigctld(wfview 局域网或独立运行的 hamlib rigctld)
if rigctl -m 2 -r "$RIGCTLD" f >/dev/null 2>&1; then
CONN="rigctld"
# 2. 检查 flrig
elif curl -s --connect-timeout 2 --max-time 3 -X POST "$FLRIG"
-H "Content-Type: text/xml"
-d 'rig.get_vfoA '
| grep -q ''; then
CONN="flrig"
# 3. 回退至直连串口
else
CONN="serial"
fi
通过网络(wfview UDP 或已运行的 rigctld daemon)连接 IC-7610。
完全控制能力:频率、模式、功率、S 表读数、驻波比(SWR)、CW 键控、开关机。
rigctl -m 2 -r "$RIGCTLD"# 读取: f m l RFPOWER l SWR # 设置: F 14074000 M USB 3000 L RFPOWER 0.50 # CW 发送: b "CQ CQ DE YOURCALL K" # 开关机: set_powerstat 0(关) set_powerstat 1(开)
配置步骤:wfview → Settings → 启用 LAN → 连接电台 IP → 启用 RigCtld(端口 4533)。
⚠️ 注意:M(设置模式)命令可能因等待 wfview rigctld 确认而挂起——但命令仍会实际执行。
必要时请使用超时封装,或以“即发即弃”(fire-and-forget)方式发送。
相比串口连接的优势:
set_powerstat 1 即可完成上电(无需原始 CI-V 指令或 pyserial)rigctl -m $MODEL -r "$PORT" -s $BAUD# 读取: f(频率) m(模式+带宽) l RFPOWER l SWR # 设置: F 14074000 M USB 3000 L RFPOWER 0.50 # CW 发送: b "CQ CQ DE YOURCALL K" # 快捷调用: f m l RFPOWER → 单次调用同时获取频率、模式、带宽、功率
⚠️ 波特率必须为 19200(非 115200!)。务必使用超时封装:timeout 10 rigctl ...
⚠️ 当 flrig 正在运行时,串口将被占用。如需使用 CW 或开关机功能,请先关闭 flrig。
call_flrig() {
curl -s --connect-timeout 3 --max-time 5 -X POST "$FLRIG"
-H "Content-Type: text/xml"
-d "$1 $2 " |
grep -o '[^<]* ' | head -1 | sed 's/<[^>]*>//g'
}
# 读取: call_flrig rig.get_vfoA / rig.get_modeA / rig.get_power / rig.get_Sunits / rig.get_SWR
# 设置: call_flrig rig.set_vfoA '14074000 '
# call_flrig rig.set_modeA 'USB '
# call_flrig rig.set_power '50 '
前提条件:电台后部 POWER 开关置于 ON 位,并设置: MENU → SET → Network → Power OFF Setting = Standby/Shutdown。
rigctl -m 2 -r "$RIGCTLD" set_powerstat 0 # 关机 rigctl -m 2 -r "$RIGCTLD" set_powerstat 1 # 开机 — 可行!wfview 自动处理
关机: rigctl -m $MODEL -r "$PORT" -s $BAUD set_powerstat 0
开机: rigctl 的 set_powerstat 1 在待机状态下无法通过串口工作(rig_open 失败)。需使用原始 CI-V 指令:
python3 -c "
import serial, time
ser = serial.Serial('$PORT', $BAUD, timeout=2)
ser.reset_input_buffer()
ser.write(bytes([0xFE,0xFE,0x98,0xE0,0x18,0x01,0xFD]))
time.sleep(1); resp = ser.read(100); ser.close()
print('Power ON: OK' if 0xFB in resp else 'FAIL')
"
开机后需等待 7–10 秒 再发送其他指令。“启动过程中命令被拒绝”属正常现象。
支持通过 rigctld(局域网)和串口直连两种方式实现。
# 通过 rigctld(局域网): rigctl -m 2 -r "$RIGCTLD" b "CQ CQ CQ DE $CALLSIGN $CALLSIGN K" # 通过串口: rigctl -m $MODEL -r "$PORT" -s $BAUD b "CQ CQ CQ DE $CALLSIGN $CALLSIGN K" # 信标循环(两种连接方式均适用) for i in $(seq 1 $REPEATS); do rigctl -m 2 -r "$RIGCTLD" b "VVV DE $CALLSIGN VVV DE $CALLSIGN" [ $i -lt $REPEATS ] && sleep $INTERVAL done
电台 CW 设置路径:MENU → SET → Connectors → USB Keying (CW) → RTS
读取频率/模式/S 表/SWR、切换 VFO、更改频率/模式、开关机。
PTT 触发、CW 键控、信标发射、功率 > $MAX_POWER_W。所有射频发射行为均属此类。
在业余频段外发射;或 SWR > 3.0 时发射。
远程操作合法(§97.109d)。无人值守信标仅允许在 28.2–28.3 MHz 和 50.06–50.08+ MHz 频段内运行; 28 MHz 以下频段运行信标时,操作员必须保持通信联络状态。
完整技术文档见 references/FULL-REFERENCE.md,按需查阅:
freq_valid、set_power_safe、rig_retry、preflight、quick_status)相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.3万人学习
共49课时 | 82.7万人学习
最新文章