code: func (f *Adaptor) DigitalRead(pin string) (val int, err error) {
  	p, err := strconv.Atoi(pin)
  	if err != nil {
  		return
  	}
  
  	if f.Board.Pins()[p].Mode != client.Input {
  		if err = f.Board.SetPinMode(p, client.Input); err != nil {
  			return
  		}
  		if err = f.Board.ReportDigital(p, 1); err != nil {
  			return
  		}
  		<-time.After(10 * time.Millisecond)
  	}
  
  	return f.Board.Pins()[p].Value, nil
  }
docs: // DigitalRead retrieves digital value from specified pin.
  // Returns -1 if the response from the board has timed out