#include #include #include #include #include #include #include // Seuils de BPM const int BPM_MIN = 50; const int BPM_MAX = 120; int fakeBPM = 60; const int secondsBetweenMeasures = 10; const int bufferSize = 60480; // une semaine à 1 mesure/10s int historique[bufferSize]; int index = 0; // === Simule la récupération de données du capteur === int acquerirDonnees() { // Ici tu brancherais ton ADC ou capteur réel // Simulation d'une fréquence cardiaque variable fakeBPM = fakeBPM - 5 + rand() % 11 ; std::cout << "Le random BPM est "<& battements) { // Moyenne simple des valeurs simulées if (battements.empty()) return 0; int somme = 0; for (int bpm : battements) { somme += bpm; } return somme / battements.size(); } // === Vérifie si le BPM est dans la plage normale === bool verifierAnomalie(int bpm) { return bpm < BPM_MIN || bpm > BPM_MAX; } // === Déclenche une alerte === void alerter(int bpm) { std::cout << " Alerte : rythme cardiaque anormal (" << bpm << " BPM) !" << std::endl; // Tu peux ici allumer une LED, déclencher un buzzer, etc. } // === Affiche les données sur un terminal ou un écran === void afficher(int bpm, bool anomalie) { std::cout << "BPM actuel : " << bpm; if (anomalie) { std::cout << " [ANOMALIE]"; } std::cout << std::endl; } // === Fonction principale === int main() { std::vector bufferBPM; const int tailleBuffer = 5; std::srand(std::time(0)); while (true) { int mesure = acquerirDonnees(); bufferBPM.push_back(mesure); if (bufferBPM.size() > tailleBuffer) { bufferBPM.erase(bufferBPM.begin()); // Supprimer l’ancienne } int bpm = calculerBPM(bufferBPM); bool anomalie = verifierAnomalie(bpm); afficher(bpm, anomalie); if (anomalie) { alerter(bpm); } sleep(1); // simulation de délai entre mesures } return 0; }