Subscribe to and store traceroutePackets

This commit is contained in:
Tom Fifield
2024-05-26 18:41:13 +08:00
parent 1458497fc3
commit 390b16812a
2 changed files with 30 additions and 0 deletions
+24
View File
@@ -73,6 +73,7 @@ export interface Device {
addPosition: (position: Types.PacketMetadata<Protobuf.Mesh.Position>) => void;
addConnection: (connection: Types.ConnectionType) => void;
addMessage: (message: MessageWithState) => void;
addTraceRoute: (traceroute: Protobuf.Mesh.RouteDiscovery) => void;
addMetadata: (from: number, metadata: Protobuf.Mesh.DeviceMetadata) => void;
setMessageState: (
type: "direct" | "broadcast",
@@ -119,6 +120,7 @@ export const useDeviceStore = create<DeviceState>((set, get) => ({
direct: new Map(),
broadcast: new Map(),
},
traceroutes: new Map(),
connection: undefined,
activePage: "messages",
activeNode: 0,
@@ -483,6 +485,7 @@ export const useDeviceStore = create<DeviceState>((set, get) => ({
}),
);
},
addMetadata: (from, metadata) => {
set(
produce<DeviceState>((draft) => {
@@ -494,6 +497,27 @@ export const useDeviceStore = create<DeviceState>((set, get) => ({
}),
);
},
addTraceRoute: (traceroute) => {
set(
produce<DeviceState>((draft) => {
console.log("addTraceRoute called");
console.log(traceroute);
const device = draft.devices.get(id);
if (!device) {
return;
}
const nodetraceroutes = device.traceroutes.get(traceroute.from)
if (nodetraceroutes) {
nodetraceroutes.push(traceroute);
device.traceroutes.set(traceroute.from, nodetraceroutes);
} else {
device.traceroutes.set(traceroute.from, [traceroute]);
}
console.log(device.traceroutes);
}),
);
},
setMessageState: (
type: "direct" | "broadcast",
channelIndex: Types.ChannelNumber,