#include <iostream>
#include <cstdlib>
#include <ctime>
#include <thread> // Додано для std::this_thread::sleep_for
#include <chrono> // Додано для std::chrono::seconds
// Клас для симуляції датчика диму та температури
class FireSensor {
public:
FireSensor(int smokeThreshold, int tempThreshold)
: smokeThreshold(smokeThreshold), tempThreshold(tempThreshold) {}
// Функція для імітації зчитування диму
int readSmoke() {
return rand() % 100; // Симулюємо рівень диму від 0 до 99
}
// Функція для імітації зчитування температури
int readTemperature() {
return 20 + rand() % 60; // Температура в діапазоні від 20 до 79°C
}
// Функція для перевірки стану системи
bool isFireDetected() {
int smoke = readSmoke();
int temperature = readTemperature();
std::cout << "Рівень диму: " << smoke << ", Температура: " << temperature << "°C" << std::endl;
// Перевірка: якщо рівень диму або температура перевищують граничні значення
return (smoke > smokeThreshold || temperature > tempThreshold);
}
private:
int smokeThreshold; // Граничний рівень диму
int tempThreshold; // Гранична температура
};
// Функція для активації сирени
void activateAlarm() {
std::cout << "🚨 Пожежна сигналізація активована! 🚨" << std::endl;
}
int main() {
srand(static_cast<unsigned>(time(0))); // Ініціалізація генератора випадкових чисел
FireSensor sensor(70, 60); // Ініціалізація датчиків з пороговими значеннями (дим > 70, температура > 60)
std::cout << "Система пожежної сигналізації запущена..." << std::endl;
while (true) {
if (sensor.isFireDetected()) {
activateAlarm(); // Якщо виявлено пожежу — активуємо сигналізацію
break; // Зупиняємо програму після активації сигналізації
} else {
std::cout << "Система в нормі. Перевірка триває..." << std::endl;
std::this_thread::sleep_for(std::chrono::seconds(3)); // Затримка між перевірками
}
}
return 0;
}