上次介紹了物模型的模闆,這次介紹一下物模型的語言規範,提到語言規範,還是要再介紹下阿裡雲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.
最後傳回的資訊,應該為我們之前導入的資訊。
本次實踐示範程式下載下傳連接配接:
http://xysuger.xunyun17.xyz/v0.1.0.3語言.rar