watch
[ Funktion ]
Version 1.10
public watch(
callback: (data: IWatchResultObject | IServerWatchResultObject) => void
): TcHmi.DestroyFunction;
Version 1.12
public watch<T = ST>(
callback: (data: IWatchResultObject<T> | IServerWatchResultObject<T>) => void
): TcHmi.DestroyFunction;
Überwacht das Symbol auf Änderungen.
Der Aufruf der Callback Funktion erfolgt in Abhängigkeit des verwendeten Symbol Typs entweder synchron oder asynchron zur Änderung.
Server | asynchron |
Internal | synchron |
LocalizedText | synchron |
PartialParam | synchron |
TemplateParam | synchron |
Function | synchron |
Control | synchron |
Version 1.12: Wird die API in TypeScript-Code benutzt, so kann beim Erstellen eines Symbols dem TypeScript-Compiler mitgeteilt, welchen Typ das Symbol (ST: SymbolType) hat. Dieser muss dann beispielsweise bei Nutzung dieser Funktion nicht mehr angegeben werden. Dies kann jedoch auch hier überschrieben werden. |
Dies ist eine reine Hilfe für die Programmierung. Der Browser kennt diese „Typeannotation“ nicht. Es findet keine Prüfung oder Konvertierung zur Laufzeit statt. |
Parameter
Name | Typ | Beschreibung |
---|---|---|
callback [Optional ] | Version 1.10 (data: IWatchResultObject | IServerWatchResultObject) => void Version 1.12 (data: IWatchResultObject<T> | IServerWatchResultObject<T>) => void | Wird ausgelöst wenn sich der Symbolwert ändert oder ein Fehler aufgetreten ist. Die Callback Funktion wird initial einmalig mit dem aktuellen Wert ausgelöst. Details sind dem Parameter data zu entnehmen. |
Rückgabewert
Typ | Beschreibung |
---|---|
Bei Aufruf dieser Funktion wird die Überwachung für dieses Symbol deaktiviert und alle zugehörigen Ressourcen freigegeben. Wird die Callback Funktion synchron aufgerufen kann nicht auf den Rückgabewert der Funktion zugegriffen werden, da dieser noch nicht definiert wurde. Für diesen Fall existiert sich eine Referenz auf die Funktion im Parameter der Callback Funktion. |
Verfügbar ab Version 1.10 |
Beispiel - JavaScript
var symbol = new TcHmi.Symbol('%s%PLC1.MAIN.sTest%/s%');
var destroySymbol = symbol.watch(function (data) {
if (data.error === TcHmi.Errors.NONE) {
// Handle result value...
var value = data.value;
console.log(value);
} else {
// Handle error...
}
// Stop watch inline
// data.destroy(); // Call the destroy function inline to stop the watch and free resources.
});
// Stop watch
// destroySymbol(); // Call the destroy function to stop the watch and free resources.
Beispiel 1 - TypeScript
var symbol = new TcHmi.Symbol('%s%PLC1.MAIN.sTest%/s%');
var destroySymbol = symbol.watch(function (data) {
if (data.error === TcHmi.Errors.NONE) {
// Handle result value...
var value = data.value; // TS does not know the variable type
console.log(value);
} else {
// Handle error...
}
// Stop watch inline
// data.destroy(); // Call the destroy function inline to stop the watch and free resources.
});
// Stop watch
// destroySymbol(); // Call the destroy function to stop the watch and free resources.
Beispiel 2 - TypeScript
var symbol = new TcHmi.Symbol<string>('%s%PLC1.MAIN.sTest%/s%');
var destroySymbol = symbol.watch(function (data) {
if (data.error === TcHmi.Errors.NONE) {
// Handle result value...
let thisIsAString = data.value; // TS knows this is a string
console.log(thisIsAString);
} else {
// Handle error...
}
// Stop watch inline
// data.destroy(); // Call the destroy function inline to stop the watch and free resources.
});
// Stop watch
// destroySymbol(); // Call the destroy function to stop the watch and free resources.
Beispiel 3 - TypeScript
var symbol = new TcHmi.Symbol ('%s%PLC1.MAIN.sTest%/s%');
var destroySymbol = symbol.watch<string>(function (data) {
if (data.error === TcHmi.Errors.NONE) {
// Handle result value...
let thisIsAString = data.value; // TS knows this is a string
console.log(thisIsAString);
} else {
// Handle error...
}
// Stop watch inline
// data.destroy(); // Call the destroy function inline to stop the watch and free resources.
});
// Stop watch
// destroySymbol(); // Call the destroy function to stop the watch and free resources.