Skip to content
Snippets Groups Projects
MeasurementData.hpp 1.47 KiB
Newer Older
//
// Created by cynthya on 10/6/22.
//

#ifndef CLIENT_MEASUREMENTDATA_HPP
#define CLIENT_MEASUREMENTDATA_HPP

#include "ArduinoJson.h"
#include "SensorProtocol.hpp"
#include "SensorInformation.hpp"
#include <list>
#include <optional>
#include <string>
#include <utility>
                  MeasurementType measurementType)
      : value(value), measurementType(measurementType), channel(channel),
        i2cAddress(i2cAddress) {
  }

  MeasurementData(double value, MeasurementType measurementType)
      : value(value), measurementType(measurementType) {
  }

  [[nodiscard]] double getValue() const { return value; }

  [[nodiscard]] const MeasurementType &
  getMeasurementType() const { return measurementType; }

  [[nodiscard]] std::string getMeasurementTypeString() const {
    return MeasurementTypes::measurementTypeToString(measurementType);
  }

  [[nodiscard]] const int &getChannel() const { return channel; }
  getI2CAddress() const { return i2cAddress; }

 private:
  double value;
  // TODO: is it possible for a sensor to have both a channel and an i2cAddress?
  int channel = NO_CHANNEL;
  int i2cAddress = NO_I2C_ADDRESS;