#pragma once

#include <stdint.h>
#include <string>
/**
 * @brief An interface class for operation of the motorized valve for the CPF's buoyancy control
 * system.
 *
 */
class MotorizedValve
{
  public:
	enum class STATE : uint8_t
	{
		CLOSED = 0,
		OPEN
	};

  public:
	MotorizedValve(std::string id)
		: id_(id) 
	{}

	virtual void openMV() = 0;
	virtual void closeMV() = 0;

	virtual bool isMVOpen() = 0;

	virtual bool isMVReady() = 0;

  protected:
	virtual ~MotorizedValve() = default;
	
	std::string id_;
};