Added minimal functionality for Robot teaching

- Added minimal HMI
- Added possibility to open and close all chamber doors
This commit is contained in:
2026-01-17 09:20:39 +01:00
parent 9f058db2a3
commit 2d11c43579
2274 changed files with 912690 additions and 162 deletions

View File

@@ -0,0 +1,9 @@
declare namespace TcHmi.Functions.Beckhoff {
/**
* Activates a recipe (writes all values)
* @param ctx Context object which provides context specific data and functions.
* @param recipeReference Name of the recipe (could be prefixed with a path if separated with:: )
*/
function ActivateRecipe(ctx: SelectableRequired<TcHmi.Context, 'success' | 'error'>, recipeReference: string | null): void;
}
//# sourceMappingURL=ActivateRecipe.d.ts.map

View File

@@ -0,0 +1,48 @@
{
"$schema": "../TcHmiFramework/Schema/FunctionDescription.Schema.json",
"apiVersion": 1,
"version": {
"full": "14.3.340.0",
"major": 14,
"minor": 3,
"build": 340,
"revision": 0
},
"dependencyFiles": [
{
"name": "ActivateRecipe.js",
"type": "JavaScript",
"description": ""
}
],
"function": {
"name": "ActivateRecipe",
"namespace": "TcHmi.Functions.Beckhoff",
"displayName": "ActivateRecipe",
"visible": true,
"category": "Recipe",
"waitMode": "Asynchronous",
"injectContextObject": true,
"description": "Activates a recipe",
"returnValue": null,
"arguments": [
{
"name": "ctx",
"displayName": "ctx",
"type": "tchmi:framework#/definitions/ContextReference",
"description": "Context Reference",
"required": true,
"bindable": false
},
{
"name": "recipeReference",
"displayName": "RecipeReference",
"type": "tchmi:framework#/definitions/RecipeReference",
"description": "Reference (path + '::' + name) of the recipe",
"defaultValue": null,
"required": true,
"bindable": true
}
]
}
}

View File

@@ -0,0 +1 @@
"use strict";var TcHmi;!function(TcHmi){!function(Functions){!function(Beckhoff){Beckhoff.ActivateRecipe=function(ctx,recipeReference){if(!ctx)throw new TypeError("Parameter 'ctx' must be defined.");if(!ctx.success||!ctx.error)throw new TypeError("Parameter 'ctx' must be defined properly. Either 'success' or 'error' or both are missing.");if("function"!=typeof ctx.success||"function"!=typeof ctx.error)throw new TypeError("Parameter 'ctx' must be defined properly. Either 'success' or 'error' or both are not of type 'function'.");recipeReference?TcHmi.Server.RecipeManagement.activate(recipeReference,null,function(data){return data.error?void ctx.error(data.error,{code:data.error,message:TcHmi.Errors[data.error],reason:"Recipe "+recipeReference+" activation failed",domain:"TcHmi.Functions.Beckhoff.ActivateRecipe",errors:data.details?[data.details]:void 0}):(TcHmi.Log.info("[Source=Function, Module=TcHmi.Functions.Beckhoff.ActivateRecipe] Recipe "+recipeReference+" activated successful."),void ctx.success())}):ctx.success()}}(Functions.Beckhoff||(Functions.Beckhoff={}))}(TcHmi.Functions||(TcHmi.Functions={}))}(TcHmi||(TcHmi={})),TcHmi.Functions.registerFunctionEx("ActivateRecipe","TcHmi.Functions.Beckhoff",TcHmi.Functions.Beckhoff.ActivateRecipe);

View File

@@ -0,0 +1,8 @@
declare namespace TcHmi.Functions.Beckhoff {
/**
* Converts a bigint value to number
* @param value Value to be converted.
*/
function BigIntToNumber(value: bigint): number;
}
//# sourceMappingURL=BigIntToNumber.d.ts.map

View File

@@ -0,0 +1,39 @@
{
"$schema": "../TcHmiFramework/Schema/FunctionDescription.Schema.json",
"apiVersion": 1,
"version": {
"full": "14.3.340.0",
"major": 14,
"minor": 3,
"build": 340,
"revision": 0
},
"dependencyFiles": [
{
"name": "BigIntToNumber.js",
"type": "JavaScript",
"description": ""
}
],
"function": {
"name": "BigIntToNumber",
"namespace": "TcHmi.Functions.Beckhoff",
"displayName": "BigIntToNumber",
"visible": true,
"description": "Converts a bigint value to number",
"category": "Data Conversion",
"returnValue": {
"type": "tchmi:general#/definitions/Number"
},
"arguments": [
{
"name": "value",
"displayName": "Value",
"type": "tchmi:general#/definitions/BigInt",
"description": "Value to be converted",
"required": true,
"bindable": true
}
]
}
}

View File

@@ -0,0 +1 @@
"use strict";var TcHmi;!function(TcHmi){!function(Functions){!function(Beckhoff){Beckhoff.BigIntToNumber=function(value){const res=TcHmi.ValueConverter.toNumberEx(value);if(res.error!==TcHmi.Errors.NONE)throw new Error("Converting bigint to number failed with: "+TcHmi.Log.buildMessage(res.details)+".");if(null===res.value)throw new Error("Converting bigint to number failed.");return res.value}}(Functions.Beckhoff||(Functions.Beckhoff={}))}(TcHmi.Functions||(TcHmi.Functions={}))}(TcHmi||(TcHmi={})),TcHmi.Functions.registerFunctionEx("BigIntToNumber","TcHmi.Functions.Beckhoff",TcHmi.Functions.Beckhoff.BigIntToNumber);

View File

@@ -0,0 +1,10 @@
declare namespace TcHmi.Functions.Beckhoff {
/**
* Checks if a right is allowed for the current user on this control or its parents.
* TypeScript or JavaScript code can use the API `TcHmi.Access.checkAccess`
* @param control Control to check
* @param AccessRightToCheck name of the access right
*/
function CheckAccess(control: TcHmi.Controls.System.baseTcHmiControl, AccessRightToCheck: string): boolean;
}
//# sourceMappingURL=CheckAccess.d.ts.map

View File

@@ -0,0 +1,49 @@
{
"$schema": "../TcHmiFramework/Schema/FunctionDescription.Schema.json",
"apiVersion": 1,
"version": {
"full": "14.3.340.0",
"major": 14,
"minor": 3,
"build": 340,
"revision": 0
},
"dependencyFiles": [
{
"name": "CheckAccess.js",
"type": "JavaScript",
"description": ""
}
],
"function": {
"name": "CheckAccess",
"namespace": "TcHmi.Functions.Beckhoff",
"displayName": "CheckAccess",
"description": "Checks if a right is allowed for the current user on a control or its parents.",
"category": "UserManagement",
"returnValue": {
"type": "tchmi:general#/definitions/Boolean",
"description": "Result of the Access."
},
"arguments": [
{
"name": "control",
"displayName": "Control",
"type": "tchmi:framework#/definitions/Control",
"description": "Control to check the AccessRight on it.",
"required": true,
"bindable": false,
"restParameter": false
},
{
"name": "AccessRightToCheck",
"displayName": "AccessRightToCheck",
"type": "tchmi:framework#/definitions/ControlAccessRightName",
"description": "Name of an AccessRight to check.",
"required": true,
"bindable": true,
"restParameter": false
}
]
}
}

View File

@@ -0,0 +1 @@
"use strict";var TcHmi;!function(TcHmi){!function(Functions){!function(Beckhoff){Beckhoff.CheckAccess=function(control,AccessRightToCheck){if(!control||!AccessRightToCheck)return!1;let res=TcHmi.Access.checkAccess(control,AccessRightToCheck);return null!==res&&res}}(Functions.Beckhoff||(Functions.Beckhoff={}))}(TcHmi.Functions||(TcHmi.Functions={}))}(TcHmi||(TcHmi={})),TcHmi.Functions.registerFunctionEx("CheckAccess","TcHmi.Functions.Beckhoff",TcHmi.Functions.Beckhoff.CheckAccess);

View File

@@ -0,0 +1,9 @@
declare namespace TcHmi.Functions.Beckhoff {
/**
* Returns true if a symbol is bound to the target control property.
* @param control
* @param propertyName
*/
function CheckBinding(control: TcHmi.Controls.System.baseTcHmiControl, propertyName: string): boolean;
}
//# sourceMappingURL=CheckBinding.d.ts.map

View File

@@ -0,0 +1,50 @@
{
"$schema": "../TcHmiFramework/Schema/FunctionDescription.Schema.json",
"apiVersion": 1,
"version": {
"full": "14.3.340.0",
"major": 14,
"minor": 3,
"build": 340,
"revision": 0
},
"dependencyFiles": [
{
"name": "CheckBinding.js",
"type": "JavaScript",
"description": ""
}
],
"function": {
"name": "CheckBinding",
"namespace": "TcHmi.Functions.Beckhoff",
"displayName": "CheckBinding",
"description": "Checks if any symbol is bound to a control attribute.",
"category": "Binding",
"returnValue": {
"type": "tchmi:general#/definitions/Boolean",
"description": "Result of the Access."
},
"arguments": [
{
"name": "control",
"displayName": "Control",
"type": "tchmi:framework#/definitions/Control",
"description": "Control",
"required": true,
"bindable": false,
"restParameter": false
},
{
"name": "propertyName",
"displayName": "PropertyName",
"type": "tchmi:framework#/definitions/ControlPropertyName",
"description": "The target attribute property name of control.",
"required": true,
"bindable": true,
"restParameter": false,
"refTo": "control"
}
]
}
}

View File

@@ -0,0 +1 @@
"use strict";var TcHmi;!function(TcHmi){!function(Functions){!function(Beckhoff){Beckhoff.CheckBinding=function(control,propertyName){return!!TcHmi.Binding.exists(propertyName,control)}}(Functions.Beckhoff||(Functions.Beckhoff={}))}(TcHmi.Functions||(TcHmi.Functions={}))}(TcHmi||(TcHmi={})),TcHmi.Functions.registerFunctionEx("CheckBinding","TcHmi.Functions.Beckhoff",TcHmi.Functions.Beckhoff.CheckBinding);

View File

@@ -0,0 +1,10 @@
declare namespace TcHmi.Functions.Beckhoff {
/**
* Checks if a specific symbol is bound to a control attribute.
* @param control
* @param propertyName
* @param symbol
*/
function CheckBindingEx(control: TcHmi.Controls.System.baseTcHmiControl, propertyName: string, symbol: TcHmi.Symbol | null): boolean;
}
//# sourceMappingURL=CheckBindingEx.d.ts.map

View File

@@ -0,0 +1,59 @@
{
"$schema": "../TcHmiFramework/Schema/FunctionDescription.Schema.json",
"apiVersion": 1,
"version": {
"full": "14.3.340.0",
"major": 14,
"minor": 3,
"build": 340,
"revision": 0
},
"dependencyFiles": [
{
"name": "CheckBindingEx.js",
"type": "JavaScript",
"description": ""
}
],
"function": {
"name": "CheckBindingEx",
"namespace": "TcHmi.Functions.Beckhoff",
"displayName": "CheckBindingEx",
"description": "Checks if a specific symbol is bound to a control attribute.",
"category": "Binding",
"returnValue": {
"type": "tchmi:general#/definitions/Boolean",
"description": "Result of the Access."
},
"arguments": [
{
"name": "control",
"displayName": "Control",
"type": "tchmi:framework#/definitions/Control",
"description": "Control",
"required": true,
"bindable": false,
"restParameter": false
},
{
"name": "propertyName",
"displayName": "PropertyName",
"type": "tchmi:framework#/definitions/ControlPropertyName",
"description": "The target attribute property name of control.",
"required": true,
"bindable": true,
"restParameter": false,
"refTo": "control"
},
{
"name": "symbol",
"displayName": "Symbol",
"type": "tchmi:framework#/definitions/Symbol",
"description": "The target symbol.",
"required": true,
"bindable": true,
"restParameter": false
}
]
}
}

View File

@@ -0,0 +1 @@
"use strict";var TcHmi;!function(TcHmi){!function(Functions){!function(Beckhoff){Beckhoff.CheckBindingEx=function(control,propertyName,symbol){if(!symbol)return!1;let s=TcHmi.Binding.resolveEx(propertyName,control);return!(!s||s.toString()!==symbol.getExpression().toString())}}(Functions.Beckhoff||(Functions.Beckhoff={}))}(TcHmi.Functions||(TcHmi.Functions={}))}(TcHmi||(TcHmi={})),TcHmi.Functions.registerFunctionEx("CheckBindingEx","TcHmi.Functions.Beckhoff",TcHmi.Functions.Beckhoff.CheckBindingEx);

View File

@@ -0,0 +1,8 @@
declare namespace TcHmi.Functions.Beckhoff {
/**
* Concatenate multiple string values.
* @param strings
*/
function Concatenate(...strings: string[]): string;
}
//# sourceMappingURL=Concatenate.d.ts.map

View File

@@ -0,0 +1,40 @@
{
"$schema": "../TcHmiFramework/Schema/FunctionDescription.Schema.json",
"apiVersion": 1,
"version": {
"full": "14.3.340.0",
"major": 14,
"minor": 3,
"build": 340,
"revision": 0
},
"dependencyFiles": [
{
"name": "Concatenate.js",
"type": "JavaScript",
"description": ""
}
],
"function": {
"name": "Concatenate",
"namespace": "TcHmi.Functions.Beckhoff",
"displayName": "Concatenate",
"visible": true,
"category": "Data Conversion",
"description": "Concatenate multiple string values.",
"returnValue": {
"type": "tchmi:general#/definitions/String"
},
"arguments": [
{
"name": "value",
"displayName": "Value",
"type": "tchmi:general#/definitions/String",
"description": "Value to concatenate",
"required": true,
"bindable": true,
"restParameter": true
}
]
}
}

View File

@@ -0,0 +1 @@
"use strict";var TcHmi;!function(TcHmi){!function(Functions){!function(Beckhoff){Beckhoff.Concatenate=function(...strings){let strArg,newValue="";for(let i=0,ii=strings.length;i<ii;i++)strArg=void 0===strings[i]?"undefined":null===strings[i]?"null":strings[i],newValue+=strArg;return newValue}}(Functions.Beckhoff||(Functions.Beckhoff={}))}(TcHmi.Functions||(TcHmi.Functions={}))}(TcHmi||(TcHmi={})),TcHmi.Functions.registerFunctionEx("Concatenate","TcHmi.Functions.Beckhoff",TcHmi.Functions.Beckhoff.Concatenate);

View File

@@ -0,0 +1,10 @@
declare namespace TcHmi.Functions.Beckhoff {
/**
* Converts boolean values to enumeration values.
* @param value
* @param trueValue
* @param falseValue
*/
function ConvertBooleanToEnum<T = any>(value: boolean, trueValue: T, falseValue: T): T;
}
//# sourceMappingURL=ConvertBooleanToEnum.d.ts.map

View File

@@ -0,0 +1,55 @@
{
"$schema": "../TcHmiFramework/Schema/FunctionDescription.Schema.json",
"apiVersion": 1,
"version": {
"full": "14.3.340.0",
"major": 14,
"minor": 3,
"build": 340,
"revision": 0
},
"dependencyFiles": [
{
"name": "ConvertBooleanToEnum.js",
"type": "JavaScript",
"description": ""
}
],
"function": {
"name": "ConvertBooleanToEnum",
"namespace": "TcHmi.Functions.Beckhoff",
"displayName": "ConvertBooleanToEnum",
"visible": true,
"description": "Converts boolean values to enumeration values.",
"category": "Data Conversion",
"returnValue": {
"type": "tchmi:general#/definitions/String"
},
"arguments": [
{
"name": "value",
"displayName": "Value",
"type": "tchmi:general#/definitions/Boolean",
"description": "Value to be converted",
"required": true,
"bindable": true
},
{
"name": "trueValue",
"displayName": "TrueValue",
"type": "tchmi:general#/definitions/String",
"description": "Return value if source value is true",
"required": true,
"bindable": true
},
{
"name": "falseValue",
"displayName": "FalseValue",
"type": "tchmi:general#/definitions/String",
"description": "Return value if source value is false",
"required": true,
"bindable": true
}
]
}
}

View File

@@ -0,0 +1 @@
"use strict";var TcHmi;!function(TcHmi){!function(Functions){!function(Beckhoff){Beckhoff.ConvertBooleanToEnum=function(value,trueValue,falseValue){return!0===TcHmi.ValueConverter.toBoolean(value)?trueValue:falseValue}}(Functions.Beckhoff||(Functions.Beckhoff={}))}(TcHmi.Functions||(TcHmi.Functions={}))}(TcHmi||(TcHmi={})),TcHmi.Functions.registerFunctionEx("ConvertBooleanToEnum","TcHmi.Functions.Beckhoff",TcHmi.Functions.Beckhoff.ConvertBooleanToEnum);

View File

@@ -0,0 +1,9 @@
declare namespace TcHmi.Functions.Beckhoff {
/**
* Converts boolean values to visibility enumeration values.
* @param value
* @param falseValue
*/
function ConvertBooleanToVisibility(value: boolean, falseValue?: 'Hidden' | 'Collapsed'): Visibility;
}
//# sourceMappingURL=ConvertBooleanToVisibility.d.ts.map

View File

@@ -0,0 +1,47 @@
{
"$schema": "../TcHmiFramework/Schema/FunctionDescription.Schema.json",
"apiVersion": 1,
"version": {
"full": "14.3.340.0",
"major": 14,
"minor": 3,
"build": 340,
"revision": 0
},
"dependencyFiles": [
{
"name": "ConvertBooleanToVisibility.js",
"type": "JavaScript",
"description": ""
}
],
"function": {
"name": "ConvertBooleanToVisibility",
"namespace": "TcHmi.Functions.Beckhoff",
"displayName": "ConvertBooleanToVisibility",
"visible": true,
"description": "Converts boolean values to visibility enumeration values.",
"category": "Data Conversion",
"returnValue": {
"type": "tchmi:framework#/definitions/Visibility"
},
"arguments": [
{
"name": "value",
"displayName": "Value",
"type": "tchmi:general#/definitions/Boolean",
"description": "Value to be converted",
"required": true,
"bindable": true
},
{
"name": "FalseValue",
"displayName": "FalseValue",
"type": "tchmi:framework#/definitions/Visibility",
"description": "VisibilityValue if source value is false",
"required": false,
"bindable": true
}
]
}
}

View File

@@ -0,0 +1 @@
"use strict";var TcHmi;!function(TcHmi){!function(Functions){!function(Beckhoff){Beckhoff.ConvertBooleanToVisibility=function(value,falseValue="Hidden"){return!0===TcHmi.ValueConverter.toBoolean(value)?"Visible":("Collapsed"!==falseValue&&(falseValue="Hidden"),falseValue)}}(Functions.Beckhoff||(Functions.Beckhoff={}))}(TcHmi.Functions||(TcHmi.Functions={}))}(TcHmi||(TcHmi={})),TcHmi.Functions.registerFunctionEx("ConvertBooleanToVisibility","TcHmi.Functions.Beckhoff",TcHmi.Functions.Beckhoff.ConvertBooleanToVisibility);

View File

@@ -0,0 +1,9 @@
declare namespace TcHmi.Functions.Beckhoff {
/**
* Creates an audit trail log entry.
* @param ctx Context object which provides context specific data and functions.
* @param entry The data to be logged.
*/
function CreateAuditLogEntry(ctx: SelectableRequired<TcHmi.Context, 'success' | 'error'>, entry: TcHmi.Server.AuditTrail.CreateAuditLogEntry.AuditLogEntry): void;
}
//# sourceMappingURL=CreateAuditLogEntry.d.ts.map

View File

@@ -0,0 +1,48 @@
{
"$schema": "../TcHmiFramework/Schema/FunctionDescription.Schema.json",
"apiVersion": 1,
"version": {
"full": "14.3.340.0",
"major": 14,
"minor": 3,
"build": 340,
"revision": 0
},
"dependencyFiles": [
{
"name": "CreateAuditLogEntry.js",
"type": "JavaScript",
"description": ""
}
],
"function": {
"name": "CreateAuditLogEntry",
"namespace": "TcHmi.Functions.Beckhoff",
"displayName": "CreateAuditLogEntry",
"visible": true,
"category": "Audit Trail",
"waitMode": "Asynchronous",
"injectContextObject": true,
"description": "Creates an audit log entry.",
"returnValue": null,
"arguments": [
{
"name": "ctx",
"displayName": "ctx",
"type": "tchmi:framework#/definitions/ContextReference",
"description": "Context Reference",
"required": true,
"bindable": false
},
{
"name": "entry",
"displayName": "Entry",
"type": "tchmi:framework#/definitions/TcHmi.Functions.Beckhoff.AuditTrail.CreateAuditLogEntry.AuditLogEntry",
"description": "Data written to the log entry",
"defaultValue": null,
"required": true,
"bindable": true
}
]
}
}

View File

@@ -0,0 +1 @@
"use strict";var TcHmi;!function(TcHmi){!function(Functions){!function(Beckhoff){Beckhoff.CreateAuditLogEntry=function(ctx,entry){if(!ctx)throw new TypeError("Parameter 'ctx' must be defined.");if(!ctx.success||!ctx.error)throw new TypeError("Parameter 'ctx' must be defined properly. Either 'success' or 'error' or both are missing.");if("function"!=typeof ctx.success||"function"!=typeof ctx.error)throw new TypeError("Parameter 'ctx' must be defined properly. Either 'success' or 'error' or both are not of type 'function'.");TcHmi.Server.AuditTrail.createAuditLogEntry(entry,data=>{data.error===TcHmi.Errors.NONE?ctx.success():ctx.error(data.error,{code:data.error,message:TcHmi.Errors[data.error],reason:"Function: CreateAuditlLogEntry, Creating log entry failed.",domain:"Function",errors:data.details?[data.details]:void 0})})}}(Functions.Beckhoff||(Functions.Beckhoff={}))}(TcHmi.Functions||(TcHmi.Functions={}))}(TcHmi||(TcHmi={})),TcHmi.Functions.registerFunctionEx("CreateAuditLogEntry","TcHmi.Functions.Beckhoff",TcHmi.Functions.Beckhoff.CreateAuditLogEntry);

View File

@@ -0,0 +1,10 @@
declare namespace TcHmi.Functions.Beckhoff {
/**
* Creates a binding between a symbol and a control attribute setter function by name of property.
* @param control
* @param propertyName
* @param symbol
*/
function CreateBinding(control: TcHmi.Controls.System.baseTcHmiControl, propertyName: string, symbol: TcHmi.Symbol | null): void;
}
//# sourceMappingURL=CreateBinding.d.ts.map

View File

@@ -0,0 +1,58 @@
{
"$schema": "../TcHmiFramework/Schema/FunctionDescription.Schema.json",
"apiVersion": 1,
"version": {
"full": "14.3.340.0",
"major": 14,
"minor": 3,
"build": 340,
"revision": 0
},
"dependencyFiles": [
{
"name": "CreateBinding.js",
"type": "JavaScript",
"description": ""
}
],
"function": {
"name": "CreateBinding",
"namespace": "TcHmi.Functions.Beckhoff",
"displayName": "CreateBinding",
"description": "Creates a binding between a symbol and a control attribute setter function by name of property.",
"category": "Binding",
"returnValue": null,
"arguments": [
{
"name": "control",
"displayName": "Control",
"type": "tchmi:framework#/definitions/Control",
"description": "Control",
"required": true,
"bindable": false,
"restParameter": false
},
{
"name": "propertyName",
"displayName": "PropertyName",
"type": "tchmi:framework#/definitions/ControlPropertyName",
"description": "The target attribute property name of control.",
"required": true,
"bindable": true,
"restParameter": false,
"refTo": "control"
},
{
"name": "symbol",
"displayName": "Symbol",
"type": "tchmi:framework#/definitions/Symbol",
"description": "The target symbol.",
"required": true,
"bindable": true,
"allowControlAttributeBindingOptions": true,
"refTo": "control",
"restParameter": false
}
]
}
}

View File

@@ -0,0 +1 @@
"use strict";var TcHmi;!function(TcHmi){!function(Functions){!function(Beckhoff){Beckhoff.CreateBinding=function(control,propertyName,symbol){if(!control)throw new Error('Invalid value: "'+control+"\" for parameter: 'control'.");if(!propertyName)throw new Error('Invalid value: "'+propertyName+"\" for parameter: 'propertyName'.");if(!symbol)throw new Error('Invalid value: "'+symbol+"\" for parameter: 'symbol'.");let expr=symbol.getExpression();if(!expr)throw new Error("Invalid expression in symbol for parameter: symbol");TcHmi.Binding.createEx2(expr.toString(),propertyName,control,{ctx:symbol.getContext()})}}(Functions.Beckhoff||(Functions.Beckhoff={}))}(TcHmi.Functions||(TcHmi.Functions={}))}(TcHmi||(TcHmi={})),TcHmi.Functions.registerFunctionEx("CreateBinding","TcHmi.Functions.Beckhoff",TcHmi.Functions.Beckhoff.CreateBinding);

View File

@@ -0,0 +1,11 @@
declare namespace TcHmi.Functions.Beckhoff {
/**
* Decrement a binding value.
* @param ctx Context object which provides context specific data and functions.
* @param symbol
* @param minValue
* @param stepWidth
*/
function Decrement(ctx: SelectableRequired<TcHmi.Context, 'success' | 'error'>, symbol: TcHmi.Symbol | null, minValue?: number | null, stepWidth?: number | null): void;
}
//# sourceMappingURL=Decrement.d.ts.map

View File

@@ -0,0 +1,68 @@
{
"$schema": "../TcHmiFramework/Schema/FunctionDescription.Schema.json",
"apiVersion": 1,
"version": {
"full": "14.3.340.0",
"major": 14,
"minor": 3,
"build": 340,
"revision": 0
},
"dependencyFiles": [
{
"name": "Decrement.js",
"type": "JavaScript",
"description": ""
}
],
"function": {
"name": "Decrement",
"namespace": "TcHmi.Functions.Beckhoff",
"displayName": "Decrement",
"visible": true,
"description": "Decrement a binding value.",
"category": "Data Conversion",
"injectContextObject": true,
"waitMode": "Asynchronous",
"returnValue": null,
"arguments": [
{
"name": "ctx",
"displayName": "ctx",
"type": "tchmi:framework#/definitions/ContextReference",
"description": "Context Reference",
"required": true,
"bindable": false
},
{
"name": "value",
"displayName": "Value",
"type": "tchmi:framework#/definitions/TcHmi.Functions.Beckhoff.Decrement.DecrementValueSymbol",
"description": "Value to be decremented",
"required": true,
"bindable": true
},
{
"name": "minValue",
"displayName": "MinValue",
"type": "tchmi:general#/definitions/Number",
"description": "Minimum value (inclusive) to which the symbol will decremented",
"required": false,
"bindable": true
},
{
"name": "stepWidth",
"displayName": "StepWidth",
"type": "tchmi:general#/definitions/Number",
"description": "Used step width for decrement",
"required": false,
"bindable": true
}
]
},
"dataTypes": [
{
"schema": "Schema/Types.Schema.json"
}
]
}

View File

@@ -0,0 +1 @@
"use strict";var TcHmi;!function(TcHmi){!function(Functions){!function(Beckhoff){Beckhoff.Decrement=function(ctx,symbol,minValue,stepWidth){if(!ctx)throw new TypeError("Parameter 'ctx' must be defined.");if(!ctx.success||!ctx.error)throw new TypeError("Parameter 'ctx' must be defined properly. Either 'success' or 'error' or both are missing.");if("function"!=typeof ctx.success||"function"!=typeof ctx.error)throw new TypeError("Parameter 'ctx' must be defined properly. Either 'success' or 'error' or both are not of type 'function'.");null!=symbol?symbol instanceof TcHmi.Symbol?symbol.readEx(function(data){if(data.error!==TcHmi.Errors.NONE)return void ctx.error(data.error,{code:data.error,message:TcHmi.Errors[data.error],reason:"Symbol value read failed",domain:"TcHmi.Functions.Beckhoff.Decrement",errors:data.details?[data.details]:void 0});let value=TcHmi.ValueConverter.toNumber(data.value);if(null===value)return void ctx.error(TcHmi.Errors.E_PARAMETER_INVALID,{code:TcHmi.Errors.E_PARAMETER_INVALID,message:TcHmi.Errors[TcHmi.Errors.E_PARAMETER_INVALID],reason:"Symbol value is no number.",domain:"TcHmi.Functions.Beckhoff.Decrement"});let convertedStepWidth=TcHmi.ValueConverter.toNumber(stepWidth,1);isNaN(convertedStepWidth)&&(convertedStepWidth=1),value-=convertedStepWidth;const convertedMinValue=TcHmi.ValueConverter.toNumber(minValue);null===convertedMinValue||isNaN(convertedMinValue)||convertedMinValue<=value?symbol.write(value,function(data){data.error===TcHmi.Errors.NONE?ctx.success():ctx.error(data.error,{code:data.error,message:TcHmi.Errors[data.error],reason:"Symbol value write failed",domain:"TcHmi.Functions.Beckhoff.Decrement",errors:data.details?[data.details]:void 0})}):ctx.success()}):ctx.error(TcHmi.Errors.E_PARAMETER_INVALID,{code:TcHmi.Errors.E_PARAMETER_INVALID,message:TcHmi.Errors[TcHmi.Errors.E_PARAMETER_INVALID],reason:"Parameter is no symbol.",domain:"TcHmi.Functions.Beckhoff.Decrement"}):ctx.error(TcHmi.Errors.E_PARAMETER_INVALID,{code:TcHmi.Errors.E_PARAMETER_INVALID,message:TcHmi.Errors[TcHmi.Errors.E_PARAMETER_INVALID],reason:"Requested symbol is not set.",domain:"TcHmi.Functions.Beckhoff.Decrement"})}}(Functions.Beckhoff||(Functions.Beckhoff={}))}(TcHmi.Functions||(TcHmi.Functions={}))}(TcHmi||(TcHmi={})),TcHmi.Functions.registerFunctionEx("Decrement","TcHmi.Functions.Beckhoff",TcHmi.Functions.Beckhoff.Decrement);

View File

@@ -0,0 +1,9 @@
declare namespace TcHmi.Functions.Beckhoff {
/**
* Downloads all recipes of a server.
* This needs to be triggered by a user interaction (not on load or symbol change).
* @param ctx An object holding functions for success and error.
*/
function DownloadRecipeTypes(ctx: SelectableRequired<TcHmi.Context<void>, 'success' | 'error'>, filter: string[] | null, referencedRecipeTypes?: boolean): void;
}
//# sourceMappingURL=DownloadRecipeTypes.d.ts.map

View File

@@ -0,0 +1,57 @@
{
"$schema": "../TcHmiFramework/Schema/FunctionDescription.Schema.json",
"apiVersion": 1,
"version": {
"full": "14.3.340.0",
"major": 14,
"minor": 3,
"build": 340,
"revision": 0
},
"dependencyFiles": [
{
"name": "DownloadRecipeTypes.js",
"type": "JavaScript",
"description": ""
}
],
"function": {
"name": "DownloadRecipeTypes",
"namespace": "TcHmi.Functions.Beckhoff",
"displayName": "DownloadRecipeTypes",
"visible": true,
"category": "Recipe",
"waitMode": "Asynchronous",
"injectContextObject": true,
"description": "Downloads one, many or all recipe types of a server. \nThis needs to be triggered by a user interaction (not on load or symbol change).",
"returnValue": null,
"arguments": [
{
"name": "ctx",
"displayName": "ctx",
"type": "tchmi:framework#/definitions/ContextReference",
"description": "Context Reference",
"required": true,
"bindable": false
},
{
"name": "filter",
"displayName": "Filter",
"type": "tchmi:framework#/definitions/MultipleRecipeTypeReferences",
"description": "Filter/reduce download list to some multiple recipe types. \nIf this is null/unset this downloads all recipe types.",
"defaultValue": null,
"required": true,
"bindable": true
},
{
"name": "referencedRecipeTypes",
"displayName": "ReferencedRecipeTypes",
"type": "tchmi:general#/definitions/Boolean",
"description": "The export should contain referenced recipe types, too.",
"defaultValue": false,
"required": true,
"bindable": true
}
]
}
}

View File

@@ -0,0 +1 @@
"use strict";var TcHmi;!function(TcHmi){!function(Functions){!function(Beckhoff){Beckhoff.DownloadRecipeTypes=function(ctx,filter,referencedRecipeTypes=!1){if(!ctx)throw new TypeError("Parameter 'ctx' must be defined.");if(!ctx.success||!ctx.error)throw new TypeError("Parameter 'ctx' must be defined properly. Either 'success' or 'error' or both are missing.");if("function"!=typeof ctx.success||"function"!=typeof ctx.error)throw new TypeError("Parameter 'ctx' must be defined properly. Either 'success' or 'error' or both are not of type 'function'.");TcHmi.Server.RecipeManagement.downloadRecipeTypesEx(filter,null,{referencedRecipeTypes},null,data=>data.error?void ctx.error(data.error,{code:data.error,message:TcHmi.Errors[data.error],reason:"Downloading recipe has failed.",domain:"TcHmi.Functions.Beckhoff.DownloadRecipeTypes",errors:data.details?[data.details]:void 0}):(TcHmi.Log.info("[Source=Function, Module=TcHmi.Functions.Beckhoff.DownloadRecipeTypes] Recipe download started successfully."),void ctx.success()))}}(Functions.Beckhoff||(Functions.Beckhoff={}))}(TcHmi.Functions||(TcHmi.Functions={}))}(TcHmi||(TcHmi={})),TcHmi.Functions.registerFunctionEx("DownloadRecipeTypes","TcHmi.Functions.Beckhoff",TcHmi.Functions.Beckhoff.DownloadRecipeTypes);

View File

@@ -0,0 +1,10 @@
declare namespace TcHmi.Functions.Beckhoff {
/**
* Downloads a recipe. Downloads all recipes when recipeName is the empty string.
* This needs to be triggered by a user interaction (not on load or symbol change).
* @param ctx An object holding functions for success and error.
* @param filter Reference (path + '::' + name) of the recipe. If this is the empty string this downloads all recipes.
*/
function DownloadRecipes(ctx: SelectableRequired<TcHmi.Context<void>, 'success' | 'error'>, filter: string[] | null, referencedRecipeTypes?: boolean): void;
}
//# sourceMappingURL=DownloadRecipes.d.ts.map

View File

@@ -0,0 +1,57 @@
{
"$schema": "../TcHmiFramework/Schema/FunctionDescription.Schema.json",
"apiVersion": 1,
"version": {
"full": "14.3.340.0",
"major": 14,
"minor": 3,
"build": 340,
"revision": 0
},
"dependencyFiles": [
{
"name": "DownloadRecipes.js",
"type": "JavaScript",
"description": ""
}
],
"function": {
"name": "DownloadRecipes",
"namespace": "TcHmi.Functions.Beckhoff",
"displayName": "DownloadRecipes",
"visible": true,
"category": "Recipe",
"waitMode": "Asynchronous",
"injectContextObject": true,
"description": "Downloads one, many or all recipes of a server. \nThis needs to be triggered by a user interaction (not on load or symbol change).",
"returnValue": null,
"arguments": [
{
"name": "ctx",
"displayName": "ctx",
"type": "tchmi:framework#/definitions/ContextReference",
"description": "Context Reference",
"required": true,
"bindable": false
},
{
"name": "filter",
"displayName": "Filter",
"type": "tchmi:framework#/definitions/MultipleRecipeReferences",
"description": "Filter/reduce download list to some multiple recipes. \nIf this is null/unset this downloads all recipes.",
"defaultValue": null,
"required": true,
"bindable": true
},
{
"name": "referencedRecipeTypes",
"displayName": "ReferencedRecipeTypes",
"type": "tchmi:general#/definitions/Boolean",
"description": "The export should contain referenced recipe types, too.",
"defaultValue": false,
"required": true,
"bindable": true
}
]
}
}

View File

@@ -0,0 +1 @@
"use strict";var TcHmi;!function(TcHmi){!function(Functions){!function(Beckhoff){Beckhoff.DownloadRecipes=function(ctx,filter,referencedRecipeTypes=!1){if(!ctx)throw new TypeError("Parameter 'ctx' must be defined.");if(!ctx.success||!ctx.error)throw new TypeError("Parameter 'ctx' must be defined properly. Either 'success' or 'error' or both are missing.");if("function"!=typeof ctx.success||"function"!=typeof ctx.error)throw new TypeError("Parameter 'ctx' must be defined properly. Either 'success' or 'error' or both are not of type 'function'.");TcHmi.Server.RecipeManagement.downloadRecipesEx(filter,null,{referencedRecipeTypes},null,data=>data.error?void ctx.error(data.error,{code:data.error,message:TcHmi.Errors[data.error],reason:"Downloading recipe has failed.",domain:"TcHmi.Functions.Beckhoff.DownloadRecipes",errors:data.details?[data.details]:void 0}):(TcHmi.Log.info("[Source=Function, Module=TcHmi.Functions.Beckhoff.DownloadRecipes] Recipe "+filter+" download started successfully."),void ctx.success()))}}(Functions.Beckhoff||(Functions.Beckhoff={}))}(TcHmi.Functions||(TcHmi.Functions={}))}(TcHmi||(TcHmi={})),TcHmi.Functions.registerFunctionEx("DownloadRecipes","TcHmi.Functions.Beckhoff",TcHmi.Functions.Beckhoff.DownloadRecipes);

View File

@@ -0,0 +1,7 @@
declare namespace TcHmi.Functions.Beckhoff {
/**
* Resolves the corresponding enum member string of the current value of a given enum symbol.
*/
function EnumToMemberName(ctx: SelectableRequired<TcHmi.FunctionExpressionContext, 'success' | 'error'>, symbol: TcHmi.Symbol): void;
}
//# sourceMappingURL=EnumToMemberName.d.ts.map

View File

@@ -0,0 +1,51 @@
{
"$schema": "../TcHmiFramework/Schema/FunctionDescription.Schema.json",
"apiVersion": 1,
"version": {
"full": "14.3.340.0",
"major": 14,
"minor": 3,
"build": 340,
"revision": 0
},
"dependencyFiles": [
{
"name": "EnumToMemberName.js",
"type": "JavaScript",
"description": ""
}
],
"function": {
"name": "EnumToMemberName",
"namespace": "TcHmi.Functions.Beckhoff",
"displayName": "EnumToMemberName",
"visible": true,
"waitMode": "Asynchronous",
"injectContextObject": true,
"description": "Resolves the corresponding enum member string of the current value of a given enum symbol.",
"category": "Data Conversion",
"returnValue": {
"type": "tchmi:general#/definitions/String"
},
"arguments": [
{
"name": "ctx",
"displayName": "ctx",
"type": "tchmi:framework#/definitions/ContextReference",
"description": "Context Reference",
"required": true,
"bindable": false
},
{
"name": "symbol",
"displayName": "Symbol",
"type": "tchmi:framework#/definitions/Symbol",
"description": "The target symbol.",
"required": true,
"bindable": true,
"allowSymbolReferenceWatchDelegation": true,
"restParameter": false
}
]
}
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,9 @@
declare namespace TcHmi.Functions.Beckhoff {
/**
* Converts boolean values to enumeration values.
* @param value Value to be converted.
* @param mapping An object that maps numerical enum values to strings.
*/
function EnumToString(value: number, mapping: EnumMapping): string;
}
//# sourceMappingURL=EnumToString.d.ts.map

View File

@@ -0,0 +1,47 @@
{
"$schema": "../TcHmiFramework/Schema/FunctionDescription.Schema.json",
"apiVersion": 1,
"version": {
"full": "14.3.340.0",
"major": 14,
"minor": 3,
"build": 340,
"revision": 0
},
"dependencyFiles": [
{
"name": "EnumToString.js",
"type": "JavaScript",
"description": ""
}
],
"function": {
"name": "EnumToString",
"namespace": "TcHmi.Functions.Beckhoff",
"displayName": "EnumToString",
"visible": true,
"description": "Converts numerical enumeration values to their string names.",
"category": "Data Conversion",
"returnValue": {
"type": "tchmi:general#/definitions/String"
},
"arguments": [
{
"name": "value",
"displayName": "Value",
"type": "tchmi:general#/definitions/Integer",
"description": "Value to be converted",
"required": true,
"bindable": true
},
{
"name": "mapping",
"displayName": "Mapping",
"type": "tchmi:framework#/definitions/EnumMapping",
"description": "An object that maps numerical enum values to strings",
"required": true,
"bindable": true
}
]
}
}

View File

@@ -0,0 +1 @@
"use strict";var TcHmi;!function(TcHmi){!function(Functions){!function(Beckhoff){Beckhoff.EnumToString=function(value,mapping){return mapping?.[value]??""}}(Functions.Beckhoff||(Functions.Beckhoff={}))}(TcHmi.Functions||(TcHmi.Functions={}))}(TcHmi||(TcHmi={})),TcHmi.Functions.registerFunctionEx("EnumToString","TcHmi.Functions.Beckhoff",TcHmi.Functions.Beckhoff.EnumToString);

View File

@@ -0,0 +1,11 @@
declare namespace TcHmi.Functions.Beckhoff {
/**
* Exports filtered events.
* This needs to be triggered by a user interaction (not on load or symbol change).
* @param ctx An object holding functions for success and error.
* @param filter The filter to use for the export. If this is an empty array this exports all events.
* @param filename The filename for the exported file. If this is null/unset a default name is used.
*/
function ExportEvents(ctx: SelectableRequired<TcHmi.Context<void>, 'success' | 'error'>, filter?: Filter | null, filename?: string): void;
}
//# sourceMappingURL=ExportEvents.d.ts.map

View File

@@ -0,0 +1,57 @@
{
"$schema": "../TcHmiFramework/Schema/FunctionDescription.Schema.json",
"apiVersion": 1,
"version": {
"full": "14.3.340.0",
"major": 14,
"minor": 3,
"build": 340,
"revision": 0
},
"dependencyFiles": [
{
"name": "ExportEvents.js",
"type": "JavaScript",
"description": ""
}
],
"function": {
"name": "ExportEvents",
"namespace": "TcHmi.Functions.Beckhoff",
"displayName": "ExportEvents",
"visible": true,
"category": "Event",
"waitMode": "Asynchronous",
"injectContextObject": true,
"description": "Exports one, many or all events of a server. \nThis needs to be triggered by a user interaction (not on load or symbol change).",
"returnValue": null,
"arguments": [
{
"name": "ctx",
"displayName": "ctx",
"type": "tchmi:framework#/definitions/ContextReference",
"description": "Context Reference",
"required": true,
"bindable": false
},
{
"name": "filter",
"displayName": "Filter",
"type": "tchmi:server#/definitions/eventFilter",
"description": "Filter/reduce download list to some events. \nIf this is null/unset this downloads all events.",
"defaultValue": null,
"required": true,
"bindable": true
},
{
"name": "filename",
"displayName": "Filename",
"type": "tchmi:general#/definitions/String",
"description": "The filename for the exported file. \nIf this is null/unset a default name is used.",
"defaultValue": null,
"required": false,
"bindable": true
}
]
}
}

View File

@@ -0,0 +1 @@
"use strict";var TcHmi;!function(TcHmi){!function(Functions){!function(Beckhoff){Beckhoff.ExportEvents=function(ctx,filter,filename){if(!ctx)throw new TypeError("Parameter 'ctx' must be defined.");if(!ctx.success||!ctx.error)throw new TypeError("Parameter 'ctx' must be defined properly. Either 'success' or 'error' or both are missing.");if("function"!=typeof ctx.success||"function"!=typeof ctx.error)throw new TypeError("Parameter 'ctx' must be defined properly. Either 'success' or 'error' or both are not of type 'function'.");TcHmi.Server.Events.exportEvents({filter,filename},data=>data.error?void ctx.error(data.error,{code:data.error,message:TcHmi.Errors[data.error],reason:"Exporting events has failed.",domain:"TcHmi.Functions.Beckhoff.ExportEvents",errors:data.details?[data.details]:void 0}):(TcHmi.Log.info("[Source=Function, Module=TcHmi.Functions.Beckhoff.ExportEvents] Export of events finished successfully."),void ctx.success()))}}(Functions.Beckhoff||(Functions.Beckhoff={}))}(TcHmi.Functions||(TcHmi.Functions={}))}(TcHmi||(TcHmi={})),TcHmi.Functions.registerFunctionEx("ExportEvents","TcHmi.Functions.Beckhoff",TcHmi.Functions.Beckhoff.ExportEvents);

View File

@@ -0,0 +1,10 @@
declare namespace TcHmi.Functions.Beckhoff {
/**
* Logout a different user or all from a TcHmiServer.
* This function is deprecated. Its recommended to use ForceLogoutEx.
* @param username
* @deprecated Its recommended to use ForceLogoutEx.
*/
function ForceLogout(username: string | null | undefined): boolean;
}
//# sourceMappingURL=ForceLogout.d.ts.map

View File

@@ -0,0 +1,41 @@
{
"$schema": "../TcHmiFramework/Schema/FunctionDescription.Schema.json",
"apiVersion": 1,
"version": {
"full": "14.3.340.0",
"major": 14,
"minor": 3,
"build": 340,
"revision": 0
},
"dependencyFiles": [
{
"name": "ForceLogout.js",
"type": "JavaScript",
"description": ""
}
],
"function": {
"name": "ForceLogout",
"namespace": "TcHmi.Functions.Beckhoff",
"displayName": "ForceLogout",
"visible": true,
"category": "UserManagement",
"description": "Logout a different user or all from a TcHmiServer.\nThis function is deprecated. Its recommended to use ForceLogoutEx.",
"returnValue": {
"type": "tchmi:general#/definitions/Boolean",
"description": "Returns a boolean if the logout was called."
},
"arguments": [
{
"name": "username",
"displayName": "Username",
"type": "tchmi:general#/definitions/String",
"description": "Username to logout. Logout all users if left empty.",
"required": true,
"bindable": true,
"restParameter": false
}
]
}
}

View File

@@ -0,0 +1 @@
"use strict";var TcHmi;!function(TcHmi){!function(Functions){!function(Beckhoff){Beckhoff.ForceLogout=function(username){return TcHmi.Server.forceLogout(username,data=>{data.error!==TcHmi.Errors.NONE&&TcHmi.Log.error("[Source=Function, Module=TcHmi.Functions.Beckhoff.ForceLogout] "+TcHmi.Log.buildMessage(data.details))})}}(Functions.Beckhoff||(Functions.Beckhoff={}))}(TcHmi.Functions||(TcHmi.Functions={}))}(TcHmi||(TcHmi={})),TcHmi.Functions.registerFunctionEx("ForceLogout","TcHmi.Functions.Beckhoff",TcHmi.Functions.Beckhoff.ForceLogout);

View File

@@ -0,0 +1,9 @@
declare namespace TcHmi.Functions.Beckhoff {
/**
* Logout a different user or all from a TcHmiServer
* @param ctx Context object which provides context specific data and functions.
* @param username
*/
function ForceLogoutEx(ctx: SelectableRequired<TcHmi.Context, 'success' | 'error'>, username: string | null | undefined): boolean;
}
//# sourceMappingURL=ForceLogoutEx.d.ts.map

View File

@@ -0,0 +1,48 @@
{
"$schema": "../TcHmiFramework/Schema/FunctionDescription.Schema.json",
"apiVersion": 1,
"version": {
"full": "14.3.340.0",
"major": 14,
"minor": 3,
"build": 340,
"revision": 0
},
"dependencyFiles": [
{
"name": "ForceLogoutEx.js",
"type": "JavaScript",
"description": ""
}
],
"function": {
"name": "ForceLogoutEx",
"namespace": "TcHmi.Functions.Beckhoff",
"displayName": "ForceLogoutEx",
"visible": true,
"category": "UserManagement",
"waitMode": "Asynchronous",
"injectContextObject": true,
"description": "Logout a different user or all from a TcHmiServer",
"returnValue": null,
"arguments": [
{
"name": "ctx",
"displayName": "ctx",
"type": "tchmi:framework#/definitions/ContextReference",
"description": "Context Reference",
"required": true,
"bindable": false
},
{
"name": "username",
"displayName": "Username",
"type": "tchmi:general#/definitions/String",
"description": "Username to logout. Logout all users if left empty.",
"required": true,
"bindable": true,
"restParameter": false
}
]
}
}

View File

@@ -0,0 +1 @@
"use strict";var TcHmi;!function(TcHmi){!function(Functions){!function(Beckhoff){Beckhoff.ForceLogoutEx=function(ctx,username){if(!ctx)throw new TypeError("Parameter 'ctx' must be defined.");if(!ctx.success||!ctx.error)throw new TypeError("Parameter 'ctx' must be defined properly. Either 'success' or 'error' or both are missing.");if("function"!=typeof ctx.success||"function"!=typeof ctx.error)throw new TypeError("Parameter 'ctx' must be defined properly. Either 'success' or 'error' or both are not of type 'function'.");return TcHmi.Server.forceLogout(username,data=>{if(data.error!==TcHmi.Errors.NONE)return TcHmi.Log.error("[Source=Function, Module=TcHmi.Functions.Beckhoff.ForceLogoutEx] "+TcHmi.Log.buildMessage(data.details)),void ctx.error(data.error,{code:data.error,message:TcHmi.Errors[data.error],reason:"Logout has failed.",domain:"TcHmi.Functions.Beckhoff.LoginEx",errors:data.details?[data.details]:void 0});ctx.success()})}}(Functions.Beckhoff||(Functions.Beckhoff={}))}(TcHmi.Functions||(TcHmi.Functions={}))}(TcHmi||(TcHmi={})),TcHmi.Functions.registerFunctionEx("ForceLogoutEx","TcHmi.Functions.Beckhoff",TcHmi.Functions.Beckhoff.ForceLogoutEx);

View File

@@ -0,0 +1,11 @@
declare namespace TcHmi.Functions.Beckhoff {
/**
* Format a string.
* Placeholder syntax in format string: '{' to begin placeholder, optional parameter-index with | as seperator, description and '}' to close the placeholder.
* Example: {0|.1f}
* @param formatString
* @param args
*/
function FormatString(formatString: string, ...args: any[]): string;
}
//# sourceMappingURL=FormatString.d.ts.map

View File

@@ -0,0 +1,48 @@
{
"$schema": "../TcHmiFramework/Schema/FunctionDescription.Schema.json",
"apiVersion": 1,
"version": {
"full": "14.3.340.0",
"major": 14,
"minor": 3,
"build": 340,
"revision": 0
},
"dependencyFiles": [
{
"name": "FormatString.js",
"type": "JavaScript",
"description": ""
}
],
"function": {
"name": "FormatString",
"namespace": "TcHmi.Functions.Beckhoff",
"displayName": "FormatString",
"visible": true,
"description": "Format a string. \nPlaceholder syntax in format string: '{' to begin placeholder, optional parameter-index with | as seperator, description and '}' to close the placeholder. \nExample: {0|.1f}",
"category": "Formatting",
"returnValue": {
"type": "tchmi:general#/definitions/String"
},
"arguments": [
{
"name": "formatString",
"displayName": "FormatString",
"type": "tchmi:general#/definitions/String",
"description": "FormatString with placeholder to be formatted",
"required": true,
"bindable": true
},
{
"name": "args",
"displayName": "Args",
"type": "tchmi:general#/definitions/Any",
"description": "Argument to format the placeholder in formatString",
"required": true,
"bindable": true,
"restParameter": true
}
]
}
}

View File

@@ -0,0 +1 @@
"use strict";var TcHmi;!function(TcHmi){!function(Functions){!function(Beckhoff){Beckhoff.FormatString=function(formatString,...args){return tchmi_format_string(formatString,...args)}}(Functions.Beckhoff||(Functions.Beckhoff={}))}(TcHmi.Functions||(TcHmi.Functions={}))}(TcHmi||(TcHmi={})),TcHmi.Functions.registerFunctionEx("FormatString","TcHmi.Functions.Beckhoff",TcHmi.Functions.Beckhoff.FormatString);

View File

@@ -0,0 +1,9 @@
declare namespace TcHmi.Functions.Beckhoff {
/**
* Return a formatted string for the value passed in.
* @param value
* @param maxDecimals
*/
function GaugeValueFormatter(value: number, maxDecimals?: number): string;
}
//# sourceMappingURL=GaugeValueFormatter.d.ts.map

View File

@@ -0,0 +1,48 @@
{
"$schema": "../TcHmiFramework/Schema/FunctionDescription.Schema.json",
"apiVersion": 1,
"version": {
"full": "14.3.340.0",
"major": 14,
"minor": 3,
"build": 340,
"revision": 0
},
"dependencyFiles": [
{
"name": "GaugeValueFormatter.js",
"type": "JavaScript",
"description": ""
}
],
"function": {
"name": "GaugeValueFormatter",
"namespace": "TcHmi.Functions.Beckhoff",
"displayName": "GaugeValueFormatter",
"visible": true,
"description": "Return a formatted string for the value passed in.",
"category": "Formatting",
"returnValue": {
"type": "tchmi:general#/definitions/String"
},
"arguments": [
{
"name": "value",
"displayName": "Value",
"type": "tchmi:general#/definitions/Number",
"description": "The value to format.",
"required": true,
"bindable": true
},
{
"name": "maxDecimals",
"displayName": "MaxDecimals",
"type": "tchmi:general#/definitions/Number",
"description": "How many decimal places the value should have.",
"required": false,
"bindable": true
}
]
},
"dataTypes": []
}

View File

@@ -0,0 +1 @@
"use strict";var TcHmi;!function(TcHmi){!function(Functions){!function(Beckhoff){Beckhoff.GaugeValueFormatter=function(value,maxDecimals=1/0){return null==value?"":(isFinite(maxDecimals)||(maxDecimals=3),value.toFixed(maxDecimals))}}(Functions.Beckhoff||(Functions.Beckhoff={}))}(TcHmi.Functions||(TcHmi.Functions={}))}(TcHmi||(TcHmi={})),TcHmi.Functions.registerFunctionEx("GaugeValueFormatter","TcHmi.Functions.Beckhoff",TcHmi.Functions.Beckhoff.GaugeValueFormatter);

View File

@@ -0,0 +1,7 @@
declare namespace TcHmi.Functions.Beckhoff {
/**
* Gets if the system keyboard should open on focus of a textarea or input element.
*/
function GetAutoOpenSystemKeyboard(): boolean;
}
//# sourceMappingURL=GetAutoOpenSystemKeyboard.d.ts.map

View File

@@ -0,0 +1,30 @@
{
"$schema": "../TcHmiFramework/Schema/FunctionDescription.Schema.json",
"apiVersion": 1,
"version": {
"full": "14.3.340.0",
"major": 14,
"minor": 3,
"build": 340,
"revision": 0
},
"dependencyFiles": [
{
"name": "GetAutoOpenSystemKeyboard.js",
"type": "JavaScript",
"description": ""
}
],
"function": {
"name": "GetAutoOpenSystemKeyboard",
"namespace": "TcHmi.Functions.Beckhoff",
"displayName": "GetAutoOpenSystemKeyboard",
"description": "Gets if the system keyboard should open on focus of a textarea or input element.",
"category": "Keyboard",
"returnValue": {
"type": "tchmi:general#/definitions/Boolean",
"description": "Returns the value for AutoOpenSystemKeyboard."
},
"arguments": []
}
}

View File

@@ -0,0 +1 @@
"use strict";var TcHmi;!function(TcHmi){!function(Functions){!function(Beckhoff){Beckhoff.GetAutoOpenSystemKeyboard=function(){return TcHmi.Keyboard.getAutoOpen()}}(Functions.Beckhoff||(Functions.Beckhoff={}))}(TcHmi.Functions||(TcHmi.Functions={}))}(TcHmi||(TcHmi={})),TcHmi.Functions.registerFunctionEx("GetAutoOpenSystemKeyboard","TcHmi.Functions.Beckhoff",TcHmi.Functions.Beckhoff.GetAutoOpenSystemKeyboard);

View File

@@ -0,0 +1,10 @@
declare namespace TcHmi.Functions.Beckhoff {
/**
* Return the value at the array index position.
* @param ctx Context object which provides context specific data and functions.
* @param arraySymbol
* @param arrayIndex
*/
function GetElementByIndex(ctx: SelectableRequired<TcHmi.FunctionExpressionContext, 'success' | 'error'>, arraySymbol: TcHmi.Symbol | null, arrayIndex: number | null): void;
}
//# sourceMappingURL=GetElementByIndex.d.ts.map

View File

@@ -0,0 +1,56 @@
{
"$schema": "../TcHmiFramework/Schema/FunctionDescription.Schema.json",
"apiVersion": 1,
"version": {
"full": "14.3.340.0",
"major": 14,
"minor": 3,
"build": 340,
"revision": 0
},
"dependencyFiles": [
{
"name": "GetElementByIndex.js",
"type": "JavaScript",
"description": ""
}
],
"function": {
"name": "GetElementByIndex",
"namespace": "TcHmi.Functions.Beckhoff",
"displayName": "GetElementByIndex",
"visible": true,
"description": "Return the value at the array index position.",
"category": "Data Conversion",
"waitMode": "Asynchronous",
"injectContextObject": true,
"returnValue": null,
"arguments": [
{
"name": "ctx",
"displayName": "ctx",
"type": "tchmi:framework#/definitions/ContextReference",
"description": "Context Reference",
"required": true,
"bindable": false
},
{
"name": "arraySymbol",
"displayName": "ArraySymbol",
"type": "tchmi:framework#/definitions/Symbol",
"description": "Value to be trimmed",
"required": true,
"bindable": true,
"allowSymbolReferenceWatchDelegation": true
},
{
"name": "index",
"displayName": "Index",
"type": "tchmi:framework#/definitions/PositiveNumber",
"description": "Index",
"required": true,
"bindable": true
}
]
}
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,7 @@
declare namespace TcHmi.Functions.Beckhoff {
/**
* Returns the current locale string for texts or undefined if no localized Symbol is available.
*/
function GetLocale(): string | undefined;
}
//# sourceMappingURL=GetLocale.d.ts.map

View File

@@ -0,0 +1,31 @@
{
"$schema": "../TcHmiFramework/Schema/FunctionDescription.Schema.json",
"apiVersion": 1,
"version": {
"full": "14.3.340.0",
"major": 14,
"minor": 3,
"build": 340,
"revision": 0
},
"dependencyFiles": [
{
"name": "GetLocale.js",
"type": "JavaScript",
"description": ""
}
],
"function": {
"name": "GetLocale",
"namespace": "TcHmi.Functions.Beckhoff",
"displayName": "GetLocale",
"visible": true,
"category": "Locale",
"description": "Returns the current locale string for texts or undefined if no localized Symbol is available.",
"returnValue": {
"type": "tchmi:general#/definitions/ProjectLocale",
"description": "Returns the current locale."
},
"arguments": []
}
}

View File

@@ -0,0 +1 @@
"use strict";var TcHmi;!function(TcHmi){!function(Functions){!function(Beckhoff){Beckhoff.GetLocale=function(){return TcHmi.Locale.get()}}(Functions.Beckhoff||(Functions.Beckhoff={}))}(TcHmi.Functions||(TcHmi.Functions={}))}(TcHmi||(TcHmi={})),TcHmi.Functions.registerFunctionEx("GetLocale","TcHmi.Functions.Beckhoff",TcHmi.Functions.Beckhoff.GetLocale);

View File

@@ -0,0 +1,8 @@
declare namespace TcHmi.Functions.Beckhoff {
/**
* Returns a localized text by key.
* @param key
*/
function GetLocalizedText(key: string): string;
}
//# sourceMappingURL=GetLocalizedText.d.ts.map

View File

@@ -0,0 +1,39 @@
{
"$schema": "../TcHmiFramework/Schema/FunctionDescription.Schema.json",
"apiVersion": 1,
"version": {
"full": "14.3.340.0",
"major": 14,
"minor": 3,
"build": 340,
"revision": 0
},
"dependencyFiles": [
{
"name": "GetLocalizedText.js",
"type": "JavaScript",
"description": ""
}
],
"function": {
"name": "GetLocalizedText",
"namespace": "TcHmi.Functions.Beckhoff",
"displayName": "GetLocalizedText",
"visible": true,
"description": "Returns a localized text by key.",
"category": "Locale",
"returnValue": {
"type": "tchmi:general#/definitions/String"
},
"arguments": [
{
"name": "key",
"displayName": "Key",
"type": "tchmi:general#/definitions/String",
"description": "The key of the localized text.",
"required": true,
"bindable": true
}
]
}
}

View File

@@ -0,0 +1 @@
"use strict";var TcHmi;!function(TcHmi){!function(Functions){!function(Beckhoff){Beckhoff.GetLocalizedText=function(key){return(new TcHmi.Locale.ApplicationLocalization).getText(key)}}(Functions.Beckhoff||(Functions.Beckhoff={}))}(TcHmi.Functions||(TcHmi.Functions={}))}(TcHmi||(TcHmi={})),TcHmi.Functions.registerFunctionEx("GetLocalizedText","TcHmi.Functions.Beckhoff",TcHmi.Functions.Beckhoff.GetLocalizedText);

View File

@@ -0,0 +1,7 @@
declare namespace TcHmi.Functions.Beckhoff {
/**
* Returns the list of registered locales as array of string.
*/
function GetRegisteredLocales(): string[];
}
//# sourceMappingURL=GetRegisteredLocales.d.ts.map

View File

@@ -0,0 +1,30 @@
{
"$schema": "../TcHmiFramework/Schema/FunctionDescription.Schema.json",
"apiVersion": 1,
"version": {
"full": "14.3.340.0",
"major": 14,
"minor": 3,
"build": 340,
"revision": 0
},
"dependencyFiles": [
{
"name": "GetRegisteredLocales.js",
"type": "JavaScript",
"description": ""
}
],
"function": {
"name": "GetRegisteredLocales",
"namespace": "TcHmi.Functions.Beckhoff",
"displayName": "GetRegisteredLocales",
"visible": true,
"category": "Locale",
"description": "Returns the list of registered locales as array of string.",
"returnValue": {
"type": "tchmi:general#/definitions/Array"
},
"arguments": []
}
}

View File

@@ -0,0 +1 @@
"use strict";var TcHmi;!function(TcHmi){!function(Functions){!function(Beckhoff){Beckhoff.GetRegisteredLocales=function(){return TcHmi.Locale.getRegisteredLocales()}}(Functions.Beckhoff||(Functions.Beckhoff={}))}(TcHmi.Functions||(TcHmi.Functions={}))}(TcHmi||(TcHmi={})),TcHmi.Functions.registerFunctionEx("GetRegisteredLocales","TcHmi.Functions.Beckhoff",TcHmi.Functions.Beckhoff.GetRegisteredLocales);

View File

@@ -0,0 +1,7 @@
declare namespace TcHmi.Functions.Beckhoff {
/**
* Gets the current Themename.
*/
function GetTheme(): string;
}
//# sourceMappingURL=GetTheme.d.ts.map

View File

@@ -0,0 +1,29 @@
{
"$schema": "../TcHmiFramework/Schema/FunctionDescription.Schema.json",
"apiVersion": 1,
"version": {
"full": "14.3.340.0",
"major": 14,
"minor": 3,
"build": 340,
"revision": 0
},
"dependencyFiles": [
{
"name": "GetTheme.js",
"type": "JavaScript",
"description": ""
}
],
"function": {
"name": "GetTheme",
"namespace": "TcHmi.Functions.Beckhoff",
"displayName": "GetTheme",
"description": "Gets the current Themename.",
"category": "Theme",
"returnValue": {
"type": "tchmi:framework#/definitions/ThemeName"
},
"arguments": []
}
}

View File

@@ -0,0 +1 @@
"use strict";var TcHmi;!function(TcHmi){!function(Functions){!function(Beckhoff){Beckhoff.GetTheme=function(){return TcHmi.Theme.get()}}(Functions.Beckhoff||(Functions.Beckhoff={}))}(TcHmi.Functions||(TcHmi.Functions={}))}(TcHmi||(TcHmi={})),TcHmi.Functions.registerFunctionEx("GetTheme","TcHmi.Functions.Beckhoff",TcHmi.Functions.Beckhoff.GetTheme);

View File

@@ -0,0 +1,7 @@
declare namespace TcHmi.Functions.Beckhoff {
/**
* Logout and switch to the login page
*/
function GoToLoginPage(): boolean;
}
//# sourceMappingURL=GoToLoginPage.d.ts.map

View File

@@ -0,0 +1,31 @@
{
"$schema": "../TcHmiFramework/Schema/FunctionDescription.Schema.json",
"apiVersion": 1,
"version": {
"full": "14.3.340.0",
"major": 14,
"minor": 3,
"build": 340,
"revision": 0
},
"dependencyFiles": [
{
"name": "GoToLoginPage.js",
"type": "JavaScript",
"description": ""
}
],
"function": {
"name": "GoToLoginPage",
"namespace": "TcHmi.Functions.Beckhoff",
"displayName": "GoToLoginPage",
"visible": true,
"category": "UserManagement",
"description": "Replace the current view with the login page",
"returnValue": {
"type": "tchmi:general#/definitions/Boolean",
"description": "Returns a boolean if the page change was called."
},
"arguments": []
}
}

View File

@@ -0,0 +1 @@
"use strict";var TcHmi;!function(TcHmi){!function(Functions){!function(Beckhoff){Beckhoff.GoToLoginPage=function(){if(4!==TcHmi.Server.getCurrentUserConfig().state)return!1;const url=new URL(TcHmi.Environment.getServerSidePathAndQuery(),window.location.href);url.searchParams.delete("Location");const baseLocation=url.pathname+url.search+url.hash;return window.location.href=TcHmi.Environment.getHostBaseUri()+"/Login?Location="+baseLocation,!0}}(Functions.Beckhoff||(Functions.Beckhoff={}))}(TcHmi.Functions||(TcHmi.Functions={}))}(TcHmi||(TcHmi={})),TcHmi.Functions.registerFunctionEx("GoToLoginPage","TcHmi.Functions.Beckhoff",TcHmi.Functions.Beckhoff.GoToLoginPage);

View File

@@ -0,0 +1,11 @@
declare namespace TcHmi.Functions.Beckhoff {
/**
* Increment a binding value.
* @param ctx Context object which provides context specific data and functions.
* @param symbol
* @param maxValue
* @param stepWidth
*/
function Increment(ctx: SelectableRequired<TcHmi.Context, 'success' | 'error'>, symbol: TcHmi.Symbol<number> | null, maxValue?: number | null, stepWidth?: number | null): void;
}
//# sourceMappingURL=Increment.d.ts.map

View File

@@ -0,0 +1,68 @@
{
"$schema": "../TcHmiFramework/Schema/FunctionDescription.Schema.json",
"apiVersion": 1,
"version": {
"full": "14.3.340.0",
"major": 14,
"minor": 3,
"build": 340,
"revision": 0
},
"dependencyFiles": [
{
"name": "Increment.js",
"type": "JavaScript",
"description": ""
}
],
"function": {
"name": "Increment",
"namespace": "TcHmi.Functions.Beckhoff",
"displayName": "Increment",
"visible": true,
"description": "Increment a binding value.",
"category": "Data Conversion",
"injectContextObject": true,
"waitMode": "Asynchronous",
"returnValue": null,
"arguments": [
{
"name": "ctx",
"displayName": "ctx",
"type": "tchmi:framework#/definitions/ContextReference",
"description": "Context Reference",
"required": true,
"bindable": false
},
{
"name": "value",
"displayName": "Value",
"type": "tchmi:framework#/definitions/TcHmi.Functions.Beckhoff.Increment.IncrementValueSymbol",
"description": "Value to be incremented",
"required": true,
"bindable": true
},
{
"name": "maxValue",
"displayName": "MaxValue",
"type": "tchmi:general#/definitions/Number",
"description": "Maximum value (inclusive) to which the symbol will incremented",
"required": false,
"bindable": true
},
{
"name": "stepWidth",
"displayName": "StepWidth",
"type": "tchmi:general#/definitions/Number",
"description": "Used step width for increment",
"required": false,
"bindable": true
}
]
},
"dataTypes": [
{
"schema": "Schema/Types.Schema.json"
}
]
}

View File

@@ -0,0 +1 @@
"use strict";var TcHmi;!function(TcHmi){!function(Functions){!function(Beckhoff){Beckhoff.Increment=function(ctx,symbol,maxValue,stepWidth){if(!ctx)throw new TypeError("Parameter 'ctx' must be defined.");if(!ctx.success||!ctx.error)throw new TypeError("Parameter 'ctx' must be defined properly. Either 'success' or 'error' or both are missing.");if("function"!=typeof ctx.success||"function"!=typeof ctx.error)throw new TypeError("Parameter 'ctx' must be defined properly. Either 'success' or 'error' or both are not of type 'function'.");null!=symbol?symbol instanceof TcHmi.Symbol?symbol.readEx(function(data){if(data.error!==TcHmi.Errors.NONE)return void ctx.error(data.error,{code:data.error,message:TcHmi.Errors[data.error],reason:"Symbol value read failed",domain:"TcHmi.Functions.Beckhoff.Increment",errors:data.details?[data.details]:void 0});let value=TcHmi.ValueConverter.toNumber(data.value);if(null===value)return void ctx.error(TcHmi.Errors.E_PARAMETER_INVALID,{code:TcHmi.Errors.E_PARAMETER_INVALID,message:TcHmi.Errors[TcHmi.Errors.E_PARAMETER_INVALID],reason:"Symbol value is no number.",domain:"TcHmi.Functions.Beckhoff.Increment"});let convertedStepWidth=TcHmi.ValueConverter.toNumber(stepWidth,1);isNaN(convertedStepWidth)&&(convertedStepWidth=1),value+=convertedStepWidth;let convertedMaxValue=TcHmi.ValueConverter.toNumber(maxValue);null===convertedMaxValue||isNaN(convertedMaxValue)||convertedMaxValue>=value?symbol.write(value,function(data){data.error===TcHmi.Errors.NONE?ctx.success():ctx.error(data.error,{code:data.error,message:TcHmi.Errors[data.error],reason:"Symbol value write failed",domain:"TcHmi.Functions.Beckhoff.Increment",errors:data.details?[data.details]:void 0})}):ctx.success()}):ctx.error(TcHmi.Errors.E_PARAMETER_INVALID,{code:TcHmi.Errors.E_PARAMETER_INVALID,message:TcHmi.Errors[TcHmi.Errors.E_PARAMETER_INVALID],reason:"Parameter is no symbol.",domain:"TcHmi.Functions.Beckhoff.Increment"}):ctx.error(TcHmi.Errors.E_PARAMETER_INVALID,{code:TcHmi.Errors.E_PARAMETER_INVALID,message:TcHmi.Errors[TcHmi.Errors.E_PARAMETER_INVALID],reason:"Requested symbol is not set.",domain:"TcHmi.Functions.Beckhoff.Increment"})}}(Functions.Beckhoff||(Functions.Beckhoff={}))}(TcHmi.Functions||(TcHmi.Functions={}))}(TcHmi||(TcHmi={})),TcHmi.Functions.registerFunctionEx("Increment","TcHmi.Functions.Beckhoff",TcHmi.Functions.Beckhoff.Increment);

View File

@@ -0,0 +1,8 @@
declare namespace TcHmi.Functions.Beckhoff {
/**
* Converts a bigint value to number
* @param value Value to be converted.
*/
function IsSafeInteger(value: bigint): boolean;
}
//# sourceMappingURL=IsSafeInteger.d.ts.map

View File

@@ -0,0 +1,39 @@
{
"$schema": "../TcHmiFramework/Schema/FunctionDescription.Schema.json",
"apiVersion": 1,
"version": {
"full": "14.3.340.0",
"major": 14,
"minor": 3,
"build": 340,
"revision": 0
},
"dependencyFiles": [
{
"name": "IsSafeInteger.js",
"type": "JavaScript",
"description": ""
}
],
"function": {
"name": "IsSafeInteger",
"namespace": "TcHmi.Functions.Beckhoff",
"displayName": "IsSafeInteger",
"visible": true,
"description": "Checks if a bigint value fits safe into number.",
"category": "Data Conversion",
"returnValue": {
"type": "tchmi:general#/definitions/Boolean"
},
"arguments": [
{
"name": "value",
"displayName": "Value",
"type": "tchmi:general#/definitions/BigInt",
"description": "Value to be converted",
"required": true,
"bindable": true
}
]
}
}

View File

@@ -0,0 +1 @@
"use strict";var TcHmi;!function(TcHmi){!function(Functions){!function(Beckhoff){Beckhoff.IsSafeInteger=function(value){return!(value>Number.MAX_SAFE_INTEGER)&&!(value<Number.MIN_SAFE_INTEGER)}}(Functions.Beckhoff||(Functions.Beckhoff={}))}(TcHmi.Functions||(TcHmi.Functions={}))}(TcHmi||(TcHmi={})),TcHmi.Functions.registerFunctionEx("IsSafeInteger","TcHmi.Functions.Beckhoff",TcHmi.Functions.Beckhoff.IsSafeInteger);

View File

@@ -0,0 +1,13 @@
declare namespace TcHmi.Functions.Beckhoff {
/**
* Return a formatted string for the tooltip passed in.
* @param xValue
* @param yValue
* @param xShow
* @param yShow
* @param xMaxDecimals
* @param yMaxDecimals
*/
function LineChartTooltipFormatter(xValue: number, yValue: number, xShow?: boolean, yShow?: boolean, xMaxDecimals?: number, yMaxDecimals?: number): string;
}
//# sourceMappingURL=LineChartTooltipFormatter.d.ts.map

View File

@@ -0,0 +1,82 @@
{
"$schema": "../TcHmiFramework/Schema/FunctionDescription.Schema.json",
"apiVersion": 1,
"version": {
"full": "14.3.340.0",
"major": 14,
"minor": 3,
"build": 340,
"revision": 0
},
"dependencyFiles": [
{
"name": "LineChartTooltipFormatter.js",
"type": "JavaScript",
"description": ""
}
],
"function": {
"name": "LineChartTooltipFormatter",
"namespace": "TcHmi.Functions.Beckhoff",
"displayName": "LineChartTooltipFormatter",
"visible": false,
"description": "Return a formatted string for the tooltip passed in.",
"category": "Formatting",
"returnValue": {
"type": "tchmi:general#/definitions/String"
},
"arguments": [
{
"name": "xValue",
"displayName": "XValue",
"type": "tchmi:general#/definitions/Number",
"description": "The xValue to format.",
"required": true,
"bindable": true
},
{
"name": "yValue",
"displayName": "YValue",
"type": "tchmi:general#/definitions/Number",
"description": "The yValue to format.",
"required": true,
"bindable": true
},
{
"name": "xShow",
"displayName": "XShow",
"type": "tchmi:general#/definitions/Boolean",
"description": "Shows the xValue to format.",
"required": false,
"bindable": true,
"defaultValue": true
},
{
"name": "yShow",
"displayName": "YShow",
"type": "tchmi:general#/definitions/Boolean",
"description": "Shows the yValue to format.",
"required": false,
"bindable": true,
"defaultValue": true
},
{
"name": "xMaxDecimals",
"displayName": "XMaxDecimals",
"type": "tchmi:general#/definitions/Number",
"description": "How many decimal places the xValue should have.",
"required": false,
"bindable": true
},
{
"name": "yMaxDecimals",
"displayName": "YMaxDecimals",
"type": "tchmi:general#/definitions/Number",
"description": "How many decimal places the yValue should have.",
"required": false,
"bindable": true
}
]
},
"dataTypes": []
}

View File

@@ -0,0 +1 @@
"use strict";var TcHmi;!function(TcHmi){!function(Functions){!function(Beckhoff){Beckhoff.LineChartTooltipFormatter=function(xValue,yValue,xShow=!0,yShow=!0,xMaxDecimals=1/0,yMaxDecimals=1/0){if(null==xValue||null==yValue)return"";isFinite(xMaxDecimals)||(xMaxDecimals=3),isFinite(yMaxDecimals)||(yMaxDecimals=3);let returnString="";return xShow&&(returnString+="x: "+xValue.toFixed(xMaxDecimals)+"<br/>"),yShow&&(returnString+="y: "+yValue.toFixed(yMaxDecimals)),returnString}}(Functions.Beckhoff||(Functions.Beckhoff={}))}(TcHmi.Functions||(TcHmi.Functions={}))}(TcHmi||(TcHmi={})),TcHmi.Functions.registerFunctionEx("LineChartTooltipFormatter","TcHmi.Functions.Beckhoff",TcHmi.Functions.Beckhoff.LineChartTooltipFormatter);

View File

@@ -0,0 +1,11 @@
declare namespace TcHmi.Functions.Beckhoff {
/**
* Prints out an error message in the browsers console depending on TCHMI_CONSOLE_LOG_LEVEL.
* Can log into a browser database, too. See "client" page in config page of the server.
* @param level Log level as a string
* @param message Message as a string
* @param optionalParameters Can be more strings or complex objects to show
*/
function Log(level: 'Error' | 'Warning' | 'Info' | 'Debug', message: string, ...optionalParameters: any[]): void;
}
//# sourceMappingURL=Log.d.ts.map

View File

@@ -0,0 +1,59 @@
{
"$schema": "../TcHmiFramework/Schema/FunctionDescription.Schema.json",
"apiVersion": 1,
"version": {
"full": "14.3.340.0",
"major": 14,
"minor": 3,
"build": 340,
"revision": 0
},
"dependencyFiles": [
{
"name": "Log.js",
"type": "JavaScript",
"description": ""
}
],
"function": {
"name": "Log",
"namespace": "TcHmi.Functions.Beckhoff",
"displayName": "Log",
"visible": true,
"category": "Diagnostics",
"waitMode": "Synchronous",
"injectContextObject": false,
"description": "Logs a message to the browser console.",
"returnValue": null,
"arguments": [
{
"name": "level",
"displayName": "Level",
"type": "tchmi:framework#/definitions/TcHmi.Functions.Beckhoff.Log.Level",
"description": "The log level.",
"defaultValue": "Debug",
"required": true,
"bindable": true
},
{
"name": "message",
"displayName": "Message",
"type": "tchmi:general#/definitions/String",
"description": "The log message.",
"defaultValue": "",
"required": true,
"bindable": true
},
{
"name": "optionalParameters",
"displayName": "OptionalParameters",
"type": "tchmi:general#/definitions/Any",
"description": "Optional parameters of underlying browser log function.",
"defaultValue": "",
"restParameter": true,
"required": false,
"bindable": true
}
]
}
}

View File

@@ -0,0 +1 @@
"use strict";var TcHmi;!function(TcHmi){!function(Functions){!function(Beckhoff){Beckhoff.Log=function(level,message,...optionalParameters){switch(level){case"Error":TcHmi.Log.errorEx(message,...optionalParameters);break;case"Warning":TcHmi.Log.warnEx(message,...optionalParameters);break;case"Info":TcHmi.Log.infoEx(message,...optionalParameters);break;default:TcHmi.Log.debugEx(message,...optionalParameters)}}}(Functions.Beckhoff||(Functions.Beckhoff={}))}(TcHmi.Functions||(TcHmi.Functions={}))}(TcHmi||(TcHmi={})),TcHmi.Functions.registerFunctionEx("Log","TcHmi.Functions.Beckhoff",TcHmi.Functions.Beckhoff.Log);

View File

@@ -0,0 +1,13 @@
declare namespace TcHmi.Functions.Beckhoff {
/**
* Login server session. Reload on login is recommended for security reasons.
* This function is deprecated. Its recommended to use LoginEx or the normal API TcHmi.Server.LoginEx2
* @param username
* @param password
* @param persistent
* @param reload
* @deprecated Its recommended to use LoginEx or the normal API TcHmi.Server.LoginEx2
*/
function Login(username: string | null, password: string | null, persistent?: boolean, reload?: boolean): boolean;
}
//# sourceMappingURL=Login.d.ts.map

View File

@@ -0,0 +1,62 @@
{
"$schema": "../TcHmiFramework/Schema/FunctionDescription.Schema.json",
"apiVersion": 1,
"version": {
"full": "14.3.340.0",
"major": 14,
"minor": 3,
"build": 340,
"revision": 0
},
"dependencyFiles": [
{
"name": "Login.js",
"type": "JavaScript",
"description": ""
}
],
"function": {
"name": "Login",
"namespace": "TcHmi.Functions.Beckhoff",
"displayName": "Login",
"visible": true,
"category": "UserManagement",
"description": "Login server session. Reload on login is recommended for security reasons.\nThis function is deprecated. Its recommended to use LoginEx.",
"returnValue": {
"type": "tchmi:general#/definitions/Boolean",
"description": "Returns a boolean if the login was called."
},
"arguments": [
{
"name": "username",
"displayName": "Username",
"type": "tchmi:general#/definitions/String",
"description": "Username to login.",
"bindable": true
},
{
"name": "password",
"displayName": "Password",
"type": "tchmi:general#/definitions/String",
"description": "Password to login.",
"bindable": true
},
{
"name": "persistent",
"displayName": "Persistent",
"type": "tchmi:general#/definitions/Boolean",
"description": "Should the session be valid even after browser restart.",
"bindable": true,
"defaultValue": true
},
{
"name": "reload",
"displayName": "Reload",
"type": "tchmi:general#/definitions/Boolean",
"description": "Reload on login?",
"bindable": true,
"defaultValue": true
}
]
}
}

View File

@@ -0,0 +1 @@
"use strict";var TcHmi;!function(TcHmi){!function(Functions){!function(Beckhoff){Beckhoff.Login=function(username,password,persistent=!0,reload=!0){return TcHmi.Server.loginEx2(username,password,persistent,reload,null,data=>{data.error!==TcHmi.Errors.NONE&&TcHmi.Log.error("[Source=Function, Module=TcHmi.Functions.Beckhoff.Login] "+TcHmi.Log.buildMessage(data.details))})}}(Functions.Beckhoff||(Functions.Beckhoff={}))}(TcHmi.Functions||(TcHmi.Functions={}))}(TcHmi||(TcHmi={})),TcHmi.Functions.registerFunctionEx("Login","TcHmi.Functions.Beckhoff",TcHmi.Functions.Beckhoff.Login);

View File

@@ -0,0 +1,12 @@
declare namespace TcHmi.Functions.Beckhoff {
/**
* Login server session. Reload on login is recommended for security reasons.
* @param ctx Context object which provides context specific data and functions.
* @param username
* @param password
* @param persistent
* @param reload
*/
function LoginEx(ctx: SelectableRequired<TcHmi.Context, 'success' | 'error'>, username: string | null, password: string | null, persistent?: boolean, reload?: boolean): void;
}
//# sourceMappingURL=LoginEx.d.ts.map

View File

@@ -0,0 +1,69 @@
{
"$schema": "../TcHmiFramework/Schema/FunctionDescription.Schema.json",
"apiVersion": 1,
"version": {
"full": "14.3.340.0",
"major": 14,
"minor": 3,
"build": 340,
"revision": 0
},
"dependencyFiles": [
{
"name": "LoginEx.js",
"type": "JavaScript",
"description": ""
}
],
"function": {
"name": "LoginEx",
"namespace": "TcHmi.Functions.Beckhoff",
"displayName": "LoginEx",
"visible": true,
"category": "UserManagement",
"waitMode": "Asynchronous",
"injectContextObject": true,
"description": "Login server session. Reload on login is recommended for security reasons.",
"returnValue": null,
"arguments": [
{
"name": "ctx",
"displayName": "ctx",
"type": "tchmi:framework#/definitions/ContextReference",
"description": "Context Reference",
"required": true,
"bindable": false
},
{
"name": "username",
"displayName": "Username",
"type": "tchmi:general#/definitions/String",
"description": "Username to login.",
"bindable": true
},
{
"name": "password",
"displayName": "Password",
"type": "tchmi:general#/definitions/String",
"description": "Password to login.",
"bindable": true
},
{
"name": "persistent",
"displayName": "Persistent",
"type": "tchmi:general#/definitions/Boolean",
"description": "Should the session be valid even after browser restart.",
"bindable": true,
"defaultValue": true
},
{
"name": "reload",
"displayName": "Reload",
"type": "tchmi:general#/definitions/Boolean",
"description": "Reload on login?",
"bindable": true,
"defaultValue": true
}
]
}
}

View File

@@ -0,0 +1 @@
"use strict";var TcHmi;!function(TcHmi){!function(Functions){!function(Beckhoff){Beckhoff.LoginEx=function(ctx,username,password,persistent=!0,reload=!0){if(!ctx)throw new TypeError("Parameter 'ctx' must be defined.");if(!ctx.success||!ctx.error)throw new TypeError("Parameter 'ctx' must be defined properly. Either 'success' or 'error' or both are missing.");if("function"!=typeof ctx.success||"function"!=typeof ctx.error)throw new TypeError("Parameter 'ctx' must be defined properly. Either 'success' or 'error' or both are not of type 'function'.");TcHmi.Server.loginEx2(username,password,persistent,reload,null,data=>{if(data.error!==TcHmi.Errors.NONE)return TcHmi.Log.error("[Source=Function, Module=TcHmi.Functions.Beckhoff.LoginEx] "+TcHmi.Log.buildMessage(data.details)),void ctx.error(data.error,{code:data.error,message:TcHmi.Errors[data.error],reason:"Login has failed.",domain:"TcHmi.Functions.Beckhoff.LoginEx",errors:data.details?[data.details]:void 0});ctx.success()})}}(Functions.Beckhoff||(Functions.Beckhoff={}))}(TcHmi.Functions||(TcHmi.Functions={}))}(TcHmi||(TcHmi={})),TcHmi.Functions.registerFunctionEx("LoginEx","TcHmi.Functions.Beckhoff",TcHmi.Functions.Beckhoff.LoginEx);

View File

@@ -0,0 +1,10 @@
declare namespace TcHmi.Functions.Beckhoff {
/**
* Logout server session. Will cause hmi to reload if reload parameter is not set to false.
* This function is deprecated. Its recommended to use LogoutEx.
* @param reload
* @deprecated Its recommended to use LogoutEx or the normal API TcHmi.Server.LogoutEx2
*/
function Logout(reload?: boolean): boolean;
}
//# sourceMappingURL=Logout.d.ts.map

Some files were not shown because too many files have changed in this diff Show More