feat(firmware): announce as an LXMF delivery destination (messageable)
- switch the Reticulum announce from a plain "archy.messh" destination to "lxmf.delivery" so the bridge shows up as a messageable contact in Reticulum/LXMF clients; app_data is the display name "Archy-Messh" - name_hash/dest_hash construction verified byte-identical to RNS.Destination.hash(id, "lxmf", "delivery") - bump R-window LoRa preamble 16 -> 18 to match RNode firmware Note: an RNode peer (.116) is not yet demodulating the bridge's R-PHY TX (rxb stays flat) though the bridge decodes the RNode's announces fine and the bridge's TX works on the MeshCore PHY — an asymmetric RadioLib-TX/RNode-RX issue still to chase. Receiving LXMF message *content* is a further build. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
649f196171
commit
d882458885
@ -76,7 +76,7 @@ static const PhyConfig CONFIGS[] = {
|
|||||||
{ "meshcore", 'C', 869.618f, 62.5f, 8, 5, 0x12, 16 },
|
{ "meshcore", 'C', 869.618f, 62.5f, 8, 5, 0x12, 16 },
|
||||||
// Reticulum RNode PHY (operator-configured) — user's RNS interface:
|
// Reticulum RNode PHY (operator-configured) — user's RNS interface:
|
||||||
// 869.525 MHz / 125 kHz / SF8 / CR4:5. Sync word 0x12 is RNode's default.
|
// 869.525 MHz / 125 kHz / SF8 / CR4:5. Sync word 0x12 is RNode's default.
|
||||||
{ "reticulum", 'R', 869.525f, 125.0f, 8, 5, 0x12, 16 },
|
{ "reticulum", 'R', 869.525f, 125.0f, 8, 5, 0x12, 18 },
|
||||||
};
|
};
|
||||||
static const size_t NUM_CONFIGS = sizeof(CONFIGS) / sizeof(CONFIGS[0]);
|
static const size_t NUM_CONFIGS = sizeof(CONFIGS) / sizeof(CONFIGS[0]);
|
||||||
static const uint32_t DWELL_MS = 3000; // camp long enough to sit through a
|
static const uint32_t DWELL_MS = 3000; // camp long enough to sit through a
|
||||||
@ -443,8 +443,11 @@ static uint8_t rnsEdSeed[32], rnsEdPrv[64], rnsEdPub[32]; // Ed25519 (signing)
|
|||||||
static uint8_t rnsPub[64]; // X25519_pub || Ed25519_pub
|
static uint8_t rnsPub[64]; // X25519_pub || Ed25519_pub
|
||||||
static uint8_t rnsNameHash[10]; // SHA256(app name)[:10]
|
static uint8_t rnsNameHash[10]; // SHA256(app name)[:10]
|
||||||
static uint8_t rnsDestHash[16]; // SHA256(name_hash||ident_hash)[:16]
|
static uint8_t rnsDestHash[16]; // SHA256(name_hash||ident_hash)[:16]
|
||||||
static const char* RNS_APP_NAME = "archy.messh";
|
// Announce an LXMF *delivery* destination so we show up as a messageable
|
||||||
static const char* RNS_APP_DATA = "archy-messh";
|
// contact in Reticulum/LXMF clients (app "lxmf", aspect "delivery"). app_data
|
||||||
|
// is the display name. Verified against RNS.Destination.hash().
|
||||||
|
static const char* RNS_APP_NAME = "lxmf.delivery";
|
||||||
|
static const char* RNS_APP_DATA = "Archy-Messh";
|
||||||
static uint32_t lastRnsAnnounceMs = 0;
|
static uint32_t lastRnsAnnounceMs = 0;
|
||||||
static const uint32_t RNS_ANNOUNCE_INTERVAL_MS = 30000;
|
static const uint32_t RNS_ANNOUNCE_INTERVAL_MS = 30000;
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user