Ændringer i JavaScript-koden i RoomOS-makroer
Vi har opdateret maskineriet, der kører makroerne på RoomOS, og som et resultat af disse opdateringer vil nogle JavaScript-konventioner og funktioner ikke længere være tilgængelige for makroerne. Især er CommonJS- relaterede funktioner ikke længere tilgængelige. Nogle almindelige eksempler på kode, der har brug for omskrivning, er:
require(), herunder:require('xapi')- skal omskrives til standard ECimportMAScript. F.eks.,const xapi = require('xapi')ændret tilimport xapi from 'xapi'require.main
module, herunder:module.exports- skal omskrives til standard ECMAScriptexportmodule.name- skal udskiftes med_main_module_name()
Hvordan tændes og slukkes dette?
Disse ændringer træder i kraft, når xConfiguration Macros EvaluateTranspiledde skiftes fra Truetil False. Denne indstilling har været til stede i lang tid, og ændringen rulles ud ved at ændre standardværdien i nye udgivelser fra Truetil False.
Hvis makroer går i stykker ved denne ændring, er det en kortvarig rettelse at angive skift tilbage (xConfiguration Macros EvaluateTranspiled: True) eksplicit for at få dem til at fungere som før. Bemærk, imidlertid, at dette kun er en midlertidig løsning: Denne skift forsvinder efter en overgangsperiode.
Tilsvarende, på ældre RoomOS-versioner kan denne ændring testes uden opgradering ved at indstille skifteren til False.
Bemærk!: Hvis der gemmes en makro på enheden, mens knappen er aktiver et, Falseog du senere beslutter at vende knappen tilbage til True, kan det være nødvendigt at gemme disse makroer igen i makroeditoren.
Hvornår træder disse ændringer i kraft?
Standardværdien for skifteren blev ændret til Falsestartende med RoomOS maj 2025 (11.28), hvilket betyder, at enheder skifter som standard, når de opgraderes. EvaluateTranspiled I samme version er transpilationstrinnet, når du gemmer makroer via XAPI som standard, slået fra. Hvis transpilation er påkrævet via XAPI, skal transpilkommandoindstillingen udtrykkeligt indstilles til true.
Fra og med RoomOS juli 2025 (11.30) vises en diagnose, når knappen er indstillet til. True Det vil stadig fungere som før.
Fremadrettet fjernes skifteren helt, og enheden opfører sig som om den var indstillet til False. Vi sigter mod at udrulle denne ændring i RoomOS november 2026 (27. 0).
Alle kunder, der på trods af vores bedste bestræbelser på at forsøge at underrette og informere om ændringerne, ser deres makroer mislykkes, når ændringerne er permanent på plads i RoomOS, kan stadig bruge den (op til) 6 måneders forsinkede softwareopdatering, der leveres via Control Hub til cloud-registrerede enheder til at forsinke ændringen.
Hvorfor er dette nødvendigt? Tekniske detaljer
Hoveddriveren til denne ændring er, at vi har opdateret vores JavaScript-motor til at bruge QuickJS, som fungerer som en moderne, opdateret JavaScript-runtime til indlejrede systemer. Efter det, da det ikke længere er nødvendigt med en moderne JavaScript-motor, fjerner vi nu understøttelsen af transpilation af JavaScript. Fjernelse af det ekstra trin med at transpile al kode reducerer indlæsningstiden ved implementering og udførelse af kode samt reducerer kompleksiteten i platformen.
JavaScript-motorkontakten styres af xConfiguration Macros QuickJSEngine: Offændret til On. Denne ændring blev rullet ud i RoomOS december 2023 (11.11), og vi planlægger at fjerne denne konfigurationsomskifter på samme tidslinje som. EvaluateTranspiled
Vi foretager disse ændringer for at sikre, at RoomOS yder maksimalt, og at vi kan hjælpe dig med at skalere implementeringen af JavaScript-udvidelser på en effektiv og sikker måde.
Læs mere om makroer på room os.cisco.com.