上次介绍了物模型的模板,这次介绍一下物模型的语言规范,提到语言规范,还是要再介绍下阿里云IOT的物模型,按照官网的介绍,为了使物模型可以更有效的描述实际设备,物模型是一种从属性、服务和事件三个纬度对实际物体进行量化的数字化模型。而这只是理论上的定义,为了使这个模型更加具有统一的实现方式,自然就定义了一套语言规范,简称为TSL,英文全称为Thing Specification Language。中文全称为物模型规范语言。
截至2021年2月3号官网更新的文档中,这个物模型 TSL规范主要有四点要求如下:
1、单文件内容格式为JSON,大小不超过256KB。
2、规范中包含的产品标识符为当前产品ID, 也就是说productkey参数为当前产品。
3、如果有参数functionBlockName和functionBlockId,则为自定义模块,否则为默认模块。
4、支持多个json文件压缩为zip压缩包文件。
围绕着物模型语言规范的定义,相应提供了三个TSL有关的接口,如下:
GetThingModelTsl 查询指定产品的物模型。
ImportThingModelTsl 为指定产品导入物模型TSL,暂不支持扩展描述配置。
GetThingModelTslPublished 查询指定产品的已发布物模型TSL。
首先是得到物模型当前的TSL,使用时带入产品标识符即可,如下所示:
XYsayFrO.IoT.Srv.GetThingModelTsl.a141rgUXgFl.
运行后,得到如下图所示,由于最开始没有创建TSL,所以信息为空。
然后使用ImportThingModelTsl接口,导入相关信息,这里为了方便演示测试,导入之前创建的V1x0x1版本信息。如下格式所示:
XYsayFrO.IoT.Srv.ImportThingModelTsl.a141rgUXgFl.{"schema":"https://iotx-tsl.oss-ap-southeast-1.aliyuncs.com/schema.json","profile":{"version":"V1x0x1","productKey":"a141rgUXgFl"},"properties":[],"events":[],"services":[]}.
然后运行,会返回成功或失败的信息。
最后是得到发布后的TSL信息,使用GetThingModelTslPublished这个接口,然后按照下面的格式运行。
XYsayFrO.IoT.Srv.GetThingModelTslPublished.a141rgUXgFl.
最后返回的信息,应该为我们之前导入的信息。