15
5月
2020
在 Linux 中管理收发器
14:44

在 Linux 中管理收发器

在没有计算机的情况下使用业余无线电台几乎是不可想象的——即使是 SSB 和 CW 联系人也需要在无线电日志中注册。 Linux 正在积极开发使用计算机的无线电控制。 这篇评论文章是关于在 Linux 中用作收发器(收发器)的接口和程序。

几乎所有用于计算机的现代业余无线电程序都需要一个通过 COM 端口(物理或虚拟)控制收发器的接口(在业余无线电术语中,将接收器和发射器结合在一起的无线电装置称为“收发器”)。 所有现代收发器都有一个串行端口,用于使用 CAT 命令控制它们(而不仅仅是使用 +5 伏切换发送/接收(开/关))。 使用收发器中的计算机发出的命令和请求,您可以读取或写入设置、切换到发送或接收:
*VFO频率* (可变频率振荡器)- 手动调谐广播电台时可变频率发生器的频率
传输方式(AM/FM/USB/LSB/PKT/DIGI)
传输控制— 通过 CAT 接口使用命令按下 PTT 按钮。
启用 ATT(衰减器)- 在将天线馈送到接收器输入之前降低来自天线的过高信号电平。
设置过滤器- 提高困难条件下的接收清晰度。
选择 VFO A 或 VFO B**- 接收器的选择,这对于“分离”操作非常有用,即当接收和传输频率不匹配时。 对于与长途 (DX) 通讯员合作非常有用,这些通讯员呼叫一个频率,并由 0...+5 kHz 范围内的许多电台以 CW 应答。

Биб库,或者更确切地说是整个软件平台或框架,火腿图书馆 不仅可以控制一个,还可以控制多个收发器(如果业余无线电爱好者有的话) - 例如,在某些程序中可以选择Radio1和Radio2。 例如,Radio1 适用于短波 1.9/3.5/7/10/14/18/21/24.9/28 MHz,Radio2 适用于 144/433/1296 MHz。 反过来,当以分离模式或通过卫星 (A/B) 运行时,每个无线电都有两个平滑频带发生器 VFO1 和 VFO2。 所有这些都由 HamLib 管理。

格里格 上图是控制电台的grig程序的界面。 使用 hamlib。 您可以使用 ENT 按钮或使用鼠标左键和右键直接输入来更改频率。

Yaesu FT-857 的跑步装备:

grig -r /dev/ttyUSB0 -m 122 -s 4800

键:

  • rig 一词中的 -r 表示收发器所连接的串行端口,
  • -m 来自单词 model - 支持的 HamLib 列表中的无线电台型号,
  • -s 来自字速度 - 收发器所连接的串行端口的速度。

除了收发器之外,HamLib 还可以与定向 VHF 天线(旋转器或“转子”)的旋转设备控制器“通信”。 HamLib 库支持的控制器列表位于页面上 https://github.com/Hamlib/Hamlib/wiki/Supported-Rotators

为什么需要 RIGCTLD? 当同时运行多个使用 CAT(计算机辅助传输)的程序(soundmodem、gpredict、wsjtx、xlog、fldigi)时,会出现冲突:其中一个程序获得控制权,完全占用 COM 端口,其余程序停止工作 - 要么不启动,要么冻结。

Кон当然,您可以逐一使用这些程序:例如,在独占模式下,运行 FT8 的 wsjtx,然后将其中的日志上传到 ADIF 文件,关闭 wsjtx 并运行另一个程序 - CQRLOG 连接日志,将 ADIF 加载到其中。 然后关闭所有内容,打开 PSK31 的 FLDIGI。 :-)

数字 VOX(信号出现时打开传输)选项并不方便,因为需要调整传输的灵敏度级别,这取决于输入信号的级别。 VOX 的第二个缺点是,在传输程序中,频率、调制类型甚至范围的指示都会丢失,这可能会被错误地记录在联系日志中。

因此,HamLib 和 RIGCTLD 是必要的并且应该一起工作。

  • HamLib - 库 广泛的型号列表 支持的无线电台 - 4.2 版中的 214 个型号、4.3 和 4.4 版中的 264 个型号以及 4.5 版中的 283 个型号,考虑到每个无线电台的命令系统并将它们转换为 hamlib 采用的标准形式。 网站:https://hamlib.github.io/
  • RigCtlD 服务,可以处理来自多个程序的请求到 HamLib。 RIGCTLD 是 网络服务 (提供通过 TCP-IP 在一台计算机上通过本地主机和不同 PC 上远程控制收发器的能力)。

! 除了这两个程序之外,还有一个用于控制收发器的图形界面,称为 FLRIG(来自 fldigi 程序集)。 您可以配置FLRIG通过HamLib命令控制收发器,并配置fldigi调用flrig进行控制。

弗利格

! 链条: 业余无线电爱好者 →电脑→ 弗迪吉 → 扑灭 → 哈姆利布 → CAT 接口 → 收发器 →天线。
! FLDIGI 通过 FLRIG 工作得很好,但 WSJTX(当选择“Flrig Flrig”收发器时)效果不佳。

您可以在页面检查您的收发器是否支持 HamLib https://github.com/Hamlib/Hamlib/wiki/Supported-Radios

!!!与 Apache Web 服务器和 GIMP 图形编辑器一样,HamLib 库不仅适用于 Linux,也适用于 Windows。

可以使用 HamLib 访问广播电台的程序列表:

  1. FLDIGI (см. http://www.w1hkj.com/FldigiHelp/rig_config_page.html
    2.WSJTX主页 https://physical.princeton.edu/pulsar/K1JT/wsjtx.html
    1. Gpredict(带有设置菜单接口 - 无线电)
    2. RotCTL(来自 Interfaces - Rotators 菜单中的 gpredict 包)
    3. rotctld(基于RotCTL的TCP网络服务)
    4. rigctl(用于从命令行控制收发器的实用程序)
    5. rigctld(使用 rigctl 命令语法通过 TCP-IP 管理收发器的网络服务)
      8.rigmem(收发器内存的备份和恢复)
  2. CQRLOG (тема https://forum.qrz.ru/33-apparatnye-zhurnaly/45242-cqrlog-dlya-linux.html
    10.grig(使用hamlib控制收发器的图形界面)
    11.青海卫视
    12.免费DV

RIGCTLD 服务旨在为多个程序向 HamLib 的请求提供服务,以避免由于独占 COM 端口而导致的冲突。 我们可以说 Linux 中的 RIGCTLD 类似于 Windows 中的 OmniRIG,但有一点不同 - 它不是一个程序,而是一个服务(守护进程)。 RIGCTLD 是一种通过 TCP 协议(​​套接字)运行的网络服务。

来源: https://www.mankier.com/1/rigctld#描述

可通过 TCP-IP 协议与 rigctld 配合使用的程序列表

  1. rigctl (утилита командной строки для управления трансивером, http://manpages.org/rigctl

    1. gpredict(类似于Orbitron,可以连接到任何PC的rigctld 4532端口)
  2. rigctl-wsjtx (специальная версия rigctld сервера для WSJTX) https://www.mankier.com/1/rigctld-wsjtx

    1. WSJTX(当选择“网络”广播“Hamlib Net rigctl”时,请参见上一点。
  3. rigctlcom (эмуляция трансивера TS-2000 для вашего радио) https://www.mankier.com/1/rigctlcom

  4. PAT (программа для электронной почты на коротких волнах см. http://www.winlink.org/

  5. CubicSDR (кросс-платформенное Software Defined Radio) - https://cubicsdr.com/

可以与 Flrig 通信的程序列表

  1. Fldigi (полная поддержка) http://www.w1hkj.com/
    1. WSJTX(选择收发器时部分支持》弗利格 弗利格“ - PTT 不起作用)

安装 HamLib 库

Ном最新的 Hamlib 版本是 3.1 版。 Hamlib 版本 4 计划发布,但尚未发布,没有什么可讨论的。

您可以从 Linux Mint/Debian/Ubuntu 存储库安装
libhamlib2 和 libhamlib-utils 最新版本 3.1-7build1,
因此不需要使用外部存储库或 git,
一切都像往常一样安装:

sudo apt-get install libhamlib2 libhamlib-utils

或者简单地:

sudo apt-get install libhamlib-utils

(将通过依赖项安装 libhamlib2)。


使用 HamLib 检查收发器连接的命令

rigctl -r /dev/ttyUSB0 -m 122

其中:

来源: https://github.com/Hamlib/Hamlib/wiki

安装 rigctld

su -
apt install libhamlib-utils

列出包中的所有文件:

dpkg -L libhamlib-utils

/usr
/usr/bin
/usr/bin/rigctl
/usr/bin/rigctld
/usr/bin/rigmem
/usr/bin/rigsmtr
/usr/bin/rigswr
/usr/bin/rotctl
/usr/bin/rotctld
/usr/share
/usr/share/doc
/usr/share/doc/libhamlib-utils
/usr/share/doc/libhamlib-utils/copyright
/usr/share/man
...

程序安装在目录中 /usr/bin/rigctld

rigctld 服务是从带有参数的命令行启动的。

rigctld [-hlLouV] [-m id] [-r device] [-p device] [-d device] [-P type] [-D type] [-s baud] [-c id] [-T IPADDR] [-t number] [-C parm=val] [-v[-Z]]

(请参阅下面的使用示例)


文档:
https://manpages.debian.org/stretch/libhamlib-utils/rigctld.8.en.html

使用 RigCTLD 通过 rigctl 检查与收发器的连接的命令
(来源 http://vk4tmz.blogspot.com/2018/07/gpredict-radio-control-ft991a-via.html

rigctl -m 2 -r localhost:4532 m

其中 -m 2 是通过 HamLib 工作时收发器型号的数字代码,
-r localhost:4532 - 连接到本地PC上的RigCTLD服务,默认端口4532
m - 读取 VFO 频率的命令 (get_mode)。

! 波特率、收发器型号等参数略。 因为连接是通过 rigctld 进行的,在 rigctld 中进行了配置。

在此之前,您需要在本地计算机上安装并配置 rigctld 守护程序。

rigctld -vvvvv -r \\.\ttyUSB1 -m 135 -s 4800 -t 4532 -C "serial_speed=4800,stop_bits=1,rts_state=ON,dtr_state=OFF,serial_handshake=None" 

RIGCTLD 参数,无论是在 Windows 版本还是在 Linux 版本中,都必须在启动行中传递,如示例中所示。 如果出现错误,例如收发器型号135不存在,则会显示错误消息。 要查看设置,请使用 -L 开关调用该服务。

模拟 RIGCTLD = RIGCTLCOM

替代 RIGCTLD 并允许多个连接到不同程序的收发器的程序称为 RIGCTLCOM。 发布者:迈克 W9MDB

对于不知道 rigctld 或 FLRig 存在的程序,例如 MMTTY 或 Windows 中甚至可以通过 Wine 启动的其他程序,需要此程序。

RIGCTLCOM 模拟 Kenwood TS-2000 收发器:

它是一个 TS-2000 模拟器,允许不知道 FLRig 或 rigctld 的程序与这两个程序对话。

App->COMX->COMY->rigctlcom->rig

这将允许您运行,例如,N1MM 和 WSJT-X 都通过 FLRig 或 rigctld 访问您的装备。

还应该与 MMTTY 或任何其他此类程序一起使用。

还不能与 WSJT-X 配合使用,但 WSJT-X 可以连接到 rigctld 或 flrig,因此那里实际上并不需要它。

如果您还没有安装 WSJT-X,则必须安装它。 使用 FLRig 将轻松允许多个程序连接到您的设备,因此也安装它。

如果您想走这条路线,它还将允许以 rigctld 作为主要设备进行多个连接。

1.创建桥接串行端口对。 例如COM9/COM10

2.运行 rigctlcom 以连接到 FLRig(或 rigctld)和虚拟 COM 端口之一...例如COM9 rigctlcom -m 4 -r 127.0.0.1:12345 -R COM9 -S 115200

3.运行您的其他程序,例如N1MM 并将其连接到另一个 COM 端口...例如COM10 作为 TS-2000 8-N-1 115200baud

4.如果您想通过 COM 端口运行多个程序,则需要为每个需要 COM 端口的应用程序提供另一个 rigctlcom 实例。

德·迈克 W9MDB

在 Linux 中,可以使用以下命令从命令行创建和绑定虚拟 COM 端口 索卡特

示例:

socat PTY,link=/dev/ttyS10 PTY,link=/dev/ttyS11

来源:https://stackoverflow.com/questions/52187/virtual-serial-port-for-linux



相关出版物