Ana içeriğe geç

İstemci betiği API'si

İstemci betikleri JavaScript'tir; tüm kod async çalışır, bu yüzden await her yerde kullanılabilir. Editör bu adları yazarken tamamlar. Betiklerin ne zaman çalıştığı için bkz. Nesne ve sayfa olayları.

Tag — sinyaller​

ÇağrıDöndürürAnlamı
Tag("P101.Speed")Sinyal nesnesiKarşılaştırma ve aritmetikte değer gibi kullanın
.valueDeğerŞimdiki değer; ilk değer gelene kadar undefined
.qualitySayı0 iyi, 1 gateway haberleşme arızası, 2 cihaz haberleşme arızası, 3 sinyal arızası, 4 manuel
.stateMetinok, waiting, invalid, timeout ya da empty
.waitingAçık/kapalıDeğer henüz gelmedi
.unitMetinSinyalin birimi
.timestamp, .source_time, .device_time, .arrival_timeZamanDeğerin zamanları
.raw_valueDeğerÖlçeklemeden önceki değer
await Tag("x").read(timeoutMs?)DeğerGüncel bir değeri bekler; sayfada olmayan bir sinyal için kullanın
await Tag("x").write(v), await Tag.write("x", v)—Komut gönderir (bkz. Yazma)
await Tag.writeMany({ "a": 1, "b": true })—Aynı anda birkaç komut

setTag(yol, değer) ve getTag(yol) yazma ve okumanın kısa biçimleridir.

Yazma​

İstemci betiğinden yazma, girişli kullanıcının olağan bir komutudur: sunucu yetkiyi, sorumluluk alanını, sınırları, kilitleri ve haberleşmeyi denetler ve komut kaydına yazar.

  • Reddedilen, zaman aşımına uğrayan ya da geri okunmayan yazma hata fırlatır; await Tag(...).write(...)'i try / catch içine alın.
  • Olay betiğinden saha cihazına yazma operatörden onay ister; kritik komut, ekrandaki gibi gerekçe ve ikinci kullanıcı ister; sonuç ve kopan bağlantı ekranda ileti olarak görünür. Sayfa betiği (tetikleyici) pencere açmadan ve bu iletiler olmadan yazar, orada kritik komut reddedilir.
  • Hiçbir şey sıraya alınmaz: bağlantı yoksa yazma hemen reddedilir.
  • Yalnız izleme için otomatik giriş yazamaz.

UI — ekran​

ÇağrıAnlamı
UI.toast(metin, tür?)Ekranın kenarında ileti; tür success, info, warning ya da error
await UI.confirm(metin)Evet / Hayır sorar; true ya da false döndürür
await UI.prompt(metin, { default })Bir metin ister; onu ya da null döndürür
UI.navigate(sayfaKimliği, params?)Başka bir sayfayı açar
UI.set(ad, özellik, değer), UI.get(ad, özellik)Bir nesnenin özelliğini adıyla değiştirir ya da okur, örneğin UI.set("Pump1", "fill", "@running")
UI.getColor(ad, varyant?)Bir proje renginin değeri

Bir popup nesnesinin olay betiğinde UI.set ve UI.get adı önce o popupın nesnelerinde, sonra sayfada arar. Bir giriş kutusunda UI.set(ad, "value", x) kutuyu bir kez doldurur: operatör üzerine yazabilir, sinyale bir şey yazılmaz ve kutu popupıyla kapanınca değer gider. Bkz. Popupta giriş kutuları.

Betiğin ayarladığı özellik sayfa terk edilene kadar kalır. Ham renkler yerine proje renk adlarını (@running) kullanın; katı renk adlandırması açıksa ham renkler uygulanmaz.

Alarm ve Log​

ÇağrıAnlamı
Alarm.info / warning / error / critical(metin)Ekranda bir ileti gösterir. Alarm oluşturmaz: bunun için alarm tanımı kullanın.
Log.debug / info / warn / error(metin), console.log / warn / errorTarayıcı konsoluna [Script] önekiyle yazar

User​

ÜyeAnlamı
User.id, User.nameGirişli kullanıcı (girişsiz anonymous)
User.role, User.roleIdsKullanıcının profilleri

Sunucu her komutun yetkisini denetler; bu yüzden bir betik, girişli kullanıcının gönderemeyeceği bir komutu gönderemez.

Maps​

Maps.setView(harita, enlem, boylam, yakınlık?), Maps.fitItems(harita, adlar?), Maps.follow(harita, öğe | null), Maps.gotoBookmark(harita, ad), Maps.getView(harita) ve Maps.reset(harita) bir harita nesnesini adıyla yönetir. Harita henüz çizilmediyse çağrı 10 saniyeye kadar bekler.

Driver — haberleşme kontrolü​

await Driver.start(anahtar), Driver.stop(anahtar) ve Driver.restart(anahtar) bir sürücüyü başlatır, durdurur ya da yeniden başlatır ve başarıda true döndürür. Operatör her zaman önce onaylar ve kullanıcının Communication control (Haberleşme kontrolü) yetkisi gerekir.

Diğer​

AdAnlamı
await wait(500), await wait("2 sec")Bekler; sayı milisaniyedir, metin 500ms, 2 sec, 1 min olabilir
globalsAçık sayfanın betikleri ve olay betiklerinin paylaştığı nesne; sayfa yeniden yüklenince kaybolur
modals.open(ad, { data, onConfirm, onCancel }), modals.close(ad?), modals.closeAll()Popup açar ve kapatır
page.name, page.widgets(), page.widget(ad)Açık sayfa ve nesneleri
mathJavaScript Math
import / exportKütüphane dosyaları arasında: adlı, varsayılan ve ad alanı içe aktarmaları

Standart JavaScript (JSON, Date, Map, Promise, setTimeout…) kullanılabilir. window, document, fetch, localStorage ve benzeri tarayıcı arayüzleri kullanılamaz.