网络摩尔斯码前端
- JavaScript 82.9%
- CSS 11.5%
- HTML 5.6%
| app.js | ||
| favicon.ico | ||
| index.html | ||
| README.md | ||
| styles.css | ||
网络摩尔斯通联
概述
这是一个基于网络的莫尔斯电码收发器网页前端程序,允许用户通过互联网发送和接收莫尔斯电码信号。它具有瀑布图显示以可视化信号、传输和接收信号的音频反馈,并支持手动和自动(双桨键控)模式。该应用程序专为业余无线电爱好者设计,支持与不同频段的交互,包括一个用于接收时间和国际空间站(ISS)坐标的时间广播频段。
功能
- 实时信号传输与接收:通过WebSocket连接发送和接收莫尔斯电码信号。
- 瀑布图显示:可视化所选频段内的信号活动。
- 手动与自动键控模式:
- 手动模式:用户通过按住按键(鼠标、触摸屏或键盘)直接控制信号的持续时间。
- 自动模式:支持双桨键控(iambic keying),生成精确的点(dot)和划(dash)。
- 音频反馈:为发送和接收的信号提供音调反馈,音调和音量可调。
- 频率调节:通过旋钮或点击瀑布图调整接收/发送频率。
- 时间广播解码:在特定频段解码时间和ISS坐标的莫尔斯电码广播。
- 信号搜索:自动扫描频段以寻找活跃信号。
- 静音功能:支持静音以禁用音频输出。
系统要求
- 现代网络浏览器(如Chrome、Firefox、Safari)。
- 支持WebAudio API和WebSocket。
- 触摸屏设备(如手机或平板)支持触控操作。
- 稳定的互联网连接以进行实时信号传输。
使用方法
1. 启动应用程序
- 打开支持的网络浏览器并加载应用程序。
- 页面加载后,应用程序会自动初始化并连接到默认频段(从预定义的频段列表中选择)。
2. 界面元素
- 频率旋钮:调整当前频率(鼠标拖动或触摸旋转)。
- 音量旋钮:控制输出音量(0%至100%)。
- 音调旋钮:调整莫尔斯电码的音调频率(400Hz至1200Hz)。
- 频段选择下拉菜单:切换不同频段(包括时间广播频段)。
- 瀑布图:显示当前频段的信号活动,绿色表示远程信号,黄色表示本地信号,橙色表示时间广播信号。
- 莫尔斯键(手动模式):用于手动发送信号的虚拟按键。
- 双桨键(自动模式):左右按键分别控制点(dot)和划(dash)。
- 模式切换开关:在手动和自动键控模式之间切换。
- WPM滑块:调整自动模式的键控速度(以每分钟单词数计,WPM)。
- 静音按钮:启用/禁用音频输出。
- 测试音频按钮:播放测试音以验证音频功能。
- 搜索按钮:启动信号搜索,自动扫描频段寻找活跃信号。
- 连接状态:显示WebSocket连接状态(连接中、已连接、断开等)。
- 时间广播显示:显示解码的时间和ISS坐标(如果在时间广播频段)。
3. 操作指南
3.1 选择频段
- 在“频段选择”下拉菜单中选择一个频段(如“40m,含Time & ISS”)。
- 应用程序将连接到所选频段,瀑布图会更新以显示该频段的信号活动。
3.2 调整频率
- 使用频率旋钮:
- 鼠标:点击并拖动旋钮旋转,逆时针降低频率,顺时针升高频率。
- 触摸屏:用手指旋转旋钮。
- 点击瀑布图:
- 在瀑布图上点击特定位置,将频率调整到该点对应的频率。
- 键盘快捷键:
- 按 T 键(在时间广播频段)快速跳转到时间广播频率(默认7.003 MHz)。
3.3 发送莫尔斯电码
- 手动模式:
- 确保模式开关设置为“手动”(开关未选中)。
- 使用以下方式发送信号:
- 鼠标:点击并按住“莫尔斯键”按钮,按住时发送信号,释放时停止。
- 触摸屏:触摸并按住“莫尔斯键”按钮。
- 键盘:按住 空格键 发送信号,释放停止。
- 瀑布图上将显示黄色的本地信号。
- 自动模式(双桨键控):
- 将模式开关设置为“自动”(开关选中)。
- 使用WPM滑块调整键控速度(默认20 WPM)。
- 发送点(dot)和划(dash):
- 鼠标:
- 左键(或点击左侧桨)发送点。
- 右键(或点击右侧桨)发送划。
- 同时按住左右键交替发送点和划(iambic模式)。
- 触摸屏:
- 触摸左侧桨发送点,右侧桨发送划。
- 键盘:
- 按 逗号 (,) 或 左箭头 发送点。
- 按 句号 (.) 或 右箭头 发送划。
- 鼠标:
- 音频反馈将生成精确的点(短音)和划(长音),瀑布图显示黄色信号。
3.4 接收信号
- 其他用户的信号将显示为瀑布图上的绿色条。
- 如果接收频率接近当前频率(±1%频段宽度),会听到相应的莫尔斯音。
- 时间广播信号(橙色)在时间广播频段(10.000 MHz附近)显示,并自动解码为文本(时间或ISS坐标)。
3.5 调整音量和音调
- 音量旋钮:旋转调整音量(0%静音,100%最大)。
- 音调旋钮:旋转调整音调频率(400Hz低音,1200Hz高音)。
- 调整后的音量和音调实时应用于发送和接收的音频。
3.6 搜索信号
- 点击“搜索”按钮启动信号搜索。
- 应用程序将逐个扫描频段,寻找活跃信号。
- 搜索状态和进度条显示在弹出窗口中。
- 找到信号后,应用程序自动切换到该频段和频率;若未找到信号,恢复到初始频段和频率。
3.7 静音和测试音频
- 静音:点击“静音”按钮(显示音量图标)禁用/启用音频。
- 测试音频:点击“测试音频”按钮(或按 A 键)播放500ms的1000Hz测试音,验证音频功能。
3.8 时间广播解码
- 在时间广播频段(Time & ISS),应用程序自动解码接收到的莫尔斯信号。
- 解码结果显示在“时间广播显示”区域,包括时间或ISS坐标,以及解码的可信度(高/中/低)。
- 按 T 键快速调谐到时间广播频率。
4. 键盘快捷键
- 空格键:手动模式下发送信号(按住发送,释放停止)。
- 逗号 (,) 或 左箭头:自动模式下发送点。
- 句号 (.) 或 右箭头:自动模式下发送划。
- T:跳转到时间广播频率(仅在时间广播频段有效)。
- A:播放测试音。
5. 注意事项
- 音频延迟:键盘输入可能有轻微延迟(~20ms),触摸屏响应最快。
- 浏览器兼容性:确保使用最新版本的浏览器以获得最佳性能。
- 网络连接:稳定的WebSocket连接对实时信号传输至关重要。
- 触摸屏设备:多点触控可能导致意外行为,建议单点触控操作。
- 静音状态:静音开启时无法发送信号。
安装与运行
- 本地运行:
- 将代码克隆到本地。
- 使用本地Web服务器(如Node.js的
http-server)托管应用程序。 - 在浏览器中访问
http://localhost:port。
- 部署:
- 将应用程序部署到支持WebSocket的服务器。
- 确保
Constants.SERVER_BASE_URL指向正确的WebSocket服务器地址。
- 依赖:
- 无需额外安装库,应用程序完全基于浏览器原生API(WebAudio、WebSocket、Canvas)。
故障排除
- 无音频输出:
- 检查静音按钮是否开启。
- 点击“测试音频”按钮验证音频功能。
- 确保浏览器支持WebAudio API并已授予音频权限。
- 连接断开:
- 检查网络连接。
- 查看“连接状态”显示的错误信息。
- 刷新页面重试。
- 瀑布图不更新:
- 确保选择了正确的频段。
- 检查WebSocket连接状态。
- 信号搜索失败:
- 确保网络稳定。
- 检查是否有活跃信号(可能需要等待或切换频段)。