Пример #1
0
    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();
    }