/// <summary> /// Watcher Signal Base /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Watcher_Signal(object sender, HardwareEvent hardwareEvent) { // Print Job Event PrintJobEvent printJobEvent = new PrintJobEvent { // Set Data Base = hardwareEvent.Base }; // Signal Start OnSignal(sender, printJobEvent); }
/// <summary> /// The Sleep method puts the device into a sleeps state that is only woken by the events described in the paramter wakeUpEvents. /// Please note that if the event SystemTimer is not used, the system will not be woken up by any managed timers. In addition, /// other threads will not be executed until this sleep call exits. This method raises the OnSleepChange event. /// /// The MaximumTimeToActive property contains the timeout value for this call. /// </summary> /// <param name="level">Determines what level of sleep the system should enter. The behavior of the level is determined /// by the hardware vendor.</param> /// <param name="wakeUpEvents">Determines the events that will cause the system to exit the given sleep level</param> public static void Sleep(SleepLevel level, HardwareEvent wakeUpEvents) { SleepChangeEventHandler h = OnSleepChange; if (h != null) { SleepEvent e = new SleepEvent(); e.EventType = SleepEventType.ChangeRequested; e.Level = level; e.WakeUpEvents = wakeUpEvents; e.Time = DateTime.UtcNow; h(e); } InternalSleep(level, wakeUpEvents); }
public MFTestResults Sleep_3_NoSystemTimerTest() { bool result = true; TimeSpan backup = PowerState.MaximumTimeToActive; try { PowerState.MaximumTimeToActive = new TimeSpan(0, 0, 0, 2); TimeSpan tsTimeout = PowerState.MaximumTimeToActive; PowerState.OnSleepChange += new SleepChangeEventHandler(this.SleepChange); HardwareEvent newEvents = HardwareEvent.OEMReserved1; _timerFired.Reset(); _wakeupEvent = null; Timer t = new Timer(new TimerCallback(this.TimerCallback), null, tsTimeout.Milliseconds / 2, Timeout.Infinite); DateTime dtStart = DateTime.Now; // this will wake up with the max time allowed PowerState.Sleep(SleepLevel.Sleep, newEvents); /// /// When the debugging is enbled on a device the debug port is selected as a wakeup event by default, /// so we ignore this test if we get any events. /// if (_timerFired.WaitOne(1000, false) && (_wakeupEvent == null || _wakeupEvent.WakeUpEvents == 0)) { result = (_timerTime - dtStart) > tsTimeout; } PowerState.OnSleepChange -= new SleepChangeEventHandler(this.SleepChange); } finally { PowerState.MaximumTimeToActive = backup; } return(result ? MFTestResults.Pass : MFTestResults.Fail); }
public MFTestResults Sleep_2_ChangeLevelFromManagedCode() { MFTestResults result = MFTestResults.Fail; try { const int c_Timeout = 5000; // ms HardwareEvent newEvents = HardwareEvent.SerialIn | HardwareEvent.USBIn | HardwareEvent.SystemTimer | HardwareEvent.GeneralPurpose; PowerState.OnSleepChange += new SleepChangeEventHandler(this.SleepChange); Timer t = new Timer(new TimerCallback(this.TimerCallback), null, c_Timeout, Timeout.Infinite); PowerState.Sleep(SleepLevel.Sleep, newEvents); // we must have received the heads-up on power change... if (_change.WaitOne(1 * c_Timeout, false)) { // and timers must still work as scheduled if (_timerFired.WaitOne(2 * c_Timeout, false)) { if (_wakeup.WaitOne(3 * c_Timeout, false)) { result = MFTestResults.Pass; } } } t.Dispose(); } catch (Exception ex) { result = MFTestResults.Fail; Log.Exception(ex.Message); } PowerState.OnSleepChange -= new SleepChangeEventHandler(this.SleepChange); return(result); }
public MFTestResults Sleep_1_Get_Set_GetAndCheck() { MFTestResults result = MFTestResults.Fail; try { TimeSpan uptime = PowerState.Uptime; TimeSpan tta = PowerState.MaximumTimeToActive; HardwareEvent events = PowerState.WakeupEvents; Log.Comment("Uptime : " + uptime); Log.Comment("Time-to-Active: " + tta); Log.Comment("Wakeup events : " + events); TimeSpan newTta = new TimeSpan(0, 0, 2); HardwareEvent newEvents = HardwareEvent.SerialIn | HardwareEvent.Socket | HardwareEvent.USBIn | HardwareEvent.SystemTimer | HardwareEvent.GeneralPurpose; PowerState.MaximumTimeToActive = newTta; PowerState.WakeupEvents = newEvents; tta = PowerState.MaximumTimeToActive; events = PowerState.WakeupEvents; if ( (tta == newTta) && (events == newEvents) ) { result = MFTestResults.Pass; } } catch (Exception ex) { result = MFTestResults.Fail; Log.Exception(ex.Message); } return(result); }
extern private static void InternalSleep(SleepLevel level, HardwareEvent wakeUpEvents);