• 10.04.2020
  • 4 minute de citit

In acest articol

Modelele din Azure Digital Twins sunt definite folosind limbajul JSON-LD Digital Twins Definition (DTDL). Este recomandat sa va validati modelele offline inainte de a le incarca in instanta dvs. Azure Digital Twins.

Pentru a va ajuta sa faceti acest lucru, o biblioteca de analiza DTDL partea clientului .NET este furnizata pe NuGet: Microsoft.Azure.DigitalTwins.Parser.

Puteti utiliza biblioteca parser direct in codul dvs. C # sau puteti utiliza proiectul esantion de cod agnostic pentru limba care este construit pe biblioteca parser: esantion validator DTDL.

Utilizati esantionul validatorului DTDL

Validatorul DTDL este un exemplu de proiect care poate valida documentele model pentru a se asigura ca DTDL este valid. Este construit pe biblioteca parserului .NET si este lingvistic-agnostic. Puteti sa-l obtineti cu butonul Descarcati codul ZIP de la linkul esantion.

Codul sursa prezinta exemple de utilizare a bibliotecii parser. Puteti utiliza esantionul de validare ca utilitar de linie de comanda pentru a valida un arbore de directoare de fisiere DTDL. De asemenea, ofera un mod interactiv.

In folderul pentru esantionul DTDL Validator, consultati fisierul readme.md pentru instructiuni despre cum sa impachetati esantionul intr-un executabil autonom.

Dupa ce ati construit un pachet autonom si ati adaugat executabilul la calea dvs., puteti rula validatorul cu aceasta comanda intr-o consola de pe computer:

DTDLValidator

Cu optiunile implicite, esantionul va cauta fisiere .json in directorul curent si in toate subdirectoarele. De asemenea, puteti adauga urmatoarea optiune pentru a cauta exemplul in directorul indicat si in toate subdirectoarele pentru fisiere cu extensia .dtdl:

DTDLValidator -d C: \ Work \ DTDL -e dtdl

Puteti adauga optiunea -i pentru ca esantionul sa intre in modul interactiv:

DTDLValidator -i

Pentru mai multe informatii despre acest esantion, consultati codul sursa sau rulati DTDLValidator –help.

Utilizati biblioteca parserului .NET

Biblioteca Microsoft.Azure.DigitalTwins.Parser ofera acces model la definitiile DTDL, actionand in esenta ca echivalentul reflectiei C # pentru DTDL. Aceasta biblioteca poate fi utilizata independent de orice SDK Azure Digital Twins, in special pentru validarea DTDL intr-un editor vizual sau text. Este util pentru a va asigura ca fisierele dvs. de definitie a modelului sunt valabile inainte de a incerca sa le incarcati in serviciu.

Pentru a utiliza biblioteca parser, ii oferiti un set de documente DTDL. In mod obisnuit, veti prelua aceste documente model din serviciu, dar s-ar putea sa le aveti si disponibile la nivel local, daca clientul dvs. a fost responsabil pentru incarcarea lor in serviciu in primul rand.

Iata fluxul general de lucru pentru utilizarea parserului:

  1. Preluati unele sau toate documentele DTDL din serviciu.
  2. Treceti documentele DTDL in memorie returnate catre analizor.
  3. Analizatorul va valida setul de documente transmise catre acesta si va returna informatii detaliate despre erori. Aceasta abilitate este utila in scenarii de editor.
  4. Utilizati API-urile parser pentru a continua analiza modelelor incluse in setul de documente.

Capacitatile analizorului includ:

  • Obtineti toate interfetele de model implementate (continutul sectiunii extinde a interfetei).
  • Obtineti toate proprietatile, telemetria, comenzile, componentele si relatiile declarate in model. Aceasta comanda primeste, de asemenea, toate metadatele incluse in aceste definitii si ia in considerare mostenirea (extinde sectiunile).
  • Obtineti toate definitiile modelului complex.
  • Determinati daca un model este alocabil dintr-un alt model.

Nota

Dispozitivele IoT Plug and Play (PnP) utilizeaza o mica varianta de sintaxa pentru a descrie functionalitatea lor. Aceasta varianta de sintaxa este un subgrup semantic compatibil al DTDL care este utilizat in Azure Digital Twins. Cand utilizati biblioteca parser, nu trebuie sa stiti ce varianta de sintaxa a fost utilizata pentru a crea DTDL pentru geamanul dvs. digital. Analizorul va returna intotdeauna, in mod implicit, acelasi model atat pentru sintaxa PnP, cat si pentru Azure Digital Twins.

Cod cu biblioteca parser

Puteti utiliza direct biblioteca parser, pentru lucruri precum validarea modelelor in propria aplicatie sau pentru generarea de interfete dinamice, bazate pe modele, tablouri de bord si rapoarte.

Pentru a accepta exemplul de cod parser de mai jos, luati in considerare mai multe modele definite intr-o instanta Azure Digital Twins:

[{“@context”: “dtmi: dtdl: context; 2”, “@id”: “dtmi: com: contoso: coffeeMaker; 1”, “@type”: “Interfata”, “content”: [{” @type “:” Componenta “,” nume “:” coffeeMaker “,” schema “:” dtmi: com: contoso: coffeeMakerInterface; 1 “}]}, {” @context “:” dtmi: dtdl: context; 2 ” , “@id”: “dtmi: com: contoso: coffeeMakerInterface; 1”, “@type”: “Interfata”, “continut”: [{“@type”: “Proprietate”, “nume”: “waterTemp”, “schema”: “dublu”}]}, {“@context”: “dtmi: dtdl: context; 2”, “@id”: “dtmi: com: contoso: coffeeBar; 1”, “@type”: ” Interfata “,” continut “:[{“@type”: “Relatie”, “name”: “foo”, “target”: “dtmi: com: contoso: coffeeMaker; 1”}, {“@type”: “Property”, “name”: “capacitate”, “schema”: “numar intreg”}]}]

Urmatorul cod prezinta un exemplu de utilizare a bibliotecii parser pentru a reflecta asupra acestor definitii in C #:

utilizarea sistemului; sarcina asincronizata ParseDemoAsync (client DigitalTwinsClient) {incercati {AsyncPageable <DigitalTwinsModelData> mdata = client.GetModelsAsync (noi GetModelsOptions {IncludeModelDefinition = true}); modele var = Lista noua <sir> (); await foreach (DigitalTwinsModelData md in mdata) models.Add (md.DtdlModel); var parser = new ModelParser (); IReadOnlyDictionary <Dtmi, DTEntityInfo> dtdlOM = await parser.ParseAsync (models); interfete var = Lista noua <DTInterfaceInfo> (); IEnumerable <DTInterfaceInfo> ifenum = from entity in dtdlOM.Values ​​where entity.EntityKind == DTEntityKind.Interface selectati entitatea ca DTInterfaceInfo; interfete.AddRange (ifenum); foreach (DTInterfaceInfo dtif in interfete) {PrintInterfaceContent (dtif, dtdlOM); }} catch (RequestFailedException ex) {Console.WriteLine ($ “Esuat din cauza {ex}”); }} void PrintInterfaceContent (DTInterfaceInfo dtif, IReadOnlyDictionary <Dtmi, DTEntityInfo> dtdlOM, int indent = 0) {var sb = new StringBuilder (); for (int i = 0; i <indent; i ++) sb.Append (“”); Console.WriteLine ($ “{sb} Interfata: {dtif.Id} | {dtif.DisplayName}”); SortedDictionary <sir, DTContentInfo> continut = dtif.Contents; foreach (element DTContentInfo in contents.Values) {switch (item.EntityKind) {case DTEntityKind.Property: DTPropertyInfo pi = item ca DTPropertyInfo; Console.WriteLine ($ “{sb} – Proprietate: {pi.Name} cu schema {pi.Schema}”); pauza; case DTEntityKind.Relationship: DTRelationshipInfo ri = item ca DTRelationshipInfo; Console.WriteLine ($ “{sb} – Relatie: {ri.Name} cu tinta {ri.Target}”); pauza; case DTEntityKind.Telemetry: DTTelemetryInfo ti = item ca DTTelemetryInfo; Console.WriteLine ($ “{sb} – Telemetrie: {ti.Name} cu schema {ti.Schema}”); pauza; case DTEntityKind.Component: DTComponentInfo ci = item ca DTComponentInfo; Console.WriteLine ($ “{sb} – Componenta: {ci.Id} | {ci.Name}”); dtdlOM.TryGetValue (ci.Id, valoarea DTEntityInfo); Componenta DTInterfaceInfo = valoare ca DTInterfaceInfo; PrintInterfaceContent (componenta, dtdlOM, liniuta + 1); pauza; }}}

Pasii urmatori

Dupa ce ati terminat de scris modelele dvs., vedeti cum sa le incarcati (si sa efectuati alte operatiuni de gestionare) cu API-urile DigitalTwinsModels:

  • Instructiuni: gestionati modelele DTDL

valentina nappi rocco siffredi malena la pug
porno saleri malena la puglese porno
malena academy malena la puglia
cazzo in culo e figa malena la puglies
malena video xxx malena la pugliesa
xxx film streaming malena la pugliese 2019
prendi porn malena la pugliese anal
poppea porn malena la pugliese anale
50 xxx malena la pugliese ass
sofia guccixxx malena la pugliese black
patty porn malena la pugliese blowjob
rebecca volpetti anal malena la pugliese casting
xxx play malena la pugliese compilation
roberta gemma movies malena la pugliese con max felicitas
ficaccia spietata malena la pugliese culo
max felicitas full video malena la pugliese cum
malena hard academy malena la pugliese cumshot
porn max malena la pugliese doppio anal
pizza xxx malena la pugliese double
film in streaming della centoxcento malena la pugliese double anal