#ifndef SENSORCHANNEL_H
#define SENSORCHANNEL_H

#include <QString>
#include <QColor>

/** @brief Canal de datos de un sensor.
 *
 *  Representa un canal individual con nombre, rango de operación,
 *  color asociado y valor actual. Puede generar datos simulados
 *  o recibir valores reales desde una fuente externa.
 */
class SensorChannel {
public:
    SensorChannel(const QString& name, double minVal, double maxVal, QColor color);

    QString name() const;        ///< Nombre del canal (ej: "Ambiente")
    QColor color() const;        ///< Color asociado para la UI
    double currentValue() const; ///< Valor actual de la lectura
    void update();               ///< Genera un nuevo valor simulado
    void setValue(double val);   ///< Asigna un valor externo (serial)

private:
    QString m_name;
    double m_min;
    double m_max;
    QColor m_color;
    double m_currentValue;
    double m_phase;  ///< Fase actual de la oscilación senoidal
};

#endif // SENSORCHANNEL_H