İçeriğe geç

Client UI API

Client UI API, Inscada.* üzerinde yalnızca tarayıcıda anlamlı olan metodları toplar: popup diyaloglar, değer giriş kontrolleri, animasyon / sayfa navigasyonu, SVG zoom, ses. Bu metodların server-side ins.* üzerinde karşılığı yoktur.

Bir değişken için numerik klavye popup’ı açar; kullanıcı değeri girip onayladığında setVariableValue otomatik çağrılır.

Inscada.numpad({
variableName: "SetpointTemperature" // zorunlu
// projectName: "otherProject" // opsiyonel — mevcut projeye göre varsayılır
});

Numpad’e benzer, ancak slider arayüzüyle değişken değeri girer. Değişken min/max değerleri slider sınırları olarak kullanılır.

Inscada.sliderPad({
variableName: "MotorSpeed_RPM"
});

Bir değişkene metin girişi için text input popup’ı açar.

Inscada.setStringValue({
variableName: "OperatorNote"
});

Değişkene bağlı olmayan, callback’li generic numpad. Kullanıcıdan sayı alıp istediğin fonksiyona iletir.

Inscada.customNumpad({
header: "Limit değeri",
initialValue: 100,
hasNegative: false,
hasDecimal: true,
minValue: 0,
maxValue: 500,
isInteger: false,
sizeScale: 1.2,
onScriptFunc: (xval, extraObj) => {
console.log("Girilen:", xval);
},
extraObj: { context: "alarm" }
});
AlanAçıklama
headerPopup başlığı
initialValueBaşlangıç değeri
hasNegative / hasDecimalNegatif / ondalık izin
minValue / maxValueSınırlar
isIntegerTam sayı zorunluluğu
sizeScalePopup boyut çarpanı
onScriptFunc(val, extraObj)Onay callback’i
extraObjCallback’e opak veri

Generic sanal klavye. Metin için customNumpad karşılığı.

Inscada.customKeyboard({
initialValue: "",
onScriptFunc: (value) => console.log("Girilen:", value)
});

Basit metin giriş popup’ı (küçük ve hızlı — klavyeli değil).

Inscada.customStringValue({
initialValue: "notlar",
onScriptFunc: (value) => { /* ... */ }
});

Onay diyaloğu. type popup ikonunu / rengini belirler (info, warning, error, success).

Inscada.confirm("warning", "Dikkat", "Pompa durdurulsun mu?", {
onOkayFunc: () => {
Inscada.setVariableValue("PumpRun", { value: false });
}
});

Parola sorgusu; doğrulama ya sabit şifreye ya da bir değişkenin değerine göre yapılır.

// Sabit parola
Inscada.showPasswordPopup({
password: "1234",
onPasswordVerified: () => { /* ... */ }
});
// Değişkendeki parola
Inscada.showPasswordPopup({
passwordVariableName: "SupervisorPassword",
onPasswordVerified: () => { /* ... */ },
numpad: true // numpad ile giriş
});

Verilen nesneyi JSON editörüyle kullanıcıya açar; onaylandığında onEditFunc güncel nesneyle çağrılır.

Inscada.objectEditor({
obj: { gain: 1.0, offset: 0.0, threshold: 50 },
onEditFunc: (updated) => {
Inscada.setVariableValue("PidConfig", { value: JSON.stringify(updated) });
}
});

Sistem sayfalarından birine geçiş (menü seçimini tetikler).

Inscada.showSystemPage({
systemPageName: "alarms"
// pageData: { ... } // opsiyonel — sayfa açıldığında kullanılabilir veri
});

Harita sayfasına geçer ve haritayı verilen koordinat/zoom’a odaklar.

Inscada.showMapPage({
lon: 29.0,
lat: 41.0,
zoom: 12
});

Mevcut animasyon görüntüleyicisindeki animasyonu değiştirir.

Inscada.showAnimation({
name: "TankDetay",
parameters: { tankId: 3 }, // opsiyonel — hedef animasyona parametre
unselectMenu: true // opsiyonel — menü seçimini kaldır
});

İçinde bulunduğun animasyonun parent’ındaki animasyonu değiştirir (drill-down geri dönüşler için tipik).

Inscada.showParentAnimation({
name: "AnaGorunum"
});

Bir animasyonu popup pencerede açar. Boyut verilmezse SVG’nin kendi boyutuna otomatik oturur.

Inscada.popupAnimation({
animationName: "TankDetay",
modal: true,
width: 600,
height: 400
});

Genişletilmiş kullanım:

AlanAçıklama
animationNameAçılacak animasyonun adı (zorunlu)
modalArka planı kilitler (true / false)
windowIdÖzel pencere ID’si (aynı ID varsa yerine açılır)
leftPos / topPosPencere konumu (pixel)
width / heightBoyut (verilmezse SVG boyutu kullanılır)
extraHeightDinamik boyutta başlık yüksekliği payı (default 44 px)
__parametersHedef animasyona geçirilecek parametreler

Açık bir popup penceresini windowId üzerinden kapatır.

Inscada.closePopup("popupAnimationWindow12345");

Ana arayüzün belirli parçalarını gösterir / gizler.

Inscada.setUiVisibility("top-toolbar", false);
Inscada.setUiVisibility("top-menu", false);
Inscada.setUiVisibility("sidebar-collapse", true);
Inscada.setUiVisibility("animation-toolbar", false);

Geçerli type değerleri:

typeEtki
"top-toolbar"Üst toolbar göster / gizle
"top-menu"Üst menü + menü satırı göster / gizle
"animation-toolbar"Animasyon toolbar’ı göster / gizle
"sidebar-collapse"Kenar menüyü collapse / expand et

Gece / gündüz modunu değiştirir.

Inscada.setDayNightMode(true); // gece
Inscada.setDayNightMode(false); // gündüz

Tarayıcı sekmesini yeniden yükler (window.location.reload()).

Inscada.reload();

Animasyon SVG’si üzerinde programatik zoom / pan kontrolü.

Inscada.svgZoomPan({
zoomableId: "mainSvg",
functionName: "zoomIn",
params: {}
});
Inscada.svgZoomPan({
zoomableId: "mainSvg",
functionName: "zoomAtPoint",
params: { scale: 2, x: 100, y: 150 }
});
Inscada.svgZoomPan({
zoomableId: "mainSvg",
functionName: "fit",
params: {}
});

Geçerli functionName değerleri: zoom, zoomBy, zoomAtPoint, zoomAtPointBy, zoomIn, zoomOut, pan, panBy, resetZoom, resetPan, reset, fit, center.

File System’de kayıtlı bir ses dosyasını çalar / durdurur. Aynı ad için aynı anda birden fazla örnek başlatılmaz.

// Başlat (döngülü)
Inscada.playAudio(true, "alarm_siren.wav", true);
// Durdur
Inscada.playAudio(false, "alarm_siren.wav", false);
ParametreAçıklama
isStarttrue başlat, false durdur
nameFile System’deki ses dosyası adı
isLoopDöngü modu (yalnızca başlatırken anlamlı)