@wandelbots/wandelbots-js-react-components 2.54.5-pr.feat-jogging-blocked.406.e0dd489 → 2.54.5-pr.feat-upgrade-safety-bar-to-v2.405.d92d77f
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/jogging/JoggingPanel.d.ts.map +1 -1
- package/dist/components/jogging/JoggingStore.d.ts +0 -4
- package/dist/components/jogging/JoggingStore.d.ts.map +1 -1
- package/dist/components/safetyBar/OperationModeIndicator.d.ts +2 -2
- package/dist/components/safetyBar/OperationModeIndicator.d.ts.map +1 -1
- package/dist/components/safetyBar/SafetyBar.d.ts +3 -3
- package/dist/components/safetyBar/SafetyBar.d.ts.map +1 -1
- package/dist/components/safetyBar/SafetyStateIndicator.d.ts +2 -2
- package/dist/components/safetyBar/SafetyStateIndicator.d.ts.map +1 -1
- package/dist/index.cjs +38 -38
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +3209 -3267
- package/dist/index.js.map +1 -1
- package/dist/lib/JoggerConnection.d.ts +1 -2
- package/dist/lib/JoggerConnection.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/jogging/JoggingPanel.tsx +1 -3
- package/src/components/jogging/JoggingStore.ts +0 -22
- package/src/components/safetyBar/OperationModeIndicator.tsx +2 -2
- package/src/components/safetyBar/SafetyBar.tsx +3 -6
- package/src/components/safetyBar/SafetyStateIndicator.tsx +2 -2
- package/src/i18n/locales/de/translations.json +0 -3
- package/src/i18n/locales/en/translations.json +0 -3
- package/src/lib/JoggerConnection.ts +6 -23
- package/dist/components/jogging/JoggingBlocked.d.ts +0 -7
- package/dist/components/jogging/JoggingBlocked.d.ts.map +0 -1
- package/src/components/jogging/JoggingBlocked.tsx +0 -37
|
@@ -32,7 +32,6 @@ export declare class JoggerConnection {
|
|
|
32
32
|
tcp: string;
|
|
33
33
|
orientation: JoggerOrientation;
|
|
34
34
|
onError?: (err: unknown) => void;
|
|
35
|
-
onBlocked?: () => void;
|
|
36
35
|
/**
|
|
37
36
|
* Initialize the jogging connection using jogging endpoint or trajectory endpoint depending on the selected mode.
|
|
38
37
|
*
|
|
@@ -94,7 +93,7 @@ export declare class JoggerConnection {
|
|
|
94
93
|
* axis, either rotating or translating relative to the TCP.
|
|
95
94
|
* Promise resolves only after the motion has completed.
|
|
96
95
|
*/
|
|
97
|
-
runIncrementalCartesianMotion({ currentTcpPose, currentJoints, velocityInRelevantUnits, axis, direction, motion, }: {
|
|
96
|
+
runIncrementalCartesianMotion({ currentTcpPose, currentJoints, coordSystemId, velocityInRelevantUnits, axis, direction, motion, }: {
|
|
98
97
|
currentTcpPose: Pose;
|
|
99
98
|
currentJoints: Vector3Simple;
|
|
100
99
|
coordSystemId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JoggerConnection.d.ts","sourceRoot":"","sources":["../../src/lib/JoggerConnection.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EAG1B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAGV,UAAU,EACV,IAAI,EAEL,MAAM,wBAAwB,CAAA;AAG/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAEjE,MAAM,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;AAEpD,MAAM,MAAM,uBAAuB,GAAG;IAEpC,IAAI,CAAC,EAAE,UAAU,CAAA;IAGjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAA;IAGhC,GAAG,CAAC,EAAE,MAAM,CAAA;IAMZ,WAAW,CAAC,EAAE,iBAAiB,CAAA;CAChC,CAAA;AAMD,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,YAAY,GAAG,KAAK,CAAA;AAGzD,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,MAAM,CAAA;AAEnD,qBAAa,gBAAgB;
|
|
1
|
+
{"version":3,"file":"JoggerConnection.d.ts","sourceRoot":"","sources":["../../src/lib/JoggerConnection.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wandelbots/wandelbots-js-react-components",
|
|
3
|
-
"version": "2.54.5-pr.feat-
|
|
3
|
+
"version": "2.54.5-pr.feat-upgrade-safety-bar-to-v2.405.d92d77f",
|
|
4
4
|
"description": "React UI toolkit for building applications on top of the Wandelbots platform",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -10,7 +10,6 @@ import { useTranslation } from "react-i18next"
|
|
|
10
10
|
import { externalizeComponent } from "../../externalizeComponent"
|
|
11
11
|
import { JoggerConnection } from "../../lib/JoggerConnection"
|
|
12
12
|
import { LoadingCover } from "../LoadingCover"
|
|
13
|
-
import { JoggingBlocked } from "./JoggingBlocked"
|
|
14
13
|
import { JoggingCartesianTab } from "./JoggingCartesianTab"
|
|
15
14
|
import { JoggingJointTab } from "./JoggingJointTab"
|
|
16
15
|
import { JoggingStore } from "./JoggingStore"
|
|
@@ -183,6 +182,7 @@ const JoggingPanelInner = observer(
|
|
|
183
182
|
)
|
|
184
183
|
})}
|
|
185
184
|
</Tabs>
|
|
185
|
+
|
|
186
186
|
{/* Current tab content */}
|
|
187
187
|
<Stack
|
|
188
188
|
flexGrow={1}
|
|
@@ -191,8 +191,6 @@ const JoggingPanelInner = observer(
|
|
|
191
191
|
>
|
|
192
192
|
{renderTabContent()}
|
|
193
193
|
</Stack>
|
|
194
|
-
{/* Overlay when jogging connection is blocked */}
|
|
195
|
-
{store.blocked && <JoggingBlocked store={store} />}
|
|
196
194
|
</Stack>
|
|
197
195
|
)
|
|
198
196
|
},
|
|
@@ -59,9 +59,6 @@ export class JoggingStore {
|
|
|
59
59
|
/** Locks to prevent UI interactions during certain operations */
|
|
60
60
|
locks = new Set<string>()
|
|
61
61
|
|
|
62
|
-
/** Block jogging UI interactions when connection is taken by another jogger */
|
|
63
|
-
blocked: boolean = false
|
|
64
|
-
|
|
65
62
|
/**
|
|
66
63
|
* Id of selected coordinate system from among those defined on the API side
|
|
67
64
|
*/
|
|
@@ -186,21 +183,13 @@ export class JoggingStore {
|
|
|
186
183
|
this.selectedCoordSystemId = coordSystems[0]?.coordinate_system || "world"
|
|
187
184
|
this.selectedTcpId = tcps[0]?.id || ""
|
|
188
185
|
|
|
189
|
-
// Make all properties observable and actions auto-bound
|
|
190
186
|
makeAutoObservable(this, {}, { autoBind: true })
|
|
191
187
|
|
|
192
|
-
// Register blocked watching
|
|
193
|
-
this.jogger.onBlocked = () => {
|
|
194
|
-
this.block()
|
|
195
|
-
}
|
|
196
|
-
|
|
197
188
|
// Load user settings from local storage if available
|
|
198
189
|
this.loadFromLocalStorage()
|
|
199
190
|
|
|
200
191
|
// Automatically save user settings to local storage when save changes
|
|
201
192
|
this.disposers.push(autorun(() => this.saveToLocalStorage()))
|
|
202
|
-
|
|
203
|
-
// Assign joggingStore to window
|
|
204
193
|
;(window as any).joggingStore = this
|
|
205
194
|
}
|
|
206
195
|
|
|
@@ -449,17 +438,6 @@ export class JoggingStore {
|
|
|
449
438
|
this.locks.delete(id)
|
|
450
439
|
}
|
|
451
440
|
|
|
452
|
-
block() {
|
|
453
|
-
this.blocked = true
|
|
454
|
-
}
|
|
455
|
-
|
|
456
|
-
unblock() {
|
|
457
|
-
this.blocked = false
|
|
458
|
-
if (this.jogger.mode === "jogging") {
|
|
459
|
-
this.jogger.initializeJoggingWebsocket()
|
|
460
|
-
}
|
|
461
|
-
}
|
|
462
|
-
|
|
463
441
|
/** Lock the UI until the given async callback resolves */
|
|
464
442
|
async withMotionLock(fn: () => Promise<void>) {
|
|
465
443
|
const lockId = uniqueId()
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useTheme, type PopoverOrigin } from "@mui/material"
|
|
2
|
-
import type {
|
|
2
|
+
import type { OperationMode } from "@wandelbots/nova-js/v2"
|
|
3
3
|
import { observer } from "mobx-react-lite"
|
|
4
4
|
import { Trans, useTranslation } from "react-i18next"
|
|
5
5
|
import OperationModeAutomaticIcon from "./icons/operation-mode-automatic.svg"
|
|
@@ -8,7 +8,7 @@ import OperationModeManualIcon from "./icons/operation-mode-manual.svg"
|
|
|
8
8
|
import { IndicatorWithExplanation } from "./IndicatorWithExplanation"
|
|
9
9
|
|
|
10
10
|
interface OperationModeIndicatorProps {
|
|
11
|
-
operationMode:
|
|
11
|
+
operationMode: OperationMode
|
|
12
12
|
anchorOrigin?: PopoverOrigin
|
|
13
13
|
transformOrigin?: PopoverOrigin
|
|
14
14
|
compact: boolean
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import { Divider, Stack, type PopoverOrigin } from "@mui/material"
|
|
2
|
-
import type {
|
|
3
|
-
RobotControllerStateOperationModeEnum,
|
|
4
|
-
RobotControllerStateSafetyStateEnum,
|
|
5
|
-
} from "@wandelbots/nova-js/v1"
|
|
2
|
+
import type { OperationMode, SafetyStateType } from "@wandelbots/nova-js/v2"
|
|
6
3
|
import { observer } from "mobx-react-lite"
|
|
7
4
|
import { externalizeComponent } from "../../externalizeComponent"
|
|
8
5
|
import { ControllerTypeIndicator } from "./ControllerTypeIndicator"
|
|
@@ -12,8 +9,8 @@ import { SafetyStateIndicator } from "./SafetyStateIndicator"
|
|
|
12
9
|
export interface SafetyBarProps {
|
|
13
10
|
isVirtual: boolean
|
|
14
11
|
motionGroupId: string
|
|
15
|
-
operationMode:
|
|
16
|
-
safetyState:
|
|
12
|
+
operationMode: OperationMode
|
|
13
|
+
safetyState: SafetyStateType
|
|
17
14
|
anchorOrigin?: PopoverOrigin
|
|
18
15
|
transformOrigin?: PopoverOrigin
|
|
19
16
|
compact?: boolean
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useTheme, type PopoverOrigin } from "@mui/material"
|
|
2
|
-
import type {
|
|
2
|
+
import type { SafetyStateType } from "@wandelbots/nova-js/v2"
|
|
3
3
|
import { observer } from "mobx-react-lite"
|
|
4
4
|
import { Trans, useTranslation } from "react-i18next"
|
|
5
5
|
import { assertUnreachable } from "../utils/errorHandling"
|
|
@@ -11,7 +11,7 @@ import SafetyStateStopIcon from "./icons/safety-state-stop.svg"
|
|
|
11
11
|
import { IndicatorWithExplanation } from "./IndicatorWithExplanation"
|
|
12
12
|
|
|
13
13
|
interface SafetyStateIndicatorProps {
|
|
14
|
-
safetyState:
|
|
14
|
+
safetyState: SafetyStateType
|
|
15
15
|
anchorOrigin?: PopoverOrigin
|
|
16
16
|
transformOrigin?: PopoverOrigin
|
|
17
17
|
compact: boolean
|
|
@@ -4,9 +4,6 @@
|
|
|
4
4
|
"Jogging.Velocity.lb": "Geschwindigkeit",
|
|
5
5
|
"General.degree.variable": "{{amount}}°",
|
|
6
6
|
"General.mm.variable": "{{amount}} mm",
|
|
7
|
-
"Jogging.Blocked.ti": "Verbindung blockiert",
|
|
8
|
-
"Jogging.Blocked.lb": "Ein anderer Client kontrolliert das Jogging.",
|
|
9
|
-
"Jogging.Blocked.Reenable.bt": "Wiederherstellen",
|
|
10
7
|
"Jogging.Cartesian.MotionType.lb": "Bewegungstyp",
|
|
11
8
|
"Jogging.Cartesian.Translation.bt": "Translation",
|
|
12
9
|
"Jogging.Cartesian.Rotation.bt": "Rotation",
|
|
@@ -4,9 +4,6 @@
|
|
|
4
4
|
"Jogging.Velocity.lb": "Velocity",
|
|
5
5
|
"General.degree.variable": "{{amount}}°",
|
|
6
6
|
"General.mm.variable": "{{amount}} mm",
|
|
7
|
-
"Jogging.Blocked.ti": "Connection blocked",
|
|
8
|
-
"Jogging.Blocked.lb": "Another client is currently controlling the jogging.",
|
|
9
|
-
"Jogging.Blocked.Reenable.bt": "Restore Panel",
|
|
10
7
|
"Jogging.Cartesian.MotionType.lb": "Motion type",
|
|
11
8
|
"Jogging.Cartesian.Translation.bt": "Translation",
|
|
12
9
|
"Jogging.Cartesian.Rotation.bt": "Rotation",
|
|
@@ -66,7 +66,6 @@ export class JoggerConnection {
|
|
|
66
66
|
// coordinateSystem?: string
|
|
67
67
|
orientation: JoggerOrientation
|
|
68
68
|
onError?: (err: unknown) => void
|
|
69
|
-
onBlocked?: () => void
|
|
70
69
|
|
|
71
70
|
/**
|
|
72
71
|
* Initialize the jogging connection using jogging endpoint or trajectory endpoint depending on the selected mode.
|
|
@@ -249,18 +248,12 @@ export class JoggerConnection {
|
|
|
249
248
|
return
|
|
250
249
|
}
|
|
251
250
|
|
|
252
|
-
if (
|
|
251
|
+
if (
|
|
252
|
+
(data && "error" in data) ||
|
|
253
|
+
data?.result?.kind === "MOTION_ERROR"
|
|
254
|
+
) {
|
|
253
255
|
clearTimeout(connectionFailedTimeout)
|
|
254
|
-
if (
|
|
255
|
-
this.onBlocked &&
|
|
256
|
-
data?.result?.message.includes(
|
|
257
|
-
`Movement request rejected. Another client is currently executing a 'Jogging' motion!`,
|
|
258
|
-
)
|
|
259
|
-
) {
|
|
260
|
-
this.joggingSocket?.dispose()
|
|
261
|
-
this.onBlocked()
|
|
262
|
-
return
|
|
263
|
-
} else if (this.onError) {
|
|
256
|
+
if (this.onError) {
|
|
264
257
|
this.onError(ev.data)
|
|
265
258
|
} else {
|
|
266
259
|
reject(new Error(ev.data))
|
|
@@ -377,7 +370,7 @@ export class JoggerConnection {
|
|
|
377
370
|
async runIncrementalCartesianMotion({
|
|
378
371
|
currentTcpPose,
|
|
379
372
|
currentJoints,
|
|
380
|
-
|
|
373
|
+
coordSystemId,
|
|
381
374
|
velocityInRelevantUnits,
|
|
382
375
|
axis,
|
|
383
376
|
direction,
|
|
@@ -632,16 +625,6 @@ export class JoggerConnection {
|
|
|
632
625
|
)
|
|
633
626
|
}
|
|
634
627
|
|
|
635
|
-
if (
|
|
636
|
-
this.onBlocked &&
|
|
637
|
-
data.result.message.includes(
|
|
638
|
-
`Movement request rejected. Another client is currently executing a 'Jogging' motion!`,
|
|
639
|
-
)
|
|
640
|
-
) {
|
|
641
|
-
this.onBlocked()
|
|
642
|
-
return
|
|
643
|
-
}
|
|
644
|
-
|
|
645
628
|
if (data.result.kind === "INITIALIZE_RECEIVED") {
|
|
646
629
|
messageInitializeMovementResponse(data.result)
|
|
647
630
|
} else if (data.result.kind === "START_RECEIVED") {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"JoggingBlocked.d.ts","sourceRoot":"","sources":["../../../src/components/jogging/JoggingBlocked.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAElD,eAAO,MAAM,cAAc,eAAwB;IAAE,KAAK,EAAE,YAAY,CAAA;CAAE;;CA+BxE,CAAA"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { Alert, AlertTitle, Backdrop, Button, Stack } from "@mui/material"
|
|
2
|
-
import { observer } from "mobx-react-lite"
|
|
3
|
-
import { useTranslation } from "react-i18next"
|
|
4
|
-
import { type JoggingStore } from "./JoggingStore"
|
|
5
|
-
|
|
6
|
-
export const JoggingBlocked = observer(({ store }: { store: JoggingStore }) => {
|
|
7
|
-
const { t } = useTranslation()
|
|
8
|
-
|
|
9
|
-
return (
|
|
10
|
-
<Backdrop
|
|
11
|
-
open={true}
|
|
12
|
-
sx={{
|
|
13
|
-
position: "absolute",
|
|
14
|
-
zIndex: (theme) => theme.zIndex.drawer + 1,
|
|
15
|
-
color: "#fff",
|
|
16
|
-
background: "rgba(15, 15, 15, 0.78)",
|
|
17
|
-
justifyContent: "flex-start",
|
|
18
|
-
alignItems: "flex-start",
|
|
19
|
-
}}
|
|
20
|
-
>
|
|
21
|
-
<Stack sx={{ m: 2, width: "100%" }}>
|
|
22
|
-
<Alert severity="error" sx={{ mb: 2 }}>
|
|
23
|
-
<AlertTitle>{t("Jogging.Blocked.ti")}</AlertTitle>
|
|
24
|
-
{t("Jogging.Blocked.lb")}
|
|
25
|
-
</Alert>
|
|
26
|
-
|
|
27
|
-
<Button
|
|
28
|
-
variant="contained"
|
|
29
|
-
color="error"
|
|
30
|
-
onClick={() => store.unblock()}
|
|
31
|
-
>
|
|
32
|
-
{t("Jogging.Blocked.Reenable.bt")}
|
|
33
|
-
</Button>
|
|
34
|
-
</Stack>
|
|
35
|
-
</Backdrop>
|
|
36
|
-
)
|
|
37
|
-
})
|