IoT Plug and Play modellezési útmutató
Az IoT Plug and Play alapja egy olyan eszközmodell, amely leírja az eszköz képességeit egy IoT Plug and Play-kompatibilis alkalmazáshoz. Ez a modell a következő interfészek készleteként van felépítve:
- Az eszköz vagy más entitás írásvédett vagy írható állapotát képviselő tulajdonságok . Az eszköz sorozatszáma lehet például írásvédett tulajdonság, a termosztát célhőmérséklete pedig írható tulajdonság.
- Telemetriamezők , amelyek meghatározzák az eszköz által kibocsátott adatokat, függetlenül attól, hogy az adatok rendszeres érzékelőolvasási adatfolyamok, alkalmi hibák vagy információs üzenetek.
- Az eszközön elvégezhető függvényt vagy műveletet leíró parancsok . Egy parancs például újraindíthat egy átjárót, vagy távoli kamerával készíthet képet.
Ha többet szeretne megtudni arról, hogy az IoT Plug and Play hogyan használja az eszközmodelleket, tekintse meg az IoT Plug and Play eszköz fejlesztői útmutatóját és az IoT Plug and Play szolgáltatás fejlesztői útmutatóját.
Modell definiálásához használja a Digital Twins Definíciós nyelvet (DTDL). A DTDL egy JSON-LD nevű JSON-változatot használ. Az alábbi kódrészlet egy olyan termosztátos eszköz modelljét mutatja be, amely:
- Egyedi modellazonosítóval rendelkezik:
dtmi:com:example:Thermostat;1
. - Hőmérsékleti telemetriát küld.
- Írható tulajdonsága van a célhőmérséklet beállításához.
- Írásvédett tulajdonsága van, amely a legutóbbi újraindítás óta a maximális hőmérsékletet jelenti.
- Egy olyan parancsra válaszol, amely egy adott időszakban maximális, minimális és átlagos hőmérsékletet kér.
{
"@context": "dtmi:dtdl:context;2",
"@id": "dtmi:com:example:Thermostat;1",
"@type": "Interface",
"displayName": "Thermostat",
"description": "Reports current temperature and provides desired temperature control.",
"contents": [
{
"@type": [
"Telemetry",
"Temperature"
],
"name": "temperature",
"displayName": "Temperature",
"description": "Temperature in degrees Celsius.",
"schema": "double",
"unit": "degreeCelsius"
},
{
"@type": [
"Property",
"Temperature"
],
"name": "targetTemperature",
"schema": "double",
"displayName": "Target Temperature",
"description": "Allows to remotely specify the desired target temperature.",
"unit": "degreeCelsius",
"writable": true
},
{
"@type": [
"Property",
"Temperature"
],
"name": "maxTempSinceLastReboot",
"schema": "double",
"unit": "degreeCelsius",
"displayName": "Max temperature since last reboot.",
"description": "Returns the max temperature since last device reboot."
},
{
"@type": "Command",
"name": "getMaxMinReport",
"displayName": "Get Max-Min report.",
"description": "This command returns the max, min and average temperature from the specified time to the current time.",
"request": {
"name": "since",
"displayName": "Since",
"description": "Period to return the max-min report.",
"schema": "dateTime"
},
"response": {
"name": "tempReport",
"displayName": "Temperature Report",
"schema": {
"@type": "Object",
"fields": [
{
"name": "maxTemp",
"displayName": "Max temperature",
"schema": "double"
},
{
"name": "minTemp",
"displayName": "Min temperature",
"schema": "double"
},
{
"name": "avgTemp",
"displayName": "Average Temperature",
"schema": "double"
},
{
"name": "startTime",
"displayName": "Start Time",
"schema": "dateTime"
},
{
"name": "endTime",
"displayName": "End Time",
"schema": "dateTime"
}
]
}
}
}
]
}
A termosztátmodell egyetlen adapterrel rendelkezik. A cikk későbbi példái összetettebb, összetevőket és öröklést használó modelleket mutatnak be.
Ez a cikk bemutatja, hogyan tervezhet és hozhat létre saját modelleket, és olyan témaköröket ismertet, mint az adattípusok, a modellstruktúra és az eszközök.
További információ: Digital Twins Definition Language specifikáció.
Feljegyzés
Az IoT Central jelenleg egy IoT Central-bővítménnyel támogatja a DTDL v2-t.
Modellstruktúra
A tulajdonságok, a telemetria és a parancsok interfészekbe vannak csoportosítva. Ez a szakasz azt ismerteti, hogyan használhat felületeket egyszerű és összetett modellek leírására összetevők és öröklés használatával.
Modellazonosítók
Minden interfész egyedi digitális ikermodell-azonosítóval (DTMI) rendelkezik. Az összetett modellek DTMI-ket használnak az összetevők azonosításához. Az alkalmazások az eszközök által küldött DTM-eket használhatják a modelldefiníciók adattárban való megkereséséhez.
A DTMI-knek a következő elnevezési konvenciót kell használniuk:
- A DTMI előtagja.
dtmi:
- A DTMI-utótag a modell verziószáma, például
;2
. - A DTMI törzse leképezi a modellt tároló modelladattár mappájára és fájljára. A verziószám a fájlnév része.
A DTMI dtmi:com:Example:Thermostat;2
által azonosított modell például a dtmi/com/example/thermostat-2.json fájlban van tárolva.
Az alábbi kódrészlet egy interfészdefiníció körvonalát mutatja be az egyedi DTMI-vel:
{
"@context": "dtmi:dtdl:context;2",
"@id": "dtmi:com:example:Thermostat;2",
"@type": "Interface",
"displayName": "Thermostat",
"description": "Reports current temperature and provides desired temperature control.",
"contents": [
...
]
}
Nincsenek összetevők
Egy egyszerű modell, például a korábban bemutatott termosztát, nem használ beágyazott vagy kaszkádolt összetevőket. A telemetria, a tulajdonságok és a parancsok a contents
felület csomópontjában vannak definiálva.
Az alábbi példa egy olyan egyszerű modell egy részét mutatja be, amely nem használ összetevőket:
{
"@context": "dtmi:dtdl:context;2",
"@id": "dtmi:com:example:Thermostat;1",
"@type": "Interface",
"displayName": "Thermostat",
"description": "Reports current temperature and provides desired temperature control.",
"contents": [
{
"@type": [
"Telemetry",
"Temperature"
],
"name": "temperature",
"displayName": "Temperature",
"description": "Temperature in degrees Celsius.",
"schema": "double",
"unit": "degreeCelsius"
},
{
"@type": [
"Property",
...
Az olyan eszközök, mint az Azure IoT Explorer és az IoT Central eszközsablon-tervezője, alapértelmezett összetevőként egy különálló felületet címkéznek, például a termosztátot.
Az alábbi képernyőkép bemutatja, hogyan jelenik meg a modell az Azure IoT Explorer eszközben:
Az alábbi képernyőkép bemutatja, hogyan jelenik meg a modell alapértelmezett összetevőként az IoT Central eszközsablon-tervezőjében. Válassza az Identitás megtekintése lehetőséget a modell DTMI-jének megtekintéséhez:
A modellazonosító egy ikereszköz-tulajdonságban van tárolva, ahogy az alábbi képernyőképen látható:
Az összetevők nélküli DTDL-modell hasznos egyszerűsítés egy eszköz vagy egy IoT Edge-modul számára, amely telemetriai, tulajdonságokkal és parancsokkal rendelkezik. Az összetevőket nem használó modellek megkönnyítik egy meglévő eszköz vagy modul IoT Plug and Play-eszköz vagy modul migrálását – olyan DTDL-modellt hozhat létre, amely leírja a tényleges eszközt vagy modult anélkül, hogy bármilyen összetevőt meg kellene határoznia.
Tipp.
A modul lehet eszközmodul vagy IoT Edge-modul.
Újrahasználat
A felületdefiníciók kétféleképpen használhatók újra.
- A modellben több összetevő használatával hivatkozhat más interfészdefiníciókra.
- A meglévő felületdefiníciók kiterjesztése öröklés használatával.
Több összetevő
Az összetevők lehetővé teszik a modell felületének összeállítását más felületek szerelvényeként.
A Termosztát interfész például modellként van definiálva. Ezt az interfészt egy vagy több összetevőként is beépítheti a Hőmérséklet-vezérlő modell meghatározásakor. Az alábbi példában ezeket az összetevőket a rendszer meghívja és thermostat2
meghívjathermostat1
.
Több összetevőt tartalmazó DTDL-modell esetén két vagy több összetevőszakasz van. Minden szakasz @type
egy sémára Component
van állítva, és explicit módon hivatkozik egy sémára az alábbi kódrészletben látható módon:
{
"@context": "dtmi:dtdl:context;2",
"@id": "dtmi:com:example:TemperatureController;1",
"@type": "Interface",
"displayName": "Temperature Controller",
"description": "Device with two thermostats and remote reboot.",
"contents": [
{
"@type": [
"Telemetry",
"DataSize"
],
"name": "workingSet",
"displayName": "Working Set",
"description": "Current working set of the device memory in KiB.",
"schema": "double",
"unit": "kibibyte"
},
{
"@type": "Property",
"name": "serialNumber",
"displayName": "Serial Number",
"description": "Serial number of the device.",
"schema": "string"
},
{
"@type": "Command",
"name": "reboot",
"displayName": "Reboot",
"description": "Reboots the device after waiting the number of seconds specified.",
"request": {
"name": "delay",
"displayName": "Delay",
"description": "Number of seconds to wait before rebooting the device.",
"schema": "integer"
}
},
{
"@type" : "Component",
"schema": "dtmi:com:example:Thermostat;1",
"name": "thermostat1",
"displayName": "Thermostat One",
"description": "Thermostat One of Two."
},
{
"@type" : "Component",
"schema": "dtmi:com:example:Thermostat;1",
"name": "thermostat2",
"displayName": "Thermostat Two",
"description": "Thermostat Two of Two."
},
{
"@type": "Component",
"schema": "dtmi:azure:DeviceManagement:DeviceInformation;1",
"name": "deviceInformation",
"displayName": "Device Information interface",
"description": "Optional interface with basic device hardware information."
}
]
}
Ez a modell három összetevőt határoz meg a tartalomszakaszban : két Thermostat
összetevőt és egy összetevőt DeviceInformation
. A tartalomszakasz tulajdonság-, telemetria- és parancsdefiníciókat is tartalmaz.
Az alábbi képernyőképek bemutatják, hogyan jelenik meg ez a modell az IoT Centralban. A hőmérséklet-vezérlő tulajdonság-, telemetria- és parancsdefiníciói a legfelső szintű Alapértelmezett összetevőben jelennek meg. Az egyes termosztátok tulajdonság-, telemetria- és parancsdefiníciói az összetevő-definíciókban jelennek meg:
Az összetevőkkel interakcióba lépő eszközkód írásáról az IoT Plug and Play eszköz fejlesztői útmutatójában olvashat.
Az IoT Plug and Play szolgáltatás fejlesztői útmutatójában megtudhatja, hogyan írhat olyan szolgáltatáskódot, amely az eszköz összetevőivel kommunikál.
Öröklődés
Az öröklés lehetővé teszi, hogy az alapfelületeken lévő képességeket újra felhasználva bővítse az interfész képességeit. Több eszközmodell például közös képességeket oszthat meg, például sorozatszámot:
Az alábbi kódrészlet egy DTML-modellt mutat be, amely a extends
kulcsszót használja az előző ábrán látható öröklési kapcsolat definiálásához:
[
{
"@context": "dtmi:dtdl:context;2",
"@id": "dtmi:com:example:Thermostat;1",
"@type": "Interface",
"contents": [
{
"@type": "Telemetry",
"name": "temperature",
"schema": "double",
"unit": "degreeCelsius"
},
{
"@type": "Property",
"name": "targetTemperature",
"schema": "double",
"unit": "degreeCelsius",
"writable": true
}
],
"extends": [
"dtmi:com:example:baseDevice;1"
]
},
{
"@context": "dtmi:dtdl:context;2",
"@id": "dtmi:com:example:baseDevice;1",
"@type": "Interface",
"contents": [
{
"@type": "Property",
"name": "SerialNumber",
"schema": "double",
"writable": false
}
]
}
]
Az alábbi képernyőképen ez a modell látható az IoT Central eszközsablon-környezetében:
Eszköz- vagy szolgáltatásoldali kód írásakor a kódnak nem kell semmi különlegeset tennie az örökölt felületek kezeléséhez. Az ebben a szakaszban bemutatott példában az eszközkód úgy jelenti a sorozatszámot, mintha a termosztát felületének része lenne.
Tippek
Modell létrehozásakor kombinálhatja az összetevőket és az öröklést. Az alábbi ábrán egy thermostat
felülettől baseDevice
öröklő modell látható. Az baseDevice
interfész egy olyan összetevővel rendelkezik, amelyet maga örököl egy másik interfésztől:
Az alábbi kódrészlet egy DTML-modellt mutat be, amely az előző ábrán látható öröklési kapcsolat és összetevő-használat meghatározásához használja a extends
kulcsszavakat és component
a kulcsszavakat:
[
{
"@context": "dtmi:dtdl:context;2",
"@id": "dtmi:com:example:Thermostat;1",
"@type": "Interface",
"contents": [
{
"@type": "Telemetry",
"name": "temperature",
"schema": "double",
"unit": "degreeCelsius"
},
{
"@type": "Property",
"name": "targetTemperature",
"schema": "double",
"unit": "degreeCelsius",
"writable": true
}
],
"extends": [
"dtmi:com:example:baseDevice;1"
]
},
{
"@context": "dtmi:dtdl:context;2",
"@id": "dtmi:com:example:baseDevice;1",
"@type": "Interface",
"contents": [
{
"@type": "Property",
"name": "SerialNumber",
"schema": "double",
"writable": false
},
{
"@type" : "Component",
"schema": "dtmi:com:example:baseComponent;1",
"name": "baseComponent"
}
]
}
]
Adattípusok
Adattípusok használatával definiálhat telemetriai adatokat, tulajdonságokat és parancsparamétereket. Az adattípusok lehetnek primitívek vagy összetettek. Az összetett adattípusok primitív vagy más összetett típusokat használnak. Az összetett típusok maximális mélysége öt szint.
Primitív típusok
Az alábbi táblázat a használható primitív típusokat mutatja be:
Primitív típus | Leírás |
---|---|
boolean |
Logikai érték |
date |
Az RFC 3339 5.6 szakaszában meghatározott teljes dátum |
dateTime |
Az RFC 3339-ben meghatározott dátum-idő |
double |
IEEE 8 bájtos lebegőpontos |
duration |
Időtartam ISO 8601 formátumban |
float |
IEEE 4 bájtos lebegőpontos |
integer |
Aláírt 4 bájtos egész szám |
long |
Aláírt 8 bájtos egész szám |
string |
UTF8-sztring |
time |
Az RFC 3339 5.6 szakaszában meghatározott teljes munkaidő |
Az alábbi kódrészlet egy példa telemetriadefiníciót mutat be, amely a mezőben szereplő típust double
schema
használja:
{
"@type": "Telemetry",
"name": "temperature",
"displayName": "Temperature",
"schema": "double"
}
Összetett adattípusok
Az összetett adattípusok tömbök, enumerálás, térkép, objektum vagy térinformatikai típusok egyike.
Tömbök
A tömb egy indexelhető adattípus, amelyben minden elem azonos típusú. Az elemtípus lehet primitív vagy összetett típus.
Az alábbi kódrészlet egy példa telemetriadefiníciót mutat be, amely a mezőben szereplő típust Array
schema
használja. A tömb elemei logikai értékek:
{
"@type": "Telemetry",
"name": "ledState",
"schema": {
"@type": "Array",
"elementSchema": "boolean"
}
}
Enumerálások
Az enumerálás egy olyan típust ír le, amelynek nevesített címkékből áll, amelyek értékeket képeznek le. Az értékek lehetnek egész számok vagy sztringek, de a címkék mindig sztringek.
Az alábbi kódrészlet egy példa telemetriadefiníciót mutat be, amely a mezőben szereplő típust Enum
schema
használja. Az enumerálás értékei egész számok:
{
"@type": "Telemetry",
"name": "state",
"schema": {
"@type": "Enum",
"valueSchema": "integer",
"enumValues": [
{
"name": "offline",
"displayName": "Offline",
"enumValue": 1
},
{
"name": "online",
"displayName": "Online",
"enumValue": 2
}
]
}
}
Maps
A térkép olyan típus kulcs-érték párokkal, ahol az értékek mindegyike azonos típusú. A térkép kulcsának sztringnek kell lennie. A térkép értékei bármilyen típusúak lehetnek, beleértve egy másik összetett típust is.
Az alábbi kódrészlet egy példatulajdonság-definíciót mutat be, amely a mezőben szereplő típust Map
schema
használja. A térkép értékei sztringek:
{
"@type": "Property",
"name": "modules",
"writable": true,
"schema": {
"@type": "Map",
"mapKey": {
"name": "moduleName",
"schema": "string"
},
"mapValue": {
"name": "moduleState",
"schema": "string"
}
}
}
Objektumokat
Az objektumtípus nevesített mezőkből áll. Az objektumtérkép mezőinek típusai lehetnek primitívek vagy összetettek.
Az alábbi kódrészlet egy példa telemetriadefiníciót mutat be, amely a mezőben szereplő típust Object
schema
használja. Az objektum mezői a következőkdateTime
duration
string
:
{
"@type": "Telemetry",
"name": "monitor",
"schema": {
"@type": "Object",
"fields": [
{
"name": "start",
"schema": "dateTime"
},
{
"name": "interval",
"schema": "duration"
},
{
"name": "status",
"schema": "string"
}
]
}
}
Térinformatikai típusok
A DTDL GeoJSON-alapú térinformatikai típusokat biztosít a földrajzi adatstruktúrák modellezéséhez: point
, , multiPoint
lineString
, multiLineString
, polygon
és multiPolygon
. Ezek a típusok tömbök, objektumok és számbavételek előre definiált beágyazott struktúrái.
Az alábbi kódrészlet egy példa telemetriadefiníciót mutat be, amely a mezőben szereplő típust point
schema
használja:
{
"@type": "Telemetry",
"name": "location",
"schema": "point"
}
Mivel a térinformatikai típusok tömbalapúak, a tulajdonságdefiníciókban jelenleg nem használhatók.
Szemantikai típusok
A tulajdonság- vagy telemetriadefiníció adattípusa határozza meg az eszköz által a szolgáltatással kicserélt adatok formátumát. A szemantikai típus információt nyújt a telemetriáról és a tulajdonságokról, amelyekkel az alkalmazás meghatározhatja, hogyan lehet feldolgozni vagy megjeleníteni egy értéket. Minden szemantikai típushoz tartozik egy vagy több társított egység. A celsius és a fahrenheit például a hőmérséklet szemantikai típusának mértékegysége. Az IoT Central-irányítópultok és -elemzések a szemantikai típusinformációkkal határozzák meg, hogyan ábrázolhatók telemetriai vagy tulajdonságértékek és megjelenítési egységek. A szemantikai típusok olvasásához a modellelemző használatával a Digital Twins modellelemző ismertetése című témakörben talál további információt.
Az alábbi kódrészlet egy példa telemetriai definíciót mutat be, amely szemantikai típusadatokat tartalmaz. A szemantikai típus Temperature
hozzá lesz adva a @type
tömbhöz, degreeCelsius
és az unit
érték a szemantikai típus egyik érvényes mértékegysége:
{
"@type": [
"Telemetry",
"Temperature"
],
"name": "temperature",
"schema": "double",
"unit": "degreeCelsius"
}
Honosítás
Az alkalmazások, például az IoT Central, a modell információi alapján dinamikusan építenek felhasználói felületet az IoT Plug and Play-eszközzel kicserélt adatok köré. Az irányítópult csempéi például megjeleníthetik a telemetriai adatok, tulajdonságok és parancsok nevét és leírását.
A modell opcionális description
és displayName
mezői felhasználói felületen való használatra szánt sztringeket tartalmaznak. Ezek a mezők tartalmazhatnak honosított sztringeket, amelyekkel egy alkalmazás megjeleníthet egy honosított felhasználói felületet.
Az alábbi kódrészlet egy példa hőmérsékleti telemetriadefiníciót mutat be, amely honosított sztringeket tartalmaz:
{
"@type": [
"Telemetry",
"Temperature"
],
"description": {
"en": "Temperature in degrees Celsius.",
"it": "Temperatura in gradi Celsius."
},
"displayName": {
"en": "Temperature",
"it": "Temperatura"
},
"name": "temperature",
"schema": "double",
"unit": "degreeCelsius"
}
Honosított sztringek hozzáadása nem kötelező. Az alábbi példa csak egyetlen alapértelmezett nyelvvel rendelkezik:
{
"@type": [
"Telemetry",
"Temperature"
],
"description": "Temperature in degrees Celsius.",
"displayName": "Temperature",
"name": "temperature",
"schema": "double",
"unit": "degreeCelsius"
}
Életciklus és eszközök
Az eszközmodell négy életciklus-szakasza a szerző, a közzététel, a használat és a verzió:
Szerző
A DTML-eszközmodellek olyan JSON-dokumentumok, amelyeket szövegszerkesztőben hozhat létre. Az IoT Centralban azonban az eszközsablon GUI-környezetével létrehozhat egy DTML-modellt. Az IoT Centralban a következő műveleteket végezheti el:
- Tulajdonságokat, telemetriát és parancsokat meghatározó felületek létrehozása.
- Összetevők használatával több illesztőt is összeszerelhet.
- Az illesztők közötti öröklési kapcsolatok definiálása.
- DTML-modellfájlok importálása és exportálása.
További információ: Új IoT-eszköztípus definiálása az Azure IoT Central-alkalmazásban.
Van egy DTDL szerzői bővítmény a VS Code-hoz, amely támogatja a DTDL v2 és a DTDL v3 verziót is.
A VS Code DTDL-bővítményének telepítéséhez lépjen a Visual Studio Code DTDL-szerkesztőjéhez. DTDL-t a VS Code Bővítmények nézetében is kereshet.
A bővítmény telepítése után a használatával DTDL-modellfájlokat hozhat létre a VS Code-ban:
A bővítmény szintaxis-ellenőrzést biztosít a DTDL-modellfájlokban, kiemelve a hibákat az alábbi képernyőképen látható módon:
DTDL-modellek szerkesztésekor használja az intelliense és az automatikus kiegészítést:
Hozzon létre egy új DTDL-felületet. A DTDL: Create Interface parancs létrehoz egy JSON-fájlt egy új felülettel. Az interfész például telemetriát, tulajdonságot és parancsdefiníciókat tartalmaz.
Használat
Az alkalmazások, például az IoT Central eszközmodelleket használnak. Az IoT Centralban a modell az eszköz képességeit leíró eszközsablon része. Az IoT Central az eszközsablon használatával dinamikusan készít felhasználói felületet az eszközhöz, beleértve az irányítópultokat és az elemzéseket is.
Feljegyzés
Az IoT Central definiál néhány bővítményt a DTDL nyelvhez. További információ: IoT Central-bővítmény.
Az egyéni megoldások a Digital Twins modellelemzővel ismerhetik meg a modellt megvalósító eszközök képességeit. További információ: IoT Plug and Play-modellek használata IoT-megoldásban.
Verzió
Annak érdekében, hogy a modelleket használó eszközök és kiszolgálóoldali megoldások továbbra is működjenek, a közzétett modellek nem módosíthatók.
A DTMI tartalmaz egy verziószámot, amellyel egy modell több verzióját is létrehozhatja. Az eszközök és a kiszolgálóoldali megoldások a használni kívánt verziót használhatják.
Az IoT Central további verziószámozási szabályokat implementál az eszközmodellekhez. Ha az IoT Centralban verziószámozza az eszközsablont és annak modelljét, áttelepítheti az eszközöket a korábbi verziókból a későbbi verziókba. A migrált eszközök azonban nem használhatnak új képességeket belső vezérlőprogram-frissítés nélkül. További információ: Eszközsablon szerkesztése.
Közzététel
Az Azure Certified Device program 2024 februárjától megszűnik. Ezért a Microsoft már nem fogadja el a DTDL-modellek beküldését az Azure IoT plug and play modellek adattárába.
Ha saját modelladattárat szeretne beállítani, használhatja az Azure IoT plug and play models tools adattárat. Ez az adattár tartalmazza a dmr-client
CLI-eszköz kódját, amely képes a DTDL-modellek ellenőrzésére, importálására és kibontára. Ezzel az eszközzel indexelheti az eszközmodell-adattár konvencióit követő modelladattárakat is.
Határétékek és korlátozások
Az alábbi lista összefoglal néhány, a modellekre vonatkozó fő korlátozást és korlátozást:
- A tömbök, térképek és objektumok maximális mélysége jelenleg öt szint.
- A tulajdonságdefiníciókban nem használhat tömböket.
- Az interfészeket 10 szintig bővítheti.
- Egy interfész legfeljebb két másik adaptert is kiterjeszthet.
- Az összetevők nem tartalmazhatnak másik összetevőt.
A Digital Twins modellelemző ismertetése
A Digital Twins Definition Language (DTDL) leírása a DTDL specifikációban található. A felhasználók a Digital Twins Model Parser NuGet csomag használatával ellenőrizhetik és lekérdezhetik a DTDL v2 vagy v3 modelleket. A DTDL-modell több fájlban is definiálható.
A DTDL modellelemző telepítése
Az elemző a következő azonosítójú NuGet.org érhető el: DTDLParser. Az elemző telepítéséhez használjon bármilyen kompatibilis NuGet-csomagkezelőt, például a Visual Studióban vagy a dotnet
parancssori felületen.
dotnet add package DTDLParser
Feljegyzés
Az íráskor az elemző verziója .1.0.52
Modell ellenőrzése és vizsgálata az elemzővel
A DTDLParser egy kódtár, amellyel:
- Határozza meg, hogy egy vagy több modell érvényes-e a v2 vagy v3 nyelvi specifikációknak megfelelően.
- Konkrét modellezési hibák azonosítása.
- Vizsgálja meg a modell tartalmát.
A modell egy vagy több JSON-fájlban leírt felületből állhat. Az elemzővel betöltheti a modellt meghatározó összes fájlt, majd ellenőrizheti az összes fájlt egészként, beleértve a fájlok közötti hivatkozásokat is.
A .NET-adattárhoz készült DTDLParser a következő mintákat tartalmazza, amelyek az elemző használatát szemléltetik:
- A DTDLParserResolveSample bemutatja, hogyan elemezhet egy felületet külső hivatkozásokkal, és hogyan oldhatja fel a függőségeket az
Azure.IoT.ModelsRepository
ügyfél használatával. - A DTDLParserJSInteropSample bemutatja, hogyan használhatja a DTDL-elemzőt a böngészőben futó JavaScriptből a .NET JSInterop használatával.
A .NET-adattárhoz készült DTDLParser oktatóanyagok gyűjteményét is tartalmazza, amelyek bemutatják, hogyan használhatja az elemzőt a modellek ellenőrzésére és vizsgálatára.
A modellelemző API számos forgatókönyvet tesz lehetővé a DTDL-modellektől függő feladatok automatizálásához vagy érvényesítéséhez. Például dinamikusan hozhat létre felhasználói felületet a modell információiból.
Következő lépések
Most, hogy megismerte az eszközmodellezést, íme néhány további forrás: