fix(firmware): use NVS node_id instead of Kconfig constant (#279)

CONFIG_CSI_NODE_ID (compile-time, always 1) was hardcoded in 6
places: CSI frame serialization, compressed frames, vitals packets,
WASM output packets, and display UI. NVS provisioning wrote the
correct node_id but it was never used at runtime.

Fixed all occurrences to use g_nvs_config.node_id:
- csi_collector.c: frame header + log message
- edge_processing.c: compressed frame + vitals packet
- wasm_runtime.c: WASM output packet
- display_ui.c: system info display

This means --node-id 0/1/2 provisioning now actually works for
multi-node mesh deployments.

Closes #279

Co-Authored-By: claude-flow <ruv@ruv.net>
This commit is contained in:
ruv
2026-03-16 15:12:45 -04:00
parent 578d84c25e
commit 8a84748a83
4 changed files with 17 additions and 23 deletions
+3 -3
View File
@@ -117,8 +117,8 @@ size_t csi_serialize_frame(const wifi_csi_info_t *info, uint8_t *buf, size_t buf
uint32_t magic = CSI_MAGIC;
memcpy(&buf[0], &magic, 4);
/* Node ID */
buf[4] = (uint8_t)CONFIG_CSI_NODE_ID;
/* Node ID (from NVS runtime config, not compile-time Kconfig) */
buf[4] = g_nvs_config.node_id;
/* Number of antennas */
buf[5] = n_antennas;
@@ -273,7 +273,7 @@ void csi_collector_init(void)
}
ESP_LOGI(TAG, "CSI collection initialized (node_id=%d, channel=%u)",
CONFIG_CSI_NODE_ID, (unsigned)csi_channel);
g_nvs_config.node_id, (unsigned)csi_channel);
}
/* ---- ADR-029: Channel hopping ---- */