예제 #1
0
파일: Service.cs 프로젝트: 7floor/net-misc
        protected override bool OnPowerEvent(PowerBroadcastStatus powerStatus)
        {
            switch (powerStatus)
            {
            case PowerBroadcastStatus.ResumeSuspend:
                StartLog();
                Log(powerStatus.ToString());
                SwitchPower(true);
                EndLog();
                break;

            case PowerBroadcastStatus.Suspend:
                StartLog();
                Log(powerStatus.ToString());
                SwitchPower(false);
                EndLog();
                break;
            }

            return(true);
        }
예제 #2
0
 protected override bool OnPowerEvent(PowerBroadcastStatus powerStatus)
 {
     TraceLog.TraceInfo("Power event: " + powerStatus.ToString());
     switch (powerStatus)
     {
     case PowerBroadcastStatus.ResumeAutomatic:
     case PowerBroadcastStatus.ResumeCritical:
     case PowerBroadcastStatus.ResumeSuspend:
         try
         {
             TraceLog.TraceInfo("Resuming: power state " + powerStatus.ToString());
             CollectorClient.Start();
             UploadClient.Start();
         }
         catch (Exception ex)
         {
             TraceLog.TraceException("OnPowerEvent: Caught exception, Resume processing aborted", ex);
             throw;
         }
         break;
     }
     return(base.OnPowerEvent(powerStatus));
 }
예제 #3
0
        protected override bool OnPowerEvent(PowerBroadcastStatus powerStatus)
        {
            eventLog.WriteEntry(powerStatus.ToString() + "しました");
            switch (powerStatus)
            {
            case PowerBroadcastStatus.ResumeSuspend:
                start_working();
                break;

            case PowerBroadcastStatus.Suspend:
                stop_working();
                break;
            }
            return(true);//今起きているイベントを続行
        }
예제 #4
0
 protected override bool OnPowerEvent(PowerBroadcastStatus powerStatus)
 {
     debuglog.Info("OnPowerEvent:" + powerStatus.ToString());
     switch (powerStatus)
     {
     case PowerBroadcastStatus.ResumeAutomatic:
     case PowerBroadcastStatus.ResumeCritical:
     case PowerBroadcastStatus.ResumeSuspend:
         debuglog.Info("RELOGIN ");
         runningFlag = 1;
         thr.Join();
         OnStart(new string[] { });
         return(true);
     }
     return(base.OnPowerEvent(powerStatus));
 }
예제 #5
0
        protected override bool OnPowerEvent(PowerBroadcastStatus powerStatus)
        {
            logger.Info(() => "Handling power event: " + powerStatus.ToString());

            switch (powerStatus)
            {
            case PowerBroadcastStatus.ResumeAutomatic:
            case PowerBroadcastStatus.ResumeCritical:
            case PowerBroadcastStatus.ResumeSuspend:
            case PowerBroadcastStatus.QuerySuspendFailed:
                this.service.Continue();
                break;

            case PowerBroadcastStatus.QuerySuspend:
            case PowerBroadcastStatus.Suspend:
                this.service.Pause();
                break;
            }

            return(true);
        }
 /// <summary>
 /// OnPowerEvent(): Useful for detecting power status changes,
 ///   such as going into Suspend mode or Low Battery for laptops.
 /// </summary>
 /// <param name="power_status">The Power Broadcast Status
 /// (BatteryLow, Suspend, etc.)</param>
 protected override bool OnPowerEvent(PowerBroadcastStatus power_status)
 {
     _log.Info("Service power event detected = {0}.", power_status.ToString());
     _log.Flush();
     if (power_status == PowerBroadcastStatus.Suspend)
     {
         _collector.Stop();
     }
     return base.OnPowerEvent(power_status);
 }
예제 #7
0
        protected override bool OnPowerEvent(PowerBroadcastStatus powerStatus)
        {
            Log.WriteSystemEventLog("MCEBuddy OnPowerEvent called by System, Event -> " + powerStatus.ToString(), EventLogEntryType.Information);

            MCEBuddyConf.GlobalMCEConfig = new MCEBuddyConf(GlobalDefs.ConfigFile); // Update the settings for global objects

            switch (powerStatus)
            {
                case PowerBroadcastStatus.PowerStatusChange: // Something changed, lets find out if we are in battery mode or  a/c mode
                    try
                    {
                        Log.WriteSystemEventLog("Power Status Change Notification, Power Status -> " + System.Windows.Forms.SystemInformation.PowerStatus.PowerLineStatus.ToString(), EventLogEntryType.Information);

                        if (System.Windows.Forms.SystemInformation.PowerStatus.PowerLineStatus == System.Windows.Forms.PowerLineStatus.Offline) // If we are on battery power
                        {
                            if (MCEBuddyConf.GlobalMCEConfig.GeneralOptions.suspendOnBattery) // If we are requested to Pause on battery power
                                _pipeProxy.SuspendConversion(true); // Suspend it
                        }
                        else if (_pipeProxy.WithinConversionTimes()) // Resume only if we are within Conversion times else it will auto resume at the right time
                            _pipeProxy.SuspendConversion(false); // Resume it (assume A/C power)
                    }
                    catch (Exception e)
                    {
                        Log.WriteSystemEventLog("Error trying to change suspend mode on Power Event in MCEBuddy " + e.ToString(), EventLogEntryType.Warning);
                    }

                    break;

                case PowerBroadcastStatus.QuerySuspend: // Can the system go into suspend mode?
                    try
                    {
                        return _pipeProxy.AllowSuspend(); // Check if the engine is ready to go into suspend mode
                    }
                    catch (Exception e)
                    {
                        Log.WriteSystemEventLog("Error trying to get suspend permission from MCEBuddy " + e.ToString(), EventLogEntryType.Warning);
                        return true;
                    }

                case PowerBroadcastStatus.BatteryLow: // On battery low automatically suspend the conversion
                case PowerBroadcastStatus.Suspend: // System is being suspended, pause all activity and flush the buffers
                    try
                    {
                        _pipeProxy.SuspendConversion(true); // suspend and buffers are flushed when suspended
                    }
                    catch (Exception e)
                    {
                        Log.WriteSystemEventLog("Error trying to suspend MCEBuddy " + e.ToString(), EventLogEntryType.Warning);
                    }

                    break;

                case PowerBroadcastStatus.ResumeAutomatic: // system resuming from suspend, resume MCEBuddy
                case PowerBroadcastStatus.ResumeCritical:
                case PowerBroadcastStatus.ResumeSuspend:
                    try
                    {
                        if (_pipeProxy.WithinConversionTimes()) // Resume only if we are within Conversion times else it will auto resume at the right time
                            _pipeProxy.SuspendConversion(false); // Resume
                    }
                    catch (Exception e)
                    {
                        Log.WriteSystemEventLog("Error trying to resume MCEBuddy " + e.ToString(), EventLogEntryType.Warning);
                    }
                    break;
            }

            return true;
        }
예제 #8
0
 protected override bool OnPowerEvent(PowerBroadcastStatus powerStatus)
 {
     WriteLog(nameof(OnPowerEvent) + " status=" + powerStatus.ToString());
     return(base.OnPowerEvent(powerStatus));
 }
예제 #9
0
        protected override bool OnPowerEvent(PowerBroadcastStatus powerStatus)
        {
            using (var eventLog = new TaskManagementEventLog())
            {
                try
                {
                    Trace.WriteLineIf(Tracing.Is.TraceVerbose, "powerStatus={0}".FormatWith(powerStatus.ToString("G")));
                    switch (powerStatus)
                    {
                        case PowerBroadcastStatus.QuerySuspend:
                            OnPause();
                            break;

                        case PowerBroadcastStatus.Suspend:
                            OnStop();
                            break;

                        case PowerBroadcastStatus.QuerySuspendFailed:
                        case PowerBroadcastStatus.ResumeAutomatic:
                        case PowerBroadcastStatus.ResumeCritical:
                        case PowerBroadcastStatus.ResumeSuspend:
                            if (null == Manager)
                            {
                                OnStart(Args);
                            }
                            else
                            {
                                OnContinue();
                            }

                            break;
                    }
                }
                catch (Exception exception)
                {
                    eventLog.FailureOnPowerEvent(powerStatus);
                    Trace.TraceError("{0}", exception);
                }
            }

            return false;
        }
예제 #10
0
        /// <summary>
        /// This occurs when a power event was triggered.
        /// </summary>
        /// <param name="powerStatus">Indicates the system's power status</param>
        /// <returns>True if we are going to accept the query, otherwise false</returns>
        protected override bool OnPowerEvent(PowerBroadcastStatus powerStatus)
        {
            try
            {
                Trace.WriteLine("On Power Event");
                Trace.WriteLine(powerStatus.ToString());
            }
            catch (Exception ex)
            {
                Trace.WriteLine(ex);
            }

            //When implemented in a derived class, the needs of your application determine what value to return.
            //For example, if a QuerySuspend broadcast status is passed, you could cause your application to
            //reject the query by returning false.
            return base.OnPowerEvent(powerStatus);
        }
예제 #11
0
 public void FailureOnPowerEvent(PowerBroadcastStatus powerStatus)
 {
     WriteEvent(new EventInstance(0xC00003F9, 2, EventLogEntryType.Error), powerStatus.ToString("G"));
 }
예제 #12
0
        protected override bool OnPowerEvent(PowerBroadcastStatus powerStatus)
        {
            using (var eventLog = new TaskManagementEventLog())
            {
                try
                {
                    Trace.WriteLineIf(Tracing.Is.TraceVerbose, "powerStatus={0}".FormatWith(powerStatus.ToString("G")));
                    switch (powerStatus)
                    {
                    case PowerBroadcastStatus.QuerySuspend:
                        OnPause();
                        break;

                    case PowerBroadcastStatus.Suspend:
                        OnStop();
                        break;

                    case PowerBroadcastStatus.QuerySuspendFailed:
                    case PowerBroadcastStatus.ResumeAutomatic:
                    case PowerBroadcastStatus.ResumeCritical:
                    case PowerBroadcastStatus.ResumeSuspend:
                        if (null == Manager)
                        {
                            OnStart(Args);
                        }
                        else
                        {
                            OnContinue();
                        }

                        break;
                    }
                }
                catch (Exception exception)
                {
                    eventLog.FailureOnPowerEvent(powerStatus);
                    Trace.TraceError("{0}", exception);
                }
            }

            return(false);
        }
예제 #13
0
파일: MainProgram.cs 프로젝트: large/MOTRd
 /// <summary>
 /// OnPowerEvent(): Useful for detecting power status changes,
 ///   such as going into Suspend mode or Low Battery for laptops.
 /// </summary>
 /// <param name="powerStatus">The Power Broadcase Status (BatteryLow, Suspend, etc.)</param>
 protected override bool OnPowerEvent(PowerBroadcastStatus powerStatus)
 {
     LogEventInformation("MOTRd powerevent " + powerStatus.ToString());
     return(base.OnPowerEvent(powerStatus));
 }
예제 #14
0
        protected override bool OnPowerEvent(PowerBroadcastStatus powerStatus)
        {
            Log.WriteSystemEventLog("MCEBuddy OnPowerEvent called by System, Event -> " + powerStatus.ToString(), EventLogEntryType.Information);

            MCEBuddyConf.GlobalMCEConfig = new MCEBuddyConf(GlobalDefs.ConfigFile); // Update the settings for global objects

            switch (powerStatus)
            {
            case PowerBroadcastStatus.PowerStatusChange:     // Something changed, lets find out if we are in battery mode or  a/c mode
                try
                {
                    Log.WriteSystemEventLog("Power Status Change Notification, Power Status -> " + System.Windows.Forms.SystemInformation.PowerStatus.PowerLineStatus.ToString(), EventLogEntryType.Information);

                    if (System.Windows.Forms.SystemInformation.PowerStatus.PowerLineStatus == System.Windows.Forms.PowerLineStatus.Offline) // If we are on battery power
                    {
                        if (MCEBuddyConf.GlobalMCEConfig.GeneralOptions.suspendOnBattery)                                                   // If we are requested to Pause on battery power
                        {
                            _pipeProxy.SuspendConversion(true);                                                                             // Suspend it
                        }
                    }
                    else if (_pipeProxy.WithinConversionTimes()) // Resume only if we are within Conversion times else it will auto resume at the right time
                    {
                        _pipeProxy.SuspendConversion(false);     // Resume it (assume A/C power)
                    }
                }
                catch (Exception e)
                {
                    Log.WriteSystemEventLog("Error trying to change suspend mode on Power Event in MCEBuddy " + e.ToString(), EventLogEntryType.Warning);
                }

                break;

            case PowerBroadcastStatus.QuerySuspend:     // Can the system go into suspend mode?
                try
                {
                    return(_pipeProxy.AllowSuspend());    // Check if the engine is ready to go into suspend mode
                }
                catch (Exception e)
                {
                    Log.WriteSystemEventLog("Error trying to get suspend permission from MCEBuddy " + e.ToString(), EventLogEntryType.Warning);
                    return(true);
                }

            case PowerBroadcastStatus.BatteryLow:  // On battery low automatically suspend the conversion
            case PowerBroadcastStatus.Suspend:     // System is being suspended, pause all activity and flush the buffers
                try
                {
                    _pipeProxy.SuspendConversion(true);     // suspend and buffers are flushed when suspended
                }
                catch (Exception e)
                {
                    Log.WriteSystemEventLog("Error trying to suspend MCEBuddy " + e.ToString(), EventLogEntryType.Warning);
                }

                break;

            case PowerBroadcastStatus.ResumeAutomatic:     // system resuming from suspend, resume MCEBuddy
            case PowerBroadcastStatus.ResumeCritical:
            case PowerBroadcastStatus.ResumeSuspend:
                try
                {
                    if (_pipeProxy.WithinConversionTimes())     // Resume only if we are within Conversion times else it will auto resume at the right time
                    {
                        _pipeProxy.SuspendConversion(false);    // Resume
                    }
                }
                catch (Exception e)
                {
                    Log.WriteSystemEventLog("Error trying to resume MCEBuddy " + e.ToString(), EventLogEntryType.Warning);
                }
                break;
            }

            return(true);
        }
 /// <summary>
 /// OnPowerEvent(): Useful for detecting power status changes,
 ///   such as going into Suspend mode or Low Battery for laptops.
 /// </summary>
 /// <param name="powerStatus">The Power Broadcast Status
 /// (BatteryLow, Suspend, etc.)</param>
 protected override bool OnPowerEvent(PowerBroadcastStatus powerStatus)
 {
     log.Debug(LogHelp.LogText($"OnPowerEvent...({powerStatus.ToString()})"));
     return(base.OnPowerEvent(powerStatus));
 }
예제 #16
0
 public void SuccessOnPowerEvent(PowerBroadcastStatus powerStatus)
 {
     WriteEvent(new EventInstance(0x000003EF, 2), powerStatus.ToString("G"));
 }
예제 #17
0
 public void FailureOnPowerEvent(PowerBroadcastStatus powerStatus)
 {
     WriteEvent(new EventInstance(0xC00003F9, 2, EventLogEntryType.Error), powerStatus.ToString("G"));
 }
예제 #18
0
 public void SuccessOnPowerEvent(PowerBroadcastStatus powerStatus)
 {
     WriteEvent(new EventInstance(0x000003EF, 2), powerStatus.ToString("G"));
 }
예제 #19
0
        protected override bool OnPowerEvent(PowerBroadcastStatus powerStatus)
        {
            debuglog.Info("OnPowerEvent:" + powerStatus.ToString());
            switch (powerStatus)
            {
                case PowerBroadcastStatus.ResumeAutomatic:
                case PowerBroadcastStatus.ResumeCritical:
                case PowerBroadcastStatus.ResumeSuspend:
                    debuglog.Info("RELOGIN ");
                    runningFlag = 1;
                    thr.Join();
                    OnStart(new string[] { });
                    return true;

            }
            return base.OnPowerEvent(powerStatus);
        }