arpt
目录
中继漫游
ARPT = Automatic Repeater Provisioning Transceiver
业余无线电中继台自动漫游 · 纯网页版 · 零安装 · 可脱网
v1.0.0 | 作者 BG6UD | 在线体验 https://dtrac.cn/arpt/
项目简介
项目英文简称:ARPT(Automatic Repeater Provisioning Transceiver)
释义:收发信机自动优选附近中继台服务
中文简称暂定为为:中继漫游。
根据相关规定:业余无线电中继台的管理人应当将使用业余中继台所需的各项技术参数对业余无线电爱好者公开。项目展示的数据来源为各地工信局官网、爱好者提交,以及其他网络渠道整理。
ARPT 功能亮点清单
一句话介绍
打开网页就知道「最近的可用中继台是哪个」,一键把频率写进手台 —— 不用装 App、不用连电脑写频软件,手机、平板、电脑打开就能用,没网也能用。
定位与自动漫游
- 三通道并发定位:网络定位(WiFi/基站)、GPS 高精度、放宽缓存网络三路同时探测,任一条出结果立刻采用,不在一条慢通道上干等。
- 高精度定位 + GPS 定时重试:勾上「高精度」后,只要当前结果不够准,程序会按节奏(60 秒起、1.5 倍退避、5 分钟封顶)单独再问一次卫星 —— 屋里收不到星、走到室外自动升级到 GPS,不用手动「停止定位再开始」。
- 服务器端 IP 定位兜底:专治桌面/关 WiFi 环境下浏览器把宽带 IP 判到外省的老问题(实测偏差 129 公里)。改用国内 IP 库判定,并且如实标注「约 25000 米」精度,绝不假装精确。
- 手动位置可被跨城纠正:上次会话缓存的手动位置,若与当前位置相距超 50 公里(已换城市)会用 IP 定位纠正;本次亲手点的位置谁都不许动。
- 先显示、后升级:拿到粗结果立刻显示给用户反馈,同时后台继续找更准的,拿到就自动替换。
- 随身诊断页:gps-diagnose.html 实测三条定位通道 + 判定「是坐标系偏移还是定位分辨率不够」,整页不联网、不上传任何数据。
中继台列表与漫游
- 按距离排序:每条中继台都标出「离我多远」,开箱即用。
- 「最近中继台」卡片:一眼看到该写哪一台。
- 自动漫游:定位成功后自动把最近的中继台写进电台,带 1 公里切换阈值,避免在两台之间来回横跳。
- 数据同步状态一眼可见:「共 N 个 · 可用 M」+「可贡献 / 可更新 · 本地多 N 条」,明确告诉你该点「↑贡献」还是「↓更新」。
- 「可能重复」智能标黄:500 米内 且 收发频率都相同才提示 —— 同一座山上架多套不同频率的中继台是常态,不做无意义误报。
- 停用 / 已核实标记:本地即点即生效,列表带删除线;窄屏自动收敛徽章,不挤乱布局。
地图(天地图官方 API 4.0)
- 三种底图自由切换:矢量 / 影像 / 地形(含注记),选择自动记忆。
- 点地图即可手动设置位置:没有 GPS 也能用。
- 地点搜索:输入地名或 POI,选中即落针定位、弹出信息窗。
- 地图拾取坐标:编辑中继台时先搜地名、再在地图上点一下取经纬度,省去手抄坐标。
- 坐标系免纠偏:天地图与 GPS 同为 CGCS2000/WGS-84 基准,标记叠加零偏移。
电台连接与一键写频
- 三种连接方式:USB/串口(Web Serial)、蓝牙 BLE(Web Bluetooth)、WebSocket 网络透传。
- 支持型号:DTrac Radio、LANCHONLH HG-UV88、ICOM ID-52 / IC-705、Kenwood TH-D74 / TH-D75、Guohe PMR171 / Q900、Quansheng UV-K1 / K5 / K6。
- 一键「写入最近中继台」:自动依次完成 握手 → 频率 → 模式 → 亚音 → 名称,无需逐项手填。
- 「识别电台」:读回电台型号确认连接正确。
- 连接成功自动锁参数:型号、波特率、UUID、地址等 12 项参数整体置灰,杜绝“改了参数却没重连”造成界面与电台状态脱节。
- 异常断开实时同步:拔线、断电、蓝牙断链、桥接服务掉线都会被立刻识别,界面转警示色并写明是哪条链路、什么原因断的。
- 串口端口真正释放:被动断开时按 Web Serial 规范真正 close() 端口,避免“电台重新上电后提示端口已被占用”。
- 中继台名称送到电台屏幕:写频时额外发一帧名称公告,手台屏上直接显示台站名。默认 GBK(贴合多数国产机型字库),可切 UTF-8;超长按字符边界截断(绝不发半个汉字),字库外的字符用 ? 顶替并告警;GBK 码表由浏览器解码器反推生成,不依赖任何第三方库、不联网。
社区数据贡献与安全同步
- 「↑贡献数据」:本机新增/修改一键上传,服务端按四档规则合并去重(已核实整条锁定 / 同 id 修改 / 11 项业务字段全同且 500 米内判为重复跳过 / 其余新增并分配服务器 id)。
- 「↓更新数据」先算后改:动手前逐条列出“哪些本机改动会被丢弃”,明确标注不可撤销,确认后才合并。
- 启动绝不覆盖本机决策:程序重启只往空处填,本机删除的记录不会被偷偷复活、本机改的内容不会被顶掉 —— 只有你亲手点「↓更新数据」才等于确认“以服务器为准”。
- 标记与内容分开管:停用/已核实标记默认保留,想连标记一起覆盖就在 3 秒内再点一次按钮。
- 管理口令:填对口令才能同步删除服务器记录、维护核实/停用标记(hash_equals 防时序攻击),普通用户完全看不到也点不到这些权威操作。
- 判重规则三端一致:PHP 版、Node 版、客户端逐字同源,并有三端一致性静态锚点守着,避免“客户端说可贡献、服务器却判重复”的静默丢数据。
中继台状态报告
- 一键投票:卡片里点「可用 / 不可用」即可报告当前中继台状态;长按 600ms 撤销自己投的票。
- 服务器自动判定:30 天滑动窗口 + 同 IP 同台只算一票(取最后一条),有效票 ≥ 3 且可用占比 > 50% → 自动标「已核实」;≤ 50% → 自动取消。没有报告 ≠ 不可用,票不够时不判定。
- 多层防刷:结构校验 → 台站必须在库 → 同 IP 同台 10 秒去抖 → 同 IP 窗口 100 行限流 → 聚合去重。
- 隐私友好:入库的 IP 是加盐哈希,明细里不出现明文地址。
- 可视化:卡片直接显示「更新于 / N 票 | 占比 / 进度条」,列表挂「报告·可用 / 报告·不可用」徽标。
审计日志(服务器端留痕)
- 贡献数据、状态报告逐笔记录,格式固定 时间 | IP | 操作类型 | 操作内容 | 操作人 | 其他,按北京时间分日归档。
- 状态报告自动核实由服务器触发,操作人记为 system,票数与占比一并写清。
- 日志内容先清洗(换行与控制字符转义、| 转全角)防伪造整行;写日志永远是附属动作,失败只提示、绝不阻塞数据保存。
脱网可用(PWA)
- 可安装:Android/桌面 Chrome、Edge「安装应用」,iOS Safari「添加到主屏幕」,装好后以独立窗口运行。
- 断网照常用:中继台列表、距离排序、GPS 定位、电台连接与写频全部可用。
- 离线地图自动降级:切换为 canvas 绘制的经纬网格底图,仍可拖动、双指缩放、点击拾取坐标,中继台标记与我的位置按真实经纬度照画;联网后自动恢复天地图。
- 状态诚实:顶栏亮起「离线」胶囊,更新/贡献按钮置灰,搜索面板明确解释“离线底图没有地名,请直接在地图上点击拾取”。
- 更新即时生效:Service Worker 全网络优先策略,上传新代码后第一次打开就是新版(不会出现“刷两次才更新”)。
- 可演练:?offline=1 强制离线、?offline=0 强制在线,不必真的关网。
- 异形屏适配:刘海/挖孔屏铺满显示,内容靠安全区内边距避让。
适用人群
- 业余无线电爱好者:上车/落地一键漫游,手台自动对准当地中继台。
- 地方中继台维护者:众包收集台站状态,社区投票自动标记可用性。
- 需要离线作业的场景:山区、野外无信号区域,装上就是一本随身中继台手册。
arpt.txt · 最后更改: 由 bg6ud
