Subscribe to and store traceroutePackets
This commit is contained in:
@@ -73,6 +73,7 @@ export interface Device {
|
|||||||
addPosition: (position: Types.PacketMetadata<Protobuf.Mesh.Position>) => void;
|
addPosition: (position: Types.PacketMetadata<Protobuf.Mesh.Position>) => void;
|
||||||
addConnection: (connection: Types.ConnectionType) => void;
|
addConnection: (connection: Types.ConnectionType) => void;
|
||||||
addMessage: (message: MessageWithState) => void;
|
addMessage: (message: MessageWithState) => void;
|
||||||
|
addTraceRoute: (traceroute: Protobuf.Mesh.RouteDiscovery) => void;
|
||||||
addMetadata: (from: number, metadata: Protobuf.Mesh.DeviceMetadata) => void;
|
addMetadata: (from: number, metadata: Protobuf.Mesh.DeviceMetadata) => void;
|
||||||
setMessageState: (
|
setMessageState: (
|
||||||
type: "direct" | "broadcast",
|
type: "direct" | "broadcast",
|
||||||
@@ -119,6 +120,7 @@ export const useDeviceStore = create<DeviceState>((set, get) => ({
|
|||||||
direct: new Map(),
|
direct: new Map(),
|
||||||
broadcast: new Map(),
|
broadcast: new Map(),
|
||||||
},
|
},
|
||||||
|
traceroutes: new Map(),
|
||||||
connection: undefined,
|
connection: undefined,
|
||||||
activePage: "messages",
|
activePage: "messages",
|
||||||
activeNode: 0,
|
activeNode: 0,
|
||||||
@@ -483,6 +485,7 @@ export const useDeviceStore = create<DeviceState>((set, get) => ({
|
|||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|
||||||
addMetadata: (from, metadata) => {
|
addMetadata: (from, metadata) => {
|
||||||
set(
|
set(
|
||||||
produce<DeviceState>((draft) => {
|
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: (
|
setMessageState: (
|
||||||
type: "direct" | "broadcast",
|
type: "direct" | "broadcast",
|
||||||
channelIndex: Types.ChannelNumber,
|
channelIndex: Types.ChannelNumber,
|
||||||
|
|||||||
@@ -86,6 +86,12 @@ export const subscribeAll = (
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
connection.events.onTraceRoutePacket.subscribe((traceRoutePacket) => {
|
||||||
|
device.addTraceRoute({
|
||||||
|
...traceRoutePacket,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
connection.events.onPendingSettingsChange.subscribe((state) => {
|
connection.events.onPendingSettingsChange.subscribe((state) => {
|
||||||
device.setPendingSettingsChanges(state);
|
device.setPendingSettingsChanges(state);
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user