RoomOS'ta dönüştürme
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:
require()
, aşağıdakileri de içeren:require('xapi')
- standart ECMAScriptalma işleminin yeniden yazılması gerekir
. Örneğin,const xapi = require('xapi')
, 'xapi'den xapi almak üzeredeğiştirilmiştir
require.main
modül
, şunları da kapsayan:module.exports
- standart ECMAScriptdış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 ile
aynı 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.