Companions can now be reached over Bluetooth as well as USB. Rather than a parallel BLE path, this generalizes the existing serial abstractions so a device is identified by a transport (serial | ble) plus a target (COM port or Bluetooth address); every feature rides the same Device interface and works over either link unchanged. - discovery: DiscoveredDevice gains transport/address/name and transport-aware stable_id/label/confidence/target; discover_ble_devices scans for MeshCore* adverts via bleak, discover_all merges both. - connection: MeshCoreDevice opens create_ble vs create_serial by transport; new link_present() liveness (OS port enumeration for serial, the BLE client's is_connected flag for Bluetooth); is_connection_lost recognizes Bleak errors and BLE transport callbacks; probe_device is the transport-aware smoke test. - disconnect: the session watcher polls transport-neutral link_alive(), so a dropped BLE link raises the same reconnect dialog and auto-resume as an unplugged cable; reconnect rebuilds the same endpoint by address. - selection/context/store/profiles: --ble address, remembered BLE default, and BLE device profiles all resolve to the right transport. - UI/CLI: startup picker scans both transports behind a spinner and tags Bluetooth companions; `devices` lists them (--no-ble to skip); global --ble/--ble-pin flags; README and example config updated. Validated on hardware: discovery, connect, reconnect, and channel messaging (send + receive) over BLE. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
41 lines
1.4 KiB
TOML
41 lines
1.4 KiB
TOML
# MeshTerm configuration.
|
|
# Copy to ~/.meshterm/config.toml (or pass --db / --port on the CLI).
|
|
#
|
|
# Profiles are optional. With no profile, no --port, and no --ble, MeshTerm discovers
|
|
# attached serial devices and nearby Bluetooth companions, lets you pick one (interactively)
|
|
# or uses the single one present, and remembers the last device that connected as the default
|
|
# for next time. Define profiles below only to give your hardware stable aliases
|
|
# (e.g. --profile yagi, or --profile handheld for a Bluetooth device).
|
|
|
|
default_profile = "s3"
|
|
trace_cooldown_s = 1.0
|
|
# db_path = "C:/Users/you/meshterm/meshterm.db"
|
|
# output_dir = "C:/Users/you/meshterm/output"
|
|
|
|
# One [profiles.<name>] block per physical companion device.
|
|
[profiles.s3]
|
|
port = "COM5"
|
|
baudrate = 115200
|
|
default_tx_power = 20
|
|
description = "XIAO ESP32-S3 + Wio SX1262 serial companion"
|
|
|
|
[profiles.yagi]
|
|
port = "COM6"
|
|
description = "Yagi repeater (reaching the wider mesh)"
|
|
|
|
[profiles.local]
|
|
port = "COM7"
|
|
description = "Local-range repeater"
|
|
|
|
[profiles.observer]
|
|
port = "COM8"
|
|
description = "XIAO observer running a bot"
|
|
|
|
# A Bluetooth LE companion: give it an `address` (from `meshterm devices`) instead of a port.
|
|
# The `transport = "ble"` line is optional — a bare `address` already implies Bluetooth.
|
|
[profiles.handheld]
|
|
address = "AA:BB:CC:DD:EE:FF"
|
|
# transport = "ble"
|
|
# ble_pin = "123456" # only if your device requires a pairing PIN
|
|
description = "Pocket handheld over Bluetooth"
|