code: func (d *MCP3004Driver) Read(channel int) (result int, err error) {
  	if channel < 0 || channel > MCP3004DriverMaxChannel-1 {
  		return 0, errors.New("Invalid channel for read")
  	}
  
  	tx := make([]byte, 3)
  	tx[0] = 0x01
  	tx[1] = byte(8+channel) << 4
  	tx[2] = 0x00
  
  	rx := make([]byte, 3)
  
  	err = d.connection.Tx(tx, rx)
  	if err == nil && len(rx) == 3 {
  		result = int((rx[1]&0x3))<<8 + int(rx[2])
  	}
  
  	return result, err
  }
docs: // Read reads the current analog data for the desired channel.