public void Start() { if (!connected) { try { TimerResolution.TimeBeginPeriod(1); List <string> deviceNames = CaptureDevice.GetDeviceNames(); int deviceIndex = deviceNames.IndexOf(deviceName); if (deviceIndex >= 0) { millisecondSleepInterval = (int)Math.Round(1000 / (double)this.frameRate); List <CameraResolution> cr = CaptureDevice.GetAvailableResolutions(deviceIndex); captureDevice = new CaptureDevice(deviceIndex, this.frameRate, this.ImageWidth, this.ImageHeight); captureDevice.Start(); connected = true; OnCameraStarted(); // OnCameraStarted(); // captureDevice.SetVideoProperty(VideoProcAmpProperty.Brightness, 200); } } catch { connected = false; } } if (connected) { runThread = new Thread(new ThreadStart(RunLoop)); runThread.Start(); } }
private void OnTimer2ResolutionChanged(TimerResolution value) { if (this.Timer2ResolutionChanged == null) { return; } this.Timer2ResolutionChanged((object)this, new TimerResolutionEventArg(value)); }
private void stopButton_Click(object sender, EventArgs e) { stopButton.Enabled = false; agent?.Stop(); TimerResolution.TimeEndPeriod(1); // See also the startButton_Click method. memoryViewer.Clear(); communicationLogColorListBox.Items.Clear(); }
public void ThrowsOutOfRange() { Assert.Throws <ArgumentOutOfRangeException>(delegate { var mmTimer = new TimerResolution(0); }); Assert.Throws <ArgumentOutOfRangeException>(delegate { var mmTimer = new TimerResolution(16); }); }
private void startButton_Click(object sender, EventArgs e) { TimerResolution.TimeBeginPeriod(1); // Sets the timer resolution to 1 ms (default in Windows 7: 15.6 ms) startButton.Enabled = false; stopButton.Enabled = true; agentTabControl.SelectTab(workingMemoryTabPage); agent.Start(); agent.SetWindowPositions(); agent.ShowVisualizerOnly(); }
private void btnIncrease_Click(object sender, System.EventArgs e) { using var mmTimerRes = new TimerResolution(4); var sb = new StringBuilder(); if (mmTimerRes.Successful) { sb.AppendLine($"Resolution (set): {mmTimerRes.DesiredResolutionInMilliseconds} ms"); } else { sb.AppendLine($"Resolution (failed): {mmTimerRes.DesiredResolutionInMilliseconds} ms"); } sb.AppendLine($"Resolution (current): {SystemTimerResolution.ResolutionInTicks / 10000.0} ms"); sb.AppendLine($"Resolution (minimum): {SystemTimerResolution.MinimumResolutionInTicks / 10000.0} ms"); sb.AppendLine($"Resolution (maximum): {SystemTimerResolution.MaximumResolutionInTicks / 10000.0} ms"); MsgBox.ShowInformation(this, sb.ToString()); }
private void startButton_Click(object sender, EventArgs e) { dialogueListCheckedListBox.Enabled = false; TimerResolution.TimeBeginPeriod(1); // Sets the timer resolution to 1 ms (default in Windows 7: 15.6 ms) startButton.Enabled = false; exitToolStripMenuItem.Enabled = false; // Check which processes should be enabled: for (int ii = 0; ii < dialogueListCheckedListBox.Items.Count; ii++) { string context = dialogueListCheckedListBox.Items[ii].ToString(); int dialogueIndex = agent.DialogueList.FindIndex(d => d.Context == context); if (dialogueIndex > 0) // Not allowed to remove dialogue 0 (startup dialogue) { if (dialogueListCheckedListBox.GetItemChecked(ii) == false) { agent.DialogueList.RemoveAt(dialogueIndex); } } } agent.AutoArrangeWindows = autoarrangeWindowsToolStripMenuItem.Checked; Boolean startSuccessful = agent.StartProcesses(); if (startSuccessful) { agent.Start(agent.DialogueList[0].Context); // Start from the first dialogue in the list workingMemoryViewer.SetWorkingMemory(agent.WorkingMemory); workingMemoryViewer.ShowMemory(); stopButton.Enabled = true; } else { startButton.Enabled = true; stopButton.Enabled = false; } //other initializatiosn ItemHandler.LoadShortcuts(agent); }
public void RunLoop() { while (connected) { Read(); if (unsafeCodeMutex != null) { unsafeCodeMutex.WaitOne(); } GC.Collect(); GC.WaitForPendingFinalizers(); if (unsafeCodeMutex != null) { unsafeCodeMutex.ReleaseMutex(); } Thread.Sleep(millisecondSleepInterval); } captureDevice.Dispose(); TimerResolution.TimeEndPeriod(1); OnCameraStopped(); }
private void PrepareCaptureLoop(int interval) { using (var resolution = new TimerResolution(1)) { if (!resolution.SuccessfullySetTargetResolution) { LogWriter.Log($"Imprecise timer resolution... Target: {resolution.TargetResolution}, Current: {resolution.CurrentResolution}"); Dispatcher.Invoke(() => HasImpreciseCapture = true); } if (UserSettings.All.ShowCursor) { CaptureWithCursor(interval); } else { CaptureWithoutCursor(interval); } Dispatcher.Invoke(() => HasImpreciseCapture = false); } }
static void Main() { AllocConsole(); var hOut = GetStdHandle(STD_OUTPUT_HANDLE); var hRealOut = CreateFile("CONOUT$", GENERIC_READ | GENERIC_WRITE, FileShare.Write, IntPtr.Zero, FileMode.OpenOrCreate, 0, IntPtr.Zero); if (hRealOut != hOut) { SetStdHandle(STD_OUTPUT_HANDLE, hRealOut); Console.SetOut(new StreamWriter(Console.OpenStandardOutput(), Console.OutputEncoding) { AutoFlush = true }); } TimerResolution.setTimerResolution(1.0); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new UserInterface()); }
private void OnTimer2ResolutionChanged(TimerResolution value) { if (this.Timer2ResolutionChanged == null) return; this.Timer2ResolutionChanged((object)this, new TimerResolutionEventArg(value)); }
private void cBoxSeqTimer2Resolution_SelectedIndexChanged(object sender, EventArgs e) { this.Timer2Resolution = (TimerResolution)this.cBoxSeqTimer2Resolution.SelectedIndex; this.OnTimer2ResolutionChanged(this.Timer2Resolution); }
public TimerResolutionEventArg(TimerResolution value) { this.value = value; }
public void SetTimer2Resolution(TimerResolution value) { try { lock (syncThread) registers["RegTimerResol"].Value = (uint)(byte)((uint)(byte)((uint)(byte)registers["RegTimerResol"].Value & 252U) | (uint)(byte)value); } catch (Exception ex) { OnError((byte)1, ex.Message); } }
public void Basic() { using var mmTimer = new TimerResolution(4); Assert.True(mmTimer.Successful); Assert.Equal(4, mmTimer.DesiredResolutionInMilliseconds); }