Panduan pemodelan IoT Plug and Play
Inti dari IoT Plug and Play, adalah model perangkat yang menjelaskan kemampuan perangkat ke aplikasi yang mengaktifkan IoT Plug and Play. Model ini disusun sebagai set antarmuka yang menentukan:
- Properti yang mewakili status baca-saja atau bisa-tulis dari perangkat atau entitas lain. Misalnya, nomor seri perangkat mungkin merupakan properti baca-saja dan suhu target pada termostat mungkin merupakan properti bisa-tulis.
- Bidang Telemetri yang menentukan data yang dipancarkan oleh perangkat, baik data berupa aliran reguler pembacaan sensor, kesalahan sesekali, maupun pesan informasi.
- Perintah yang menjelaskan fungsi atau operasi yang bisa dilakukan pada perangkat. Misalnya, perintah bisa me-reboot gateway atau mengambil gambar menggunakan kamera jarak jauh.
Untuk mempelajari selengkapnya tentang cara IoT Plug and Play menggunakan model perangkat, lihat panduan pengembang perangkat IoT Plug and Play dan panduan pengembang layanan IoT Plug and Play.
Untuk menentukan model, Anda menggunakan Digital Twins Definition Language (DTDL). DTDL menggunakan varian JSON yang disebut JSON-LD. Cuplikan berikut menunjukkan model perangkat untuk perangkat termostat bahwa:
- Memiliki ID model unik:
dtmi:com:example:Thermostat;1
. - Mengirimkan telemetri suhu.
- Memiliki properti bisa-tulis untuk mengatur suhu target.
- Memiliki properti baca-saja untuk melaporkan suhu maksimum sejak reboot terakhir.
- Merespons perintah yang meminta suhu maksimum, minimum, dan rata-rata selama periode waktu tertentu.
{
"@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"
}
]
}
}
}
]
}
Model termostat memiliki satu antarmuka. Contoh selanjutnya dalam artikel ini menampilkan model yang lebih kompleks yang menggunakan komponen dan pewarisan.
Artikel ini menjelaskan cara mendesain dan membuat model Anda sendiri dan membahas topik seperti jenis data, struktur model, dan alat.
Untuk mempelajari lebih lanjut , lihat spesifikasi Digital Twins Definition Language .
Struktur model
Properti, telemetri, dan perintah dikelompokkan ke dalam antarmuka. Bagian ini menjelaskan bagaimana Anda bisa menggunakan antarmuka untuk menggambarkan model yang sederhana dan kompleks menggunakan komponen dan pewarisan.
ID Model
Setiap antarmuka memiliki pengidentifikasi model kembar digital (DTMI) yang unik. Model kompleks menggunakan DTMI untuk mengidentifikasi komponen. Aplikasi bisa menggunakan DTMI yang dikirim perangkat untuk menemukan definisi model di repositori.
DTMIs harus menggunakan konvensi penamaan berikut:
- Awalan DTMI adalah
dtmi:
. - Akhiran DTMI adalah nomor versi untuk model seperti
;2
. - Isi DTMI memetakan ke folder dan file di repositori model tempat model disimpan. Nomor versi adalah bagian dari nama file.
Misalnya, model teridentifikasi oleh DTMI dtmi:com:Example:Thermostat;2
disimpan di dalam file dtmi/com/example/thermostat-2.json.
Cuplikan berikut menunjukkan kerangka definisi antarmuka dengan DTMI uniknya:
{
"@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": [
...
]
}
Tidak ada komponen
Model sederhana, seperti termostat yang ditampilkan sebelumnya, tidak menggunakan komponen yang disematkan atau bertingkat. Telemetri, properti, dan perintah didefinisikan dalam node contents
antarmuka.
Contoh berikut menunjukkan bagian dari model sederhana yang tidak menggunakan komponen:
{
"@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",
...
Alat seperti Azure IoT Explorer dan perancang templat perangkat IoT Central memberi label antarmuka mandiri seperti termostat sebagai komponen default.
Cuplikan layar berikut menunjukkan bagaimana model ditampilkan di alat Azure IoT Explorer:
Cuplikan layar berikut menunjukkan bagaimana model ditampilkan sebagai komponen default di dalam desainer templat perangkat IoT Central. Pilih Lihat identitas untuk melihat DTMI model:
ID model disimpan di properti kembar perangkat saat cuplikan layar berikut menunjukkan:
Model DTDL tanpa komponen adalah penyederhanaan yang berguna untuk perangkat atau modul IoT Edge dengan satu set telemetri, properti, dan perintah. Model yang tidak menggunakan komponen memudahkan migrasi perangkat atau modul yang ada untuk menjadi perangkat atau modul IoT Plug and Play - Anda membuat model DTDL yang menunjukkan perangkat atau modul Anda yang sebenarnya tanpa perlu menentukan komponen apa pun.
Tip
Modul bisa menjadi modul perangkat atau modul IoT Edge.
Menggunakan kembali
Ada dua cara untuk menggunakan kembali definisi antarmuka.
- Gunakan beberapa komponen dalam model untuk mereferensikan definisi antarmuka lainnya.
- Gunakan pewarisan untuk memperluas definisi antarmuka yang ada.
Beberapa komponen
Komponen memungkinkan Anda membangun antarmuka model sebagai rakitan antarmuka lain.
Misalnya, antarmuka Thermostat didefinisikan sebagai model. Anda bisa menggabungkan antarmuka ini sebagai satu atau lebih banyak komponen saat Anda menentukan model Pengontrol Suhu. Dalam contoh berikut, komponen-komponen ini disebut thermostat1
dan thermostat2
.
Untuk model DTDL dengan beberapa komponen, ada dua bagian komponen atau lebih. Setiap bagian memiliki @type
yang diatur ke Component
dan secara eksplisit merujuk pada skema sebagaimana ditunjukkan dalam cuplikan berikut:
{
"@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."
}
]
}
Model ini memiliki tiga komponen yang ditentukan dalam bagian konten - dua komponen Thermostat
dan satu komponen DeviceInformation
. Bagian konten juga mencakup definisi properti, telemetri, dan perintah.
Cuplikan layar berikut menunjukkan bagaimana model ini muncul dalam IoT Central. Properti, telemetri, dan definisi perintah dalam pengontrol suhu muncul di Komponen default tingkat atas. Properti, telemetri, dan definisi perintah untuk setiap termostat muncul di definisi komponen:
Untuk mempelajari cara menulis kode perangkat yang berinteraksi dengan komponen, lihat panduan pengembang perangkat IoT Plug and Play.
Untuk mempelajari cara menulis kode layanan yang berinteraksi dengan komponen di perangkat, lihat panduan pengembang layanan IoT Plug and Play.
Warisan
Pewarisan memungkinkan Anda menggunakan kembali kemampuan pada antarmuka dasar untuk memperluas kemampuan antarmuka. Misalnya, beberapa model perangkat bisa berbagi kemampuan umum seperti nomor seri:
Cuplikan berikut menunjukkan model DTML yang menggunakan kata kunci extends
untuk menentukan hubungan pewarisan yang diperlihatkan dalam diagram sebelumnya:
[
{
"@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
}
]
}
]
Cuplikan layar berikut menunjukkan model ini di lingkungan templat perangkat IoT Central:
Saat Anda menulis kode perangkat atau sisi layanan, kode Anda tidak perlu melakukan hal istimewa untuk menangani antarmuka yang diwariskan. Dalam contoh yang diperlihatkan pada bagian ini, kode perangkat Anda melaporkan nomor seri seolah-olah merupakan bagian dari antarmuka termostat.
Tips
Anda bisa menggabungkan komponen dan pewarisan saat membuat model. Diagram berikut menunjukkan model thermostat
yang diwariskan dari antarmuka baseDevice
. Antarmuka baseDevice
memiliki komponen, yang mewarisi dari antarmuka lain:
Cuplikan berikut menunjukkan model DTML yang menggunakan kata kunci extends
dan component
untuk menentukan hubungan pewarisan dan penggunaan komponen yang diperlihatkan dalam diagram sebelumnya:
[
{
"@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"
}
]
}
]
Jenis data
Gunakan jenis data untuk menentukan parameter telemetri, properti, dan perintah. Jenis data bisa primitif atau kompleks. Jenis data kompleks menggunakan primitif atau jenis kompleks lainnya. Kedalaman maksimum untuk jenis kompleks adalah lima tingkat.
Jenis primitif
Tabel berikut ini memperlihatkan kumpulan jenis primitif yang bisa Anda gunakan:
Jenis primitif | Deskripsi |
---|---|
boolean |
Nilai Boolean |
date |
Tanggal penuh sebagaimana ditentukan dalam bagian 5.6 RFC 3339 |
dateTime |
Tanggal-waktu sebagaimana ditentukan dalam RFC 3339 |
double |
Titik float IEEE 8-byte |
duration |
Durasi dalam format ISO 8601 |
float |
Titik float IEEE 4-byte |
integer |
Bilangan bulat 4-byte yang bertanda |
long |
Bilangan bulat 8-byte yang bertanda |
string |
String UTF8 |
time |
Waktu penuh sebagaimana yang ditentukan dalam bagian 5.6 dari RFC 3339 |
Cuplikan berikut menunjukkan contoh definisi telemetri yang menggunakan jenis double
di bidang schema
:
{
"@type": "Telemetry",
"name": "temperature",
"displayName": "Temperature",
"schema": "double"
}
Jenis data kompleks
Jenis data kompleks adalah salah satu array, enumerasi, peta, objek, atau salah satu jenis geospasial.
Larik
Array adalah jenis data yang bisa diindeks di mana semua elemen merupakan jenis yang sama. Jenis elemen bisa berupa jenis primitif atau kompleks.
Cuplikan berikut memperlihatkan contoh definisi telemetri yang menggunakan jenis Array
di bidang schema
. Elemen array adalah boolean:
{
"@type": "Telemetry",
"name": "ledState",
"schema": {
"@type": "Array",
"elementSchema": "boolean"
}
}
Enumerasi
Enumerasi menjelaskan jenis dengan set label bernama yang memetakan ke nilai. Nilai bisa berupa bilangan bulat atau string, tetapi label selalu berupa string.
Cuplikan berikut memperlihatkan contoh definisi telemetri yang menggunakan jenis Enum
di bidang schema
. Nilai dalam enumerasi adalah bilangan bulat:
{
"@type": "Telemetry",
"name": "state",
"schema": {
"@type": "Enum",
"valueSchema": "integer",
"enumValues": [
{
"name": "offline",
"displayName": "Offline",
"enumValue": 1
},
{
"name": "online",
"displayName": "Online",
"enumValue": 2
}
]
}
}
Maps
Peta adalah jenis dengan pasangan kunci-nilai di mana semua nilai memiliki jenis yang sama. Kunci dalam peta harus berupa string. Nilai dalam peta bisa berjenis apa saja, termasuk jenis kompleks lainnya.
Cuplikan berikut menunjukkan contoh definisi properti yang menggunakan jenis Map
dalam bidang schema
. Nilai dalam peta adalah string:
{
"@type": "Property",
"name": "modules",
"writable": true,
"schema": {
"@type": "Map",
"mapKey": {
"name": "moduleName",
"schema": "string"
},
"mapValue": {
"name": "moduleState",
"schema": "string"
}
}
}
Objek
Jenis objek terdiri dari bidang bernama. Jenis bidang dalam peta objek bisa berupa jenis primitif atau kompleks.
Cuplikan berikut memperlihatkan contoh definisi telemetri yang menggunakan jenis Object
di bidang schema
. Bidang dalam objek yaitu jenis dateTime
, duration
, dan string
:
{
"@type": "Telemetry",
"name": "monitor",
"schema": {
"@type": "Object",
"fields": [
{
"name": "start",
"schema": "dateTime"
},
{
"name": "interval",
"schema": "duration"
},
{
"name": "status",
"schema": "string"
}
]
}
}
Jenis geospasial
DTDL menyediakan jenis geospasial, berdasarkan GeoJSON, untuk struktur data geospasial pemodelan: point
, multiPoint
, lineString
, multiLineString
, polygon
, dan multiPolygon
. Jenis ini adalah struktur array, objek, dan enumerasi yang dibuat sistem.
Cuplikan berikut menunjukkan contoh definisi telemetri yang menggunakan jenis point
di bidang schema
:
{
"@type": "Telemetry",
"name": "location",
"schema": "point"
}
Karena jenis geospasial berbasis array, maka saat ini tidak bisa digunakan dalam definisi properti.
Jenis Semantik
Jenis data properti atau definisi telemetri menentukan format data yang ditukar perangkat dengan layanan. Jenis semantik menyediakan informasi tentang telemetri dan properti yang bisa digunakan aplikasi untuk menentukan cara memroses atau menampilkan nilai. Setiap jenis semantik memiliki satu atau beberapa unit terkait. Misalnya, celsius dan fahrenheit adalah unit untuk jenis semantik suhu. Dasbor dan analitik IoT Central bisa menggunakan informasi jenis semantik untuk menentukan cara memplot nilai telemetri atau properti dan unit tampilan. Untuk mempelajari bagaimana Anda dapat menggunakan pengurai model untuk membaca jenis semantik, lihat Memahami pengurai model Digital Twins.
Cuplikan berikut menunjukkan contoh definisi telemetri yang menyertakan informasi jenis semantik. Jenis semantik Temperature
ditambahkan ke array @type
, dan nilai unit
, degreeCelsius
adalah salah satu unit yang valid untuk jenis semantik:
{
"@type": [
"Telemetry",
"Temperature"
],
"name": "temperature",
"schema": "double",
"unit": "degreeCelsius"
}
Pelokalan
Aplikasi, seperti IoT Central, menggunakan informasi dalam model untuk membangun UI secara dinamis di sekitar data yang ditukar dengan perangkat IoT Plug and Play. Misalnya, petak peta pada dasbor bisa menampilkan nama dan deskripsi untuk telemetri, properti, dan perintah.
Bidang opsional description
dan bidang displayName
pada string penahanan model dimaksudkan untuk digunakan dalam antarmuka pengguna. Bidang ini bisa menampung string yang dilokalkan yang bisa digunakan aplikasi untuk merender antarmuka pengguna yang dilokalkan.
Cuplikan berikut menunjukkan contoh definisi telemetri suhu yang menyertakan string yang dilokalkan:
{
"@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"
}
Menambahkan string yang dilokalkan bersifat opsional. Contoh berikut ini hanya memiliki satu bahasa default:
{
"@type": [
"Telemetry",
"Temperature"
],
"description": "Temperature in degrees Celsius.",
"displayName": "Temperature",
"name": "temperature",
"schema": "double",
"unit": "degreeCelsius"
}
Siklus hidup dan alat
Empat tahap siklus hidup untuk model perangkat adalah penulisan, publikasi, penggunaan, dan versi:
Penulis
Model perangkat DTML adalah dokumen JSON yang bisa Anda buat di editor teks. Namun, di IoT Central Anda bisa menggunakan perangkat templat lingkungan GUI untuk membuat model DTML. Di IoT Central Anda bisa:
- Buat antarmuka yang menentukan properti, telemetri, dan perintah.
- Gunakan komponen untuk merakit beberapa antarmuka bersama-sama.
- Tentukan hubungan pewarisan antara antarmuka.
- Mengimpor dan mengekspor file model DTML.
Untuk mempelajari lebih lanjut, lihat Menentukan jenis perangkat IoT di aplikasi Azure IoT Central Anda.
Ada ekstensi penulisan DTDL untuk VS Code yang mendukung DTDL v2 dan DTDL v3.
Untuk memasang ekstensi DTDL untuk Visual Studio Code, buka editor DTDL untuk Visual Studio Code. Anda juga dapat mencari DTDL di tampilan Ekstensi di Visual Studio Code.
Setelah Anda menginstal ekstensi, gunakan untuk membantu Anda menulis file model DTDL di Visual Studio Code:
Ekstensi ini menyediakan validasi sintaks dalam file model DTDL, menyoroti kesalahan seperti yang ditunjukkan pada tangkapan layar berikut:
Gunakan intellisense dan autocomplete saat Anda mengedit model DTDL:
Buat antarmuka DTDL baru. Perintah DTDL: Create Interface membuat file JSON dengan antarmuka baru. Antarmukanya mencakup contoh telemetri, properti, dan definisi perintah.
Menggunakan
Aplikasi, seperti IoT Central, menggunakan model perangkat. Di IoT Central, model adalah bagian dari templat perangkat yang menggambarkan kemampuan perangkat. IoT Central menggunakan templat perangkat untuk membangun antarmuka pengguna secara dinamis untuk perangkat, termasuk dasbor dan analitik.
Catatan
IoT Central mendefinisikan beberapa ekstensi ke bahasa DTDL. Untuk mempelajari lebih lanjut, lihat Ekstensi IoT Central.
Solusi kustom dapat menggunakan pengurai model Digital Twins untuk memahami kemampuan perangkat yang mengimplementasikan model. Untuk mempelajari selengkapnya, lihat Menggunakan model IoT Plug and Play dalam solusi IoT.
Versi
Untuk memastikan perangkat dan solusi sisi server yang menggunakan model tetap berfungsi, model yang diterbitkan tidak bisa diubah.
DTMI menyertakan nomor versi yang bisa Anda gunakan untuk membuat beberapa versi model. Perangkat dan solusi sisi server bisa menggunakan versi tertentu yang sudah dirancang untuk digunakan.
IoT Central menerapkan aturan penerapan versi lebih lanjut untuk model perangkat. Jika Anda menerapkan versi templat perangkat dan modelnya di IoT Central, Anda bisa memigrasikan perangkat dari versi sebelumnya ke versi yang lebih baru. Namun, perangkat yang dimigrasikan tidak bisa menggunakan kemampuan baru tanpa peningkatan firmware. Untuk mempelajari lebih lanjut, lihat Mengedit templat perangkat.
Terbitkan
Mulai Februari 2024, program Perangkat Bersertifikat Azure dihentikan. Oleh karena itu, Microsoft tidak lagi menerima pengiriman model DTDL ke repositori model plug and play Azure IoT.
Jika Anda ingin menyiapkan repositori model Anda sendiri, Anda dapat menggunakan repositori alat model plug and play Azure IoT. Repositori ini mencakup kode untuk dmr-client
alat CLI yang dapat memvalidasi, mengimpor, dan memperluas model DTDL. Alat ini juga memungkinkan Anda mengindeks repositori model yang mengikuti konvensi repositori model perangkat.
Limit dan batasan
Daftar berikut ini merangkum beberapa batasan dan limit utama pada model:
- Saat ini, kedalaman maksimum untuk array, peta, dan objek adalah lima tingkat.
- Anda tidak bisa menggunakan array dalam definisi properti.
- Anda bisa memperluas antarmuka ke tingkat kedalaman 10.
- Antarmuka bisa memperluas paling banyak dua antarmuka lainnya.
- Komponen tidak boleh berisi komponen lain.
Memahami pengurai model Digital Twins
Digital Twins Definition Language (DTDL) dijelaskan dalam Spesifikasi DTDL. Pengguna dapat menggunakan paket Digital Twins Model Parser NuGet untuk memvalidasi dan mengkueri model DTDL v2 atau v3. Model DTDL dapat ditentukan dalam beberapa file.
Pasang parser model DTDL
Pengurai tersedia di NuGet.org dengan ID: DTDLParser. Untuk memasang parser, gunakan pengelola paket NuGet yang kompatibel seperti yang ada di Visual Studio atau di dotnet
CLI.
dotnet add package DTDLParser
Catatan
Pada saat penulisan, versi parser adalah 1.0.52
.
Menggunakan pengurai untuk memvalidasi dan memeriksa model
DTDLParser adalah pustaka yang dapat Anda gunakan untuk:
- Tentukan apakah satu atau beberapa model valid sesuai dengan spesifikasi bahasa v2 atau v3.
- Identifikasi kesalahan pemodelan tertentu.
- Memeriksa konten model.
Sebuah model dapat terdiri atas satu atau beberapa antarmuka yang dijelaskan dalam file JSON. Anda dapat menggunakan pengurai untuk memuat semua file yang menentukan model lalu memvalidasi semua file secara keseluruhan, termasuk referensi apa pun di antara file.
Repositori DTDLParser untuk .NET mencakup sampel berikut yang mengilustrasikan penggunaan pengurai:
- DTDLParserResolveSample menunjukkan cara mengurai antarmuka dengan referensi eksternal, menyelesaikan dependensi menggunakan
Azure.IoT.ModelsRepository
klien. - DTDLParserJSInteropSample menunjukkan cara menggunakan DTDL Parser dari JavaScript yang berjalan di browser, menggunakan .NET JSInterop.
Repositori DTDLParser untuk .NET juga menyertakan kumpulan tutorial yang menunjukkan kepada Anda cara menggunakan pengurai untuk memvalidasi dan memeriksa model.
API pengurai model memungkinkan banyak skenario untuk mengotomatiskan atau memvalidasi tugas yang bergantung pada model DTDL. Misalnya, Anda dapat membuat UI secara dinamis dari informasi dalam model.
Langkah berikutnya
Sekarang setelah Anda mempelajari tentang pemodelan perangkat, berikut adalah beberapa sumber daya lainnya: