إهمال التحويل على RoomOS
التغييرات التي تطرأ على التعليمات البرمجية لجافا سكريبت في وحدات ماكرو RoomOS
لقد قمنا بتحديث الجهاز الذي يقوم بتشغيل وحدات الماكرو على RoomOS ، ونتيجة لهذه التحديثات ، لن تكون بعض اصطلاحات ووظائف JavaScript متاحة لوحدات الماكرو. على وجه الخصوص ، لم تعد الوظائف المتعلقة ب CommonJS متاحة. بعض الأمثلة الشائعة للتعليمات البرمجية التي تحتاج إلى إعادة كتابة هي:
تتطلب ()
، بما في ذلك:يتطلب ('xapi')
- يحتاج إلى إعادة كتابة إلى استيراد ECMAScriptالقياسي
. على سبيل المثال ،تم تغيير const xapi = require('xapi')
لاستيرادxapi من 'xapi'
يتطلب.رئيسي
الوحدة النمطية
، بما في ذلك:module.exports
- يحتاج إلى إعادة كتابة إلى تصدير ECMAScriptالقياسي
module.name
- يجب استبداله ب_main_module_name ()
كيف يتم تشغيل هذا وإيقاف تشغيله؟
تسري هذه التغييرات بمجرد تبديل xConfiguration Macros EvaluateTranspiled
من صواب
إلى خطأ
. هذا الإعداد موجود منذ فترة طويلة ويتم طرح التغيير عن طريق تغيير القيمة الافتراضية في الإصدارات الجديدة من True
إلى False
.
إذا تعطلت وحدات الماكرو عند هذا التغيير ، فإن تعيين مفتاح التبديل بشكل صريح (xConfiguration Macros EvaluateTranspiled: True
) يعد إصلاحا قصير المدى لجعلها تعمل كما كانت من قبل. لاحظ ، مع ذلك ، أن هذا ليس سوى حل مؤقت: سيختفي هذا التبديل بعد فترة انتقالية.
وبالمثل ، في إصدارات RoomOS القديمة ، يمكن اختبار هذا التغيير دون ترقية عن طريق تعيين مفتاح التبديل على False
.
ملاحظة: إذا تم حفظ ماكرو على الجهاز بينما يكون مفتاح التبديل False
وقررت لاحقا TURN التبديل مرة أخرى إلى True
، فقد يكون من الضروري إعادة حفظ وحدات الماكرو هذه في محرر الماكرو.
متى ستدخل هذه التغييرات حيز التنفيذ؟
تم تغيير القيمة الافتراضية لمفتاح التبديل EvaluateTranspiled إلى False بدءا من RoomOS May 2025 (11.28)
، مما يعني أن الأجهزة ستبدل افتراضيا عند الترقية.
في نفس الإصدار ، يتم إيقاف تشغيل خطوة التحويل عند حفظ وحدات الماكرو من خلال XAPI افتراضيا. إذا كان التحويل مطلوبا من خلال XAPI ، فيجب تعيين خيار أمر التحويل بشكل صريح على صواب.
بدءا من RoomOS July 2025 (11.30) ، سيتم عرض تشخيص عند ضبط مفتاح التبديل على True
. سيظل يعمل كما كان من قبل.
من الآن فصاعدا ، ستتم إزالة مفتاح التبديل تماما وسيتصرف الجهاز كما لو تم ضبطه على False
. نهدف إلى طرح هذا التغيير في نوفمبر 2025. يمكن أن يتغير هذا التاريخ حيث نرى عدد عملائنا القادرين على تحديث وحدات الماكرو الخاصة بهم ، ولكن يتم قياس المخطط الزمني بالأشهر وليس بالسنوات. سيتم نشر التواريخ الدقيقة هنا وفي ملاحظات الإصدار الخاصة بإصدارات RoomOS ذات الصلة.
يجوز لأي عميل يرى أن وحدات الماكرو الخاصة بهم تفشل عندما تكون التغييرات سارية بشكل دائم في RoomOS ، على الرغم من بذل قصارى جهدنا في محاولة الإخطار والإبلاغ عن التغييرات ، قد يستمر في استخدام تحديث البرنامج المتأخر (حتى) لمدة 6 أشهر والذي يتم توفيره من خلال Control Hub للأجهزة المسجلة في السحابة لتأخير التغيير.
لماذا هذا ضروري؟ التفاصيل التقنية
المحرك الرئيسي لهذا التغيير هو أننا قمنا بتحديث محرك JavaScript الخاص بنا لاستخدام QuickJS ، والذي يعمل كوقت تشغيل جافا سكريبت حديث ومحدث للأنظمة المضمنة. بعد ذلك ، نظرا لأنه لم يعد مطلوبا مع محرك JavaScript حديث ، فإننا الآن نزيل دعم نقل JavaScript. تؤدي إزالة الخطوة الإضافية المتمثلة في تحويل جميع التعليمات البرمجية إلى تقليل وقت التحميل عند نشر التعليمات البرمجية وتنفيذها بالإضافة إلى تقليل التعقيد في النظام الأساسي.
يتم التحكم في مفتاح محرك JavaScript بواسطة وحدات ماكرو xConfiguration QuickJSEngine: تم تغيير إيقاف
التشغيل إلى تشغيل
. تم طرح هذا التغيير في RoomOS December 2023 (11.11)، ونخطط لإزالة تبديل التكوين هذا على نفس الجدول الزمني مثل EvaluateTranspiled
.
نحن نجري هذه التغييرات لضمان أداء RoomOS إلى أقصى حد ، وأنه يمكننا مساعدتك في توسيع نطاق نشر ملحقات JavaScript بطريقة فعالة وآمنة.
اقرأ المزيد حول وحدات الماكرو على roomos.cisco.com.