/*
 * SolenoidFactory.h
 *
 *  Created on: January 6, 2020
 *      Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert
 */

#ifndef FLIPPR_DRIVER_SOLENOIDFACTORY_H
#define FLIPPR_DRIVER_SOLENOIDFACTORY_H

#include "output/DriverBoardPinController.h"
#include "ItemFactory.h"
#include "output/items/Solenoid.h"

namespace flippR_driver
{
namespace output
{

class SolenoidFactory : public ItemFactory
{
public:
  SolenoidFactory(nlohmann::json &object, std::shared_ptr<DriverBoardPinController> pin_controller);

  std::map<std::string, std::shared_ptr<items::Solenoid>> getItemMap();

private:
  uint8_t deactivation_time;
};

}
}

#endif //FLIPPR_DRIVER_SOLENOIDFACTORY_H
