creation of main + start of the code
This commit is contained in:
parent
ccd336d805
commit
c184231763
|
|
@ -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
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"C_Cpp.default.compilerPath": "C:/MinGW/bin/g++.exe"
|
||||||
|
}
|
||||||
|
|
@ -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 l’ancienne
|
||||||
|
}
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue