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