/**
  * <summary>
  *   Allows you to find a module from its serial number or from its logical name.
  * <para>
  * </para>
  * <para>
  *   This function does not require that the module is online at the time
  *   it is invoked. The returned object is nevertheless valid.
  *   Use the method <c>YModule.isOnline()</c> to test if the module is
  *   indeed online at a given time. In case of ambiguity when looking for
  *   a module by logical name, no error is notified: the first instance
  *   found is returned. The search is performed first by hardware name,
  *   then by logical name.
  * </para>
  * </summary>
  * <param name="func">
  *   a string containing either the serial number or
  *   the logical name of the desired module
  * </param>
  * <returns>
  *   a <c>YModule</c> object allowing you to drive the module
  *   or get additional information on the module.
  * </returns>
  */
 public static YModule FindModule(string func)
 {
   YModule obj;
   obj = (YModule)YFunction._FindFromCache("Module", func);
   if (obj == null)
   {
     obj = new YModule(func);
     YFunction._AddToCache("Module", func, obj);
   }
   return obj;
 }
 public PlugEvent(EVTYPE type, YModule mod)
 {
   _eventtype = type;
   _module = mod;
 }