Trasmetta la deprecazione su RoomOS
list-menuFeedback?
Abbiamo aggiornato il nostro motore JavaScript per utilizzare QuickJS, che funge da runtime JavaScript moderno e aggiornato per sistemi integrati. Come parte di questa mossa, ora intendiamo rimuovere il supporto per la traduzione di JavaScript nella nostra piattaforma.

Modifiche al codice JavaScript nelle macro di RoomOS

Abbiamo aggiornato i macchinari che eseguono le macro su RoomOS e, a seguito di questi aggiornamenti, alcune convenzioni e funzioni JavaScript non saranno più disponibili per le macro. In particolare, le funzioni relative a CommonJS non sono più disponibili. Alcuni esempi comuni di codice da riscrivere sono:

  1. require(), tra cui:
    • require('xapi')- deve essere riscritto nello standard importECMAScript. Ad esempio, const xapi = require('xapi')cambiato in import xapi from 'xapi'
    • require.main
  2. module, tra cui:
    • module.exports- deve essere riscritto nello standard ECMAScript export
    • module.name- dovrebbe essere sostituito con _main_module_name()

Come si accende e si spegne?

Queste modifiche hanno effetto xConfiguration Macros EvaluateTranspileduna volta passato da Truea. False Questa impostazione è presente da molto tempo e la modifica viene implementata modificando il valore predefinito nelle nuove versioni da Truea False.

Se le macro si interrompono dopo questa modifica, l'impostazione esplicita dell'interruttore indietro (xConfiguration Macros EvaluateTranspiled: True) è una soluzione a breve termine per farle funzionare come prima. Nota, tuttavia, che questa è solo una soluzione temporanea: questo interruttore scomparirà dopo un periodo di transizione.

Allo stesso modo, nelle versioni precedenti di RoomOS questa modifica può essere testata senza effettuare l'aggiornamento impostando l'interruttore su. False

Nota: se una macro viene salvata sul dispositivo mentre è attivo l'interruttore Falsee in seguito decide di riattivare l'interruttore True, potrebbe essere necessario salvare nuovamente quelle macro nell'editor di macro.

Quando entreranno in vigore queste modifiche?

Il valore predefinito dell'EvaluateTranspiledinterruttore è stato modificato a Falsepartire da RoomOS maggio 2025 (11.28), il che significa che i dispositivi cambieranno per impostazione predefinita una volta aggiornati. Nella stessa versione, la fase di traspilazione quando si salvano le macro tramite XAPI è disattivata per impostazione predefinita. Se la traspilazione è richiesta tramite XAPI, l'opzione del comando transpile deve essere impostata esplicitamente su true.

A partire da RoomOS luglio 2025 (11.30) verrà visualizzata una diagnostica quando l'interruttore è impostato su. True Funzionerà ancora come prima.

In futuro, l'interruttore verrà rimosso del tutto e il dispositivo si comporterà come se fosse impostato su. False Il nostro obiettivo è implementare questa modifica in RoomOS novembre 2026 (27.0).

Qualsiasi cliente che, nonostante i nostri migliori sforzi per cercare di notificare e informare sulle modifiche, vede le proprie macro fallire quando le modifiche sono permanentemente in vigore in RoomOS può comunque utilizzare l'aggiornamento software ritardato (fino a) 6 mesi fornito tramite Control Hub per i dispositivi registrati nel cloud per ritardare la modifica.

Perché è necessario? Dettagli tecnici

Il fattore principale di questa modifica è che abbiamo aggiornato il nostro motore JavaScript per utilizzare QuickJS, che funge da runtime JavaScript moderno e aggiornato per sistemi integrati. Dopodiché, poiché non è più necessario con un motore JavaScript moderno, stiamo rimuovendo il supporto per la traspilazione di JavaScript. L'eliminazione del passaggio aggiuntivo di transpiling di tutto il codice riduce il tempo di caricamento durante la distribuzione e l'esecuzione del codice, oltre a ridurre la complessità della piattaforma.

L'interruttore del motore JavaScript è controllato da xConfiguration Macros QuickJSEngine: OffChanged to On. Questa modifica è stata implementata in RoomOS nel dicembre 2023 (11.11) e prevediamo di rimuovere questo interruttore di configurazione nella stessa tempistica di. EvaluateTranspiled

Stiamo apportando queste modifiche per garantire che RoomOS funzioni al massimo e che possiamo aiutarla a scalare l'implementazione delle estensioni JavaScript in modo efficiente e sicuro.

Leggi di più sulle macro su roomos.cisco.com.

Questo articolo è stato utile?
Questo articolo è stato utile?