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)中的数据包到底是由什么控制的?