之前的博文中介绍了如何使用Direwolf搭建APRS网关、车载信标,博主一直以来都在研究Direwolf,并尝试以简单廉价的方式将其应用,进而推广APRS。Direwolf也不负众望,以强大的解码能力和广泛的硬件支持担负起了西安市区及周边的APRS基站职能。
本文博主就带大家学习一下Direwolf附带的小工具:kissutil,不要小看这个调试工具,它可以通过命令连接Direwolf的KISS TCP端口并发射自定义格式的信标。重点就在“命令”和“自定义”这两个词,命令可以远程执行并以脚本形式加入各种数据采集和条件判断,自定义则是将采集到的数据封装成信标数据包,通过条件判断来控制发射时机。接下来就是应用场景了,我们可以向APRS网关覆盖范围内的到访者发送欢迎信标;发射天气预警信标;相互发射APRS Message;脱网传送遥测数据;甚至和智能家居联动等等。
在开始折腾前博主还是要提醒大家,作为发射设备必须验机取得执照、不涉及敏感信息,爱国守法是HAM的基本准则。
好了,话不多说开始准备工作:
首先编译安装Direwolf并配置好接收和发射功能(参考之前博文:Igate网关、车载信标)。
编辑Direwolf配置文件:
nano direwolf.conf
将两个参数的值修改如下,没有的话加入即可,完成后保存退出并重启Direwolf,这个操作是开启Direwolf的KISS和AGW接口,供kissutil调用。
AGWPORT 8000 KISSPORT 8001
创建一个文件夹来存放要发送的数据包文本:
mkdir /root/packet
到此为止准备工作就完成了,接下来有请kissutil登场。
首先我们查看一下kissutil命令的帮助信息:
kissutil --help
输出如下:
-h 参数是direwolf所在服务器的IP地址,默认是本机。
-p 参数是KISSPORT端口,默认是8001,也就是上文配置过的。
-s、-v、-o、-T 分别是:波特率、内容显示、信息输出、时间戳,与本文功能无关暂不阐述。
-f 参数是用来指明要发送的数据包文本文件的存放路径,就是上文创建的packet文件夹。
了解用法后我们就使用“命令+参数+&”让其在后台运行并监听,由于是在同一台机器,所以-h和-p参数省略,如下:
kissutil -f /root/packet &
接下来只需在此目录创建一个文件,文件名任意,内容为APRS数据包标准格式即可。后台运行的kissutil会实时监控这个文件夹下的文件,将其内容读取,并通过KISS 8001端口交给Direwolf发射出去,发射完成后会自动将文件删除。
举个栗子:
echo "BH9AAA-10>APDW17,WIDE1-1:!3412.86N/10849.55E#Test" > /root/packet/test1 echo "BH9AAA-10>APDW17::BH9BBB :Hello" > /root/packet/test2
双引号内就是APRS信标数据包的原始数据,接收放呼号+SSID为9个字符,不够用空格补充,具体的格式可以参考APRS规范官方文档。
最后要做的就是加入开启自动启动:
编辑开机启动文件:
nano /etc/rc.local
在“exit 0”的前一行插入启动命令,Ctrl+x保存,编辑后如下:
# KissUtil after Direwolf sleep 8 ; /usr/local/bin/kissutil -f /root/packet > /dev/null 2>&1 & exit 0
到此为止就全部配置好了,接下来可以根据自己的需要手动创建或者脚本创建包含数据包内容的文件,Kissutil帮你完成:监听、读取、传输、发射、清理工序。
发挥你的想象力尽情的折腾吧!
这个功能牛逼,为一键发射信标提供了可能。获取GPS数据,然后写文件,发射。666.
巨佬威武,神功盖世,法架中原
我现在调用direwolf不能把信息同步到aprs.fi的地图上,direwolf也能把音频通过设备调制出来播放,可就是aprs.fi上没有显示。我用的IGSERVER asia.aprs2.net,用APRSDroid都可以同步上去,就是用direwolf不成,求解。。
你说的是Direwolf自身的信标吧?配置里有一项sendto,如果不加它的话就是通过射频发射,加上sendto=IG的话就是通过IGSERVER上传。
大佬有vx群吗?
没有专门的微信群
建个群可好