过去一年,我一直在更新PortaPack硬件,软件这块暂停了很久。其实我当时做的APRS接收一直是有点问题,不是每次发射都能正确解调,并且有时候会跳出乱码。
这是因为我只是在参考aprs tx代码写rx,并没有真的找到标准协议。
后来我发现mayhem固件里有另一个老外(east2west,不是eried)也做了一个aprs接收,并且据说可以跟对讲机发出的标准的aprs信号互通。
我先试了一下mayhem中的这一部分功能,发现用它发射给我的接收,我的接收虽然也能收,但也会有点问题,就跟对讲机发给我一样,出现false_detect的数据包。

后来我又用我的固件发射,然后分别用我和mayhem的固件接收,效果如下:

我的固件接收(左边) 我的固件发射(中间)mayhem接收(右边)
可以看出我自己固件收自己的信号也会有点问题,但是mayhem收我的信号就没什么问题。
如果以mayhem为标准的话,我的发射能发给它的接收,说明我的发射没什么问题。我的接收应该是不如它的接收,但是应该也比较接近了。
因此,我的主要问题集中在接收,不是发射上(furrtek当时做的发射,多半没问题,后来我多加了一句add_flag(),这句改回去就行了)。
然后我看了mayhem aprs rx的接收。其实它的解调proc_aprsrx.cpp跟我用的解调代码proc_afskrx.cpp差不多,主要区别是在解码上aprs_packet.hpp。如果你感兴趣,可以看看mayhem项目中的这几个代码。

作者分享了自己在APRS接收方面遇到的问题及解决过程。通过对比分析两种固件的接收效果,最终将mayhem项目的相关代码合并到自己的项目中,提升了接收质量。
最低0.47元/天 解锁文章
5008

被折叠的 条评论
为什么被折叠?



