Send 14 Bytessend_data_end无法上传数据,请问void OneNet_SendData(void)中的数据包到底是由什么控制的

OneNet_SendDataw到底该如何使用?

void OneNet_SendData(void)
{
    
    MQTT_PACKET_STRUCTURE mqttPacket = {NULL, 0, 0, 0};                                                //协议包
    
    char buf[128];
    
    short body_len = 0, i = 0;
    
    printf( "Tips:    OneNet_SendData-MQTT\r\n");
    
    memset(buf, 0, sizeof(buf));//清空数组内容
    
    body_len = OneNet_FillBuf(buf);                                                                    //获取当前需要发送的数据流的总长度
    
    if(body_len)
    {
        if(MQTT_PacketSaveData(DEVID, body_len, NULL, 5, &mqttPacket) == 0)                            //封包
        {
            for(; i < body_len; i++)
                mqttPacket._data[mqttPacket._len++] = buf[i];
            
            ESP8266_SendData(mqttPacket._data, mqttPacket._len);                                    //上传数据到平台
            printf( "Send %d Bytes\r\n", mqttPacket._len);
            
            MQTT_DeleteBuffer(&mqttPacket);                                                            //删包
        }
        else
            printf(  "WARN:    EDP_NewBuffer Failed\r\n");
    }
    
}

我所写的代码中

        while(1)
    {
    OLED_ShowString(20,3,(unsigned char *)"C_T:",3); // Current_Temperature 当前温度
    OLED_ShowCHinese_Three(80,3,11); //C        
    OLED_ShowString(20,5,(unsigned char *)"C_H:",3); // Current_Humidity 当前湿度
    OLED_ShowCHinese_Three(80,5,13); //.
    dou_dht11_get_data();//获取温度数据
    OLED_ShowNum(50,3,T_H/10,3,3);
    OLED_ShowNum(60,3,T_L%10,3,3); 
    OLED_ShowNum(50,5,H_H/10,3,3);
    OLED_ShowNum(60,5,H_L%10,3,3);
        delay_s(1);
            dou_dht11_get_data();
            delay_ms(20);
        UsartPrintf(HT_USART0, "AT+IOTSEND=0,bluelight,150\r\n");
            printf("hum temp=%d .%d %d .%d\r\n",H_H,H_L,T_H,T_L);
             printf( "OneNet_SendData\r\n");//通过串口1发送提示信息(要开始发送数据了)
                OneNet_SendData();//发送数据给onenet
                printf("send_data_end\n");
                ESP8266_Clear();
        dataPtr = ESP8266_GetIPD(0);//获取平台返回的数据
        if(dataPtr != NULL)//如果返回数据不为空
        OneNet_RevPro(dataPtr);//平台返回数据检测        
        delay_ms(10);             
  delay_s(2);        
        
    }
    

一切正常返回
RX:hum temp=61 .6 19 .9
OneNet_SendData
Tips: OneNet_SendData-MQTT
buf_mqtt=,;
Send 14 Bytes
send_data_end
无法上传数据,请问void OneNet_SendData(void)中的数据包到底是由什么控制的?

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 给你找了一篇非常好的博客,你可以看看是否有帮助,链接:Onenet麒麟迷你板开发过程【附程序】
  • 除此之外, 这篇博客: Onenet麒麟迷你板开发过程【附程序】中的 反思 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    • 睡觉前开始缕清思路,反思出现的疑点:
      首先,为什么申请的是mini板,选项中能进入的只有NB-物联网,因为我之前知道有位修行较高的前辈是申请到了NB板的,只看名字也会觉得这个选项应该是给NB板开发的,那么顺着这个思路继续走;
      疑点二:在开发过程中搜过很多教程,所有的教程中都与正在操作的不符,一直以为是新版的缘故,假如是的话,为什么通信的协议只有一种?添加产品协议只有一种
      疑点三:为什么创建设备必须写IMEI码?我知道的只有手机等产品会有这个东西,从没听说过单片机也要有这个码?

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^