Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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, apakah data adalah aliran reguler pembacaan sensor, kesalahan sesekali, atau 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 untuk perangkat termostat yang:
- Memiliki ID model yang unik:
dtmi:com:example:Thermostat;1. - Mengirim telemetri suhu.
- Memiliki properti yang dapat ditulis untuk mengatur suhu target.
- Memiliki properti baca-saja untuk melaporkan suhu maksimum sejak boot ulang 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 menunjukkan model yang lebih kompleks yang menggunakan komponen dan pewarisan.
Artikel ini menjelaskan cara merancang dan menulis model Anda sendiri dan membahas topik seperti jenis data, struktur model, dan alat.
Untuk mempelajari lebih lanjut, lihat spesifikasi Digital Twins Definition Language .
Nota
IoT Central saat ini mendukung DTDL v2 dengan ekstensi IoT Central.
Struktur model
Properti, telemetri, dan perintah dikelompokkan ke dalam antarmuka. Bagian ini menjelaskan bagaimana Anda dapat menggunakan antarmuka untuk menjelaskan model sederhana dan kompleks dengan menggunakan komponen dan pewarisan.
ID Model
Setiap antarmuka memiliki pengidentifikasi model kembar digital (DTMI) yang unik. Model kompleks menggunakan DTMIs untuk mengidentifikasi komponen. Aplikasi dapat menggunakan DTMIs 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. - Badan DTMI dipetakan ke folder dan file di repositori model tempat model tersebut disimpan. Nomor versi adalah bagian dari nama file.
Misalnya, model yang diidentifikasi oleh DTMI dtmi:com:Example:Thermostat;2 disimpan 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 simpul 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 perancang templat perangkat IoT Central. Pilih Tampilkan identitas untuk melihat DTMI model:
ID model disimpan di properti kembar perangkat seperti yang ditunjukkan oleh cuplikan layar berikut:
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 menjadi perangkat atau modul IoT Plug and Play - Anda membuat model DTDL yang menjelaskan perangkat atau modul Anda yang sebenarnya tanpa perlu menentukan komponen apa pun.
Petunjuk / Saran
Modul dapat berupa modul perangkat atau modul IoT Edge.
Gunakan Ulang
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 Termostat didefinisikan sebagai model. Anda dapat menggabungkan antarmuka ini sebagai satu atau beberapa komponen saat 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 telah @type diatur ke Component dan secara eksplisit mengacu pada skema seperti yang 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 di bagian konten - dua Thermostat komponen dan komponen DeviceInformation . Bagian konten juga menyertakan definisi properti, telemetri, dan perintah.
Cuplikan layar berikut menunjukkan bagaimana model ini muncul di IoT Central. Definisi properti, telemetri, dan perintah dalam pengontrol suhu muncul di komponen Default tingkat atas. Definisi properti, telemetri, dan perintah untuk setiap termostat muncul dalam 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.
Pewarisan
Pewarisan memungkinkan Anda menggunakan kembali kemampuan dalam antarmuka dasar untuk memperluas kemampuan antarmuka. Misalnya, beberapa model perangkat dapat berbagi kemampuan umum seperti nomor seri:
Cuplikan berikut menunjukkan model DTML yang menggunakan extends kata kunci 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 perangkat atau kode sisi layanan, kode Anda tidak perlu melakukan sesuatu yang istimewa untuk menangani antarmuka yang diwariskan. Dalam contoh yang ditunjukkan di bagian ini, kode perangkat Anda melaporkan nomor seri seolah-olah itu adalah bagian dari antarmuka termostat.
Tips
Anda dapat menggabungkan komponen dan pewarisan saat membuat model. Diagram berikut menunjukkan model yang thermostat mewarisi antarmuka baseDevice. Antarmuka baseDevice memiliki komponen, yang mewarisi dari antarmuka lain:
Cuplikan berikut menunjukkan model DTML yang menggunakan extends kata kunci dan component untuk menentukan hubungan pewarisan dan penggunaan komponen yang ditunjukkan pada 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 sekumpulan jenis primitif yang bisa Anda gunakan:
| Jenis primitif | Deskripsi |
|---|---|
boolean |
Nilai boolean |
date |
Tanggal lengkap seperti yang didefinisikan dalam bagian 5.6 dari RFC 3339 |
dateTime |
Tanggal-waktu seperti yang didefinisikan dalam RFC 3339 |
double |
Titik mengambang IEEE 8-byte |
duration |
Durasi dalam format ISO 8601 |
float |
Titik mengambang 4 byte IEEE |
integer |
Bilangan bulat bertanda 4-byte |
long |
Bilangan bulat bertanda 8-byte |
string |
String UTF8 |
time |
Waktu penuh seperti yang didefinisikan dalam bagian 5.6 dari RFC 3339 |
Cuplikan berikut menunjukkan contoh definisi telemetri yang menggunakan tipe double dalam 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.
Array
Array adalah jenis data yang dapat diindeks di mana semua elemen adalah jenis yang sama. Jenis elemen bisa menjadi jenis primitif atau kompleks.
Cuplikan berikut menunjukkan contoh definisi telemetri yang menggunakan jenis Array di dalam bidang schema. Elemen array adalah boolean:
{
"@type": "Telemetry",
"name": "ledState",
"schema": {
"@type": "Array",
"elementSchema": "boolean"
}
}
Enumerasi
Enumerasi menjelaskan jenis dengan sekumpulan label bernama yang memetakan ke nilai. Nilai dapat berupa bilangan bulat atau string, tetapi label selalu berupa string.
Cuplikan berikut menunjukkan contoh definisi telemetri yang menggunakan jenis Enum di dalam 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 dapat berupa jenis apa pun, termasuk jenis kompleks lainnya.
Cuplikan berikut menunjukkan contoh definisi properti yang menggunakan jenis Map di kolom 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 menjadi jenis primitif atau kompleks.
Cuplikan berikut menunjukkan contoh definisi telemetri yang menggunakan jenis Object di dalam bidang schema. Bidang dalam objek adalah dateTime, duration, dan string jenis:
{
"@type": "Telemetry",
"name": "monitor",
"schema": {
"@type": "Object",
"fields": [
{
"name": "start",
"schema": "dateTime"
},
{
"name": "interval",
"schema": "duration"
},
{
"name": "status",
"schema": "string"
}
]
}
}
Jenis geospasial
DTDL menyediakan sekumpulan jenis geospasial, berdasarkan GeoJSON, untuk pemodelan struktur data geografis: point, , multiPoint, lineStringmultiLineString, polygon, dan multiPolygon. Jenis ini adalah struktur array, objek, dan enumerasi berlapis yang telah ditentukan sebelumnya.
Cuplikan berikut menunjukkan contoh definisi telemetri yang menggunakan tipe point dalam bidang schema.
{
"@type": "Telemetry",
"name": "location",
"schema": "point"
}
Karena jenis geospasial berbasis array, jenis geospasial saat ini tidak dapat 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 dapat digunakan aplikasi untuk menentukan cara memproses atau menampilkan nilai. Setiap jenis semantik memiliki satu atau beberapa unit terkait. Misalnya, celcius dan fahrenheit adalah unit untuk jenis semantik suhu. Dasbor dan analitik IoT Central dapat menggunakan informasi jenis semantik untuk menentukan cara memplot telemetri atau nilai 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"
}
Lokalisasi
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 di dasbor dapat menampilkan nama dan deskripsi untuk telemetri, properti, dan perintah.
Bidang description dan displayName opsional dalam model menyimpan string yang ditujukan untuk digunakan di UI. Bidang ini dapat menyimpan string yang dilokalkan yang dapat digunakan aplikasi untuk merender UI yang dilokalkan.
Cuplikan berikut menunjukkan contoh definisi telemetri suhu yang mencakup 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 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 penulis, penerbitan, penggunaan, dan versi:
Penulis
Model perangkat DTML adalah dokumen JSON yang dapat Anda buat di editor teks. Namun, di IoT Central Anda dapat menggunakan lingkungan GUI templat perangkat untuk membuat model DTML. Di IoT Central Anda dapat:
- Buat antarmuka yang menentukan properti, telemetri, dan perintah.
- Gunakan komponen untuk merakit beberapa antarmuka bersama-sama.
- Tentukan hubungan pewarisan antar antarmuka.
- Mengimpor dan mengekspor file model DTML.
Untuk mempelajari selengkapnya, lihat Menentukan jenis perangkat IoT baru di aplikasi Azure IoT Central Anda.
Ada ekstensi penulisan DTDL untuk VS Code yang mendukung DTDL v2 dan DTDL v3.
Untuk menginstal ekstensi DTDL untuk VISUAL Code, buka editor DTDL untuk Visual Studio Code. Anda juga dapat mencari DTDL dalam 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 cuplikan layar berikut:
Gunakan intellisense dan lengkapi otomatis saat Anda mengedit model DTDL:
Buat antarmuka DTDL baru. Perintah DTDL: Create Interface membuat file JSON dengan antarmuka baru. Antarmuka mencakup contoh definisi telemetri, properti, dan perintah.
Gunakan
Aplikasi, seperti IoT Central, menggunakan model perangkat. Di IoT Central, model adalah bagian dari templat perangkat yang menjelaskan kemampuan perangkat. IoT Central menggunakan templat perangkat untuk membangun UI untuk perangkat secara dinamis, termasuk dasbor dan analitik.
Nota
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 terus berfungsi, model yang diterbitkan tidak dapat diubah.
DTMI menyertakan nomor versi yang dapat Anda gunakan untuk membuat beberapa versi model. Perangkat dan solusi sisi server dapat menggunakan versi tertentu yang dirancang untuk digunakan.
IoT Central menerapkan lebih banyak aturan penerapan versi untuk model perangkat. Jika Anda membuat versi templat perangkat dan modelnya di IoT Central, Anda dapat memigrasikan perangkat dari versi sebelumnya ke versi yang lebih baru. Namun, perangkat yang dimigrasikan tidak dapat menggunakan kemampuan baru tanpa peningkatan firmware. Untuk mempelajari selengkapnya, 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.
Batasan dan kendala
Daftar berikut ini meringkas beberapa batasan dan batasan utama pada model:
- Saat ini, kedalaman maksimum untuk array, peta, dan objek adalah lima tingkat.
- Anda tidak dapat menggunakan array dalam definisi properti.
- Anda dapat memperluas antarmuka ke kedalaman 10 level.
- Antarmuka dapat mengimplementasi paling banyak dua antarmuka lainnya.
- Komponen tidak dapat 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.
Menginstal pengurai model DTDL
Pengurai tersedia di NuGet.org dengan ID: DTDLParser. Untuk menginstal pengurai, gunakan manajer paket NuGet yang kompatibel seperti yang ada di Visual Studio atau di dotnet CLI.
dotnet add package DTDLParser
Nota
Pada saat penulisan, versi pengurai 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.
Model dapat terdiri dari 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.ModelsRepositoryklien. - 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 membangun UI secara dinamis dari informasi dalam model.
Langkah berikutnya
Sekarang setelah Anda mempelajari tentang pemodelan perangkat, berikut adalah beberapa sumber daya lainnya: