mqtt 定时收发数据问题

6 天前 [复制链接] 2 62

在mian里面新建一个定时器  一个定时任务  开启mqtt线程。   具体如下:   定时器定时60S  超时后执行  rt_sem_release(&collection_DATA_sem);
1 h8 a- E/ M+ @" m5 z7 d# F  ~5 V* v% |0 g
   任务线程一直  rt_sem_take(&collection_DATA_sem, RT_WAITING_FOREVER); 收到信号后 收集相关数据,进行发送数据6 D( A9 O- i& h' [) I( u
   mqtt线程 收到数据 在回调函数内进行 数据JSON的解析。, I3 a& W0 r! D5 W9 a' ~6 O; T
   在mqtt 离线后  会使用  net的 up/down 进行重置网络模块。  
$ A# n7 q: ~, u- y! N* r  I* z  具体现象是  运行了一段时间后, 定时器任务 不跑了。  只有网络检测线程在跑。
7 m4 b3 z" S; h# G  查看free  有轻微的内存泄漏,  memtrace 发现 多新增了一段内存  r- u3 U* |, _3 J3 l
) J3 r! f% H- I& M9 p% y5 W
[0x2000da68 -    56] ntp_
, e. x9 G4 V8 L[0x2000dab0 -    28] mqtt3 c* G8 ?2 _; W
[0x2000dadc -    28] mqtt% r8 |) H) \; b6 ?3 H* g+ K
[0x2000db08 -    28] mqtt' _" T+ ]" i7 x% {) V1 [
[0x2000db34 -   204]
" c: E7 M0 [0 Z1 O  Y[0x2000dc10 -    36] mqtt
* S+ [" `& O* t[0x2000dc44 -    28] mqtt! U- O* I, n, x8 d: G% k: Z
[0x2000dc70 -    32] mqtt
+ @. U# i4 e7 r[0x2000dca0 -    36] mqtt
3 c: v, b0 i4 i; P
+ Y4 |9 a; U% Z1 e, T$ H; c2 S9 Q 不知道如何解决这个问题 。
9 h  G+ f; d" M4 @& w7 C1 D4 K/ G8 q
使用道具 举报 显示全部楼层 回复
最新评论 | 正序浏览
显示全部楼层 |楼层直达:
发表于 6 天前 | 显示全部楼层
本帖最后由 tyustli 于 2019-11-9 13:38 编辑
5 ^+ f; T4 j% U+ t  _" G
1 H2 I  y" e1 P+ B5 b定时器任务不跑是指定时器回调进不去了,还是什么?,如果是定时器回调进不去了,可以 list_timer 看看,创建的定时器状态
使用道具 举报 回复
发表于 5 天前 | 显示全部楼层
tyustli 发表于 2019-11-9 13:37
: G( {4 m+ b7 u; L+ Q+ S' F5 @! y定时器任务不跑是指定时器回调进不去了,还是什么?,如果是定时器回调进不去了,可以 list_timer 看看,创 ...

9 t* @, g- C4 h6 h: X' U定时器的状态都好的 初步怀疑是  信号量没有take到。  还有我代码里 有重复对定时器进行start 不知道会不会有问题
使用道具 举报 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|RT-Thread开发者社区 ( 沪ICP备13014002号-1

有害信息举报电话:021-31165890 手机:18930558079

© 2006-2019 上海睿赛德电子科技有限公司

Powered by RT-Thread

快速回复 返回顶部 返回列表