This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC3220SF-LAUNCHXL:如何向私人代理订阅 MQTT?

Guru**** 2581345 points
Other Parts Discussed in Thread: CC3220SF, UNIFLASH

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/771101/cc3220sf-launchxl-how-to-do-mqtt-subscribe-to-private-broker

器件型号:CC3220SF-LAUNCHXL
主题中讨论的其他器件:CC3220SFUNIFLASH

您好!

我正在使用 CC3220MODASF Launchpad 实现 MQTT 通信。 我从 SDK 中导入了客户端示例"simplelink_cc32xx_sdk_2_30_00_05"

在这里,需要进行哪些更改,才能将主题“测试”订阅到我的私人代理/服务器“http://example.com" ”?

因此、我可以接收来自 NW 中其他节点的发布。

同样,如何发布到其他节点/launchpad 在 NW 中从我的 launchpad 订阅的主题“试用”,而不知道谁订阅了“试用”?

 谢谢你

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    只需在 MQTT_CLIENT 示例中更改 SERVER_ADDRESS 定义。 我们在 Resource Explorer 中提供了一个相关指南-下面的链接。 publish_topic 和 publish_data 变量(也在指南中提到)用于定义要发布到的主题、示例中的 MQTTClient_publish 函数调用会执行实际发布。

    dev.ti.com/.../

    Jesu
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Jesu、

    工作正常。 现在、我面临着一个大问题。

    我正在 尝试在 SDK 的"开箱即用"项目中集成相同的 MQTT。

    因此、器件启动正常后、我将在"link_local_task.c"的 getDeviceType ()中打印"[Provisioning task] detected device is CC3220SF"

    在此步骤旁边、我调用了"mqTT_client_app.c"的以下任务

    //在此处启动 MQTT //
    UART_PRINT ("MQTT 任务开始\n");
    
    pthread_t MQTTThreads =(pthread_t)空;
    int32_t RetVal;
    pthread_attr_t pAttrs;
    struct sched_param primParam;
    pthread_attr_init (&pAttrs);
    priParam.sched_priority = 1;
    RetVal = pthread_attr_setschedparam (&pAttrs、&priParam);
    RetVal |= pthread_attr_setstacksize (&pAttrs、4096);
    
    if (重定位)
    {
    /*句柄错误*/
    UART_PRINT ("无法配置线程参数\n");
    while (1)
    {
    ;
    }
    }
    
    RetVal = pthread_create (&MQTTThreads、&pAttrs、MQTTThread、NULL);
    
    if (重定位)
    {
    /*句柄错误*/
    UART_PRINT ("无法创建线程\n");
    while (1)
    {
    ;
    }
    } 

    从 MQTT 客户端项目导入并编辑的文件为 e2e.ti.com/.../1057.mqtt_5F00_client_5F00_app.c

    e2e.ti.com/.../mqtt_5F00_client_5F00_app.h

    e2e.ti.com/.../client_5F00_cbs.c

    e2e.ti.com/.../client_5F00_cbs.h

    e2e.ti.com/.../6518.network_5F00_if.c

    e2e.ti.com/.../network_5F00_if.h

    请查找附件以查看代码更改。

    原因1:如果使用 CCS Uniflash 刷写、我将无法获取打印"MQTT 任务启动"、我将按如下方式进行打印

    交换机(deviceType)
    {
    case DEV_TYPE_CC3220R:// 3220R
    UART_PRINT ("[配置任务]检测到的器件为 CC3220R\n");
    中断;
    case DEV_TYPE_CC3220RS:// 3220RS
    UART_PRINT ("[配置任务]检测到的器件为 CC3220RS\n\n");
    中断;
    case DEV_TYPE_CC3220FS:// 3220FS
    {
    UART_PRINT ("[Provisioning task]检测到的器件为 CC3220SF\n\n");
    
    //在此处启动 MQTT //
    UART_PRINT ("MQTT 任务开始\n");
    
    pthread_t MQTTThreads =(pthread_t)空;
    int32_t RetVal;
    pthread_attr_t pAttrs;
    struct sched_param primParam;
    pthread_attr_init (&pAttrs);
    priParam.sched_priority = 1;
    RetVal = pthread_attr_setschedparam (&pAttrs、&priParam);
    RetVal |= pthread_attr_setstacksize (&pAttrs、4096);
    
    if (重定位)
    {
    /*句柄错误*/
    UART_PRINT ("无法配置线程参数\n");
    while (1)
    {
    ;
    }
    }
    
    RetVal = pthread_create (&MQTTThreads、&pAttrs、MQTTThread、NULL);
    
    if (重定位)
    {
    /*句柄错误*/
    UART_PRINT ("无法创建线程\n");
    while (1)
    {
    ;
    }
    }
    
    中断;
    默认值:
    中断; 

    原因2:如果我进行了 JTAG 调试,则大部分时间设备通过打印“

    [配置任务]提交新下载失败、通过重新发送器件恢复到以前的副本"以及其他一些时间。

    极少时间"连接到代理失败、错误代码:-1 "

    请告诉我这方面的解决方案、

    谢谢你

      

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    如果我理解正确、您已经修复了原始问题、并且在尝试将我们的 MQTT_CLIENT 实施移植到您自己的项目中时遇到了问题。 如果是、请创建有关此问题的新主题帖、以便社区中的其他人可以找到与标题相关的主题帖。

    Jesu