开发者社区> 问答> 正文

设备可以收到平台下发的set指令 但是收不到get指令


本人刚开始研究阿里IOT
现在已经实现在ubuntu上虚拟设备上报信息,接收服务器的set消息
我使用的是Link develop平台,设备端是用的c-sdk在ubuntu上跑的设备


现在遇到以下几个问题希望和大家交流一下
1、我现在已经实现设备接收服务器的set消息,但是收不到get消息,我已经订阅了 /sys/{productKey}/{deviceName}/thing/service/property/get
     我用网页上的在线模拟也无法通过在线调试发送get消息(设备可以收到set收不到get)
     我见在线调试发送的是一个json字符串,手册中的Alink的get格式是[xxx,xxx]这样的格式,是不是和这个有关系,还是现在get本身就有问题
2、我现在设备上线一会儿之后就自动掉线了
     这个是不是有心跳检测机制,我要怎么保持设备在线
3、我订阅了"/sys/"PRODUCT_KEY"/"DEVICE_NAME"/thing/event/property/post_reply"会失败,返回值-41
     其他订阅是可以成功的
4、在LD的产品详情中下载的sdk直接编译链接的时候报很多函数找不到,但是开发文档中的那个GitHub工程可以直接编译通过
      这两个工程有什么不一样的,在LD的产品详情中的代码是不是更新一些,那些函数是移植的时候需要自己实现的部分吗?
5、我看mqtt-example.c的代码只是使用mqtt发送和接收json字符串,但是没有封装Alink协议,这个封装是需要自己完成的吗?如果有封装的话有没有指导手册

展开
收起
specterking 2018-08-01 12:41:45 2550 0
5 条回答
写回答
取消 提交回答
  • Re设备可以收到平台下发的set指令 但是收不到get指令
    要保持设备长期在线 ,你要用MQTT的ping命令,在掉线时间内发送,可以保持在线哦
    2018-12-07 09:47:22
    赞同 展开评论 打赏
  • Re设备可以收到平台下发的set指令 但是收不到get指令
    看看
    2018-12-02 17:25:02
    赞同 展开评论 打赏
  • Re设备可以收到平台下发的set指令 但是收不到get指令
    服务器目前还不支持get的功能,也不支持同步下发的功能吧
    2018-08-06 20:35:28
    赞同 展开评论 打赏
  • 回 2楼kid2682的帖子
    我试了一下,和之前使用mqtt差不多,如果几分钟不发消息就会掉线,而且还是接受不到服务器下发的get数据

    -------------------------

    回 4楼zhiwenqin的帖子
    不能get那不是很麻烦吗?服务器怎么主动获取设备的状态呢?
    2018-08-06 20:10:29
    赞同 展开评论 打赏
  • Re设备可以收到平台下发的set指令 但是收不到get指令
    看上去,从后台C SDK下载的代码是比较旧的,建议你下载最新的代码 github.com/aliyun/iotkit-embedded/tree/RELEASED_V2_1_20180320进行测试。
    可以跑sample里面的linkkit,这个sample里用的都是linkkit开头的函数,是基于mqtt进行的一层封装。
    我直接跑linkkit就能在后台看到数据上报了,不过要注意一下启动时候的参数。
    -t 运行时长
    -g 是否从云端自动下载tsl。默认0,建议先选择1

    -------------------------

    Re设备可以收到平台下发的set指令 但是收不到get指令
    也可以参考subdev这个sample。
    subdev-example.c中的demo_only_one_device。
    2018-08-02 17:45:22
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
探索连接的最后十秒”落时”的网关 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载