APRS-IS 过滤器
服务器推给你哪些包,全看这一行 filter。每个条件在这一页摊开写。
一条 filter 怎么写
过滤器是给服务器看的订阅单。端口默认给你的那点数据之外,想多看什么,一条条写上去。
写法只有一种:先写 filter,后面跟一个或多个条件,中间用空格隔开。想要达拉斯周边两百公里内的台站,再加上所有 NWS 公报,就写成下面这样。
-
两个条件
filter r/33/-97/200 t/n条件之间是「或」的关系,任意一条命中,这个包就推给你。再多几个条件,照样用空格隔开。 -
加上排除
filter m/200 -p/CW条件前面加一个减号就是排除。这一行要两百公里内的台站,但呼号以 CW 开头的一个不要。
不写过滤条件,不等于什么都收不到。14580 这个自定义过滤端口上,服务器本来就会给你两样:发给你的消息连同相关的位置包,还有你自己那台网关收上来的包。其余的都要靠过滤条件加上去。排除条件只挡这一个订阅里的包,端口的常规功能照旧,别人发给你的消息不会被它掐掉。
过滤器只管发给你这一个方向。你自己发的包、你自己的网关转上去的包,都不受它约束。
-
写在哪里
三个地方都认:写在登录行里,给
SERVER发一条 APRS 消息,或者单独一行注释#filter r/33/-97/200。官方推荐第一种,现在的客户端基本都支持。 - 经纬度 一律用十进制度。西经和南纬写负数,东经和北纬写正数。
-
恢复默认
filter default让过滤器退回这个端口预设的那一套。 - 条数 按位置挑的那几类条件,同类里各最多九条。
按位置挑
用得最多的四个条件:一个圆、一个方框,还有两个跟着人跑的圆。
- r/lat/lon/dist 范围过滤。以 lat/lon 为圆心、dist 公里为半径,里头的台站位置包和对象都推给你,发给半径内台站的消息也一起推。
- a/latN/lonW/latS/lonE 矩形过滤。给四个角,先左上再右下,经纬度照样用十进制度,西经南纬写负数。
- m/dist 圆心放在本连接最后一次算出的位置上,半径 dist 公里。人动了也不用改条件。
- f/call/dist 圆心放在某个台站最后已知的位置上,半径 dist 公里。跟着朋友跑就用它。
-
一个能直接抄的例子
filter r/23.13/113.26/50广州附近五十公里。嫌少就把最后那个数字改大,单位是公里。
范围、矩形、朋友这三类都能同时写好几条,把常去的地方一块儿圈上。同类各最多九条。
按台站挑
知道要看谁的包,就用这几个条件点名。多数支持星号通配。
- p/aa/bb 呼号前缀。发信呼号以 aa 或者 bb 开头的包都推给你,跟一个地区或者一类台站用它。
- b/call1/call2 精确呼号。可以写一列,也支持星号通配。
- d/digi1/digi2 被某个中继转发过的包。路径里出现这个呼号就算,支持星号通配。
- e/call1/call2 入口台站。包里的 q 构造后面紧跟着这个呼号,也就是把这个包收上网的那台网关。
- g/call1/call2 组消息。消息的收件人是这些呼号的包都推给你,支持星号通配。
- u/unproto1 目的呼号,也就是包头里那个 To call。支持星号通配。
- o/obj1/obj2 对象名精确匹配。支持星号通配,名字里不能有空格。
- os/obj1/obj2 严格对象过滤,写法同上。对象名固定九位,Item 名字三到九位。这个条件只能写一条,而且必须放在整行的最后。
对象名里要写斜杠或者星号,得换个写法:| 当斜杠用,~ 当星号用。
按类型挑
不看是谁发的,看包里装的是什么。t 开头这一组管这个。
写法是把类别字母连在 t/ 后面,一次可以挑好几类,t/otq 就是要对象、遥测和查询。后面还能再跟一段 /call/km,把这些类别限制在某个台站周围多少公里以内。
- p
- 位置包。
- o
- 对象。
- i
- Item,名字很短的小标记。
- m
- 消息。
- q
- 查询。
- s
- 状态包。
- t
- 遥测。
- u
- 用户自定义。
- n
- NWS 格式的报文和对象。
- w
- 天气。挑这一类的时候,不带位置的气象包,它对应的位置包也会一起给你。
-
几个例子
t/otqt/nt/poimqstunw第一行要对象、遥测和查询;第二行只要 NWS 公报;第三行十类全都要。
按符号与 q 构造挑
两个偏门条件:一个认地图上的图标,一个认包是怎么上网的。
-
s/pri/alt/over
符号过滤。三段从左到右是主表符号、副表符号、叠加字符,叠加字符区分大小写。要写斜杠的地方用
|代替。 -
q/con/I
q 构造过滤。
con是要放行的 q 构造,区分大小写;这一格留空、只写一个I,就要那些由 iGate 上来的位置包。
-
符号过滤
s/->s//#s//#/T第一行要主表里的房子和汽车;第二行要副表里的中继,带不带叠加都算;第三行收窄到叠加字符是大写 T 的中继。 -
q 构造过滤
q/Cq/rRq//I第一行只要构造是 qAC 的包;第二行要 qAr 或者 qAR;第三行挑的是 iGate 上来的位置包,认那些在别的包里被标成 qAr 或 qAo 或 qAR 的网关。
q 构造是包进 APRS-IS 的时候被写上的标记,记着它是从哪条路、由谁送上网的。每个标记的含义在q 构造那一页单独讲,记不住也别硬背,日常过滤很少用到。
原文与相关
条件按官方 Server-side Filter Commands 整理,另外配了几个能直接抄的例子。