ui_migration fix(bugfix): found caused eventBus/this., and {x,y,z,absolute} parsing arguments incorrectly, BUG:keys-arrows-wont-move prevents @finished emit status for task
This commit is contained in:
parent
0296cef089
commit
9992ca642c
4 changed files with 77 additions and 49 deletions
|
|
@ -154,10 +154,10 @@ export default {
|
|||
|
||||
// Focus keys
|
||||
Mousetrap.bind("pageup", () => {
|
||||
eventBus.emit("globalMoveStepEvent", 0, 0, 1);
|
||||
eventBus.emit("globalMoveStepEvent", {x: 0, y: 0, z: 1});
|
||||
});
|
||||
Mousetrap.bind("pagedown", () => {
|
||||
eventBus.emit("globalMoveStepEvent", 0, 0, -1);
|
||||
eventBus.emit("globalMoveStepEvent", {x: 0, y: 0, z: -1});
|
||||
});
|
||||
this.keyboardManual.push({
|
||||
shortcut: "pgup / pgdn",
|
||||
|
|
@ -166,7 +166,7 @@ export default {
|
|||
|
||||
// Capture
|
||||
Mousetrap.bind("c", () => {
|
||||
eventBus.emit("globalCaptureEvent");
|
||||
eventBus.emit("globalCaptureEvent", {});
|
||||
});
|
||||
this.keyboardManual.push({
|
||||
shortcut: "c",
|
||||
|
|
@ -175,7 +175,7 @@ export default {
|
|||
|
||||
// Autofocus
|
||||
Mousetrap.bind("a", () => {
|
||||
eventBus.emit("globalFastAutofocusEvent");
|
||||
eventBus.emit("globalFastAutofocusEvent", {});
|
||||
});
|
||||
this.keyboardManual.push({
|
||||
shortcut: "a",
|
||||
|
|
@ -184,10 +184,10 @@ export default {
|
|||
|
||||
// Increment/decrement tab
|
||||
Mousetrap.bind("shift+down", () => {
|
||||
eventBus.emit("globalIncrementTab");
|
||||
eventBus.emit("globalIncrementTab", {});
|
||||
});
|
||||
Mousetrap.bind("shift+up", () => {
|
||||
eventBus.emit("globalDecrementTab");
|
||||
eventBus.emit("globalDecrementTab", {});
|
||||
});
|
||||
this.keyboardManual.push({
|
||||
shortcut: "shift+↑ / shift+↓",
|
||||
|
|
@ -250,7 +250,7 @@ export default {
|
|||
) {
|
||||
var z_rel = event.deltaY / 100;
|
||||
// Emit a signal to move, acted on by panelControl.vue
|
||||
eventBus.emit("globalMoveStepEvent", 0, 0, z_rel, false);
|
||||
eventBus.emit("globalMoveStepEvent", {x: 0, y: 0, z: z_rel, absolute: false});
|
||||
}
|
||||
},
|
||||
|
||||
|
|
@ -277,7 +277,7 @@ export default {
|
|||
}
|
||||
// Make a position request
|
||||
// Emit a signal to move, acted on by panelControl.vue
|
||||
eventBus.emit("globalMoveStepEvent", x_rel, y_rel, z_rel);
|
||||
eventBus.emit("globalMoveStepEvent", {x: x_rel, y: y_rel, z: 0});
|
||||
},
|
||||
},
|
||||
};
|
||||
|
|
|
|||
|
|
@ -134,22 +134,48 @@ export default {
|
|||
},
|
||||
|
||||
watch: {
|
||||
progress(newval) {
|
||||
eventBus.emit("beforeUpdate:progress", newval);
|
||||
progress: {
|
||||
handler(newval) {
|
||||
//this.$emit("update:progress", newval);
|
||||
eventBus.emit("update:progress", newval);
|
||||
//eventBus.emit("beforeUpdate:progress", newval);
|
||||
},
|
||||
deep: true,
|
||||
immediate: true // Optional: triggers immediately on component load
|
||||
},
|
||||
taskStarted(newval) {
|
||||
eventBus.emit("beforeUpdate:taskStarted", newval);
|
||||
taskStarted: {
|
||||
handler(newval) {
|
||||
//this.$emit("update:taskStarted", newval);
|
||||
eventBus.emit("update:taskStarted", newval);
|
||||
//eventBus.emit("beforeUpdate:taskStarted", newval);
|
||||
},
|
||||
deep: true
|
||||
},
|
||||
taskRunning(newval) {
|
||||
eventBus.emit("beforeUpdate:taskRunning", newval);
|
||||
taskRunning: {
|
||||
handler(newval) {
|
||||
//this.$emit("update:taskRunning", newval);
|
||||
eventBus.emit("update:taskRunning", newval);
|
||||
//eventBus.emit("beforeUpdate:taskRunning", newval);
|
||||
},
|
||||
deep: true
|
||||
},
|
||||
log(newval) {
|
||||
eventBus.emit("beforeUpdate:log", newval);
|
||||
log: {
|
||||
handler(newval) {
|
||||
//this.$emit("update:log", newval);
|
||||
eventBus.emit("update:log", newval);
|
||||
//eventBus.emit("beforeUpdate:log", newval);
|
||||
},
|
||||
deep: true
|
||||
},
|
||||
taskStatus(newval) {
|
||||
eventBus.emit("beforeUpdate:taskStatus", newval);
|
||||
},
|
||||
},
|
||||
taskStatus: {
|
||||
handler(newval) {
|
||||
//this.$emit("update:taskStatus", newval);
|
||||
eventBus.emit("update:taskStatus", newval);
|
||||
//eventBus.emit("beforeUpdate:taskStatus", newval);
|
||||
},
|
||||
deep: true
|
||||
}
|
||||
},
|
||||
|
||||
mounted() {
|
||||
// Check for already running tasks
|
||||
|
|
@ -168,11 +194,7 @@ export default {
|
|||
|
||||
beforeUnmount() {
|
||||
if (this.submitOnEvent) {
|
||||
eventBus.off(this.submitOnEvent, () => {
|
||||
if (this.isDisabled) return;
|
||||
// Bootstrap task if button is not disabled.
|
||||
this.bootstrapTask();
|
||||
});
|
||||
eventBus.off(this.submitOnEvent);
|
||||
}
|
||||
},
|
||||
|
||||
|
|
@ -231,6 +253,7 @@ export default {
|
|||
|
||||
async startTask() {
|
||||
// Starts a new Action task
|
||||
console.log("Starting task with data:", this.submitData);
|
||||
eventBus.emit("submit", this.submitData);
|
||||
// Send a request to start a task
|
||||
this.taskStarted = true;
|
||||
|
|
@ -286,7 +309,7 @@ export default {
|
|||
this.taskUrl = null;
|
||||
this.taskRunning = false;
|
||||
this.taskStarted = false;
|
||||
eventBus.emit("finished");
|
||||
this.$emit("finished");
|
||||
},
|
||||
|
||||
onPollingResponse(response) {
|
||||
|
|
|
|||
|
|
@ -15,8 +15,8 @@ and zero position buttons. It also includes the d-pad.
|
|||
<!-- Text boxes to set and view position -->
|
||||
<div class="input-and-buttons-container">
|
||||
<input
|
||||
v-for="(_v, key) in setPosition"
|
||||
:key="`setPosition_${key}`"
|
||||
v-for="(_v, key) in setPosition"
|
||||
v-model="setPosition[key]"
|
||||
class="uk-form-small numeric-setting-line-input"
|
||||
type="number"
|
||||
|
|
@ -83,6 +83,7 @@ export default {
|
|||
|
||||
computed: {
|
||||
positionStatusUri: function () {
|
||||
console.log("Computing position status URI", this.thingActionUrl("stage", "position"));
|
||||
return this.thingActionUrl("stage", "position");
|
||||
},
|
||||
},
|
||||
|
|
@ -90,28 +91,11 @@ export default {
|
|||
async mounted() {
|
||||
// A global signal listener to perform a move action
|
||||
eventBus.on("globalMoveEvent", this.move);
|
||||
|
||||
// A global signal listener to update position text boxes
|
||||
eventBus.on("globalUpdatePositionEvent", this.updatePosition);
|
||||
// A global signal listener to perform a move action in pixels
|
||||
|
||||
this.onMoveImage = (payload) => {
|
||||
const { x, y, absolute } = payload;
|
||||
this.moveInImageCoordinatesRequest(payload.x, payload.y, payload.absolute);
|
||||
};
|
||||
|
||||
eventBus.on("globalMoveInImageCoordinatesEvent", this.onMoveImage);
|
||||
// A global signal listener to perform a move in multiples of a step size
|
||||
|
||||
this.onMoveStep = (payload) => {
|
||||
const { x_steps, y_steps, z_steps } = payload;
|
||||
const navigationStepSize = this.$store.state.navigationStepSize;
|
||||
const navigationInvert = this.$store.state.navigationInvert;
|
||||
const x = x_steps * navigationStepSize.x * (navigationInvert.x ? -1 : 1);
|
||||
const y = y_steps * navigationStepSize.y * (navigationInvert.y ? -1 : 1);
|
||||
const z = z_steps * navigationStepSize.z * (navigationInvert.z ? -1 : 1);
|
||||
eventBus.emit("globalMoveEvent", {x, y, z, absolute: false});
|
||||
};
|
||||
|
||||
eventBus.on("globalMoveStepEvent", this.onMoveStep);
|
||||
// Update the current position in text boxes
|
||||
await this.updatePosition();
|
||||
|
|
@ -120,15 +104,34 @@ export default {
|
|||
beforeUnmount() {
|
||||
// Remove global signal listener to perform a move action
|
||||
eventBus.off("globalMoveEvent", this.move);
|
||||
eventBus.off("globalUpdatePositionEvent", this.updatePosition);
|
||||
eventBus.off("globalMoveInImageCoordinatesEvent", this.onMoveImage);
|
||||
eventBus.off("globalMoveStepEvent", this.onMoveStep);
|
||||
eventBus.off("globalUpdatePositionEvent", this.updatePosition);
|
||||
},
|
||||
|
||||
methods: {
|
||||
timeout(ms) {
|
||||
return new Promise((resolve) => setTimeout(resolve, ms));
|
||||
},
|
||||
|
||||
onMoveImage(payload) {
|
||||
console.log("Received move in image coordinates:", payload);
|
||||
this.moveInImageCoordinatesRequest(payload.x, payload.y, payload.absolute);
|
||||
},
|
||||
|
||||
onMoveStep(payload) {
|
||||
console.log("Received key move step event:", payload);
|
||||
const { x: x_steps, y: y_steps, z: z_steps } = payload;
|
||||
const navigationStepSize = this.$store.state.navigationStepSize;
|
||||
const navigationInvert = this.$store.state.navigationInvert;
|
||||
const x = x_steps * navigationStepSize.x * (navigationInvert.x ? -1 : 1);
|
||||
const y = y_steps * navigationStepSize.y * (navigationInvert.y ? -1 : 1);
|
||||
const z = z_steps * navigationStepSize.z * (navigationInvert.z ? -1 : 1);
|
||||
const movePayload = { x, y, z, absolute: false };
|
||||
eventBus.emit("globalMoveEvent", movePayload);
|
||||
console.log("Emitted global move event with:", movePayload);
|
||||
},
|
||||
|
||||
async move(payload) {
|
||||
const { x, y, z, absolute } = payload;
|
||||
// Move the stage, by updating the controls and starting a move task
|
||||
|
|
@ -146,15 +149,17 @@ export default {
|
|||
y: this.setPosition.y + y,
|
||||
z: this.setPosition.z + z,
|
||||
};
|
||||
console.log("Updated setPosition for relative move:", this.setPosition);
|
||||
}
|
||||
await this.timeout(1); // Wait for Vue to update the position
|
||||
await this.$nextTick(); // Wait for Vue to update the position
|
||||
await this.startMoveTask();
|
||||
},
|
||||
async startMoveTask() {
|
||||
this.moveLock = true;
|
||||
//this.moveLock = true;
|
||||
await this.$refs.moveButton.startTask();
|
||||
},
|
||||
moveComplete() {
|
||||
console.log("Move completed.");
|
||||
this.updatePosition();
|
||||
this.moveLock = false;
|
||||
},
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ export default {
|
|||
name: "StageControlButtons",
|
||||
methods: {
|
||||
move(x, y, z) {
|
||||
eventBus.emit("globalMoveStepEvent", x, y, z);
|
||||
eventBus.emit("globalMoveStepEvent", {x, y, z, absolute: false});
|
||||
},
|
||||
},
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue