/**
         * <summary>
         *   Enumerates all functions of type Temperature available on the devices
         *   currently reachable by the library, and returns their unique hardware ID.
         * <para>
         *   Each of these IDs can be provided as argument to the method
         *   <c>YTemperature.FindTemperature</c> to obtain an object that can control the
         *   corresponding device.
         * </para>
         * </summary>
         * <returns>
         *   an array of strings, each string containing the unique hardwareId
         *   of a device function currently connected.
         * </returns>
         */
        public static new string[] GetSimilarFunctions()
        {
            List <string> res = new List <string>();
            YTemperature  it  = YTemperature.FirstTemperature();

            while (it != null)
            {
                res.Add(it.get_hardwareId());
                it = it.nextTemperature();
            }
            return(res.ToArray());
        }