TI中文支持网
TI专业的中文技术问题搜集分享网站

CC3235SF 的MQTT心跳包异常,OneNet数据下发异常

使用MQTT_3_1_1版本的MQTT,出现问题如下:

1、在百度云上发送、接收数据是正常的,心跳包也能正常打开,但是改变心跳包参数的时候不生效,一直都是默认的25s

2、在阿里云上发送、接收数据是正常的,但是无法开启心跳包,我们使用 MQTTClient_get 函数得到的值是一个空值,说明底层设置失败。

3、在OneNet上可以发送数据到OneNet服务器,但是不能接收到服务器下发的数据。

请帮忙分析一下在这个几个问题可能是什么原因导致的,或者在设置参数过程中需要注意什么?感谢支持。

Kevin Qiu1:

你用的SDK版本是多少,在例程中进行了哪些修改?
更改参数后,重新烧录程序参数是否更改完成?

babober:

回复 Kevin Qiu1:

SDK版本是simplelink_cc32xx_sdk_4_10_00_07,是参照这个mqtt_client例程写的,云平台是我们基于OneNet、阿里云和百度云配置的。

1、在百度云上发送、接收数据是正常的,心跳包也能正常打开,但是改变心跳包参数的时候不生效,一直都是默认的25s

2、在阿里云上发送、接收数据是正常的,但是无法开启心跳包。

3、在OneNet上可以发送数据到OneNet服务器,但是不能接收到服务器下发的数据。

这三种情况是单独运行的,并且都是基于MQTT服务的,流程是一样的,调用的函数接口都是一样的,在百度云能上传下发数据,心跳包也能发送出来,说明模块的参数配置应该是成功的,到底有没有问题我不得而知,只能说设置函数返回了成功。并且因为你们SDK里边的给的查询API 是个空函数,是真的没办法确定。下面是查询函数原型。

int16_t MQTTClient_get(MQTTClient_Handle handle, uint16_t option, void *value, uint16_t valueLength){ return 0;}

并且我们使用软件模拟和云平台连接通信的时候是没有问题的。

所以请你仔细看一下我这三个问题,帮忙分析分析

Kevin Qiu1:

回复 babober:

/**\briefGet client parameters.This function can get different parameters from the client.Will message params, user name and password, keep alive time andclean/persistent session.\param[in] handlehandle to the MQTTClient instance\param[in] optionDefine the actual option to set. Applicable values:- #MQTTClient_USER_NAME- #MQTTClient_PASSWORD- #MQTTClient_WILL_PARAM- #MQTTClient_KEEPALIVE_TIME- #MQTTClient_CLEAN_CONNECT\param[in] valueSpecifies a value for the option\param[in] valueLength Specifies the length of the value\return Success(0) or Failure(Negative number)\sa MQTTClient_Will*/
int16_t MQTTClient_get(MQTTClient_Handle handle, uint16_t option, void *value, uint16_t valueLength);
通过这个API用户名、密码等信息,需要传入正确的参数参考以下两个例子,看下操作是否正确,第二个示例是将数据发送到IBM Watson IoT Platform云的http://dev.ti.com/tirex/explore/node?node=AHJ8YEDDQKAGTuUKvUm0ig__fc2e6sr__LATEST
http://dev.ti.com/tirex/explore/node?node=AOU6wxqd7QK3nTF1q4CG3g__fc2e6sr__LATEST

babober:

回复 Kevin Qiu1:

你们的get函数是个空的,获取不到任何参数,你可以去C:\ti\simplelink_cc32xx_sdk_4_10_00_07\source\ti\net\mqtt\interface路径下的mqttclient.c文件里看看。我们在阿里云和百度云都已经调通了。就OneNet不能下发数据,上传数据是可以的,现在分析不出问题出在哪里。

Kevin Qiu1:

回复 babober:

使用MQTTClient_get需要传入参数,看下上面关于函数的说明,不传入参数是获取不到数据的

babober:

回复 Kevin Qiu1:

都说了你们给的函数原型是和空函数,空函数,空函数,你有没有进入到目录去看啊?你去下面这个目录里边看       C:\ti\simplelink_cc32xx_sdk_4_10_00_07\source\ti\net\mqtt\interface。   找到图片对应的函数原型。看看是不是我的SDK有问题??

babober:

回复 Kevin Qiu1:

请问这个函数应该怎么去获取参数,把你获取的值给我看看呢?

赞(0)
未经允许不得转载:TI中文支持网 » CC3235SF 的MQTT心跳包异常,OneNet数据下发异常
分享到: 更多 (0)