/// <summary>
 /// Creates a specific logic board.
 /// </summary>
 /// <param name="logicBoard">Defines the logic board to create.</param>
 /// <returns></returns>
 public ILogicBoard GetLogicBoard(LogicBoard logicBoard, IPinController controller)
 {
     return(logicBoard switch {
         LogicBoard.RaspberryPi2 => GetRaspberryPi2(controller),
         _ => throw new NotImplementedException(logicBoard.ToString())
     });
 /// <summary>
 /// Creates a new logic board.
 /// </summary>
 public RaspberryPi2(string name, IEnumerable <IPin> pins, IPinController controller)
 {
     this.Name          = name;
     this.Pins          = pins;
     this.PinController = controller;
 }