UNPKG

@wandelbots/wandelbots-js-react-components

Version:

React UI toolkit for building applications on top of the Wandelbots platform

205 lines 8.11 kB
import type { CoordinateSystem, JoggerConnection, MotionGroupSpecification, RobotTcp } from "@wandelbots/nova-js/v1"; import { type IReactionDisposer } from "mobx"; declare const discreteIncrementOptions: { id: string; mm: number; degrees: number; }[]; declare const incrementOptions: readonly [{ readonly id: "continuous"; }, ...{ id: string; mm: number; degrees: number; }[]]; export type JoggingAxis = "x" | "y" | "z"; export type JoggingDirection = "+" | "-"; export type DiscreteIncrementOption = (typeof discreteIncrementOptions)[number]; export type IncrementOption = (typeof incrementOptions)[number]; export type IncrementOptionId = IncrementOption["id"]; export declare const ORIENTATION_IDS: string[]; export type OrientationId = (typeof ORIENTATION_IDS)[number]; export type IncrementJogInProgress = { direction: JoggingDirection; axis: JoggingAxis; }; export declare class JoggingStore { readonly jogger: JoggerConnection; readonly motionGroupSpec: MotionGroupSpecification; readonly coordSystems: CoordinateSystem[]; readonly tcps: RobotTcp[]; selectedTabId: "cartesian" | "joint" | "debug"; /** * State of the jogging panel. Starts as "inactive" */ activationState: "inactive" | "loading" | "active"; /** * If an error occurred connecting to the jogging websocket */ activationError: unknown | null; /** To avoid activation race conditions */ activationCounter: number; /** Locks to prevent UI interactions during certain operations */ locks: Set<string>; /** * Id of selected coordinate system from among those defined on the API side */ selectedCoordSystemId: string; /** Id of selected tool center point from among the options available on the robot */ selectedTcpId: string; /** * Whether the user is jogging in the coordinate system or tool orientation. * When in tool orientation, the robot moves in a direction relative to the * attached tool rotation. */ selectedOrientation: OrientationId; /** * Id of selected increment amount for jogging. Options are defined by robot pad. * When non-continuous, jogging moves the robot by a fixed number of mm or degrees * each time the button is pressed, for extra precision */ selectedIncrementId: IncrementOptionId; /** * When on the cartesian tab, jogging can be either translating or rotating * around the TCP. */ selectedCartesianMotionType: "translate" | "rotate"; /** * If the jogger is busy running an incremental jog, this will be set * with the information about the motion */ incrementJogInProgress: IncrementJogInProgress | null; /** How fast the robot goes when doing cartesian translate jogging in mm/s */ translationVelocityMmPerSec: number; /** How fast the robot goes when doing cartesian or joint rotation jogging in °/s */ rotationVelocityDegPerSec: number; /** Minimum translation velocity user can choose on the velocity slider in °/s */ minTranslationVelocityMmPerSec: number; /** Maximum translation velocity user can choose on the velocity slider in °/s */ maxTranslationVelocityMmPerSec: number; /** Minimum rotation velocity user can choose on the velocity slider in °/s */ minRotationVelocityDegPerSec: number; /** Maximum rotation velocity user can choose on the velocity slider in °/s */ maxRotationVelocityDegPerSec: number; /** Whether to show the coordinate system select dropdown in the UI */ showCoordSystemSelect: boolean; /** Whether to show the TCP select dropdown in the UI */ showTcpSelect: boolean; /** Whether to show the orientation select dropdown in the UI */ showOrientationSelect: boolean; /** Whether to show the increment select dropdown in the UI */ showIncrementSelect: boolean; /** Whether to show icons in the jogging tabs */ showTabIcons: boolean; /** Whether to show the label to the right of the velocity slider */ showVelocitySliderLabel: boolean; /** Whether to show the legend before the slider */ showVelocityLegend: boolean; /** Whether to show the legend before the joints */ showJointsLegend: boolean; disposers: IReactionDisposer[]; /** * Load a jogging store with the relevant data it needs * from the backend */ static loadFor(jogger: JoggerConnection): Promise<JoggingStore>; constructor(jogger: JoggerConnection, motionGroupSpec: MotionGroupSpecification, coordSystems: CoordinateSystem[], tcps: RobotTcp[]); dispose(): void; get coordSystemCountByName(): import("lodash").Dictionary<number>; deactivate(): Promise<void>; /** Activate the jogger with current settings */ activate(): Promise<JoggerConnection>; loadFromLocalStorage(): void; saveToLocalStorage(): void; get isLocked(): boolean; get localStorageSave(): { selectedTabId: "debug" | "cartesian" | "joint"; selectedCoordSystemId: string; selectedTcpId: string; selectedOrientation: string; selectedIncrementId: string; selectedCartesianMotionType: "translate" | "rotate"; }; get tabs(): readonly [{ readonly id: "cartesian"; readonly label: "cartesian"; }, { readonly id: "joint"; readonly label: "joint"; }]; get incrementOptions(): readonly [{ readonly id: "continuous"; }, ...{ id: string; mm: number; degrees: number; }[]]; get discreteIncrementOptions(): { id: string; mm: number; degrees: number; }[]; get incrementOptionsById(): import("lodash").Dictionary<{ id: string; mm: number; degrees: number; } | { readonly id: "continuous"; }>; get tabsById(): import("lodash").Dictionary<{ readonly id: "cartesian"; readonly label: "cartesian"; } | { readonly id: "joint"; readonly label: "joint"; }>; get currentTab(): { readonly id: "cartesian"; readonly label: "cartesian"; } | { readonly id: "joint"; readonly label: "joint"; }; get tabIndex(): number; get coordSystemsById(): import("lodash").Dictionary<CoordinateSystem>; get selectedCoordSystem(): CoordinateSystem; /** * The id of the coordinate system to use for jogging. * If in tool orientation, this is set to "tool", not the * selected coordinate system. */ get activeCoordSystemId(): string; get tcpsById(): import("lodash").Dictionary<RobotTcp>; get activeDiscreteIncrement(): { id: string; mm: number; degrees: number; } | undefined; /** The selected rotation velocity converted to radians per second */ get rotationVelocityRadsPerSec(): number; /** Selected velocity in mm/sec or deg/sec */ get velocityInDisplayUnits(): number; /** Minimum selectable velocity in mm/sec or deg/sec */ get minVelocityInDisplayUnits(): number; /** Maximum selectable velocity in mm/sec or deg/sec */ get maxVelocityInDisplayUnits(): number; /** * For velocity unit purposes, joint and cartesian rotation * are treated as the same type of motion */ get currentMotionType(): "translate" | "rotate"; onTabChange(_event: React.SyntheticEvent, newValue: number): void; setSelectedCoordSystemId(id: string): void; setSelectedTcpId(id: string): void; setSelectedOrientation(orientation: OrientationId): void; setSelectedIncrementId(id: IncrementOptionId): void; setCurrentIncrementJog(incrementJog: IncrementJogInProgress | null): void; setVelocityFromSlider(velocity: number): void; setSelectedCartesianMotionType(type: "translate" | "rotate"): void; lock(id: string): void; unlock(id: string): void; /** Lock the UI until the given async callback resolves */ withMotionLock(fn: () => Promise<void>): Promise<void>; } export {}; //# sourceMappingURL=JoggingStore.d.ts.map