ASCOM.cam85_v03.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 " + LowLevelDLL + " args: gain=" + settingsForm.gain.ToString());
            if (cameraSetGain(settingsForm.gain) == false)
            {
                tl.LogMessage("StartExposure", "Cant set gain to " + this.Name);
                throw new ASCOM.InvalidOperationException("Cant set gain to " + this.Name);
            }
            tl.LogMessage("StartExposure", "Call cameraSetOffset from " + LowLevelDLL + " args: offset=" + settingsForm.offset.ToString());
            if (cameraSetOffset(settingsForm.offset) == false)
            {
                tl.LogMessage("StartExposure", "Cant set offset to " + this.Name);
                throw new ASCOM.InvalidOperationException("Cant set offset to " + this.Name);
            }
            tl.LogMessage("StartExposure", "Call cameraSetBaudrate from " + LowLevelDLL + " args: baudrate=" + settingsForm.baudrate.ToString());
            if (cameraSetBaudrate(settingsForm.baudrate) == false)
            {
                tl.LogMessage("StartExposure", "Cant set baudrate to " + this.Name);
                throw new ASCOM.InvalidOperationException("Cant set baudrate to " + this.Name);
            }
            //Save parameters
            cameraLastExposureDuration = Duration;
            exposureStart = DateTime.Now;
            gainState = settingsForm.gain;
            offsetState = settingsForm.offset;
            baudrateState = settingsForm.baudrate;
            onTopState = settingsForm.onTop;
            slowCoolingEnabledState = settingsForm.slowCoolingEnabled;
            slowCoolingSpeedState = settingsForm.slowCoolingSpeed;        
            //start exposure
            tl.LogMessage("StartExposure", "Call cameraStartExposure from " + LowLevelDLL + " 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, Light);
        }