Microsoft'un TypeScript geliştirmesi, Nesnelerin İnterneti tarafından desteklenen karmaşık sistemler geliştirmenize yardımcı olabilir.

DeviceScript, Microsoft Research'ün son teknoloji ürünü bir yeniliğidir. Sınırlı kaynaklara sahip küçük ölçekli Nesnelerin İnterneti (IoT) cihazlarını barındırmak için TypeScript'in yeteneklerini genişletir.

Başlıca amacı, TypeScript'te kod yazmanıza ve bunu, kısıtlı kaynaklara sahip ortamlarda dağıtım için optimize edilmiş özel bayt kodunda derlemenize olanak tanımaktır.

DeviceScript'te Konsol Çıktısı

Microsoft DeviceScript kullanıcı dostu bir konsol sunar. Mesaj çıktısını ve sensör verilerinin günlüğe kaydedilmesini destekler, ancak aynı zamanda hata kontrolü için değerli bir araç.

Farklı günlük düzeylerine sahip iletileri günlüğe kaydetmek için bir dizi işlev hizmetinizdedir:

konsol.debug("hata ayıklama")
konsol.kayıt("kayıt")
konsol.uyarmak("uyarmak")
konsol.hata("hata")

Konsol çıktısı, DeviceScript terminal penceresinde kolayca görülebilir. Kodunuzun çalıştırılmasına ilişkin değerli içgörüler sağlamaya ve hata ayıklama sürecine yardımcı olabilir.

instagram viewer

Ayrıca DeviceScript, aşağıdakileri sağlayarak sensör verilerinin günlüğe kaydedilmesini basitleştirir: konsol.data günlüğe kaydedilen verilere otomatik olarak bir zaman damgası ekleyen işlev.

Aşağıdaki örneği göz önünde bulundurun:

sabit sıcaklık = 20;
sabit nem = 60;
konsol.data({ sıcaklık, nem });

Günlüğe kaydedilen verilere erişmek için şuraya gidebilirsiniz: DeviceScript - Veri çıkışı Visual Studio Code bölmesinde veya görünüm menüsünden indirin.

Güçlü Dize Biçimlendirme

kullanırken konsol.log() DeviceScript'te işlev, sahip olduğunuz dizeleri biçimlendirmek için birçok seçenek gelişmiş çıktı için. Aşağıdaki açıklayıcı örnekleri göz önünde bulundurun:

izin vermek x = 0;
izin vermek y = 4;
konsol.kayıt("Selamlar dünya");
konsol.kayıt("X'in değeri", X, "Y iken", y);
konsol.kayıt("X=", X, "Y=", y);
konsol.kayıt(`X=${x} Y=${y}`);
konsol.kayıt("X=" + x + "Y=" +y);

DeviceScript derleyicisi otomatik olarak boşluklar ekleyerek çıktının daha okunaklı olmasını sağlar. Örneğin, ikinci ve üçüncü örnekler üretecek X'in değeri 7 iken Y 12'dir Ve X=7 Y=12, sırasıyla.

Kayıtlara yazarken, birleştirme ve şablon değişmezlerini de kullanabilirsiniz. Aşağıdaki kod parçacığını göz önünde bulundurun:

sabit ekran = yeni ds. Karakter Ekranı();
izin vermek x = 7;
ekran.mesaj.write("X'in değeri" + x);
ekran.mesaj.write(`X eşittir ${x}`);

Birleştirme veya şablon değişmezlerini kullanarak, çok çeşitli gereksinimleri karşılamak için zahmetsizce dinamik dizeler oluşturabilirsiniz.

Ayrıca, DeviceScript şunları sunar: ds.format() gelişmiş dize biçimlendirme işlevi. Bu işlevi aşağıdakilerle birlikte kullanabilirsiniz: konsol.log() veya dizi kayıtlarını yapılandırırken.

Biçimi kullanarak bağımsız değişkenler için yer tutucuları belirtin {0}, {1}, {2}vb. Ayrıca, ikinci bir rakam ekleyerek kesinliği belirtebilirsiniz.

Aşağıdaki örneği gözlemleyin:

sabit ekran = yeni ds. Karakter Ekranı();
izin vermek x = 7;
izin vermek y = 12;
konsol.log (ds.format("X, {0} ve Y, {1}'dir", x, y));
konsol.log (ds.format("X = {04}", X));
screen.message.write (ds.format("X, yaklaşık olarak {0}'dir", X));

Kesinliği ikinci bir rakamla belirtmenin tüm senaryolarda kusursuz sonuçlar vermeyebileceğini unutmayın.

İstemciler: Sensörler ve Aktüatörlerle Etkileşimi Etkinleştirme

DeviceScript ekosistemi, Jacdac hizmetleri aracılığıyla sensörler, aktüatörler ve diğer donanım bileşenleri ile etkileşimi soyutlar.

Bu çerçeve, sensörleri sunucular gibi ele alırken komut dosyalarınız etkileşimi kolaylaştırmak için istemcileri bu sunuculara bağlar. Bu konsepti göstermek için, bir ev ısıtma sistemi kontrolörü senaryosunu düşünün.

Isıtma sistemi, fırının çalışmasını düzenleyen bir röle, bir sıcaklık sensörü ve istenen sıcaklığı ayarlamak için bir döner kodlayıcı içerir. DeviceScript'te, gerekli her hizmet için roller olarak da anılan istemcileri tanımlarsınız.

Aşağıdaki kod parçasına bir göz atın:

içe aktarmak { Sıcaklık, Röle } itibaren"@devicescript/çekirdek";
sabit termometre = yeni Sıcaklık();
sabit termometre2 = yeni Sıcaklık();
sabit röle = yeni Röle();

Gibi gerekli hizmet istemcilerini başlatarak termometre, termometre2, Ve röle, ilgili sunucularla sorunsuz iletişim kurarsınız.

DeviceScript Donanım Sunucuları

DeviceScript'teki herhangi bir donanım bileşeniyle etkileşim kurmak için hizmet istemcileri kullanırsınız. Ancak, bu donanım bileşenlerinin etkin bir şekilde programlanması için, hizmet sunucularının temel donanım üzerinde başlatılması zorunludur.

DeviceScript, geniş bir sunucu yelpazesi sunar. @devicescript/sunucular modül, böylece bu süreci kolaylaştırır.

Örneğin, başlama butonu işlevi, bir düğme sunucusunu belirli bir pin üzerinde dağıtmanıza ve karşılık gelen istemciyi almanıza olanak tanır. Aşağıdaki örneği gözlemleyin:

içe aktarmak {gpio} itibaren"@devicescript/çekirdek";
içe aktarmak { başlama butonu } itibaren"@devicescript/sunucular";
sabit düğmeA = başlatDüğmesi({ toplu iğne: gpio(2),});

Bu kod parçacığını betiğinize dahil ederek, pin 2 (donanıma özgü tanımlayıcı) ile etkileşim kurma yeteneği kazanırsınız. düğmeA müşteri. Ardından, düğme basma gibi olaylara abone olabilir ve IoT uygulamanızda belirli eylemleri yürütebilirsiniz.

DeviceScript ile IoT Geliştirmeyi Güçlendirme

DeviceScript, kısıtlı ortamlar için kodu optimize ederek küçük IoT cihazları için TypeScript'ten yararlanmanıza olanak tanır. Konsol çıktısı, günlüğe kaydetmeyi ve veri görselleştirmeyi basitleştirir. Jacdec hizmetleri aracılığıyla donanım etkileşimini soyutlayarak, sensörler ve aktüatörlerle iletişimi kolaylaştırır.

Visual Studio Code ile entegre olan DeviceScript, geliştirme için kapsamlı bir ortam sunarak onu verimli ve güvenli IoT çözümleri için değerli bir araç haline getirir. DeviceScript ve Visual Studio Code ile yalnızca verimli olmakla kalmayıp aynı zamanda tüm geliştirme süreci boyunca yüksek düzeyde güvenlik sağlayan IoT çözümlerini güvenle oluşturabilirsiniz.