PageSourceSearch

https://meshtastic-bice.vercel.app/assets/js/c57b8756.c7fbd040.js

js meshtastic-bice.vercel.app collected 2026-10-03 07:19:53 UTC 20,763 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkmeshtastic=self.webpackChunkmeshtastic||[]).push([["17655"],{51416(e,s,t){t.r(s),t.d(s,{metadata:()=>i,default:()=>x,frontMatter:()=>c,contentTitle:()=>h,toc:()=>o,assets:()=>l});var i=JSON.parse('{"id":"software/apple/developer/deep-links","title":"Deep Links","description":"The app registers the meshtastic) to handle incoming URLs. Deep links work from Safari, Shortcuts, Siri Intents, and other apps.","source":"@site/versioned_docs/version-2.7/software/apple/developer/deep-links.md","sourceDirName":"software/apple/developer","slug":"/software/apple/developer/deep-links","permalink":"/docs/2.7/software/apple/developer/deep-links","draft":false,"unlisted":false,"tags":[],"version":"2.7","lastUpdatedBy":"rcarteraz","sidebarPosition":8,"frontMatter":{"title":"Deep Links","parent":"Developer Guide","sidebar_position":8},"sidebar":"Sidebar","previous":{"title":"Measurement & Locale","permalink":"/docs/2.7/software/apple/developer/measurement"},"next":{"title":"CarPlay","permalink":"/docs/2.7/software/apple/developer/carplay"}}'),n=t(91987),r=t(67008),d=t(87622);let c={title:"Deep Links",parent:"Developer Guide",sidebar_position:8},h="Deep Links",l={},o=[{value:"Adding a New Deep Link",id:"adding-a-new-deep-link",level:2},{value:"Messages",id:"messages",level:2},{value:"Connect",id:"connect",level:2},{value:"Nodes",id:"nodes",level:2},{value:"Map",id:"map",level:2},{value:"Settings",id:"settings",level:2}];function a(e){let s={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.header,{children:(0,n.jsx)(s.h1,{id:"deep-links",children:"Deep Links"})}),"\n",(0,n.jsxs)(s.p,{children:["The app registers the ",(0,n.jsx)(s.code,{children:"meshtastic:///"})," URL scheme. Use ",(0,n.jsx)(s.code,{children:"Router.route(url:)"})," to handle incoming URLs. Deep links work from Safari, Shortcuts, Siri Intents, and other apps."]}),"\n",(0,n.jsx)(s.h2,{id:"adding-a-new-deep-link",children:"Adding a New Deep Link"}),"\n",(0,n.jsxs)(s.ol,{children:["\n",(0,n.jsxs)(s.li,{children:["Add a case to the appropriate ",(0,n.jsx)(s.code,{children:"*NavigationState"})," enum in ",(0,n.jsx)(s.code,{children:"Meshtastic/Router/NavigationState.swift"}),"."]}),"\n",(0,n.jsxs)(s.li,{children:["Update ",(0,n.jsx)(s.code,{children:"Router"}),"'s routing helpers in ",(0,n.jsx)(s.code,{children:"Meshtastic/Router/Router.swift"}),"."]}),"\n",(0,n.jsx)(s.li,{children:"Document the URL in the table below."}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"messages",children:"Messages"}),"\n",(0,n.jsxs)(s.table,{children:[(0,n.jsx)(s.thead,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.th,{children:"URL"}),(0,n.jsx)(s.th,{children:"Description"})]})}),(0,n.jsxs)(s.tbody,{children:[(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///messages",children:(0,n.jsx)(s.code,{children:"meshtastic:///messages"})})}),(0,n.jsx)(s.td,{children:"Messages tab"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"meshtastic:///messages?channelId={channelId}&messageId={messageId}"})}),(0,n.jsxs)(s.td,{children:["Channel messages (",(0,n.jsx)(s.code,{children:"messageId"})," is optional)"]})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"meshtastic:///messages?userNum={userNum}&messageId={messageId}"})}),(0,n.jsxs)(s.td,{children:["Direct messages (",(0,n.jsx)(s.code,{children:"messageId"})," is optional)"]})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"connect",children:"Connect"}),"\n",(0,n.jsxs)(s.table,{children:[(0,n.jsx)(s.thead,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.th,{children:"URL"}),(0,n.jsx)(s.th,{children:"Description"})]})}),(0,n.jsx)(s.tbody,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///connect",children:(0,n.jsx)(s.code,{children:"meshtastic:///connect"})})}),(0,n.jsx)(s.td,{children:"Connect tab"})]})})]}),"\n",(0,n.jsx)(s.h2,{id:"nodes",children:"Nodes"}),"\n",(0,n.jsxs)(s.table,{children:[(0,n.jsx)(s.thead,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.th,{children:"URL"}),(0,n.jsx)(s.th,{children:"Description"})]})}),(0,n.jsxs)(s.tbody,{children:[(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///nodes",children:(0,n.jsx)(s.code,{children:"meshtastic:///nodes"})})}),(0,n.jsx)(s.td,{children:"Nodes tab"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"meshtastic:///nodes?nodenum={nodenum}"})}),(0,n.jsx)(s.td,{children:"Selected node"})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"map",children:"Map"}),"\n",(0,n.jsxs)(s.table,{children:[(0,n.jsx)(s.thead,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.th,{children:"URL"}),(0,n.jsx)(s.th,{children:"Description"})]})}),(0,n.jsxs)(s.tbody,{children:[(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///map",children:(0,n.jsx)(s.code,{children:"meshtastic:///map"})})}),(0,n.jsx)(s.td,{children:"Map tab"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"meshtastic:///map?nodenum={nodenum}"})}),(0,n.jsx)(s.td,{children:"Node on map"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"meshtastic:///map?waypointId={waypointId}"})}),(0,n.jsx)(s.td,{children:"Waypoint on map"})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"settings",children:"Settings"}),"\n",(0,n.jsxs)(s.p,{children:["Settings URLs take no query parameters. The only path variant is\n",(0,n.jsx)(s.code,{children:"localMeshDiscovery/history"}),", which opens Local Mesh Discovery directly to its\nhistory view."]}),"\n",(0,n.jsxs)(s.table,{children:[(0,n.jsx)(s.thead,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.th,{children:"URL"}),(0,n.jsx)(s.th,{children:"Description"})]})}),(0,n.jsxs)(s.tbody,{children:[(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/about",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/about"})})}),(0,n.jsx)(s.td,{children:"About Meshtastic"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/appSettings",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/appSettings"})})}),(0,n.jsx)(s.td,{children:"App Settings"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/helpDocs",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/helpDocs"})})}),(0,n.jsx)(s.td,{children:"Help & Documentation"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/localMeshDiscovery",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/localMeshDiscovery"})})}),(0,n.jsx)(s.td,{children:"Local Mesh Discovery"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/localMeshDiscovery/history",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/localMeshDiscovery/history"})})}),(0,n.jsx)(s.td,{children:"Local Mesh Discovery (history view)"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/routes",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/routes"})})}),(0,n.jsx)(s.td,{children:"Routes"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/routeRecorder",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/routeRecorder"})})}),(0,n.jsx)(s.td,{children:"Route Recorder"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.strong,{children:"Radio Config"})}),(0,n.jsx)(s.td,{})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/lora",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/lora"})})}),(0,n.jsxs)(s.td,{children:[(0,n.jsx)(d.A,{term:"LoRa",definition:"A low-power, long-range wireless communication technology used by Meshtastic devices to enable communication over distances of several kilometers without the need for cellular, Wi-Fi, or other traditional network infrastru
1ctures.",routePath:"/docs/terms/",children:"LoRa"})," Config"]})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/channels",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/channels"})})}),(0,n.jsx)(s.td,{children:"Channels"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/security",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/security"})})}),(0,n.jsx)(s.td,{children:"Security Config"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/shareQRCode",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/shareQRCode"})})}),(0,n.jsxs)(s.td,{children:["Share ",(0,n.jsx)(d.A,{term:"QR",definition:"A scannable square code. In Meshtastic it encodes the Channel URL, which carries the channel and LoRa settings needed to join a mesh.",routePath:"/docs/terms/",children:"QR"})," Code"]})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.strong,{children:"Device Config"})}),(0,n.jsx)(s.td,{})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/user",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/user"})})}),(0,n.jsx)(s.td,{children:"User Config"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/bluetooth",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/bluetooth"})})}),(0,n.jsx)(s.td,{children:"Bluetooth Config"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/device",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/device"})})}),(0,n.jsx)(s.td,{children:"Device Config"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/display",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/display"})})}),(0,n.jsx)(s.td,{children:"Display Config"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/network",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/network"})})}),(0,n.jsx)(s.td,{children:"Network Config"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/position",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/position"})})}),(0,n.jsx)(s.td,{children:"Position Config"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/power",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/power"})})}),(0,n.jsx)(s.td,{children:"Power Config"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.strong,{children:"Module Config"})}),(0,n.jsx)(s.td,{})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/ambientLighting",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/ambientLighting"})})}),(0,n.jsx)(s.td,{children:"Ambient Lighting"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/audio",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/audio"})})}),(0,n.jsx)(s.td,{children:"Audio (Codec2, requires LORA_24 region)"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/cannedMessages",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/cannedMessages"})})}),(0,n.jsx)(s.td,{children:"Canned Messages"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/detectionSensor",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/detectionSensor"})})}),(0,n.jsx)(s.td,{children:"Detection Sensor"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/externalNotification",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/externalNotification"})})}),(0,n.jsx)(s.td,{children:"External Notification"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/mqtt",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/mqtt"})})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(d.A,{term:"MQTT",definition:"A lightweight messaging protocol designed for small sensors and mobile devices, enabling efficient data transmission in the Meshtastic network for Internet connectivity and integration with IoT platforms. See https://en.wikipedia.org/wiki/MQTT. In Meshtastic, MQTT is used to connect a node to the internet, and can be used to connect multiple meshes to each other.",routePath:"/docs/terms/",children:"MQTT"})})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/neighborInfo",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/neighborInfo"})})}),(0,n.jsx)(s.td,{children:"Neighbor Info"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/paxCounter",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/paxCounter"})})}),(0,n.jsx)(s.td,{children:"Pax Counter"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/rangeTest",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/rangeTest"})})}),(0,n.jsx)(s.td,{children:"Range Test"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/ringtone",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/ringtone"})})}),(0,n.jsx)(s.td,{children:"Ringtone"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/serial",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/serial"})})}),(0,n.jsx)(s.td,{children:"Serial"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/storeAndForward",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/storeAndForward"})})}),(0,n.jsx)(s.td,{children:"Store & Forward"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/telemetry",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/telemetry"})})}),(0,n.jsx)(s.td,{children:"Telemetry"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/trafficManagement",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/trafficManagement"})})}),(0,n.jsx)(s.td,{children:"Traffic Management"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.strong,{children:(0,n.jsx)(d.A,{term:"TAK",definition:"A situational awareness ecosystem. Meshtastic bridges to it by convert
1ing mesh messages to and from Cursor on Target format.",routePath:"/docs/terms/",children:"TAK"})})}),(0,n.jsx)(s.td,{})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/tak",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/tak"})})}),(0,n.jsxs)(s.td,{children:[(0,n.jsx)(d.A,{term:"TAK",definition:"A situational awareness ecosystem. Meshtastic bridges to it by converting mesh messages to and from Cursor on Target format.",routePath:"/docs/terms/",children:"TAK"})," Server"]})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/takConfig",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/takConfig"})})}),(0,n.jsxs)(s.td,{children:[(0,n.jsx)(d.A,{term:"TAK",definition:"A situational awareness ecosystem. Meshtastic bridges to it by converting mesh messages to and from Cursor on Target format.",routePath:"/docs/terms/",children:"TAK"})," Module Config"]})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.strong,{children:"Logging"})}),(0,n.jsx)(s.td,{})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/debugLogs",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/debugLogs"})})}),(0,n.jsx)(s.td,{children:"Debug Logs"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.strong,{children:"Developers"})}),(0,n.jsx)(s.td,{})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/backupManagement",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/backupManagement"})})}),(0,n.jsx)(s.td,{children:"Backup Management"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/coreDataBrowser",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/coreDataBrowser"})})}),(0,n.jsx)(s.td,{children:"Data Browser (DEBUG only)"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/deviceLinks",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/deviceLinks"})})}),(0,n.jsx)(s.td,{children:"Device Links"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/appFiles",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/appFiles"})})}),(0,n.jsx)(s.td,{children:"App Files"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/tools",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/tools"})})}),(0,n.jsx)(s.td,{children:"Tools (iOS 18+)"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"meshtastic:///settings/firmwareUpdates",children:(0,n.jsx)(s.code,{children:"meshtastic:///settings/firmwareUpdates"})})}),(0,n.jsx)(s.td,{children:"Firmware Updates"})]})]})]})]})}function x(e={}){let{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(a,{...e})}):a(e)}},67008(e,s,t){t.d(s,{R:()=>d,x:()=>c});var i=t(71763);let n={},r=i.createContext(n);function d(e){let s=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:d(e.components),i.createElement(r.Provider,{value:s},e.children)}},87622(e,s,t){t.d(s,{A:()=>d});var i=t(71763),n=t(37773),r=t(91987);function d({term:e,definition:s,abbreviation:t,routePath:c="/glossary",children:h}){let[l,o]=(0,i.useState)(!1),[a,x]=(0,i.useState)(null),[j,m]=(0,i.useState)("top"),g=(0,i.useRef)(null),p=(0,i.useRef)(null),u=(0,i.useCallback)(()=>{let e;if(!g.current||!p.current)return;let s=g.current.getBoundingClientRect(),t=p.current.getBoundingClientRect(),i=window.innerWidth,n=window.innerHeight,r=document.querySelector(".navbar"),d=r?r.getBoundingClientRect().bottom:0,c=s.top-d>=t.height+8,h=n-s.bottom>=t.height+8,l=c||!h?"top":"bottom";e="top"===l?s.top-t.height-8:s.bottom+8;let o=s.left+s.width/2-t.width/2;o=Math.max(8,Math.min(o,i-t.width-8)),m(l),x({top:Math.max(d+4,e),left:o})},[]);(0,i.useEffect)(()=>{let e;if(!l)return;let s=requestAnimationFrame(()=>{e=requestAnimationFrame(()=>{u()})}),t=()=>u(),i=()=>u();return window.addEventListener("scroll",t,!0),window.addEventListener("resize",i),()=>{cancelAnimationFrame(s),e&&cancelAnimationFrame(e),window.removeEventListener("scroll",t,!0),window.removeEventListener("resize",i)}},[l,u]);let f=(0,n.P_)("docusaurus-plugin-glossary"),w=(0,i.useMemo)(()=>
1{if(s&&"string"==typeof s&&s.length>0)return s;let t=(f&&f.terms||[]).find(s=>"string"==typeof s.term&&s.term.toLowerCase()===String(e).toLowerCase());return t&&t.definition?t.definition:void 0},[s,f,e]),v=(0,i.useMemo)(()=>{let s=t;if(!s){let t=(f&&f.terms||[]).find(s=>"string"==typeof s.term&&s.term.toLowerCase()===String(e).toLowerCase());s=t&&t.abbreviation}if("string"!=typeof s)return;let i=s.trim();if(i&&i.toLowerCase()!==String(e).toLowerCase())return i},[t,f,e]),b=(0,i.useMemo)(()=>c&&"string"==typeof c&&c.length>0?c:f&&f.routePath||"/glossary",[f,c]),y=h||e,M=e.toLowerCase().replace(/\s+/g,"-");return(0,r.jsxs)("span",{ref:g,className:"glossaryTermWrapper_ud7W",children:[(0,r.jsx)("a",{href:`${b}#${M}`,className:"glossaryTerm_x2nJ",onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1),onFocus:()=>o(!0),onBlur:()=>o(!1),"aria-describedby":`tooltip-${M}`,children:y}),w&&(0,r.jsxs)("span",{ref:p,id:`tooltip-${M}`,className:`tooltip_WjgA ${l?"tooltipVisible_AjfD":""} ${"top"===j?"tooltipTop_uMN4":"tooltipBottom_U9P5"} tooltipFloating_nLk7`,role:"tooltip",style:l&&a?{top:`${a.top}px`,left:`${a.left}px`}:void 0,children:[(0,r.jsx)("strong",{children:e}),v?` (${v}). `:"",w]})]})}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.