ASCOM.cam8_v07.Camera.StartExposure C# (CSharp) Метод

StartExposure() публичный Метод

public StartExposure ( double Duration, bool Light ) : void
Duration double
Light bool
Результат void
        public void StartExposure(double Duration, bool Light)
        {
            //check exposure parameters
            tl.LogMessage("StartExposure", "Duration=" + Duration.ToString() + " Light=" + Light.ToString());
            if ((Duration < ExposureMin) || (Duration > ExposureMax))
            {
                tl.LogMessage("StartExposure", "InvalidValueException Duration must be in range [MinExposure;MaxExposure]");
                throw new InvalidValueException("StartExposure", Duration.ToString(), "Duration must be in range [MinExposure;MaxExposure]");
            }
            if ((cameraStartX + cameraNumX) > (ccdWidth / cameraBinX))
            {
                tl.LogMessage("StartExposure", "InvalidValueException (cameraStartX + cameraNumX) must be < (ccdWidth / cameraBinX)");
                throw new InvalidValueException("StartExposure", (cameraStartX + cameraNumX).ToString(), "(cameraStartX + cameraNumX) must be < (ccdWidth / cameraBinX)");
            }
            if ((cameraStartY + cameraNumY) > (ccdHeight / cameraBinY))
            {
                tl.LogMessage("StartExposure", "InvalidValueException (cameraStartY + cameraNumY) must be < (ccdHeight / cameraBinY)");
                throw new InvalidValueException("StartExposure", (cameraStartY + cameraNumY).ToString(), "(cameraStartY + cameraNumY) must be < (ccdHeight / cameraBinY)");
            }
            //set camera gain/offset
            tl.LogMessage("StartExposure", "Call cameraSetGain from cam8ll07.dll args: gain=" + settingsForm.gain.ToString());
            if (cameraSetGain(settingsForm.gain) == false)
            {
                tl.LogMessage("StartExposure", "Cant set gain to cam8");
                throw new ASCOM.InvalidOperationException("Cant set gain to cam8");
            }
            tl.LogMessage("StartExposure", "Call cameraSetOffset from cam8ll07.dll args: offset=" + settingsForm.offset.ToString());
            if (cameraSetOffset(settingsForm.offset) == false)
            {
                tl.LogMessage("StartExposure", "Cant set offset to cam8");
                throw new ASCOM.InvalidOperationException("Cant set offset to cam8");
            }
            //Save parameters
            cameraLastExposureDuration = Duration;
            exposureStart = DateTime.Now;
            gainState = settingsForm.gain;
            offsetState = settingsForm.offset;
            onTopState = settingsForm.onTop;
            //start exposure
            tl.LogMessage("StartExposure", "Call cameraStartExposure from cam8ll07.dll, args: ");
            tl.LogMessage("StartExposure", " cameraBinX=" + cameraBinX.ToString() +
                                           " cameraStartX=" + cameraStartX.ToString() +
                                           " cameraStartY=" + cameraStartY.ToString() +
                                           " cameraNumX=" + cameraNumX.ToString() +
                                           " cameraNumY=" + cameraNumY.ToString() +
                                           " Duration=" + Duration.ToString() +
                                           " Light=" + true.ToString());
            cameraStartExposure((int)cameraBinX, cameraStartX * cameraBinX, cameraStartY * cameraBinY, cameraNumX * cameraBinX, cameraNumY * cameraBinY, Duration, true);
        }