aLiYun¶
aLiYun¶
模块功能:阿里云物联网套件客户端功能.
目前的产品节点类型仅支持“设备”,设备认证方式支持“一机一密和“一型一密”
aLiYun.sleepStatus()¶
查看打开阿里云物联网套件的是否允许连接状态
参数
无
返回值
bool 是否允许连接阿里云
例子
local ar = aLiYun.sleepStatus()
aLiYun.setup(productKey, productSecret, getDeviceNameFnc, getDeviceSecretFnc, setDeviceSecretFnc)¶
配置阿里云物联网套件的产品信息和设备信息
参数
传入值类型 |
释义 |
---|---|
string |
productKey,产品标识 |
string |
** 可选参数,默认为``nil``**,pr oductSecret,产品密钥一机一密认证 方案时,此参数传入nil一型一密认证 方案时,此参数传入真实的产品密钥 MQTT-TCP直连方案时,此参数传入nil |
function |
get DeviceNameFnc,获取设备名称的函数 |
function |
getDe viceSecretFnc,获取设备密钥的函数 |
function |
可 选参数,默认为``nil``,set DeviceSecretFnc,设置设备密钥的函 数,一型一密认证方案才需要此参数 |
返回值
nil
例子
aLiYun.setup("b0FMK1Ga5cp",nil,getDeviceNameFnc,getDeviceSecretFnc)
aLiYun.setup("a1AoVqkCIbG","7eCdPyR6fYPntFcM",getDeviceNameFnc,getDeviceSecretFnc,setDeviceSecretFnc)
aLiYun.setMqtt(cleanSession, will, keepAlive)¶
设置MQTT数据通道的参数
参数
传入值类型 |
释义 |
---|---|
number |
可选参数,默认为``1``,cleanSession 1/0 |
table |
可选参数,默认为``nil``,will 遗嘱参数,格式为{qos=, retain=, topic=, payload=} |
number |
可选参数,默认为``240``,keepAlive,单位秒 |
返回值
nil
例子
aLiYun.setMqtt(0)
aLiYun.setMqtt(1,{qos=0,retain=1,topic="/willTopic",payload="will payload"})
aLiYun.setMqtt(1,{qos=0,retain=1,topic="/willTopic",payload="will payload"},120)
aLiYun.setRegion(region)¶
设置地域region id
参数
传入值类型 |
释义 |
---|---|
string |
regio n,地域id字符串,参考:https://he lp.aliyun.com/document_detail/406 54.html?spm=a2c4g.11186623.2.16.c 0a63f82Z7qCtA#concept-h4v-j5k-xdb |
返回值
nil
例子
-- 设置华北1:aLiYun.setRegion("cn-qingdao")
-- 设置华东1:aLiYun.setRegion("cn-hangzhou")
-- 设置华南1:aLiYun.setRegion("cn-shenzhen")
aLiYun.setConnectMode(mode, host, port, getClientIdFnc)¶
设置连接方式
参数
传入值类型 |
释义 |
---|---|
string |
mode,连接方式,支持如下几种方式:“direct”表示MQTT-TCP直连 |
string |
host,服务器地址 |
number |
port,服务器端口 |
function |
getClientIdFnc,获取mqtt client id的函数 |
返回值
nil
例子
-- 设置为MQTT-TCP直连:aLiYun.setConnectMode("direct")
aLiYun.subscribe(topic, qos)¶
订阅主题
参数
传入值类型 |
释义 |
---|---|
param |
topic,string或者table类型, 一个主题时为string类型,多个主题 时为table类型,主题内容为UTF8编码 |
param |
qos,number或者nil,topic为一 个主题时,qos为number类型(0/1,默 认0);topic为多个主题时,qos为nil |
返回值
nil
例子
aLiYun.subscribe("/b0FMK1Ga5cp/862991234567890/get", 0)
aLiYun.subscribe({["/b0FMK1Ga5cp/862991234567890/get"] = 0, ["/b0FMK1Ga5cp/862991234567890/get"] = 1})
aLiYun.publish(topic, payload, qos, cbFnc, cbPara)¶
发布一条消息
参数
传入值类型 |
释义 |
---|---|
string |
topic,UTF8编码的主题 |
string |
payload,负载 |
number |
可选参数,默认为``0 ``,qos,质量等级,0/1,默认0 |
function |
可选参数,默认为` `nil``,cbFnc,消息发布结果的 回调函数回调函数的调用形式为:cbF nc(result,cbPara)。result为true表 示发布成功,false或者nil表示订阅 失败;cbPara为本接口中的第5个参数 |
param |
可选 参数,默认为``nil``,cbPar a,消息发布结果回调函数的回调参数 |
返回值
nil
例子
aLiYun.publish("/b0FMK1Ga5cp/862991234567890/update","test",0)
aLiYun.publish("/b0FMK1Ga5cp/862991234567890/update","test",1,cbFnc,"cbFncPara")
aLiYun.on(evt, cbFnc)¶
注册事件的处理函数
参数
传入值类型 |
释义 |
---|---|
string |
evt,事 件“auth”表示鉴权服务器认证结果事 件“connect”表示接入服务器连接结果 事件“reconnect”表示重连事件“recei ve”表示接收到接入服务器的消息事件 |
function |
cbFnc,事件的处理函数当evt为“a uth”时,cbFnc的调用形式为:cbFnc( result),result为true表示认证成功 ,false或者nil表示认证失败当evt为 “connect”时,cbFnc的调用形式为: cbFnc(result),result为true表示连 接成功,false或者nil表示连接失败 当evt为“receive”时,cbFnc的调用形 式为:cbFnc(topic,qos,payload), topic为UTF8编码的主题(string类型 ),qos为质量等级(number类型),pa yload为原始编码的负载(string类型) |
返回值
nil
例子
aLiYun.on("b0FMK1Ga5cp",nil,getDeviceNameFnc,getDeviceSecretFnc)
aLiYun.setErrHandle(cbFnc, tmout)¶
设置阿里云task连续一段时间工作异常的处理程序
参数
传入值类型 |
释义 |
---|---|
function |
cbFnc,异常处理函数,cbFnc的调用形式为:cbFnc() |
number |
可选参数,默认为``150``,tmout,连续工作 异常的时间,当连续异常到达这个时间之后,会调用cbFnc() |
返回值
nil
例子
aLiYun.setErrHandle(function() sys.restart("ALIYUN_TASK_INACTIVE") end, 300)