إيقاف الترجمة على RoomOS
list-menuهل لديك ملاحظات؟
لقد قمنا بتحديث محرك JavaScript الخاص بنا لاستخدام QuickJS، والذي يعمل بمثابة وقت تشغيل JavaScript حديث ومحدث للأنظمة المضمنة. كجزء من هذه الخطوة، نخطط الآن لإزالة دعم ترجمة JavaScript في منصتنا.

التغييرات في شفرة جافا سكريبت في وحدات ماكرو RoomOS

لقد قمنا بتحديث الآلية التي تقوم بتشغيل وحدات الماكرو على RoomOS، ونتيجة لهذه التحديثات، لن تكون بعض اصطلاحات ووظائف JavaScript متاحة لوحدات الماكرو. على وجه الخصوص، لم تعد الوظائف ذات الصلة بـ CommonJS متوفرة. بعض الأمثلة الشائعة على التعليمات البرمجية التي تحتاج إلى إعادة كتابة هي:

  1. require()، بما في ذلك:
    • require('xapi')- يحتاج إلى إعادة الكتابة إلى ECMAScript importالقياسي. على سبيل المثال، const xapi = require('xapi')تم تغييره إلى import xapi from 'xapi'
    • require.main
  2. module، بما في ذلك:
    • module.exports- يحتاج إلى إعادة الكتابة إلى ECMAScript القياسي export
    • module.name- يجب استبداله بـ _main_module_name()

كيف يتم تشغيل هذا وإيقاف تشغيله؟

تسري هذه التغييرات بمجرد التبديل xConfiguration Macros EvaluateTranspiledمن Trueإلى False. هذا الإعداد موجود منذ فترة طويلة ويتم طرح التغيير عن طريق تغيير القيمة الافتراضية في الإصدارات الجديدة من Trueإلى False.

في حالة تعطل وحدات الماكرو بسبب هذا التغيير، فإن تعيين toggle back (xConfiguration Macros EvaluateTranspiled: True) بشكل صريح يعد إصلاحًا قصير المدى لجعلها تعمل كما كانت من قبل. ومع ذلك، لاحظ أن هذا مجرد حل مؤقت: سيختفي مفتاح التبديل هذا بعد فترة انتقالية.

وبالمثل، في إصدارات RoomOS القديمة، يمكن اختبار هذا التغيير دون الترقية عن طريق ضبط التبديل إلى False.

ملاحظة: إذا تم حفظ ماكرو على الجهاز أثناء التبديل Falseوقررت لاحقًا إعادة التبديل إليه True، فقد يكون من الضروري إعادة حفظ وحدات الماكرو هذه في محرر الماكرو.

متى ستدخل هذه التغييرات حيز التنفيذ؟

تم تغيير القيمة الافتراضية EvaluateTranspiledللتبديل إلى Falseالبدء بـ RoomOS May 2025 (11.28)، مما يعني أن الأجهزة ستتحول افتراضيًا عند الترقية. في نفس الإصدار، يتم إيقاف خطوة الترجمة عند حفظ وحدات الماكرو من خلال XAPI افتراضيًا. إذا كانت الترجمة مطلوبة من خلال XAPI، فيجب تعيين خيار أمر transpile بشكل صريح إلى true.

بدءًا من RoomOS في يوليو 2025 (11.30)، سيتم عرض التشخيص عند ضبط مفتاح التبديل على. True ستظل تعمل كما كانت من قبل.

من الآن فصاعدًا، ستتم إزالة مفتاح التبديل تمامًا وسيتصرف الجهاز كما لو كان مضبوطًا عليه False. نهدف إلى طرح هذا التغيير في RoomOS في نوفمبر 2026 (27.0).

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

لماذا هذا ضروري؟ التفاصيل الفنية

الدافع الرئيسي لهذا التغيير هو أننا قمنا بتحديث محرك JavaScript الخاص بنا لاستخدام QuickJS، والذي يعمل بمثابة وقت تشغيل JavaScript حديث ومحدث للأنظمة المضمنة. بعد ذلك، نظرًا لأنه لم تعد هناك حاجة إليه مع محرك JavaScript الحديث، فإننا الآن نزيل دعم ترجمة JavaScript. تؤدي إزالة الخطوة الإضافية المتمثلة في نقل جميع التعليمات البرمجية إلى تقليل وقت التحميل عند نشر التعليمات البرمجية وتنفيذها بالإضافة إلى تقليل التعقيد في النظام الأساسي.

يتم التحكم في مفتاح محرك JavaScript عن طريق xConfiguration Macros QuickJSEngine: Offالتغيير إلى On. تم طرح هذا التغيير في RoomOS في ديسمبر 2023 (11.11)، ونخطط لإزالة مفتاح التكوين هذا على نفس المخطط الزمني مثل. EvaluateTranspiled

نحن نقوم بهذه التغييرات لضمان أداء RoomOS إلى أقصى حد، وأنه يمكننا مساعدتك في توسيع نطاق نشر إضافات JavaScript بطريقة فعالة وآمنة.

اقرأ المزيد حول وحدات الماكرو على roomos.cisco.com.

هل كان هذا المقال مفيدًا؟
هل كان هذا المقال مفيدًا؟