feat: reset telemetry state after disconnect
to avoid the model continuing to move when the robot disconnects while in motion
This commit is contained in:
parent
650c322d53
commit
0ab4d5cf4b
1 changed files with 21 additions and 22 deletions
|
@ -1,5 +1,5 @@
|
||||||
import { telemetryStore } from "../stores/telemetryStore";
|
import { telemetryStore } from '../stores/telemetryStore'
|
||||||
import { listen } from "@tauri-apps/api/event";
|
import { listen } from '@tauri-apps/api/event'
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Connects to sockets and subscribes to specified topics to receive telemetry data.
|
* Connects to sockets and subscribes to specified topics to receive telemetry data.
|
||||||
|
@ -10,9 +10,9 @@ import { listen } from "@tauri-apps/api/event";
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const onUpdate = (data: TelemetryData) => {
|
const onUpdate = (data: TelemetryData) => {
|
||||||
telemetryStore.update(data);
|
telemetryStore.update(data)
|
||||||
// console.log(data)
|
// console.log(data)
|
||||||
};
|
}
|
||||||
|
|
||||||
export const initializeTelemetry = async (
|
export const initializeTelemetry = async (
|
||||||
topics: TelemetryTopics,
|
topics: TelemetryTopics,
|
||||||
|
@ -21,28 +21,27 @@ export const initializeTelemetry = async (
|
||||||
// Make sure refreshRate is valid
|
// Make sure refreshRate is valid
|
||||||
if (!Number.isInteger(refreshRate) || refreshRate < 1) {
|
if (!Number.isInteger(refreshRate) || refreshRate < 1) {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
"refreshRate must be an integer greater than or equal to 1."
|
'refreshRate must be an integer greater than or equal to 1.'
|
||||||
);
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
const unlistenStatus = await listen("telemetry_status", (event) => {
|
const unlistenStatus = await listen('telemetry_status', event => {
|
||||||
if (event.payload === "connected") {
|
if (event.payload === 'connected') {
|
||||||
telemetryStore.set("connected", true);
|
telemetryStore.set('connected', true)
|
||||||
} else if (event.payload === "disconnected") {
|
} else if (event.payload === 'disconnected') {
|
||||||
telemetryStore.set("connected", false);
|
telemetryStore.reset()
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
|
|
||||||
const unlistenTelemetry = await listen("telemetry_data", (event) => {
|
const unlistenTelemetry = await listen('telemetry_data', event => {
|
||||||
const data = JSON.parse(event.payload as string);
|
const data = JSON.parse(event.payload as string)
|
||||||
// console.log(JSON.parse)
|
telemetryStore.set(data['topic_name'], data['data'])
|
||||||
telemetryStore.set(data["topic_name"], data["data"]);
|
})
|
||||||
});
|
|
||||||
|
|
||||||
const unlistenAll = () => {
|
const unlistenAll = () => {
|
||||||
unlistenStatus();
|
unlistenStatus()
|
||||||
unlistenTelemetry();
|
unlistenTelemetry()
|
||||||
};
|
}
|
||||||
|
|
||||||
return unlistenAll;
|
return unlistenAll
|
||||||
};
|
}
|
||||||
|
|
Loading…
Reference in a new issue