Send ESP-NOW accel only on deadzone change and harden BLE+WiFi OTA coex.
Quiet pods no longer spam 100 Hz samples; mute wifi logs and throttle BLE notifies during slave distribution so the wifi task stack does not panic. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+10
-2
@@ -26,7 +26,8 @@
|
||||
/** While master or slave OTA is in progress (discover may be sparse). */
|
||||
#define SLAVE_MASTER_OTA_GRACE_MS 300000u
|
||||
/**
|
||||
* Accel stream cadence (10 ms frame). TX path is selectable (INPUT_SEND_MODE).
|
||||
* Accel stream poll cadence (10 ms frame). TX only when sample exceeds the
|
||||
* BMA456 deadzone vs last sent sample. TX path is selectable (INPUT_SEND_MODE).
|
||||
* With master Discover.master_time_us, slaves phase into 1 ms slots:
|
||||
* offset_ms = (assigned_id - 1) % 8. Slot wait uses esp_timer (FreeRTOS tick
|
||||
* is 10 ms — too coarse for intra-frame offsets).
|
||||
@@ -516,6 +517,9 @@ static void handle_accel_stream(const uint8_t *master_mac,
|
||||
return;
|
||||
}
|
||||
s_accel_stream_enabled = cfg->enable;
|
||||
if (cfg->enable) {
|
||||
bma456_accel_stream_reset_baseline();
|
||||
}
|
||||
char mac_str[18];
|
||||
esp_now_core_mac_to_str(master_mac, mac_str, sizeof(mac_str));
|
||||
ESP_LOGI(TAG, "accel stream %s from master %s (id=%lu)",
|
||||
@@ -743,7 +747,8 @@ static void accel_stream_task(void *param) {
|
||||
(void)param;
|
||||
|
||||
ESP_LOGI(TAG,
|
||||
"accel stream task (interval %u ms, %u×%llu us slots, mode selectable)",
|
||||
"accel stream task (poll %u ms, deadzone TX, %u×%llu us slots, "
|
||||
"mode selectable)",
|
||||
(unsigned)ESPNOW_ACCEL_INTERVAL_MS, (unsigned)ESPNOW_ACCEL_SLOT_COUNT,
|
||||
(unsigned long long)ESPNOW_ACCEL_SLOT_US);
|
||||
|
||||
@@ -759,6 +764,9 @@ static void accel_stream_task(void *param) {
|
||||
if (bma456_read_accel(&x, &y, &z) != ESP_OK) {
|
||||
continue;
|
||||
}
|
||||
if (!bma456_accel_stream_take_if_changed(x, y, z)) {
|
||||
continue;
|
||||
}
|
||||
(void)send_accel_sample(s_master_mac, s_assigned_id, x, y, z);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user