Description of Bus.
 /// <summary>Procura pelo dispositivo USB e o inicializa para comunicação.
 /// Retorna True se o dispositivo foi encontrado e inicializado, caso contrário, retorna False.
 /// </summary>
 /// <param name="produto">String com o nome do produto retornado pelo Dipositivo USB.</param>
 /// <param name="fabricante">String com o nome do fabricante retornado pelo Dipositivo USB.</param>
 public bool Inicializar(string produto, string fabricante)
 {
     foreach (Bus bus in Bus.Busses)
     {
         foreach (Descriptor descriptor in bus.Descriptors)
         {
             Device device = descriptor.OpenDevice();
             if (device.Product == produto && device.Manufacturer == fabricante)
             {
                 ProdutoId = produto;
                 FabricanteId = fabricante;
                 barramento = bus;
                 descritor = descriptor;
                 dispositivo = device;
                 dispositivo_aberto = true;
                 return true;
             }
         }
     }
     return false;
 }
 /// <summary>
 ///   Copies the elements of an array to the end of the <see cref='BusCollection'/>.
 /// </summary>
 /// <param name='val'>
 ///    An array of type <see cref='Bus'/> containing the objects to add to the collection.
 /// </param>
 /// <seealso cref='BusCollection.Add'/>
 public void AddRange(Bus[] val)
 {
     for (int i = 0; i < val.Length; i++) {
         this.Add(val[i]);
     }
 }
 /// <summary>
 ///   Initializes a new instance of <see cref='BusCollection'/> containing any array of <see cref='Bus'/> objects.
 /// </summary>
 /// <param name='val'>
 ///       A array of <see cref='Bus'/> objects with which to intialize the collection
 /// </param>
 public BusCollection(Bus[] val)
 {
     this.AddRange(val);
 }
 /// <summary>
 ///   Adds a <see cref='Bus'/> with the specified value to the 
 ///   <see cref='BusCollection'/>.
 /// </summary>
 /// <param name='val'>The <see cref='Bus'/> to add.</param>
 /// <returns>The index at which the new element was inserted.</returns>
 /// <seealso cref='BusCollection.AddRange'/>
 public int Add(Bus val)
 {
     return List.Add(val);
 }
 /// <summary>
 ///   Removes a specific <see cref='Bus'/> from the <see cref='BusCollection'/>.
 /// </summary>
 /// <param name='val'>The <see cref='Bus'/> to remove from the <see cref='BusCollection'/>.</param>
 /// <exception cref='ArgumentException'><paramref name='val'/> is not found in the Collection.</exception>
 public void Remove(Bus val)
 {
     List.Remove(val);
 }
 /// <summary>
 ///   Inserts a <see cref='Bus'/> into the <see cref='BusCollection'/> at the specified index.
 /// </summary>
 /// <param name='index'>The zero-based index where <paramref name='val'/> should be inserted.</param>
 /// <param name='val'>The <see cref='Bus'/> to insert.</param>
 /// <seealso cref='BusCollection.Add'/>
 public void Insert(int index, Bus val)
 {
     List.Insert(index, val);
 }
 /// <summary>
 ///    Returns the index of a <see cref='Bus'/> in 
 ///       the <see cref='BusCollection'/>.
 /// </summary>
 /// <param name='val'>The <see cref='Bus'/> to locate.</param>
 /// <returns>
 ///   The index of the <see cref='Bus'/> of <paramref name='val'/> in the 
 ///   <see cref='BusCollection'/>, if found; otherwise, -1.
 /// </returns>
 /// <seealso cref='BusCollection.Contains'/>
 public int IndexOf(Bus val)
 {
     return List.IndexOf(val);
 }
 /// <summary>
 ///   Copies the <see cref='BusCollection'/> values to a one-dimensional <see cref='Array'/> instance at the 
 ///    specified index.
 /// </summary>
 /// <param name='array'>The one-dimensional <see cref='Array'/> that is the destination of the values copied from <see cref='BusCollection'/>.</param>
 /// <param name='index'>The index in <paramref name='array'/> where copying begins.</param>
 /// <exception cref='ArgumentException'>
 ///   <para><paramref name='array'/> is multidimensional.</para>
 ///   <para>-or-</para>
 ///   <para>The number of elements in the <see cref='BusCollection'/> is greater than
 ///         the available space between <paramref name='arrayIndex'/> and the end of
 ///         <paramref name='array'/>.</para>
 /// </exception>
 /// <exception cref='ArgumentNullException'><paramref name='array'/> is <see langword='null'/>. </exception>
 /// <exception cref='ArgumentOutOfRangeException'><paramref name='arrayIndex'/> is less than <paramref name='array'/>'s lowbound. </exception>
 /// <seealso cref='Array'/>
 public void CopyTo(Bus[] array, int index)
 {
     List.CopyTo(array, index);
 }
 /// <summary>
 ///   Gets a value indicating whether the 
 ///    <see cref='BusCollection'/> contains the specified <see cref='Bus'/>.
 /// </summary>
 /// <param name='val'>The <see cref='Bus'/> to locate.</param>
 /// <returns>
 /// <see langword='true'/> if the <see cref='Bus'/> is contained in the collection; 
 ///   otherwise, <see langword='false'/>.
 /// </returns>
 /// <seealso cref='BusCollection.IndexOf'/>
 public bool Contains(Bus val)
 {
     return List.Contains(val);
 }