文档目录: <>

* 说明 <https://www.cnblogs.com/whuanle/p/10994645.html>
* 1. 连接阿里云物联网 <https://www.cnblogs.com/whuanle/p/10994663.html>
* 2. IoT 客户端 <https://www.cnblogs.com/whuanle/p/10994673.html>
* 3. 订阅Topic与响应Topic <https://www.cnblogs.com/whuanle/p/10994686.html>
* 4. 设备上报属性 <https://www.cnblogs.com/whuanle/p/10994694.html>
* 4.1 上报位置信息 <https://www.cnblogs.com/whuanle/p/10994696.html>
* 5. 设置设备属性 <https://www.cnblogs.com/whuanle/p/10994701.html>
* 6. 设备事件上报 <https://www.cnblogs.com/whuanle/p/10994707.html>
* 7. 服务调用 <https://www.cnblogs.com/whuanle/p/10994708.html>
* 8. 委托事件 <https://www.cnblogs.com/whuanle/p/10994713.html>
* 9. 自定义委托事件方法
<https://www.cnblogs.com/whuanle/p/10994720.html>
 

根据阿里云物联网普通的定义,事件上报有 信息、告警、故障三种类型,事件是设备上传的消息通知,应当及时处理。


<https://gitee.com/whuanle/CZGL.AliIoTClient/wikis/6.%20%E8%AE%BE%E5%A4%87%E4%BA%8B%E4%BB%B6%E4%B8%8A%E6%8A%A5?sort_id=1479196#1%E5%AE%9A%E4%B9%89%E4%BA%8B%E4%BB%B6>
1)定义事件

打开阿里云物联网控制台,进入产品,点击 自定义功能 ,添加一个事件。





<https://gitee.com/whuanle/CZGL.AliIoTClient/wikis/6.%20%E8%AE%BE%E5%A4%87%E4%BA%8B%E4%BB%B6%E4%B8%8A%E6%8A%A5?sort_id=1479196#2%E4%B8%8A%E4%BC%A0%E4%BA%8B%E4%BB%B6%E7%9A%84%E6%96%B9%E6%B3%95>
2)上传事件的方法

CZGL.AliIoTClient 中,有四个上传事件的方法
public int Thing_Event_Post(string eventName, string content, [bool isToLower
= True])public int Thing_Event_Post(string eventName, string content, [bool
isToLower = True], [System.Text.Encoding encoding =null]) public int
Thing_Event_Post<TModel>(TModel model, string eventName, [bool isToLower =
True])public int Thing_Event_Post<TModel>(TModel model, string eventName, [bool
isToLower = True], [System.Text.Encoding encoding =null])
eventName: 事件的名称,即标识符。
content: Alink json 内容 isToLower:是否转为小写 encoding: 自定义上传 Alink json 的编码 model:
事件的模型

第一种方法需要手动编写好 json,然后通过方法上传。 第二种方法在第一种方法的基础上允许自定义字符编码。 第三种、第四种是传入模型,由
CZGL.AliIoTClient 处理好再上传。


<https://gitee.com/whuanle/CZGL.AliIoTClient/wikis/6.%20%E8%AE%BE%E5%A4%87%E4%BA%8B%E4%BB%B6%E4%B8%8A%E6%8A%A5?sort_id=1479196#3%E7%BC%96%E5%86%99%E4%BA%8B%E4%BB%B6%E6%A8%A1%E5%9E%8B>
3)编写事件模型

每次只能上传一个事件,一个事件对应一个 模型 或 Alink json。
在 CZGL.AliIoTClient 中,你每次上传一个事件时,都需要设置此事件的名称。

根据上面在阿里云物联网控制台定义的事件,编写模型。
预览要生成的 Alink json :
{ "id": "123", "version": "1.0", "params": { "value": { "temperature":100.1 },
"time":1524448722000 }, "method": "thing.event.cpuerror.post" }
对应模型如下:
public class Cpuerror { public Cpuerror() { @params = new Params(); } public
string id {get { return DateTime.Now.Ticks.ToString(); } set { } } public
string version {get { return "1.0"; } set { } } public Params @params { get;
set; }public class Params { public Params() { value = new Value(); } public
Valuevalue { get; set; } public long time { get { return
AliIoTClientJson.GetUnixTime(); }set { } } public class Value { public float
temperature {get; set; } } } public string @method { get { return
"thing.event.cpuerror.post"; }set { } } }
一个事件对应一个类,如果事件里有多个输出参数,则在 Value 里定义好。
{ ... ... public class Value { public float temperature { get; set; } /*
*定义多个输出参数 */ } ... ... }
上报事件:
Cpuerror cpuerror = new Cpuerror(); [email protected] =
100.1F; client.Thing_Event_Post<Cpuerror>(cpuerror,"cpuerror", false);
4)容错 上传事件的 Alink json 可以 容错 ,这给我们编写代码时带来了方便。、

例如将上面上传事件的代码改一下:
public class Cpuerror { public string name = "cpuerror"; public Cpuerror() { @
params =new Params(); } public string id { get { return
DateTime.Now.Ticks.ToString(); }set { } } public string version { get { return
"1.0"; }set { } } public Params @params { get; set; } public class Params {
publicParams() { value = new Value(); } public Value value { get; set; } public
long time {get { return AliIoTClientJson.GetUnixTime(); } set { } } public class
Value {public float temperature { get; set; } } } public string @method { get {
return$"thing.event.{name}.post"; } set { } } } Cpuerror cpuerror = new
Cpuerror(); [email protected] = 100.2F;
client.Thing_Event_Post<Cpuerror>(cpuerror, cpuerror.name,false);
对于 消息ID 等是必不可少的,“可多不可少”,其它无关字段可以增加上去,不会影响到上传和使用,例如上面的例子增加了一个 name 属性。




<https://gitee.com/whuanle/CZGL.AliIoTClient/wikis/6.%20%E8%AE%BE%E5%A4%87%E4%BA%8B%E4%BB%B6%E4%B8%8A%E6%8A%A5?sort_id=1479196#5%E8%A1%A5%E5%85%85%E8%AF%B4%E6%98%8E>
5)补充说明

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信