A JavaScript-kód változásai a RoomOS-makrókban

Frissítettük a RoomOS rendszeren makrókat futtató gépeket, és a frissítések eredményeként egyes JavaScript konvenciók és funkciók már nem lesznek elérhetők a makrók számára. Különösen a CommonJS-hez kapcsolódó funkciók nem érhetők el többé. Néhány gyakori példa az újraírást igénylő kódokra:

  1. require(), beleértve:
    • require('xapi') - át kell írni a szabványos ECMAScript importálásra. Pl. const xapi = require('xapi') megváltozott, hogy importálja az xapi-t az 'xapi'-ból
    • require.main
  2. modul, beleértve:
    • module.exports - át kell írni a szabványos ECMAScript exportra
    • A module.name - helyére a következőt kell írni _main_module_name()

Hogyan lehet ezt be- és kikapcsolni?

Ezek a módosítások akkor lépnek életbe, ha az xConfiguration Macros EvaluateTranspiled értéke True értékről False ( Hamis ) értékrevált. Ez a beállítás már régóta jelen van, és a módosítás az új kiadások alapértelmezett értékének Igaz értékről Hamisra történő módosításával kerül bevezetésre.

Ha a makrók megszakítják ezt a módosítást, a visszakapcsolás explicit beállítása (xConfiguration Macros EvaluateTranspiled: True) rövid távú javítás, hogy ugyanúgy működjenek, mint korábban. Ne feledje azonban, hogy ez csak ideiglenes megoldás: Ez a kapcsoló egy átmeneti időszak után megszűnik .

Hasonlóképpen, a régebbi RoomOS verziókon ez a módosítás frissítés nélkül tesztelhető a kapcsoló Hamis értékreállításával.

Megjegyzés: Ha egy makrót úgy ment az eszközre , hogy a kapcsoló Hamis értékű, és később úgy dönt, hogy TURN visszaállítja a beállítást Igaz értékre, akkor szükség lehet a makrók újbóli mentésére a makrószerkesztőben.

Mikor lépnek életbe ezek a változások?

Az EvaluateTranspiled kapcsoló alapértelmezett értéke Hamisra változott a RoomOS May 2025 (11.28) verziótólkezdve, ami azt jelenti, hogy az eszközök alapértelmezés szerint átváltanak frissítéskor. Ugyanebben a verzióban a transzpilálási lépés a makrók XAPI-n keresztüli mentésekor alapértelmezés szerint ki van kapcsolva. Ha az XAPI-n keresztül transzpilálásra van szükség, a transpile parancs beállítását explicit módon true (igaz) értékre kell állítani.

A RoomOS July 2025 (11.30)-tól kezdve egy diagnosztika jelenik meg, ha a kapcsoló Igaz értékre van állítva. Továbbra is úgy fog működni, mint korábban.

A továbbiakban a kapcsoló teljesen eltávolításra kerül, és az eszköz úgy viselkedik, mintha hamis értékrelenne állítva. Célunk, hogy ezt a változást 2025 novemberében vezessük be. Ez a dátum változhat, ahogy látjuk, hogy hány ügyfelünk tudja frissíteni makróit, de az ütemtervet hónapokban, nem években mérjük. A pontos dátumokat itt és a vonatkozó RoomOS kiadások kiadási megjegyzéseiben tesszük közzé.

Azok az ügyfelek, akik a változásokról való értesítésre és tájékoztatásra tett minden erőfeszítésünk ellenére azt látják, hogy makróik sikertelenek, amikor a módosítások véglegesen érvényben vannak a RoomOS rendszerben, továbbra is használhatják a Control Hubon keresztül a felhőben regisztrált eszközökhöz biztosított (legfeljebb 6) hónapos késleltetett szoftverfrissítést a változás késleltetéséhez.

Miért van erre szükség? Műszaki adatok

A változás fő mozgatórugója, hogy frissítettük JavaScript-motorunkat a QuickJS használatára, amely modern, frissített JavaScript-futtatókörnyezetként szolgál a beágyazott rendszerekhez. Ezt követően, mivel már nincs rá szükség egy modern JavaScript-motorral, most megszüntetjük a JavaScript transzpilálásának támogatását. Az összes kód átfordításának további lépésének eltávolítása csökkenti a betöltési időt a kód üzembe helyezésekor és végrehajtásakor, valamint csökkenti a platform összetettségét.

A JavaScript motor kapcsolóját az xConfiguration makrók vezérlik QuickJSEngine: A Ki beállítás Be értékreváltozott. Ez a módosítás a RoomOS December 2023 (11.11) verzióban lett bevezetve, és azt tervezzük, hogy eltávolítjuk ezt a konfigurációs kapcsolót ugyanazon az idővonalon, mint az EvaluateTranspiled.

Ezeket a változtatásokat azért hajtjuk végre, hogy biztosítsuk a RoomOS maximális teljesítményét, és hogy segíthessünk a JavaScript-bővítmények telepítésének hatékony és biztonságos méretezésében.

További információ a makrókról: roomos.cisco.com.