Browse Source

Add snr to traceroute

pull/307/head
Tilen Komel 1 year ago
parent
commit
54c73a8c0d
  1. 11
      src/components/Dialog/TracerouteResponseDialog.tsx
  2. 45
      src/components/PageComponents/Messages/TraceRoute.tsx

11
src/components/Dialog/TracerouteResponseDialog.tsx

@ -24,6 +24,8 @@ export const TracerouteResponseDialog = ({
const { nodes } = useDevice(); const { nodes } = useDevice();
const route: number[] = traceroute?.data.route ?? []; const route: number[] = traceroute?.data.route ?? [];
const routeBack: number[] = traceroute?.data.routeBack ?? []; const routeBack: number[] = traceroute?.data.routeBack ?? [];
const snrTowards = traceroute?.data.snrTowards ?? [];
const snrBack = traceroute?.data.snrBack ?? [];
const from = nodes.get(traceroute?.from ?? 0); const from = nodes.get(traceroute?.from ?? 0);
const longName = const longName =
from?.user?.longName ?? from?.user?.longName ??
@ -39,7 +41,14 @@ export const TracerouteResponseDialog = ({
<DialogTitle>{`Traceroute: ${longName} (${shortName})`}</DialogTitle> <DialogTitle>{`Traceroute: ${longName} (${shortName})`}</DialogTitle>
</DialogHeader> </DialogHeader>
<DialogDescription> <DialogDescription>
<TraceRoute route={route} routeBack={routeBack} from={from} to={to} /> <TraceRoute
route={route}
routeBack={routeBack}
from={from}
to={to}
snrTowards={snrTowards}
snrBack={snrBack}
/>
</DialogDescription> </DialogDescription>
</DialogContent> </DialogContent>
</Dialog> </Dialog>

45
src/components/PageComponents/Messages/TraceRoute.tsx

@ -7,6 +7,8 @@ export interface TraceRouteProps {
to?: Protobuf.Mesh.NodeInfo; to?: Protobuf.Mesh.NodeInfo;
route: Array<number>; route: Array<number>;
routeBack?: Array<number>; routeBack?: Array<number>;
snrTowards?: Array<number>;
snrBack?: Array<number>;
} }
export const TraceRoute = ({ export const TraceRoute = ({
@ -14,6 +16,8 @@ export const TraceRoute = ({
to, to,
route, route,
routeBack, routeBack,
snrTowards,
snrBack,
}: TraceRouteProps): JSX.Element => { }: TraceRouteProps): JSX.Element => {
const { nodes } = useDevice(); const { nodes } = useDevice();
@ -24,24 +28,37 @@ export const TraceRoute = ({
</span> </span>
</div> </div>
) : ( ) : (
<div className="ml-5 flex flex-col"> <div className="ml-5 flex">
<span className="ml-4 border-l-2 border-l-backgroundPrimary pl-2 text-textPrimary"> <span className="ml-4 border-l-2 border-l-backgroundPrimary pl-2 text-textPrimary">
<p className="font-semibold">Route traced towards destination:</p> <p className="font-semibold">Route to destination:</p>
{to?.user?.longName} {" "} <p>{to?.user?.longName}</p>
{route.map( <p> {snrTowards ? snrTowards[0] : null}dB</p>
(hop) => {route.map((hop, i) => (
`${nodes.get(hop)?.user?.longName ?? `!${numberToHexUnpadded(hop)}`}`, // biome-ignore lint/suspicious/noArrayIndexKey: <explanation>
)} <span key={i}>
<p>
{nodes.get(hop)?.user?.longName ?? `!${numberToHexUnpadded(hop)}`}
</p>
<p> {snrTowards ? snrTowards[i + 1] : null}dB</p>
</span>
))}
{from?.user?.longName} {from?.user?.longName}
</span> </span>
{routeBack ? ( {routeBack ? (
<span className="ml-4 mt-4 border-l-2 border-l-backgroundPrimary pl-2 text-textPrimary"> <span className="ml-4 border-l-2 border-l-backgroundPrimary pl-2 text-textPrimary">
<p className="font-semibold">Route traced back to us:</p> <p className="font-semibold">Route back:</p>
{from?.user?.longName} {" "} <p>{from?.user?.longName}</p>
{routeBack.map( <p> {snrBack ? snrBack[0] : null}dB</p>
(hop) => {routeBack.map((hop, i) => (
`${nodes.get(hop)?.user?.longName ?? `!${numberToHexUnpadded(hop)}`}`, // biome-ignore lint/suspicious/noArrayIndexKey: <explanation>
)} <span key={i}>
<p>
{nodes.get(hop)?.user?.longName ??
`!${numberToHexUnpadded(hop)}`}
</p>
<p> {snrBack ? snrBack[i + 1] : null}dB</p>
</span>
))}
{to?.user?.longName} {to?.user?.longName}
</span> </span>
) : null} ) : null}

Loading…
Cancel
Save