#ifndef DATASIMULATOR_H
#define DATASIMULATOR_H

#include <QTimer>
#include <QVector>
#include "idatasource.h"

/** @brief Fuente de datos basada en simulación interna.
 *
 *  Genera valores simulados de temperatura para tres sensores
 *  (Ambiente, Proceso, Crítico) usando una señal senoidal con
 *  ruido aleatorio. Actualización cada 500 ms.
 */
class DataSimulator : public IDataSource {
    Q_OBJECT

public:
    explicit DataSimulator(QObject* parent = nullptr);

    void start() override;
    void stop() override;
    int sensorCount() const override;
    const SensorChannel& sensor(int index) const override;

private slots:
    void onTick();  ///< Callback del timer, actualiza todos los sensores

private:
    QTimer m_timer;
    QVector<SensorChannel> m_sensors;
};

#endif // DATASIMULATOR_H