事件,先下个简单的定义就是发生了什么事件
系列文章都是已经完成了基本的库安装和使用为前提
物模型之事件
基本的添加步骤不描述了,设置一个测试用例
事件我已经设定好了,输出参数代表的是在云端得到的输出,需要我们在设备进行输入
arduino事件函数
在arduino中sdk库中两个函数
static void sendEvent(const char *eventId,const char *param);
static void bindEvent(const char * eventId, MQTT_CALLBACK_SIGNATURE);
1.void sendEvent(const char *eventId,const char *param);
将本地发生的事情上报给云端,比如说,突然有人非法闯入这时候就可以将时间上传云端
const char *eventId="testEvent";
const char *param="{\"testvalue\":\"client is ok\"}";
AliyunIoTSDK::sendEvent(eventId,param);
2.static void bindEvent(const char * eventId, MQTT_CALLBACK_SIGNATURE);
云端下发事件时会被调用,但是这个功能怎么使用暂时没有看到(没有看到下发事件的云端api)
内部第二个参数来自pubsubclient库
#if defined(ESP8266) || defined(ESP32)
#include <functional>
#define MQTT_CALLBACK_SIGNATURE std::function<void(char*, uint8_t*, unsigned int)> callback
#else
#define MQTT_CALLBACK_SIGNATURE void (*callback)(char*, uint8_t*, unsigned int)
#endif
阿里云SDK
这里只看到有事件的上报过程
device.postEvent('eventIdentifier1', {
//key1是事件'eventIdentifier1的参数'
key1: 'value1'
});
这个过程和云端api可以使用node.js进行测试,比较快速
云端API
云端API调用QueryDeviceEventData
可以获取所有的事件,也就是上面我们从c/s(客户端和服务端)发送的事件列表
上面的事件和下面的事件相对应
假设我们在一个智慧房间或者相关的系统中,如果出现一些特殊事件,比如说房间着火了(温度传感器),有毒气体上升都可以在服务端获取显示,同时可以预设对应的处理函数去处理事件