/// <summary>
        /// Send commands stored in a file. Wait until the commands are transferred and we got a reply (no command pending)
        /// </summary>
        /// <param name="serial"></param>
        /// <param name="filename">used for a StreamReader</param>
        /// <param name="waitForMilliseconds"></param>
        public static async Task <IEnumerable <SerialCommand> > SendFileAsync(this ISerial serial, string filename, int waitForMilliseconds = DefaultTimeout)
        {
            var list = await serial.QueueFileAsync(filename);

            await serial.WaitUntilQueueEmptyAsync(waitForMilliseconds);

            return(list);
        }