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,150 @@
import * as TcHmiTrendLineChart from './TcHmiTrendLineChart.esm.js';
import type { Control as TcHmiCombobox } from '../TcHmiCombobox/TcHmiCombobox.esm.js';
import type { Control as TcHmiTimespanPicker } from '../TcHmiTimespanPicker/TcHmiTimespanPicker.esm.js';
import type { Control as TcHmiDateTimePicker } from '../TcHmiDateTimePicker/TcHmiDateTimePicker.esm.js';
import type { Control as TcHmiButton } from '../TcHmiButton/TcHmiButton.esm.js';
import { Control as TcHmiToggleButton } from '../TcHmiToggleButton/TcHmiToggleButton.esm.js';
export declare class Menubar {
private localePrefix;
/** Create the menubar div element with all controls */
constructor(trendlineChart: TcHmiTrendLineChart.Control);
/** LineChart element to which the menu bar should be added. */
protected __trendlineChart: TcHmiTrendLineChart.Control;
/** Reference to the div element used as parent for buttons (top most layer) as jquery object. */
protected __elementMenuBarDropdown: JQuery;
/** Stores the menuButtons as System.TcHmiControl[] */
protected __menuBarControls: {
startCombobox: TcHmiCombobox<string>;
startTimespanPicker: TcHmiTimespanPicker;
startTimespanButton: TcHmiButton;
startDateTimePicker: TcHmiDateTimePicker;
startDateTimeButton: TcHmiButton;
endCombobox: TcHmiCombobox<string>;
endTimespanPicker: TcHmiTimespanPicker;
endTimespanButton: TcHmiButton;
endDateTimePicker: TcHmiDateTimePicker;
endDateTimeButton: TcHmiButton;
resetButton: TcHmiButton;
stopButton: TcHmiButton;
panXToggleButton: TcHmiToggleButton;
panXYToggleButton: TcHmiToggleButton;
zoomXToggleButton: TcHmiToggleButton;
zoomXYToggleButton: TcHmiToggleButton;
resetZoomButton: TcHmiButton;
settingsButton: TcHmiButton;
showStatisticalDataToggleButton: TcHmiToggleButton;
optionsButton: TcHmiButton;
} | null;
/** Reference to the div element with all menubarControls as jquery object. */
protected __menubar: JQuery;
private __lineGraphDescriptionsEditor;
/** Reference to the div element used as settings dialog as jquery object. */
protected __elementSettingsDialog: JQuery;
/** Events */
private __destroyEvents;
/**
* Destroy the current control instance.
* Will be called automatically if system destroys control!
*/
destroy(): void;
private __addMenubarEvents;
/** Is called if onPressed event of start or stop button has raised. */
__onPressed(event: TcHmi.EventProvider.Event): void;
/** Is called if activeChangedEvent of toggleButtons has raised. */
__onIsActiveChanged(event: TcHmi.EventProvider.Event): void;
/** Is called if activeChangedEvent of toggleButtons has raised. */
__onValueChanged(event: TcHmi.EventProvider.Event): void;
/** Is called if onPressed event of ok button has raised. */
private __onOkPressed;
/** Is called if onPressed event of cancel button has raised. */
private __onCancelPressed;
/** Is called if onPressed event of cancel button has raised. */
private __onResetSettingsPressed;
/**
* Returns an event handler for the onUserInteractionFinished events of the start or end comboboxes.
* @param combobox The combobox to generate the handler for.
* @param action What to do with the value of the combobox.
*/
__getTimeComboboxHandler(combobox: TcHmiCombobox<string>, action: (value: string | null) => void): (event: TcHmi.EventProvider.Event) => void;
/** Open the settings popup. */
openSettingsPopup(): void;
/** Show options-div (with buttons which can not be shown) */
showOptions(): void;
/** Remove __elementMenuBarDropdown from TopMostLayer */
removeElementFromTopMostLayer(): void;
/** Calculated which menuButtons added to topMostLayer */
calcMenuButtons(): void;
/**
* Gets the value of menubar
* @returns The parent element of the menubar
*/
getMenubar(): JQuery<HTMLElement>;
/**
* Sets the active toggle button from mouseMode
* @param mouseMode The mouseMode value from control
*/
setActiveToggleButton(mouseMode: TcHmiTrendLineChart.MouseMode): void;
/**
* Get the active toggle button
* @returns The active toggle button
*/
getActiveToggleButton(): TcHmiToggleButton | null;
/**
* Get the menubarControls
* @returns The menubarControls
*/
getMenubarControls(): {
startCombobox: TcHmiCombobox<string>;
startTimespanPicker: TcHmiTimespanPicker;
startTimespanButton: TcHmiButton;
startDateTimePicker: TcHmiDateTimePicker;
startDateTimeButton: TcHmiButton;
endCombobox: TcHmiCombobox<string>;
endTimespanPicker: TcHmiTimespanPicker;
endTimespanButton: TcHmiButton;
endDateTimePicker: TcHmiDateTimePicker;
endDateTimeButton: TcHmiButton;
resetButton: TcHmiButton;
stopButton: TcHmiButton;
panXToggleButton: TcHmiToggleButton;
panXYToggleButton: TcHmiToggleButton;
zoomXToggleButton: TcHmiToggleButton;
zoomXYToggleButton: TcHmiToggleButton;
resetZoomButton: TcHmiButton;
settingsButton: TcHmiButton;
showStatisticalDataToggleButton: TcHmiToggleButton;
optionsButton: TcHmiButton;
} | null;
/**
* Sets the active toggle button from mouseMode
* @param mouseMode The mouseMode value from control
*/
setMenubarButtonsEnabled(enableMenubarControls: {
startCombobox: boolean;
startTimespanPicker: boolean;
startTimespanButton: boolean;
startDateTimePicker: boolean;
startDateTimeButton: boolean;
endCombobox: boolean;
endTimespanPicker: boolean;
endTimespanButton: boolean;
endDateTimePicker: boolean;
endDateTimeButton: boolean;
resetButton: boolean;
stopButton: boolean;
panXToggleButton: boolean;
panXYToggleButton: boolean;
zoomXToggleButton: boolean;
zoomXYToggleButton: boolean;
resetZoomButton: boolean;
settingsButton: boolean;
showStatisticalDataToggleButton: boolean;
optionsButton: boolean;
}): void;
/** Update the srcData auf the start combobox */
updateSrcDataStart(): void;
/** Update the srcData auf the end combobox */
updateSrcDataEnd(): void;
setStatisticalDataToggleButtonToggleState(state: boolean): void;
}
//# sourceMappingURL=Menubar.d.ts.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,23 @@
/**
* Check if the string is a Datetime
*/
export declare function isDatetime(date: string | null | undefined): date is string;
/**
* Check if the string is a keyWord (Latest, First)
*/
export declare function isKeyword(keyword: string | null): keyword is string;
/**
* Check if the string is a timespan
*/
export declare function isTimespan(timespan: string | null | undefined): timespan is string;
/**
* Convert milliseconds to iso 8601 string
* @param milliSec Milliseconds
*/
export declare function __milliSecToIso(milliSec: number): string;
/**
* Convert iso 8601 string to milliseconds
* @param t Iso 8601 string
*/
export declare function __isoToMilliSec(t: string): number;
//# sourceMappingURL=TcHmiTrendHelper.d.ts.map

View File

@@ -0,0 +1 @@
export function isDatetime(date){return!!date&&!isNaN(new Date(date).getTime())}export function isKeyword(keyword){switch(keyword){case"Latest":case"First":return!0}return!1}export function isTimespan(timespan){return!!timespan&&(!isKeyword(timespan)&&!isDatetime(timespan))}export function __milliSecToIso(milliSec){if(0===milliSec)return"PT0S";let isneg=!1;milliSec<0&&(isneg=!0,milliSec*=-1);let years=Math.floor(milliSec/3154e7),months=Math.floor(milliSec%3154e7/2628e6),days=Math.floor(milliSec%3154e7%2628e6/864e5),hours=Math.floor(milliSec%3154e7%2628e6%864e5/36e5),minutes=Math.floor(milliSec%3154e7%2628e6%864e5%36e5/6e4),seconds=Math.floor(milliSec%3154e7%2628e6%864e5%36e5%6e4/1e3),f=Math.floor(milliSec%3154e7%2628e6%864e5%36e5%6e4%1e3),isoString="";return isneg&&(isoString+="-"),isoString+="P",years>0&&(isoString+=years+"Y"),months>0&&(isoString+=months+"M"),days>0&&(isoString+=days+"D"),(hours>0||minutes>0||seconds>0||f>0)&&(isoString+="T"),hours>0&&(isoString+=hours+"H"),minutes>0&&(isoString+=minutes+"M"),(seconds>0||0===days&&0===hours&&0===minutes)&&(isoString+=seconds),f>0&&(isoString+="."+("00"+f).slice(-3).replace(/\.?0+$/,"")),(f>0||seconds>0)&&(isoString+="S"),isoString}export function __isoToMilliSec(t){let seconds=0,minutes=0,hours=0,days=0,months=0,years=0,isneg=!1,isTime=!1,current=t.split("");for(let i=0,ii=current.length;i<ii;i++){let num=0,sNum="";for(;current[i]>="0"&&current[i]<="9"||"."===current[i];)sNum+=current[i],i++,num=parseFloat(sNum);switch(current[i]){case"-":isneg=!0;break;case"Y":years=num;break;case"D":days=num;break;case"T":isTime=!0;break;case"H":hours=num;break;case"M":isTime?minutes=num:months=num;break;case"S":seconds=num}}let milliSec=3154e7*years;return milliSec+=2628e6*months,milliSec+=864e5*days,milliSec+=36e5*hours,milliSec+=6e4*minutes,milliSec+=1e3*seconds,isneg&&(milliSec*=-1),milliSec}