RoomOS makrolarında JavaScript kodunda yapılan değişiklikler

RoomOS üzerindeki makroları çalıştıran makineleri güncelledik ve bunun sonucunda bazı JavaScript kuralları ve işlevleri artık makrolar için mevcut olmayacaktır. Özellikle, CommonJS ile ilgili işlevler artık kullanılamaz. Yeniden yazma gereksinimi olan kodun bazı yaygın örnekleri şunlardır:

  1. require(), aşağıdakileri de içeren:
    • require('xapi') - standart ECMAScript alma işleminin yeniden yazılması gerekir. Örneğin, const xapi = require('xapi') , 'xapi'den xapi almak üzere değiştirilmiştir
    • require.main
  2. modül, şunları da kapsayan:
    • module.exports - standart ECMAScript dışa aktarmasına yeniden yazma ihtiyacı
    • module.name - ile değiştirilmelidir _main_module_name()

Bu nasıl açılır ve kapatılır?

Bu değişiklikler xConfiguration Macros EvaluateTranspiled Değeri Doğru'dan Yanlış'a değiştirildiğinde etkinleşir. Bu ayar uzun zamandır mevcut ve yeni sürümlerdeki varsayılan değer True'dan False'a değiştirilerek değişiklik uygulanır.

Bu değişiklikte makrolar bozulursa, açık bir şekilde geri geçiş yap (xConfiguration Macros EvaluateTranspiled: True) ayarı, daha önceki gibi çalışmasını sağlamak için kısa süreli bir düzeltmedir. Ancak bunun yalnızca geçici bir çözüm olduğuna dikkat edin: Bu geçiş döneminin ardından geçiş yapılır .

Benzer şekilde, eski RoomOS sürümlerinde bu değişiklik, geçiş yanlış olarak değiştirilerek yükseltme yapılmadan test edilebilir.

Not: Geçiş yanlış iken bir makro aygıta kaydedilirse ve daha sonra geçiş TURN tekrar True'ya TURN karar verirseniz, makro düzenleyicisine o makroları yeniden kaydetmeniz gerekebilir.

Bu değişiklikler ne zaman etkin olacak?

EvaluateTranspiled geçiş anahtarının varsayılan değeri, RoomOS Mayıs 2025 (11.28) ile başlayarak Yanlış olarak değiştirilmiştir ; yani, cihazlar yükseltildiğinde varsayılan olarak geçiş yapar. Aynı sürümde XAPI üzerinden makro kaydederken dönüştürme adımı varsayılan olarak kapatılır. XAPI üzerinden transpilasyon gerekiyorsa, kod aktar komutu seçeneğinin açıkça true olarak ayarlanması gerekir.

RoomOS Temmuz 2025 (11.30) ile başlayarak, geçiş true olarak ayarlandığında tanı gösterilir. Yine eskisi gibi çalışacak.

Geçiş ilerlerken düğme tamamen kaldırılır ve aygıt Yanlış'a ayarlanmış gibi davranır. Bu değişikliği 2025 Kasım ayındagerçekleştirmeyi amaçlıyoruz. Müşterilerimizin kaçının makrolarını güncelleyebildiğini gördüğümüz için bu tarih değişebilir, ancak zaman çizelgesi yıllarla değil, aylarla ölçülür. Tam tarihler burada ve ilgili RoomOS sürümlerinin sürüm notlarında yayınlanacak.

Değişiklikleri bildirmek ve bilgilendirmek için tüm çabalarımıza rağmen, RoomOS'ta değişiklikler kalıcı olarak gerçekleştiğinde makrolarının başarısız olduğunu gören müşteriler, buluta kayıtlı cihazlar için Control Hub aracılığıyla sağlanan (en fazla) 6 aylık gecikmeli yazılım güncellemesini değişikliği geciktirmek için kullanabilir.

Bu neden gerekli? Teknik ayrıntılar

Bu değişikliğin ana sürücüsü, katıştırılmış sistemler için modern ve güncellenmiş bir JavaScript çalışma zamanı görevi gören QuickJS'yi kullanmak için JavaScript motormuzu güncellememizdir. Bundan sonra, modern bir JavaScript motoru ile artık gerekmediğinden, JavaScript'in transpilasyonu desteğini kaldırıyoruz. Tüm kodu aktarmanın ek adımının kaldırılması, kodu dağıtırken ve yürütürken yük süresini azaltır ve ayrıca platformdaki karmaşıklığı azaltır.

JavaScript motor anahtarı xConfiguration Macros QuickJSEngine: Off olarak açık olarak kontrol edilir. Bu değişiklik RoomOS Aralık 2023 (11.11) içinde kullanıma hazırlandı ve EvaluateTranspiled ileaynı zaman çizelgesinde bu yapılandırma geçişini kaldırmayı planlıyoruz.

Bu değişiklikleri, RoomOS'un maksimum performansta olmasını sağlamak ve JavaScript uzantılarının verimli ve güvenli bir şekilde dağıtılmasını ölçeklendirmenize yardımcı olmak için yapıyoruz.

Makrolar hakkında daha fazla bilgi için roomos.cisco.com.