阿里云
发表主题 回复主题
  • 299阅读
  • 5回复

[技术交流]设备可以收到平台下发的set指令 但是收不到get指令

级别: 小白
发帖
18
云币
21

本人刚开始研究阿里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协议,这个封装是需要自己完成的吗?如果有封装的话有没有指导手册

级别: 新人
发帖
2
云币
2
只看该作者 沙发  发表于: 08-02
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
级别: 新人
发帖
2
云币
2
只看该作者 板凳  发表于: 08-02
Re设备可以收到平台下发的set指令 但是收不到get指令
也可以参考subdev这个sample。
subdev-example.c中的demo_only_one_device。
级别: 小白
发帖
18
云币
21
只看该作者 地板  发表于: 08-06
回 2楼kid2682的帖子
我试了一下,和之前使用mqtt差不多,如果几分钟不发消息就会掉线,而且还是接受不到服务器下发的get数据
级别: 新人
发帖
3
云币
3
只看该作者 4楼 发表于: 08-06
Re设备可以收到平台下发的set指令 但是收不到get指令
服务器目前还不支持get的功能,也不支持同步下发的功能吧
级别: 小白
发帖
18
云币
21
只看该作者 5楼 发表于: 08-09
回 4楼zhiwenqin的帖子
不能get那不是很麻烦吗?服务器怎么主动获取设备的状态呢?
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
验证问题: ECS是阿里云提供的什么服务? 正确答案:云服务器
上一个 下一个