creation of main + start of the code

This commit is contained in:
Laure BEL 2025-04-08 11:37:55 +02:00
parent ccd336d805
commit c184231763
3 changed files with 106 additions and 0 deletions

28
.vscode/launch.json vendored Normal file
View File

@ -0,0 +1,28 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug C++",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/main",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "build",
"miDebuggerPath": "/usr/bin/gdb" // ou chemin vers gdb sous Windows
}
]
}

3
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,3 @@
{
"C_Cpp.default.compilerPath": "C:/MinGW/bin/g++.exe"
}

75
main.cpp Normal file
View File

@ -0,0 +1,75 @@
#include <iostream>
#include <vector>
#include <chrono>
#include <thread>
// Seuils de BPM
const int BPM_MIN = 50;
const int BPM_MAX = 120;
// === 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
static int fakeBPM = 70 + rand() % 60 - 30;
return fakeBPM;
}
// === Calcule le BPM à partir d'une série de battements ===
int calculerBPM(const std::vector<int>& 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<int> bufferBPM;
const int tailleBuffer = 5;
while (true) {
int mesure = acquerirDonnees();
bufferBPM.push_back(mesure);
if (bufferBPM.size() > tailleBuffer) {
bufferBPM.erase(bufferBPM.begin()); // Supprimer lancienne
}
int bpm = calculerBPM(bufferBPM);
bool anomalie = verifierAnomalie(bpm);
afficher(bpm, anomalie);
if (anomalie) {
alerter(bpm);
}
std::this_thread::sleep_for(std::chrono::seconds(1)); // simulation de délai entre mesures
}
return 0;
}