Stream slave accel via ESP-NOW with master snapshot cache.
Slaves push BMA456 samples at 16ms when enabled; the master caches per client and exposes ACCEL_SNAPSHOT and ACCEL_STREAM over UART. goTool adds dashboard stream controls, HTTP accel-stream routes, and an external WebSocket API with per-connection receive/interval and slave stream commands. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -17,6 +17,8 @@ enum EspNowMessageType {
|
||||
ESPNOW_OTA_STATUS = 9;
|
||||
ESPNOW_FIND_ME = 10;
|
||||
ESPNOW_RESTART = 11;
|
||||
ESPNOW_ACCEL_SAMPLE = 12;
|
||||
ESPNOW_SET_ACCEL_STREAM = 13;
|
||||
}
|
||||
|
||||
message EspNowUnicastTest {
|
||||
@@ -52,6 +54,20 @@ message EspNowAccelDeadzone {
|
||||
uint32 client_id = 2; // 0 = all slaves; otherwise only matching slave_id applies
|
||||
}
|
||||
|
||||
/** Master → slave: enable/disable periodic accel ESP-NOW stream (~16 ms). */
|
||||
message EspNowAccelStream {
|
||||
bool enable = 1;
|
||||
uint32 client_id = 2;
|
||||
}
|
||||
|
||||
/** Slave → master: latest BMA456 sample (sent ~every 16 ms). */
|
||||
message EspNowAccelSample {
|
||||
uint32 slave_id = 1;
|
||||
sint32 x = 2;
|
||||
sint32 y = 3;
|
||||
sint32 z = 4;
|
||||
}
|
||||
|
||||
// Master → slave: begin OTA (erase inactive slot; slave replies ESPNOW_OTA_STATUS).
|
||||
message EspNowOtaStart {
|
||||
uint32 total_size = 1;
|
||||
@@ -87,5 +103,7 @@ message EspNowMessage {
|
||||
EspNowOtaStatus ota_status = 10;
|
||||
EspNowFindMe find_me = 11;
|
||||
EspNowRestart restart = 12;
|
||||
EspNowAccelSample accel_sample = 13;
|
||||
EspNowAccelStream accel_stream = 14;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user