يمكن أن يساعدك تحسين TypeScript من Microsoft على تطوير أنظمة معقدة مدعومة بإنترنت الأشياء.

DeviceScript هو ابتكار متطور من Microsoft Research. إنه يوسع إمكانيات TypeScript لاستيعاب أجهزة إنترنت الأشياء (IoT) صغيرة الحجم ذات الموارد المحدودة.

هدفه الرئيسي هو تمكينك من كتابة التعليمات البرمجية في TypeScript وتجميعها في رمز بايت مخصص ، محسّن للنشر في البيئات ذات الموارد المحدودة.

إخراج وحدة التحكم في DeviceScript

مايكروسوفت DeviceScript يقدم وحدة تحكم سهلة الاستخدام. وهو يدعم إخراج الرسالة وتسجيل بيانات المستشعر ولكنه يعمل أيضًا كملف أداة قيمة لفحص الأخطاء.

هناك مجموعة من الوظائف تحت تصرفك لتسجيل الرسائل بمستويات سجل مختلفة:

وحدة التحكم.debug ("تصحيح")
وحدة التحكم.سجل("سجل")
وحدة التحكم.warn ("تحذير")
وحدة التحكم.خطأ("خطأ")

يكون خرج وحدة التحكم مرئيًا بسهولة داخل نافذة DeviceScript الطرفية. يمكن أن يساعد في توفير رؤى قيمة حول تشغيل التعليمات البرمجية الخاصة بك والمساعدة في عملية تصحيح الأخطاء.

علاوة على ذلك ، يبسط DeviceScript تسجيل بيانات المستشعر من خلال توفير ملف وحدة التحكم وظيفة ، والتي تضيف طابعًا زمنيًا تلقائيًا إلى البيانات المسجلة.

instagram viewer

ضع في اعتبارك المثال التالي:

مقدار ثابت درجة الحرارة = 20;
مقدار ثابت الرطوبة = 60;
وحدة التحكم. البيانات ({درجة الحرارة ، الرطوبة}) ؛

للوصول إلى البيانات المسجلة ، يمكنك الانتقال إلى ملف DeviceScript - إخراج البيانات جزء في Visual Studio Code أو تنزيله من قائمة العرض.

تنسيق سلسلة قوي

عند استخدام ملف console.log () تعمل في DeviceScript ، لديك العديد من الخيارات لتنسيق السلاسل لتحسين الإخراج. خذ بعين الاعتبار الأمثلة التوضيحية التالية:

يترك س = 0;
يترك ص = 4;
وحدة التحكم.سجل("تحياتي العالم");
وحدة التحكم.سجل("قيمة X هي"، س ، "بينما Y هي"، ذ) ؛
وحدة التحكم.سجل("X ="، س ، "ص ="، ذ) ؛
وحدة التحكم.سجل(X ={x} دولار ص =$ {y}`);
وحدة التحكم.سجل("X =" + س + "ص =" + ذ) ؛

يقوم برنامج التحويل البرمجي DeviceScript تلقائيًا بإدراج المسافات ، مما ينتج عنه إخراج أكثر وضوحًا. على سبيل المثال ، سينتج المثالان الثاني والثالث قيمة X هي 7 بينما Y تساوي 12 و س = 7 ص = 12، على التوالى.

عند الكتابة إلى السجلات ، يمكنك أيضًا استخدام السلسلة الحرفية والقالب. ضع في اعتبارك مقتطف الشفرة التالي:

مقدار ثابت الشاشة = جديد س. CharacterScreen () ،
يترك س = 7;
screen.message.write ("قيمة X هي" + خ) ؛
screen.message.write ("X يساوي {x} دولار`);

باستخدام التسلسل أو القيم الحرفية للقالب ، يمكنك بسهولة إنشاء سلاسل ديناميكية لتلبية مجموعة متنوعة من المتطلبات.

علاوة على ذلك ، يقدم DeviceScript ds.format () وظيفة لتنسيق السلسلة المتقدم. يمكنك استخدام هذه الوظيفة مع ملفات console.log () أو عند تكوين سجلات السلسلة.

حدد العناصر النائبة للوسائط باستخدام التنسيق {0}, {1}, {2}، وهكذا دواليك. يمكنك أيضًا تحديد الدقة بإلحاق رقم ثانٍ.

لاحظ المثال التالي:

مقدار ثابت الشاشة = جديد س. CharacterScreen () ،
يترك س = 7;
يترك ص = 12;
وحدة التحكم.log (ds.format ("X هي {0} و Y هي {1}"، س ، ص)) ؛
وحدة التحكم.log (ds.format ("X = {04}"، خ)) ؛
screen.message.write (ds.format ("X تقارب {0}"، خ)) ؛

ضع في اعتبارك أن تحديد الدقة برقم ثاني قد لا يؤدي إلى نتائج خالية من العيوب في جميع السيناريوهات.

العملاء: تمكين التفاعل مع أجهزة الاستشعار والمحركات

يعمل نظام DeviceScript البيئي على تجريد التفاعل مع أجهزة الاستشعار والمحركات ومكونات الأجهزة الأخرى من خلال خدمات Jacdac.

يتعامل هذا الإطار مع المستشعرات كخوادم ، بينما تقوم البرامج النصية الخاصة بك بتوصيل العملاء بهذه الخوادم لتسهيل التفاعل. لتوضيح هذا المفهوم ، ضع في اعتبارك سيناريو جهاز التحكم في نظام التدفئة المنزلية.

يشتمل نظام التسخين على مرحل ينظم عمل الفرن ، ومستشعر درجة الحرارة ، وجهاز تشفير دوار لضبط درجة الحرارة المطلوبة. في DeviceScript ، تقوم بتعريف العملاء ، ويشار إليهم أيضًا بالأدوار ، لكل خدمة مطلوبة.

ألق نظرة على مقتطف الشفرة التالي:

يستورد {درجة الحرارة ، التتابع} من"@ devicescript / core";
مقدار ثابت ميزان حرارة = جديد درجة حرارة()؛
مقدار ثابت ترمومتر 2 = جديد درجة حرارة()؛
مقدار ثابت تتابع = جديد تناوب()؛

من خلال إنشاء مثيل لعملاء الخدمة الضروريين ، مثل ميزان الحرارة, ميزان الحرارة 2، و تناوب، يمكنك إنشاء اتصال سلس مع الخوادم المقابلة.

خوادم أجهزة DeviceScript

للتفاعل مع أي مكون من مكونات الجهاز في DeviceScript ، فإنك تستخدم عملاء الخدمة. ومع ذلك ، من أجل البرمجة الفعالة لمكونات الأجهزة هذه ، من الضروري تهيئة خوادم الخدمة على الأجهزة الأساسية.

تقدم DeviceScript مجموعة واسعة من الخوادم داخل نطاق @ الأجهزة / الخوادم وحدة ، وبالتالي تبسيط هذه العملية.

على سبيل المثال ، ملف startButton تمكنك الوظيفة من نشر خادم زر على دبوس محدد والحصول على العميل المقابل. لاحظ المثال التالي:

يستورد {gpio} من"@ devicescript / core";
يستورد {startButton} من"@ devicescript / الخوادم";
مقدار ثابت buttonA = startButton ({ دبوس: gpio (2),});

من خلال دمج مقتطف الشفرة هذا في البرنامج النصي الخاص بك ، يمكنك الحصول على القدرة على التفاعل مع الدبوس 2 (المعرف الخاص بالأجهزة) من خلال زر عميل. يمكنك بعد ذلك الاشتراك في أحداث مثل الضغط على الأزرار وتنفيذ إجراءات محددة داخل تطبيق إنترنت الأشياء الخاص بك.

تمكين تطوير إنترنت الأشياء باستخدام DeviceScript

يمكّنك DeviceScript من الاستفادة من TypeScript لأجهزة إنترنت الأشياء الصغيرة ، وتحسين التعليمات البرمجية للبيئات المقيدة. يعمل إخراج وحدة التحكم على تبسيط التسجيل وتصور البيانات. من خلال تجريد تفاعل الأجهزة من خلال خدمات Jacdec ، فإنه يبسط الاتصال مع أجهزة الاستشعار والمشغلات.

مدمجًا مع Visual Studio Code ، يوفر DeviceScript بيئة شاملة للتطوير ، مما يجعله أداة قيمة لحلول إنترنت الأشياء الفعالة والآمنة. باستخدام DeviceScript و Visual Studio Code ، يمكنك بثقة إنشاء حلول إنترنت الأشياء ليست فعالة فحسب ، بل تحافظ أيضًا على مستوى عالٍ من الأمان خلال عملية التطوير بأكملها.