Added minimal functionality for Robot teaching
- Added minimal HMI - Added possibility to open and close all chamber doors
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"$schema": "../../../TwinCAT-HMI-Common/JsonSchemas/Language.Schema.json",
|
||||
"locale": "de",
|
||||
"localizedText": {
|
||||
"ButtonApprove": "Bestätigen",
|
||||
"CheckboxDontShowAgain": "Nicht erneut anzeigen"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"$schema": "../../../TwinCAT-HMI-Common/JsonSchemas/Language.Schema.json",
|
||||
"locale": "en",
|
||||
"localizedText": {
|
||||
"ButtonApprove": "Approve",
|
||||
"CheckboxDontShowAgain": "Don't show again"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
.TcHmi_Controls_Helpers_Banner {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
box-sizing: border-box;
|
||||
overflow: hidden;
|
||||
position: absolute;
|
||||
height: auto;
|
||||
top: 0;
|
||||
margin: 10%;
|
||||
max-width: 80%;
|
||||
padding: 16px;
|
||||
}
|
||||
|
||||
.TcHmi_Controls_Helpers_Banner-content
|
||||
.TcHmi_Controls_System_TcHmiControl:not(.TcHmi_Controls_System_TcHmiControl .TcHmi_Controls_System_TcHmiControl) {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.TcHmi_Controls_Helpers_Banner-header-container {
|
||||
position: relative;
|
||||
display: grid;
|
||||
grid-template-columns: auto min-content;
|
||||
margin-top: 0px;
|
||||
min-height: 26px;
|
||||
padding: 5px 10px;
|
||||
}
|
||||
|
||||
.TcHmi_Controls_Helpers_Banner-header-container > h1 {
|
||||
margin: 0;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
margin-left: 40px;
|
||||
}
|
||||
|
||||
.TcHmi_Controls_Helpers_Banner-content {
|
||||
position: relative;
|
||||
flex-grow: 1;
|
||||
flex-shrink: 1;
|
||||
overflow: auto;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.TcHmi_Controls_Helpers_Banner-label-block {
|
||||
display: block;
|
||||
white-space: pre;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
.TcHmi_Controls_Helpers_Banner-label-block:not(:first-child) {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.TcHmi_Controls_Helpers_Banner-footer {
|
||||
position: relative;
|
||||
display: grid;
|
||||
grid-template-columns: auto 60px;
|
||||
}
|
||||
|
||||
.TcHmi_Controls_Helpers_Banner-footer:not(:empty) {
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
.TcHmi_Controls_Helpers_Banner-footer .TcHmi_Controls_System_TcHmiControl {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.TcHmi_Controls_Helpers_Banner-footer .TcHmi_Controls_System_TcHmiControl:not(:first-child) {
|
||||
margin-left: 5px;
|
||||
}
|
||||
@@ -0,0 +1,125 @@
|
||||
// Compatibility file for non-module typescript compiles without adjustments.
|
||||
// Use the following line for modern code (needs adjustments to tsconfig.json#configOptions/paths)
|
||||
// import { TcHmiControl } from "Beckhoff.TwinCAT.HMI.Framework/index.esm.js";
|
||||
// ***************************************************************************
|
||||
|
||||
|
||||
|
||||
|
||||
export declare class ApprovalBanner extends Banner {
|
||||
protected readonly __parentControl?: (TcHmiControl.Control | null) | undefined;
|
||||
protected __approveButton: TcHmiButton;
|
||||
protected __repetitionCheckbox: TcHmiCheckbox;
|
||||
protected __storage: TcHmi.LocalStorage<{
|
||||
dontShowAgain: boolean;
|
||||
}> | undefined;
|
||||
/**
|
||||
* Creates a new Banner instance.
|
||||
* @param targetElement The element the banner is placed over.
|
||||
* @param storageId The storage id to rember if the banner should not be displayed anymore
|
||||
* @param __parentControl The control which owns the Banner.
|
||||
*/
|
||||
constructor(targetElement: HTMLElement, storageId: string | null, __parentControl?: (TcHmiControl.Control | null) | undefined);
|
||||
show(): void;
|
||||
/**
|
||||
* Handler for the onPressed event of the OK button.
|
||||
*/
|
||||
protected __onApproved(): void;
|
||||
/**
|
||||
* Sets texts which can either be localizable or static.
|
||||
*/
|
||||
setTexts(texts: Partial<ApprovalBanner.LocalizableTexts>): void;
|
||||
}
|
||||
export declare namespace ApprovalBanner {
|
||||
interface LocalizableTexts extends Banner.LocalizableTexts {
|
||||
buttonText: TcHmi.Localizable;
|
||||
checkboxText: TcHmi.Localizable;
|
||||
}
|
||||
}
|
||||
import _ApprovalBanner = ApprovalBanner;
|
||||
declare global {
|
||||
namespace TcHmi.Controls.Helpers {
|
||||
let ApprovalBanner: typeof _ApprovalBanner;
|
||||
type ApprovalBanner = _ApprovalBanner;
|
||||
namespace ApprovalBanner {
|
||||
type LocalizableTexts = _ApprovalBanner.LocalizableTexts;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export declare class Banner {
|
||||
#private;
|
||||
protected readonly __parentControl?: (TcHmi.Controls.System.TcHmiControl | null) | undefined;
|
||||
protected __name: string;
|
||||
protected __targetElement: HTMLElement;
|
||||
protected __element: HTMLDivElement;
|
||||
protected __elementHeaderContainer: HTMLDivElement;
|
||||
protected __elementHeader: HTMLHeadingElement;
|
||||
protected __elementContent: HTMLDivElement;
|
||||
protected __elementFooter: HTMLDivElement;
|
||||
/** Controls in this array will be destroyed automatically when the popup is destroyed */
|
||||
protected __childControls: TcHmi.Controls.System.TcHmiControl[];
|
||||
/** Destroyers in this array will be called automatically when the popup is destroyed */
|
||||
protected __destroyers: TcHmi.DestroyFunction[];
|
||||
protected __isShowing: boolean;
|
||||
protected __localizationSymbols: Map<string, {
|
||||
symbol: TcHmi.Symbol<string>;
|
||||
destroyWatch: TcHmi.DestroyFunction;
|
||||
}>;
|
||||
protected readonly __className = "TcHmi_Controls_Helpers_Banner";
|
||||
/**
|
||||
* Creates a new Banner instance.
|
||||
* @param targetElement The element the banner is placed over.
|
||||
* @param __parentControl The control which owns the Banner.
|
||||
*/
|
||||
constructor(targetElement: HTMLElement, __parentControl?: (TcHmi.Controls.System.TcHmiControl | null) | undefined);
|
||||
/**
|
||||
* Gets a value indicating if the banner is currently shown to the user.
|
||||
*/
|
||||
isShowing(): boolean;
|
||||
/**
|
||||
* Shows the banner.
|
||||
*/
|
||||
show(): void;
|
||||
/**
|
||||
* Hides the banner.
|
||||
*/
|
||||
hide(): void;
|
||||
/**
|
||||
* Destroys the banner and all its controls.
|
||||
* @param force If true, child controls will be removed from the parent control before destruction, to ensure destruction in case of keepAlive === true.
|
||||
*/
|
||||
destroy(force?: boolean): void;
|
||||
/**
|
||||
* Watch the given symbol and call the onChange callback every time it changes with the resolved and formatted symbol value.
|
||||
* @param name The name for this symbol. Must be unique across all inheritance layers and further calls for the same localization must use the same name.
|
||||
* @param localization The localization to watch.
|
||||
* @param onChange The callback that is called with the localized and formatted text as a parameter.
|
||||
*/
|
||||
protected __watchLocalization(name: string, localization: TcHmi.FormattedLocalizable, onChange: (localizedText: string) => void): void;
|
||||
/**
|
||||
* Destroys the localization watch with the given name, if it exists.
|
||||
* @param name The name that was used with __watchLoclalization to start watching the symbol.
|
||||
*/
|
||||
protected __unwatchLocalization(name: string): void;
|
||||
/**
|
||||
* Sets texts which can either be localizable or static.
|
||||
*/
|
||||
setTexts(texts: Partial<Banner.LocalizableTexts>): void;
|
||||
}
|
||||
export declare namespace Banner {
|
||||
interface LocalizableTexts {
|
||||
headerText: TcHmi.Localizable;
|
||||
contentText: TcHmi.Localizable;
|
||||
}
|
||||
}
|
||||
import _Banner = Banner;
|
||||
declare global {
|
||||
namespace TcHmi.Controls.Helpers {
|
||||
let Banner: typeof _Banner;
|
||||
type Banner = _Banner;
|
||||
namespace Banner {
|
||||
type LocalizableTexts = _Banner.LocalizableTexts;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="pfade" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="80px" height="80px" viewBox="0 0 80 80" enable-background="new 0 0 80 80" xml:space="preserve">
|
||||
<path fill="none" stroke="#1A171B" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="
|
||||
M44.532,59.876"/>
|
||||
<g>
|
||||
|
||||
<polygon fill="none" stroke="#F39200" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="
|
||||
64.432,61.593 13.874,61.593 39.243,18.619 "/>
|
||||
<g>
|
||||
<path fill="#F39200" d="M39.153,54.644c-1.387,0-2.455-1.126-2.455-2.424c0-1.387,1.068-2.457,2.455-2.457
|
||||
c1.357,0,2.427,1.098,2.427,2.457C41.58,53.518,40.482,54.644,39.153,54.644z M40.569,46.071
|
||||
c-0.059,0.548-0.174,0.522-0.606,0.522h-1.646c-0.434,0-0.55,0.026-0.606-0.522l-0.637-11.27
|
||||
c-0.028-0.491-0.028-0.533-0.028-0.703c0-0.379,0.287-0.505,0.519-0.505h3.091c0.231,0,0.577,0.14,0.577,0.516
|
||||
c0,0.172,0,0.129-0.028,0.621L40.569,46.071z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
@@ -0,0 +1,10 @@
|
||||
/** TcHmiBanners theme dependend style for theme: Base-Dark */
|
||||
.TcHmi_Controls_Helpers_Banner {
|
||||
background: #1b1b1f;
|
||||
box-shadow: rgba(89, 89, 89, 0.75) 0 1px 10px 2px;
|
||||
}
|
||||
|
||||
.TcHmi_Controls_Helpers_Banner-header-container {
|
||||
background: url(Images/warning.svg) no-repeat 0% 0%;
|
||||
background-size: 48px;
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="pfade" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="80px" height="80px" viewBox="0 0 80 80" enable-background="new 0 0 80 80" xml:space="preserve">
|
||||
<path fill="none" stroke="#1A171B" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="
|
||||
M44.532,59.876"/>
|
||||
<g>
|
||||
|
||||
<polygon fill="none" stroke="#F39200" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="
|
||||
64.432,61.593 13.874,61.593 39.243,18.619 "/>
|
||||
<g>
|
||||
<path fill="#F39200" d="M39.153,54.644c-1.387,0-2.455-1.126-2.455-2.424c0-1.387,1.068-2.457,2.455-2.457
|
||||
c1.357,0,2.427,1.098,2.427,2.457C41.58,53.518,40.482,54.644,39.153,54.644z M40.569,46.071
|
||||
c-0.059,0.548-0.174,0.522-0.606,0.522h-1.646c-0.434,0-0.55,0.026-0.606-0.522l-0.637-11.27
|
||||
c-0.028-0.491-0.028-0.533-0.028-0.703c0-0.379,0.287-0.505,0.519-0.505h3.091c0.231,0,0.577,0.14,0.577,0.516
|
||||
c0,0.172,0,0.129-0.028,0.621L40.569,46.071z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
@@ -0,0 +1,10 @@
|
||||
/** TcHmiBanners theme dependend style for theme: Base */
|
||||
.TcHmi_Controls_Helpers_Banner {
|
||||
background: #f6f7f8;
|
||||
box-shadow: rgba(0, 0, 0, 0.2) 0 1px 10px 2px;
|
||||
}
|
||||
|
||||
.TcHmi_Controls_Helpers_Banner-header-container {
|
||||
background: url(Images/warning.svg) no-repeat 0% 0%;
|
||||
background-size: 48px;
|
||||
}
|
||||
Reference in New Issue
Block a user