Fix crash shutdown + IMU BLE toujours actif pour tests

PS_Win_BLE : crash à la fermeture d'Unreal (assertion Index >= 0 dans
UObjectArray) car RemoveFromRoot() était appelé dans ShutdownModule()
alors que l'UObject array est déjà partiellement détruit. Fix : cleanup
du BLEManager déplacé dans un delegate FCoreDelegates::OnPreExit qui
s'exécute plus tôt, avant la destruction des UObjects.

uproject : désactivation explicite de WinBluetoothLE (les nœuds
Blueprint restaient dans le groupe Bluetooth Low Energy car le plugin
était chargé automatiquement depuis le dossier Plugins/).

Firmware : envoi IMU BLE découplé du debug mode pour pouvoir tester
la caractéristique 6E400002 à distance (TODO_TEST — remettre la
condition debugMode != DEBUG_OFF quand Pico Motion Tracker intégré).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-18 19:23:13 +01:00
parent 0573cd9a57
commit d53dd36194
3 changed files with 26 additions and 9 deletions

View File

@@ -574,9 +574,10 @@ void loop() {
sendDebugData(accelMag, gyroMag, audioLevel);
printDebugSerial(accelMag, gyroMag, audioLevel);
// ─── IMU BLE 10 Hz (debug uniquement) ───
// En production (debugMode OFF), pas d'envoi IMU → charge BLE réduite pour Unreal
if (debugMode != DEBUG_OFF && now-lastSend>=100) {
// ─── IMU BLE 10 Hz ───
// TODO_TEST : envoi IMU toujours actif pour test (Pico Motion Tracker en production)
// REMETTRE : if (debugMode != DEBUG_OFF && now-lastSend>=100) {
if (now-lastSend>=100) {
lastSend=now;
float dt=(now-lastUpdate)/1000.0f; lastUpdate=now;
roll+=gx*dt; pitch+=gy*dt; yaw+=gz*dt;