mqtt 定时收发数据问题

2019-11-9 11:48 [复制链接] 2 299

在mian里面新建一个定时器  一个定时任务  开启mqtt线程。   具体如下:   定时器定时60S  超时后执行  rt_sem_release(&collection_DATA_sem);
+ z# o1 R* `) Z8 C
+ N- y4 c4 q7 J   任务线程一直  rt_sem_take(&collection_DATA_sem, RT_WAITING_FOREVER); 收到信号后 收集相关数据,进行发送数据( v( [5 U7 B8 q/ q. \8 z
   mqtt线程 收到数据 在回调函数内进行 数据JSON的解析。
. H# y/ l$ K) Y8 B% Z   在mqtt 离线后  会使用  net的 up/down 进行重置网络模块。  
. m. j$ E' L. m* k- ^  具体现象是  运行了一段时间后, 定时器任务 不跑了。  只有网络检测线程在跑。& |) N8 V. }8 M+ h, i6 G" N
  查看free  有轻微的内存泄漏,  memtrace 发现 多新增了一段内存
. m  A- \8 T% G; C
, @( f0 L% _' m5 `+ J$ {- |: J% D. [[0x2000da68 -    56] ntp_
* H: u1 ?5 I9 t$ P1 D[0x2000dab0 -    28] mqtt- l; N1 g5 M5 q
[0x2000dadc -    28] mqtt
+ ~. H/ {0 B5 F7 q5 m% ?! K[0x2000db08 -    28] mqtt
* |! e) Z+ Q" p/ I[0x2000db34 -   204]# ^# s/ q. I  B) c/ U3 ?$ ?7 y
[0x2000dc10 -    36] mqtt5 z/ I$ S0 {" b0 G4 Z) D+ \
[0x2000dc44 -    28] mqtt  d8 h/ x5 c( h, }, q+ o& z# P* g
[0x2000dc70 -    32] mqtt
& P& |  `3 r! ?  f[0x2000dca0 -    36] mqtt) l% r6 x8 X- s
: g$ k. ~3 M3 W' F- F& h1 `1 G$ N# e1 p
不知道如何解决这个问题 。+ Y: s5 y+ ^7 s3 s9 a# z5 G
使用道具 举报 显示全部楼层 回复
最新评论 | 正序浏览
显示全部楼层 |楼层直达:
发表于 2019-11-9 13:37:28 | 显示全部楼层
本帖最后由 tyustli 于 2019-11-9 13:38 编辑
, F6 K9 _" u8 O4 q! O: I
3 @) d% m" Q( _定时器任务不跑是指定时器回调进不去了,还是什么?,如果是定时器回调进不去了,可以 list_timer 看看,创建的定时器状态
使用道具 举报 回复
发表于 2019-11-10 16:18:31 | 显示全部楼层
tyustli 发表于 2019-11-9 13:37+ G! j1 u. l" Q& f
定时器任务不跑是指定时器回调进不去了,还是什么?,如果是定时器回调进不去了,可以 list_timer 看看,创 ...

0 @/ h) V  O( }. D2 T9 Q: }9 o6 n定时器的状态都好的 初步怀疑是  信号量没有take到。  还有我代码里 有重复对定时器进行start 不知道会不会有问题
使用道具 举报 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  1. 5 主题
  2. 105 帖子
  3. 105 积分

Ta的主页 发消息

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

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

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

Powered by RT-Thread

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