tanc
tanc
This guy hasn't written anything yet

注册于 2 years ago

回答
0
文章
0
关注者
0

楼主使用你改过的包,这个问题怎么解决?使用paho_mqtt_publish发送数据1K以下没问题,到了3K左右就一发送就掉线触发mqtt_offline_callback重连

yukelab 发表于 2019-11-25 17:49
找到问题了,sim7600网络不稳定,更换了ec20模块,解决了问题,感谢大家


你的ec20是串口AT方式吗?我的每次接收都卡在90%左右。不晓得什么问题

使用wget历程来获取文件也是,每次都只能获取到刚好那么多长度的数据。2222222222.png

int webclient_get_file(const char* URI, const char* filename)
{
int fdd = -1, rc = WEBCLIENT_OK;
size_t offset;
int length, total_length = 0;
unsigned char *ptr = RT_NULL;
struct webclient_session* session = RT_NULL;
int resp_status = 0;

session = webclient_session_create(WEBCLIENT_HEADER_BUFSZ);
if(session == RT_NULL)
{
rc = -WEBCLIENT_NOMEM;
goto __exit;
}

if ((resp_status = webclient_get(session, URI)) != 200)
{
LOG_E("get file failed, wrong response: %d (-0x%X).", resp_status, resp_status);
rc = -WEBCLIENT_ERROR;
goto __exit;
}

// fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0);
// if (fd < 0)
// {
// LOG_E("get file failed, open file(%s) error.", filename);
// rc = -WEBCLIENT_ERROR;
// goto __exit;
// }

ptr = (unsigned char *) web_malloc(WEBCLIENT_RESPONSE_BUFSZ);
if (ptr == RT_NULL)
{
LOG_E("get file failed, no memory for response buffer.");
rc = -WEBCLIENT_NOMEM;
goto __exit;
}

if (session->content_length < 0)
{
while (1)
{
length = webclient_read(session, ptr, WEBCLIENT_RESPONSE_BUFSZ);
if (length > 0)
{
// write(fd, ptr, length);
total_length += length;
LOG_RAW(">");
}
else
{
break;
}
}
}
else
{
for (offset = 0; offset < (size_t) session->content_length;)
{
length = webclient_read(session, ptr,
session->content_length - offset > WEBCLIENT_RESPONSE_BUFSZ ?
WEBCLIENT_RESPONSE_BUFSZ : session->content_length - offset);

if (length > 0)
{
// write(fd, ptr, length);
total_length += length;
LOG_RAW(">");
}
else
{
break;
}

offset += length;
}
}

if (total_length)
{
LOG_D("save %d bytes.", total_length);
}

__exit:
// if (fd >= 0)
// {
// close(fd);
// }

if (session != RT_NULL)
{
webclient_close(session);
}

if (ptr != RT_NULL)
{
web_free(ptr);
}

return rc;
}

WillianChan 发表于 2019-11-27 09:55
完全適合呀。key?并没有在env中找到关于key的配置选项啊


它这个的存储规则不是基于key关键字和value值方式么?11111111111.png我感觉反而不是很适合比如以时间戳为key来标识存储数据呢,这样每个key的size大小太大了。而且好像具体能存多少个key有限制。是我理解有问题么?

00000000000000000.png更新到4.0.99后初始化信息如图.执行的命令如下11111111111.png,不知道是我哪里操作的不对还是移植哪里不对。

Cheney_Chen 发表于 2019-11-19 10:05
建议把 RAW 日志功能打开,需要更多日志信息才能确定问题,从日志中也可能看出那个命令收发失败了 ...


好的,感谢

梦笑真美 发表于 2019-11-18 22:52
楼主解决了嘛,我的也是经常超时错误,我裸机程序是正常的


暂时还没

tyustli 发表于 2019-11-7 09:26
出现这种情况的原因是 cube 没开,使用开门狗要在 cubemx 里面开启该外设的


哦哦,好的。我理解错了,感谢

tyustli 发表于 2019-11-6 13:34
楼主可能需要学一学 scons 构建的语法
https://www.rt-thread.org/document/site/programming-manual/scons ...


哈哈,刚又去看了ENV介绍那里,解决了。谢谢{:2_27:}

Cheney_Chen 发表于 2019-11-1 10:11
这个问题是你的 gettimeofday 不支持导致的,和 AT+CIPDNS_CUR 无关

解决方式:开启软件定时器功能,并开 ...


哦哦,感谢。是这个问题{:2_25:}

tjrong 发表于 2019-10-31 14:07
看你采用的是pipe 还是UPD,应在两个相关头文件中。
#ifndef RT_PIPE_BUFSZ
#define PIPE_BUFSZ 512


谢谢,是改这里{:2_25:}

左耳朵的耗子 发表于 2019-10-30 14:42
我想MQTT手册应该有说明的,


暂时没找到,你知道在哪设置吗?

你的打印是 %X而不是当成3个字节打印出来的吧。
0x0021aaef在Little endian时,在RAM中是如何保存的? ...

哦哦,懂了。感谢:lol

回到
顶部

发布
问题

投诉
建议