예제 #1
0
        private static void PauseEmu(bool hasStatus, int status)
        {
            if (run_Renamed && !pause)
            {
                pause = true;

                if (hasStatus)
                {
                    StepLogger.Status = status;
                }

                gui.RefreshButtons();

                if (State.debugger != null)
                {
                    State.debugger.RefreshButtons();
                    State.debugger.SafeRefreshDebugger(true);
                }

                if (State.memoryViewer != null)
                {
                    State.memoryViewer.SafeRefreshMemory();
                }

                if (State.imageViewer != null)
                {
                    State.imageViewer.SafeRefreshImage();
                }

                StepLogger.flush();
            }
        }
예제 #2
0
        public void ComposeMovie()
        {
            string tempDirName = Guid.NewGuid().ToString().Replace("-", "");
            var    parentDir   = new DirectoryInfo(System.Environment.CurrentDirectory);
            //create folder
            var workingDir = parentDir.CreateSubdirectory(tempDirName);

            FileManager.PersistFile(BuildFfmpegFilter(), "filtering");
            FileManager.PersistFile(BuildMetadataFile(), "metadata");
            FileManager.PersistFile(StepLogger.GetLogs(), "step.srt");
            FileManager.PersistFile(OtherLogger.GetLogs(), "debug.srt");

            var index = 0;

            //create files
            lock (Images)
            {
                foreach (var file in Images)
                {
                    var filename = "img" + index.ToString("D4") + ".png";
                    FileManager.PersistFile(file.Item2, filename);
                    index++;
                }
            }

            //create create images

            var encodeArguments =
                $"{MovieLoggerConfig.PathToFfmpeg} -y -i img%4d.png -s:v {MovieLoggerConfig.Resolution} -r {MovieLoggerConfig.FrameRate}" +
                $" -crf 1 -filter_complex_script filtering test.mp4";

            var chapterArguments = $"{MovieLoggerConfig.PathToFfmpeg} -y -i test.mp4 -i metadata -map_metadata 1 -codec copy test-new.mp4";

            var subtitleArguments = $"{MovieLoggerConfig.PathToFfmpeg}  -y -i test-new.mp4 -i step.srt -i debug.srt " +
                                    $"-map 0:v -map 1 -map 2 " +
                                    $"-c:v copy -c:a copy -c:s srt " +
                                    $"-metadata:s:s:0 language=eng -metadata:s:s:1 language=epo " +
                                    $"test.mkv";

            subtitleArguments = $"{MovieLoggerConfig.PathToFfmpeg}  -y -i test-new.mp4 -i step.srt  " +
                                $"-map 0:v -map 1  " +
                                $"-c:v copy -c:a copy -c:s srt " +
                                $"-metadata:s:s:0 language=eng " +
                                $"test.mkv";

            var sb = new StringBuilder();

            sb.AppendLine(encodeArguments);
            sb.AppendLine(chapterArguments);
            sb.AppendLine(subtitleArguments);

            FileManager.PersistFile(sb.ToString(), "moviefy.ps1");
        }
예제 #3
0
파일: DriverCNC2.cs 프로젝트: m9ra/FullCNC
        public DriverCNC2()
        {
            _plannedState = new StateInfo();
            _currentState = new StateInfo();

            _currentState.Initialize();
            _plannedState = _currentState.Copy();

            _positionEstimator = new Thread(runPositionEstimation);
            _positionEstimator.IsBackground = true;
            _positionEstimator.Priority     = ThreadPriority.Lowest;

            _communicationWorker = new Thread(SERIAL_worker);
            _communicationWorker.IsBackground = true;
            _communicationWorker.Priority     = ThreadPriority.Highest;

            if (LOG_STEPS)
            {
                StepLogger = new StepLogger(".");
            }
        }
예제 #4
0
        public static void LineSlicing()
        {
            Configuration.EnableRouterMode();
            System.Globalization.CultureInfo customCulture = (System.Globalization.CultureInfo)Thread.CurrentThread.CurrentCulture.Clone();
            customCulture.NumberFormat.NumberDecimalSeparator = ".";
            Thread.CurrentThread.CurrentCulture = customCulture;
            SystemUtilities.PreventSleepMode();

            var speed1Ticks    = 900;
            var speed2Ticks    = 10000;
            var timeGrainTicks = 3000;

            var lengthMm = 100;
            var v        = new Vector(
                ControllerCNC.Primitives.Speed.FromDeltaT(speed1Ticks).ToMetric(),
                ControllerCNC.Primitives.Speed.FromDeltaT(speed2Ticks).ToMetric()
                );


            var timeGrain = 1.0 * timeGrainTicks / Configuration.TimerFrequency;
            var speed     = v.Length;

            v = v * lengthMm;

            var segment = new ToolPathSegment(new Point3D(0, 0, 0), new Point3D(v.X, v.Y, 0), MotionMode.IsLinearRapid);
            var logger  = new StepLogger(".");


            var slicer = new ToolPathSegmentSlicer(segment);

            for (var i = 0; i < 15; ++i)
            {
                var instruction = slicer.Slice(speed, timeGrain);
                logger.LogInstruction(instruction);
            }
            logger.Flush();
        }
 public void BeforeStep()
 {
     _stepLogger           = new StepLogger();
     _stepLogger.StepTitle = ScenarioStepContext.Current.StepInfo.StepDefinitionType + " " + ScenarioContext.Current.StepContext.StepInfo.Text;
     _stepCounter         += 1;
 }
예제 #6
0
 public void StepEnd(string step)
 => StepLogger.AddMessage(Stopwatch.Elapsed, step);