Microsoftin TypeScript-parannus voi auttaa sinua kehittämään monimutkaisia ​​esineiden internetin tukemia järjestelmiä.

DeviceScript on Microsoft Researchin huippuluokan innovaatio. Se laajentaa TypeScriptin mahdollisuuksia mukautumaan pienimuotoisiin esineiden Internet (IoT) -laitteisiin, joilla on rajalliset resurssit.

Sen päätavoite on mahdollistaa koodin kirjoittaminen TypeScriptillä ja sen kääntäminen mukautetuksi tavukoodiksi, joka on optimoitu käytettäväksi resurssirajoitteisissa ympäristöissä.

Konsolin lähtö DeviceScriptissä

Microsoft DeviceScript tarjoaa käyttäjäystävällisen konsolin. Se tukee viestien tulostusta ja anturitietojen kirjaamista, mutta toimii myös a arvokas työkalu virheiden tarkistamiseen.

Käytettävissäsi on useita toimintoja, joilla voit kirjata viestejä eri lokitasoilla:

konsoli.debug("debug")
konsoli.Hirsi("Hirsi")
konsoli.varoittaa("varoittaa")
konsoli.virhe("virhe")

Konsolin lähtö näkyy helposti DeviceScript-pääteikkunassa. Se voi auttaa tarjoamaan arvokasta tietoa koodisi toiminnasta ja avustaa virheenkorjausprosessissa.

Lisäksi DeviceScript yksinkertaistaa anturitietojen kirjaamista tarjoamalla konsoli.data toiminto, joka liittää kirjattuihin tietoihin automaattisesti aikaleiman.

Harkitse seuraavaa esimerkkiä:

konst lämpötila = 20;
konst kosteus = 60;
konsoli.data({ lämpötila, kosteus });

Voit käyttää kirjattuja tietoja siirtymällä kohtaan DeviceScript - Datalähtö -ruutuun Visual Studio Codessa tai lataa se näkymävalikosta.

Tehokas merkkijonojen muotoilu

Kun käytät console.log() toiminto DeviceScriptissä, sinulla on monia vaihtoehtoja merkkijonojen muotoiluun tehostaaksesi tehoa. Harkitse seuraavia havainnollistavia esimerkkejä:

antaa x = 0;
antaa y = 4;
konsoli.Hirsi("Terve, maailma");
konsoli.Hirsi("X: n arvo on", x, "kun Y on", y);
konsoli.Hirsi("X=", x, "Y=", y);
konsoli.Hirsi(`X=${x} Y=${y}`);
konsoli.Hirsi("X=" + x + "Y=" + y);

DeviceScript-kääntäjä lisää automaattisesti välilyöntejä, mikä johtaa luettavampaan tulosteeseen. Esimerkiksi toinen ja kolmas esimerkki tuottavat X: n arvo on 7, kun taas Y on 12 ja X = 7 Y = 12, vastaavasti.

Rekistereihin kirjoitettaessa voit käyttää myös ketjutus- ja malliliteraaaleja. Harkitse seuraavaa koodinpätkää:

konst näyttö = Uusi ds. CharacterScreen();
antaa x = 7;
screen.message.write("X: n arvo on" + x);
screen.message.write(`X on yhtä suuri kuin ${x}`);

Yhdistelmä- tai malliliteraaaleja käyttämällä voit rakentaa vaivattomasti dynaamisia merkkijonoja, jotka vastaavat monenlaisia ​​vaatimuksia.

Lisäksi DeviceScript tarjoaa ds.format() toiminto edistyneelle merkkijonomuotoilulle. Voit käyttää tätä toimintoa yhdessä console.log() tai kun määrität merkkijonorekistereitä.

Määritä argumenttien paikkamerkit muotoa käyttämällä {0}, {1}, {2}, ja niin edelleen. Voit myös määrittää tarkkuuden lisäämällä toisen numeron.

Huomioi seuraava esimerkki:

konst näyttö = Uusi ds. CharacterScreen();
antaa x = 7;
antaa y = 12;
konsoli.log (ds.format("X on {0} ja Y on {1}", x, y));
konsoli.log (ds.format("X = {04}", x));
screen.message.write (ds.format("X on noin {0}", x));

Muista, että tarkkuuden määrittäminen toisella numerolla ei välttämättä anna virheetöntä tulosta kaikissa skenaarioissa.

Asiakkaat: vuorovaikutuksen mahdollistaminen antureiden ja toimilaitteiden kanssa

DeviceScript-ekosysteemi abstrakti vuorovaikutuksen antureiden, toimilaitteiden ja muiden laitteistokomponenttien kanssa Jacdac-palvelujen kautta.

Tämä kehys käsittelee antureita palvelimina, kun taas komentosarjasi yhdistävät asiakkaat näihin palvelimiin vuorovaikutuksen helpottamiseksi. Tämän käsitteen havainnollistamiseksi harkitse kodin lämmitysjärjestelmän säätimen skenaariota.

Lämmitysjärjestelmä käsittää uunin toimintaa säätelevän releen, lämpötila-anturin ja pyörivän anturin halutun lämpötilan säätämiseksi. DeviceScriptissä määrität kullekin tarvittavalle palvelulle asiakkaat, joita kutsutaan myös rooleiksi.

Katso seuraava koodinpätkä:

tuonti { Lämpötila, rele } alkaen"@devicescript/core";
konst lämpömittari = Uusi Lämpötila();
konst lämpömittari 2 = Uusi Lämpötila();
konst rele = Uusi Rele();

Välittämällä tarvittavat palveluasiakkaat, kuten lämpömittari, lämpömittari 2, ja rele, muodostat saumattoman yhteyden vastaavien palvelimien kanssa.

DeviceScript-laitteistopalvelimet

Käytät palveluasiakkaita voidaksesi olla vuorovaikutuksessa minkä tahansa DeviceScriptin laitteistokomponentin kanssa. Näiden laitteistokomponenttien tehokkaan ohjelmoinnin varmistamiseksi on kuitenkin välttämätöntä alustaa palvelupalvelimet taustalla olevassa laitteistossa.

DeviceScript tarjoaa laajan valikoiman palvelimia @devicescript/servers moduuli, mikä virtaviivaistaa tätä prosessia.

Esimerkiksi, aloitusnäppäin -toiminnon avulla voit ottaa käyttöön painikepalvelimen tietylle nastalle ja hankkia vastaavan asiakkaan. Huomioi seuraava esimerkki:

tuonti { gpio } alkaen"@devicescript/core";
tuonti { aloitusnäppäin } alkaen"@devicescript/servers";
konst buttonA = startButton({ pin: gpio(2),});

Kun sisällytät tämän koodinpätkän skriptiisi, saat mahdollisuuden olla vuorovaikutuksessa pin 2:n (laitteistokohtainen tunniste) kanssa painikeA asiakas. Tämän jälkeen voit tilata tapahtumia, kuten painikkeiden painalluksia, ja suorittaa tiettyjä toimintoja IoT-sovelluksessasi.

IoT-kehityksen tehostaminen DeviceScriptin avulla

DeviceScriptin avulla voit hyödyntää TypeScriptiä pienille IoT-laitteille ja optimoida koodia rajoitettuihin ympäristöihin. Sen konsolilähtö yksinkertaistaa kirjaamista ja tietojen visualisointia. Abstrahoimalla laitteistovuorovaikutusta Jacdec-palvelujen kautta se virtaviivaistaa kommunikaatiota antureiden ja toimilaitteiden kanssa.

Visual Studio Coden kanssa integroitu DeviceScript tarjoaa kattavan kehitysympäristön, mikä tekee siitä arvokkaan työkalun tehokkaille ja turvallisille IoT-ratkaisuille. DeviceScriptin ja Visual Studio Coden avulla voit luottavaisesti rakentaa IoT-ratkaisuja, jotka eivät ole vain tehokkaita, vaan myös ylläpitävät korkeaa turvallisuustasoa koko kehitysprosessin ajan.