Portapack应用开发教程(八)pocsag收发改进

本文深入探讨了使用PortaPack设备进行POCSAG信号通信时遇到的问题及解决方案。作者发现设备间的通信障碍源于发射与接收模式不匹配,并通过修改代码实现了正相反相模式的切换,最终使得两台PortaPack能够相互发送信息。文章还讨论了如何在UI层面实现模式切换,以兼容更多类型的BB机。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pocsag信号就是bb机。其实havoc固件已经实现了pocsag信号的接收和发射了。但是我发现一个问题,无法使用一个portapack来发pocsag给另一个portapack。

当我调整到同一个中心频率的时候,可以看到当发射机在发的时候,接收机的信号强度会增加。但是没有数据出来。

我本来以为是地址的问题,但是咨询了几个朋友后知道,portapack接收机是支持任意地址接收的,只要不勾选ignore address,就是不管什么地址的消息,它都会显示出来。

后来经过几个朋友的测试,发现portapack接收只能支持反相的模式,而发射只支持正相模式。两种模式不能互相通信,导致无法用portapack发给另一个portapack。

我看了看pocsag的发射接收代码,其实就是fm做的。发射的时候根据01010这样的bit来决定相位,所以我打算把下面图里第62行的cur_bit前加一个感叹号试试,后来就成功了。

但是这样还有几个问题,一个是proc_fsk是几个app共享的,我这样一改别的程序可能没法正常使用。

还有另一个问题是其实正相反相我都要的,否则的话我这么改了也只是能让portapack互相发信息,但是不能支持所有bb机。

所以我要做的是在界面上实现正相反相的切换,不只是发射机,接收机也要实现正反相切换。

后来我在pocsag的编码过程中做了处理,维持调制部分与原来代码不变,主要改的是ui_pocsag_tx。

接收部分我是在解调里做的,因为先解调才解码,如果解码才做处理,就没法检测到preamble了。但是选择模式还是在界面上,所以我还做了界面传参数给解调部分,这个稍微有点麻烦的。

代码设计了好几个文件,我都传到我的github的repo里了。

演示视频:

https://www.bilibili.com/video/BV1nf4y1m7dn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值