NB-IoT终端收到OneNet平台下发的数据格式异常问题

1.问题描述

         NB-IoT终端对接OneNet平台调试过程中发现,终端收到的平台下发的数据偶尔会出现格式异常现象。例如,平台本来下发的数据是字符串形式的“abc”,但是NB模组收到的实际数据是这条字符串的ASCII码“979899”。这种现象有一定概率出现。

2.原因分析

        看现象应该是平台的编码转换有问题,如果是这样也无法解释为什么问题是偶现,而不是必现。经过大量的试验,终于发现规律:终端在登录OneNet平台后,如果先发送一条上行消息(字符串格式),则问题不会出现;如果登录平台后不发上行消息,直接让平台下发消息,则问题必然出现。

        根据试验的现象,咨询了OneNet平台技术人员得知,OneNet平台与终端之间通信有如下几种数据格式:

NB-IoT终端收到OneNet平台下发的数据格式异常问题_第1张图片

其中opaque为16进制字符串,如果终端没有指定数据格式的话,平台会默认以opaque格式下发,即使平台侧填写的数据是字符串,也会被转换成16进制(即字符对应的ASCII码)字符串发送。而终端指定数据格式的方式就是向平台发送一条notify数据,notify数据是什么格式,平台就会采用什么格式。

3.解决办法

        终端在登录OneNet平台后,第一时间上报一条数据,以指定数据格式。

 

你可能感兴趣的:(通信)