コード例 #1
0
ファイル: CaptureTests.cs プロジェクト: gharley/CamApi
        public void RunCaptureSaveStop(CamDictionary allowedSettings)
        {
            // Example showing partial pre-trigger buffer fill, trigger, save video, then truncate save leaving playable video file
            this.RunCamera(api, allowedSettings, "\nPartial pre-trigger buffer fill, trigger, start video save, then truncate save leaving playable video file");

            api.WaitForTransition("    Letting pre-trigger buffer partially fill", CAMERA_STATE.RUNNING, 10);
            Thread.Sleep(4000);
            Console.WriteLine($"        {api.GetStatusString()}");

            this.TriggerCamera(api, "Camera triggered, starting to fill post-trigger buffer");

            Console.WriteLine($"    Percentage pre-trigger buffer filled before trigger: {api.GetPretriggerFillLevel()}");

            api.WaitForTransition("Waiting for post-trigger buffer to fill", CAMERA_STATE.TRIGGERED, 10);
            api.ExpectState(CAMERA_STATE.SAVING);

            Thread.Sleep(1000);
            Console.WriteLine($"    Truncating save before complete, video file still playable");
            Console.WriteLine($"        {api.GetStatusString()}");

            api.SaveStop();
            api.WaitForTransition("Waiting for save to finish", CAMERA_STATE.SAVING, 10);
            api.WaitForTransition("Waiting for post-trigger buffer to fill", CAMERA_STATE.SAVE_TRUNCATING, 10);

            api.ExpectRunningState();
        }
コード例 #2
0
        private void MultishotCaptureVideo(CAMERA_STATE PostCaptureExpectedState, bool CancelDuringPostTriggerFill = false, string baseFilename = null)
        {
            // Example showing full pre-trigger buffer fill, trigger, save video capture process
            api.ExpectRunningState();
            api.WaitForTransition("Waiting for pre-trigger buffer to fill", CAMERA_STATE.RUNNING, 10);
            api.ExpectState(CAMERA_STATE.RUNNING_PRETRIGGER_FULL);

            this.TriggerCamera(api, "Camera triggered, filling post-trigger buffer", baseFilename);
            Console.WriteLine($"    Percentage pre-trigger buffer filled before trigger: {api.GetPretriggerFillLevel()}");

            if (CancelDuringPostTriggerFill)
            {
                var status = api.Cancel();

                Console.WriteLine($"    Video captured canceled during post trigger fill: {status}");
                Thread.Sleep(1000);
                api.ExpectRunningState();
                return;
            }

            api.WaitForTransition("Waiting for post-trigger buffer to fill", CAMERA_STATE.TRIGGERED, 10);
            api.ExpectState(PostCaptureExpectedState);
        }