mirror of
https://github.com/zjs81/meshcore-open.git
synced 2026-04-20 22:13:48 +00:00
- Introduced "Contacts" documentation detailing the contact management system, types, list, search, and tap actions. - Added "Map & Location" documentation covering map features, interactions, path tracing, and line-of-sight analysis. - Created "Navigation" documentation outlining app flow, QuickSwitchBar, and device screen interactions. - Developed "Notifications" documentation explaining notification types, in-app badges, settings, and rate limiting. - Established "Repeater Management" documentation for managing repeaters and room servers, including CLI access and telemetry. - Compiled "Scanner & Connection" documentation detailing BLE, USB, and TCP connection processes. - Formulated "Settings" documentation outlining access, layout, device info, app settings, node settings, actions, debug options, export features, and about section.
186 lines
6.4 KiB
Markdown
186 lines
6.4 KiB
Markdown
# Repeater Management
|
||
|
||
## Overview
|
||
|
||
Repeater Management provides tools for administering MeshCore repeater and room server nodes. It includes device status monitoring, CLI access, telemetry reading, neighbor discovery, and remote configuration.
|
||
|
||
## How to Access
|
||
|
||
From the Contacts screen:
|
||
1. Long-press a **Repeater** or **Room** contact
|
||
2. Select "Manage Repeater" or "Room Management"
|
||
3. Enter the admin password in the login dialog
|
||
4. Navigate to the Repeater Hub Screen
|
||
|
||
### Login Dialog
|
||
|
||
- Password field with show/hide toggle
|
||
- "Save password" checkbox (persists for future logins). If a saved password exists, it is pre-filled and the checkbox is pre-checked, making login one-tap
|
||
- Routing mode selector and "Manage Paths" link are available directly in the dialog (configure routing before login)
|
||
- Auto-retries up to 5 times on timeout, showing progress ("Attempt 2 of 5"). A wrong password stops immediately after the first attempt — only timeouts trigger retries
|
||
- After 5 failed attempts, further login attempts are blocked
|
||
|
||
---
|
||
|
||
## Repeater Hub Screen
|
||
|
||
The central management screen showing:
|
||
|
||
- **Header card**: Repeater name, short public key, path label, GPS coordinates (if known)
|
||
- **Battery chemistry selector**: NMC / LiFePO4 / LiPo (saved per repeater)
|
||
- **Management tool cards** (full-width cards with chevron arrows, not a grid). Title dynamically shows "Repeater Management" or "Room Management" based on contact type:
|
||
|
||
| Card | Destination |
|
||
|---|---|
|
||
| Status | Repeater Status Screen |
|
||
| Telemetry | Telemetry Screen |
|
||
| CLI | Repeater CLI Screen |
|
||
| Neighbors | Neighbors Screen |
|
||
| Settings | Repeater Settings Screen |
|
||
|
||
---
|
||
|
||
## Repeater Status
|
||
|
||
### What the User Sees
|
||
|
||
Three information cards:
|
||
|
||
**System Information**:
|
||
- Battery percentage
|
||
- Uptime
|
||
- Queue length
|
||
- Error flags
|
||
- Clock at login time
|
||
|
||
**Radio Statistics**:
|
||
- Last RSSI and SNR
|
||
- Noise floor
|
||
- TX and RX airtime
|
||
|
||
**Packet Statistics**:
|
||
- Packets sent, received, and duplicates
|
||
- Broken down by flood vs. direct
|
||
|
||
### Key Interactions
|
||
- Auto-queries the repeater on open; shows a loading spinner until data arrives
|
||
- On timeout: red snackbar error. On success: data appears with a green snackbar confirmation
|
||
- Pull-to-refresh or refresh button to re-query
|
||
- Routing mode popup and path management dialog in app bar (these controls appear on **all** management sub-screens, not just Status)
|
||
|
||
---
|
||
|
||
## Repeater CLI
|
||
|
||
A terminal-style interface for sending commands directly to the repeater.
|
||
|
||
### What the User Sees
|
||
|
||
- **Quick-command bar** (horizontal scroll): Shortcut buttons for common commands (get name, get radio, get tx, neighbors, ver, advert, clock)
|
||
- **Command history list**: Sent commands in primary color, responses in secondary color
|
||
- **Input bar**: Up/down history arrows, monospace text field with `> ` prefix, send button
|
||
|
||
### Key Interactions
|
||
|
||
- Type a command and press send (or Enter on desktop)
|
||
- Up/down arrows navigate through command history
|
||
- Quick-command buttons populate and send common commands
|
||
- Bug report icon: Shows raw frame debug info for the next typed command (shows error snackbar if input field is empty)
|
||
- Help icon: Opens a scrollable reference of all known CLI commands. Tapping any command populates the input field immediately
|
||
- Clear icon: Wipes the command/response history
|
||
- Failed/timed-out commands are automatically retried once
|
||
|
||
### Available CLI Commands
|
||
|
||
**General**: `advert`, `reboot`, `clock`, `password`, `ver`, `clear stats`
|
||
|
||
**Settings**: `set name`, `set af`, `set tx`, `set repeat`, `set allow.read.only`, `set flood.max`, `set int.thresh`, `set agc.reset.interval`, `set multi.acks`, `set advert.interval`, `set flood.advert.interval`, `set guest.password`, `set lat`, `set lon`, `set radio`, `set rxdelay`, `set txdelay`, `set direct.txdelay`, `set bridge.*`, `set adc.multiplier`, `tempradio`, `setperm`
|
||
|
||
**Bridge**: `get bridge.type`
|
||
|
||
**Logging**: `log start`, `log stop`, `log erase`
|
||
|
||
**Neighbors**: `neighbors`, `neighbor.remove`
|
||
|
||
**Region Management**: `region`, `region load/get/put/remove/allowf/denyf/home/save`
|
||
|
||
**GPS**: `gps`, `gps on/off/sync/setloc/advert`
|
||
|
||
---
|
||
|
||
## Telemetry
|
||
|
||
### What the User Sees
|
||
|
||
A list of Cayenne LPP sensor channel cards:
|
||
|
||
- **Channel 1** (special): Battery voltage (shown as percentage or raw mV) and MCU temperature
|
||
- **Other channels**: Raw sensor values with appropriate labels
|
||
|
||
Shows "No data" until a response arrives from the repeater.
|
||
|
||
### Key Interactions
|
||
- Auto-queries on open
|
||
- Pull-to-refresh
|
||
- Temperature respects metric/imperial setting
|
||
- Battery readings are stored for the repeater's battery snapshot
|
||
|
||
---
|
||
|
||
## Neighbors
|
||
|
||
### What the User Sees
|
||
|
||
A card titled "Repeater's Neighbors - N" listing each neighbor as:
|
||
- Repeater name (or hex key prefix if unknown)
|
||
- Time since last heard
|
||
- SNR quality icon with color coding and label
|
||
|
||
### Key Interactions
|
||
- Auto-queries up to 15 neighbors on open
|
||
- Matches public key prefixes against known contacts to show names
|
||
- Pull-to-refresh
|
||
|
||
---
|
||
|
||
## Repeater Settings
|
||
|
||
### What the User Sees
|
||
|
||
Five configuration cards:
|
||
|
||
**1. Basic Settings**
|
||
- Name field
|
||
- Admin password field
|
||
- Guest password field
|
||
|
||
**2. Radio Settings**
|
||
- Frequency (MHz)
|
||
- TX Power (dBm)
|
||
- Bandwidth dropdown (kHz)
|
||
- Spreading Factor (SF5–SF12)
|
||
- Coding Rate (4/5–4/8)
|
||
|
||
**3. Location Settings**
|
||
- Latitude and longitude fields
|
||
|
||
**4. Features**
|
||
- Packet forwarding toggle
|
||
- Guest access toggle
|
||
|
||
**5. Advertisement Settings**
|
||
- Local advert interval slider (60–240 minutes) with enable/disable toggle
|
||
- Flood advert interval slider (3–168 hours) with enable/disable toggle
|
||
|
||
**6. Danger Zone** (red-styled card)
|
||
- Reboot repeater
|
||
- Erase filesystem (serial-only warning)
|
||
|
||
### Key Interactions
|
||
- **Settings are NOT auto-fetched on open**. Only name and location are pre-filled from locally cached contact data. You must tap each section's refresh button to fetch live values from the repeater
|
||
- TX Power has its own separate refresh button, independent from the main Radio Settings refresh
|
||
- Save button appears when changes are detected
|
||
- Settings are sent sequentially with 200ms delays between commands (fire-and-forget, no per-command acknowledgment wait)
|
||
- Validation prevents invalid values (e.g., frequency range, LoRa parameter compatibility)
|
||
- Advertisement interval sliders reset to defaults when re-enabled (local: 60 min, flood: 3 hours)
|
||
- **Erase Filesystem** does NOT send any command over the air — tapping it only shows a snackbar explaining the operation requires physical serial access. It is effectively non-functional when connected wirelessly
|