public void Send(USBConnection usbCon, NikonController camCon) { usbCon?.Open(); camCon?.WaitForConnection(); Console.WriteLine("Inizio a mandare i comandi!"); var i = 0; foreach (var c in list) { if (ShouldClose) { ShouldClose = false; usbCon?.Close(); camCon?.WaitForReady(); return; } camCon?.WaitForReady(); if (c.Type == Command.Cmdtype.PHOTO) { camCon?.Capture(); } else { c.Send(usbCon); } Console.WriteLine(c.ToString()); if (c.Type == Command.Cmdtype.TIME) { time = c.Value * 10; } if (c.Type == Command.Cmdtype.VISIBLE || c.Type == Command.Cmdtype.INFRARED || c.Type == Command.Cmdtype.ULTRAVIOLET || c.Type == Command.Cmdtype.PHOTO) { if (i < list.Count - 1 && list.ElementAt(i + 1).Type != Command.Cmdtype.PHOTO) { Thread.Sleep(time); } } Thread.Sleep(DELAY); i++; } camCon?.WaitForReady(); Console.WriteLine("Finito!"); usbCon?.Close(); }