code: func New() *Client {
  	c := &Client{
  		ProtocolVersion: "",
  		FirmwareName:    "",
  		connection:      nil,
  		ConnectTimeout:  15 * time.Second,
  		pins:            []Pin{},
  		analogPins:      []int{},
  		Eventer:         gobot.NewEventer(),
  	}
  
  	c.connecting.Store(false)
  	c.connected.Store(false)
  
  	for _, s := range []string{
  		"FirmwareQuery",
  		"CapabilityQuery",
  		"AnalogMappingQuery",
  		"ProtocolVersion",
  		"I2cReply",
  		"StringData",
  		"Error",
  	} {
  		c.AddEvent(s)
  	}
  
  	return c
  }
docs: // New returns a new Client