/**
  * <summary>
  *   Retrieves a module chain for a given identifier.
  * <para>
  *   The identifier can be specified using several formats:
  * </para>
  * <para>
  * </para>
  * <para>
  *   - FunctionLogicalName
  * </para>
  * <para>
  *   - ModuleSerialNumber.FunctionIdentifier
  * </para>
  * <para>
  *   - ModuleSerialNumber.FunctionLogicalName
  * </para>
  * <para>
  *   - ModuleLogicalName.FunctionIdentifier
  * </para>
  * <para>
  *   - ModuleLogicalName.FunctionLogicalName
  * </para>
  * <para>
  * </para>
  * <para>
  *   This function does not require that the module chain is online at the time
  *   it is invoked. The returned object is nevertheless valid.
  *   Use the method <c>YDaisyChain.isOnline()</c> to test if the module chain is
  *   indeed online at a given time. In case of ambiguity when looking for
  *   a module chain 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>
  * <para>
  *   If a call to this object's is_online() method returns FALSE although
  *   you are certain that the matching device is plugged, make sure that you did
  *   call registerHub() at application initialization time.
  * </para>
  * <para>
  * </para>
  * </summary>
  * <param name="func">
  *   a string that uniquely characterizes the module chain, for instance
  *   <c>MyDevice.daisyChain</c>.
  * </param>
  * <returns>
  *   a <c>YDaisyChain</c> object allowing you to drive the module chain.
  * </returns>
  */
 public static YDaisyChainProxy FindDaisyChain(string func)
 {
     return(YoctoProxyManager.FindDaisyChain(func));
 }