手把手学IOT服务端API编程[16、查询设备影子]|MVP讲堂-阿里云开发者社区

开发者社区> chenyou16> 正文

手把手学IOT服务端API编程[16、查询设备影子]|MVP讲堂

简介: 本教程旨在介绍服务器端的API编程接口,基于php脚本的sdk,希望对物联网服务器端有编程需求的有所帮助。阿里云MVP手把手教你!有演示视频,千万别错过!
+关注继续查看

作者:阿里云MVP洵云

10节回顾:手把手学IOT服务端API编程[10、保存设备属性]|MVP讲堂

11节回顾:手把手学IOT服务端API编程[11、查询设备属性列表]

12节回顾:手把手学IOT服务端API编程[12、删除设备属性]

13节回顾:手把手学IOT服务端API编程[13、发布消息到Topic]

14节回顾:手把手学IOT服务端API编程[14、发消息给设备并同步返回响应]

15节回顾:手把手学IOT服务端API编程[15、发布广播消息]



上节介绍从服务端给设备发送广播消息后,实际使用过程中,往往存在网络信号不好,质量不稳定的状况,这时就需要服务端保存一份设备端最后一次状态的信息,用来做后续的相关分析,这份信息又被称为设备影子,服务端的API接口也提供了相应的功能,
这一节就来介绍一下如何使用设备影子这个功能,这个接口需要提供两个参数,一个是产品的key值,一个是设备名称;
接下来我们看一下具体实现;


1、脚本实现:
我们按照接口的要求,在框架页面上,提供产品的key值和设备名称,这两个输入参数框给用户输入,
产品KEY:        <input type="text" name="pkey16">
设备名称:        <input type="text" name="devname16">


而在实际的实现代码中,我们只需要使用get函数提取这个变量就可以了:
$pkey = $_GET["pkey16"];
$devname = $_GET["devname16"];


接着引用查询设备列表的接口:
$request = new Iot\GetDeviceShadowRequest();


通过查看GetDeviceShadowRequest文件,可以知道我们需要调用setProductKey和setDeviceName 两个函数,来从服务端传送查询设备影子的信息;这两个参数的意思分别是配置产品key,配置设备名称.


$request->setProductKey($pkey); 


$request->setDeviceName($devname); 


调用通用的网络查询操作后,将操作的返回结果和影子信息显示在网页上:


echo 'ShadowMessage :'.$response->ShadowMessage.'<br>';
echo 'RequestId :'.$response->RequestId.'<br>';
echo 'Success :'.$response->Success.'<hr>';


2、设备端模拟:
默认设备初始状态是不存在设备影子的,由于只有设备有上线记录后,这一节也需要设备的模拟,下载开发包的命令和上节类似,这里只介绍发送设备消息例子的部分:
2.1 修改shadow-example.c文件,改为我们己的设备名称:
vi iotkit-embedded-master/iotkit-embedded-master/sample/device-shadow/shadow-example.c
2.2 修改后,保存退出,重新编译源码;
cd iotkit-embedded-master/iotkit-embedded-master/
make clean
sudo make all
2.3 编译结束后,运行编译后的例子文件:
output/release/bin/shadow-example


        
3、实际测试:
先运行模拟设备,然后打开浏览器,转到我们框架脚本页面,这里输入我们从控制台得到的产品key值和设备名称,运行提交按钮后,可以得到要查询的设备影子信息:
具体向关截图如下:

395_1939185177035471_ccf0473a77dafc6.png

395_1939185177035471_12395290bc65fc0.png


timelapse:
http://www.xunyun17.xyz/ioto/step16-GetDeviceShadowRequest.mp4

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
以百度天气预报查询API 服务为例,创建Jmeter JavaSampler请求范例
最近在整理性能测试的一些入门文章,给同事们分享,介绍API 接口自动化和性能测试入门。 下面将以百度天气预报查询API 服务为例,创建Java API 请求范例。 1. API 服务信息 参考文档:https://blog.
2313 0
《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一1.1.2 计算机就业形势分析
本节书摘来华章计算机《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一书中的第1章 ,第1.1.2节,陈以农 陈文智 韩德强 著 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
846 0
《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一1.1.1 计算机科学和工程的课程体系
本节书摘来华章计算机《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一书中的第1章 ,第1.1.1节,陈以农 陈文智 韩德强 著 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
972 0
服务端编程示例|学习笔记
快速学习服务端编程示例
40 0
《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一1.2 团队建设
本节书摘来华章计算机《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一书中的第1章 ,第1.2节,陈以农 陈文智 韩德强 著 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
831 0
手把手教你绘制类图 | 带你学《Java面向对象编程》之七十一
类图是让人能够直观了解类的一种表现形式,本节将手把手带你使用PowerDesigner绘制类图。
593 0
+关注
72
文章
0
问答
来源圈子
更多
阿里云最有价值专家,简称 MVP(Most Valuable Professional),是专注于帮助他人充分了解和使用阿里云技术的意见领袖阿里云 MVP 奖项为我们提供了这样一个机会,向杰出的意见领袖表示感谢,更希望通过 MVP 将开发者的声音反映到我们的技术路线图上。
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载