根据《ES1642-C/NC模块接口协议》写出相关驱动代码,有描述的部分,基本功能上都是正常可以使用的。
但是在使用模块自身的中继转发功能时,碰到点问题:
使用模型A(发送)---->B(接收)---->C(接收),距离或者说信号强度做好的把控,A到C的距离直接传达不到,在B点存在的情况下,观察C点是否接收到数据,以此来测试B点是否产生了中继。
配置模块A(广播发送,中继深度0),ABC网络口令均设置为0时:
B成功接收,C接收不到
ABC网络口令均设置为非0的同一口令时:
配置模块A(广播发送,中继深度0):
B成功接收,C可以接收,但是会额外接收到数据长度为0的数据帧,如图,此数据帧格式没问题,但是对应接口协议中,接收数据时的描述却有点不太一致。
配置模块A(发送目标地址B,中继深度0):
B成功接收,且C接收不到任何数据。
配置模块A(发送目标地址C,中继深度0):
C成功接收,且B接收到数据的同时,会接收到如图数据长度为0的数据帧。
另外,模块的中继深度存疑,根据参数描述,中继深度由4bit组成,除去0(不指定),剩下15级中继深度,但不清楚使用0时,能否超越15级。暂不得而知。
小结:不设置网络口令或不在同一网络下会影响中继功能的使用。
继续测试中,会有更新