public PowerOuttageHandler(Configuration configuration) { timer = new System.Threading.Timer(RecordMachineStatus, configuration, 10000, 7000); //InitializeClass(); }
private static void setSystemStateToDown(DateTime time, Configuration config, SparkQueue sparkQueue) { Debug.WriteLine("DOWN DOWN DOWN DOWN"); // TODO Conside doing something with an output here currentSystemState = SystemState.DOWN; timeOfLastSystemStateChange = time; numberOfHeartBeatsSinceLastStateChange = 0; MachineEvent evt = new MachineEvent { AssetID = config.AssetNumber, state = "DOWN", ticks = DateTime.Now.Ticks.ToString() }; //sparkQueue.Enqueue(@"assetID=" + config.AssetNumber + "&state=" + evt.state + "&ticks=" + evt.ticks.ToString() + "&blnNetworkUp=" + network.NetworkUp.ToString() + "&blntimeupdated=" + Program.time.TimeUpdated.ToString()); sparkQueue.Enqueue(@"assetID=" + config.AssetNumber + "&state=" + evt.state + "&ticks=" + evt.ticks.ToString()); //Thread threadRecordStateInMachineStateLog = new Thread(new ThreadStart(UpdateMachineStateOnSDCard)); //threadRecordStateInMachineStateLog.Start(); }
private static void handleHeartBeat(DateTime time, Controller controller, Configuration config, SparkQueue sparkQueue) { totalRuntimeMilliseconds += getMillisecondsSinceLastHeartBeat(time); totalNumberOfCycles++; numberOfHeartBeatsSinceLastStateChange++; timeOfLastHeartbeat = time; TimeSpan ts = time - timeOfLastHeartbeat; double totalMillisecondsSinceLastCycle = ts.Ticks / 10000.0; if (currentSystemState == SystemState.DOWN && numberOfHeartBeatsSinceLastStateChange >= config.HeartbeatsRequiredToChangeState && totalMillisecondsSinceLastCycle < (config.CycleLengthMs * 2.0)) { setSystemSateToRun(time, config, sparkQueue); } }
private static void setSystemSateToRun(DateTime time, Configuration config, SparkQueue sparkQueue) { // TODO Conside doing something with an output here Debug.WriteLine("RUN RUN RUN RUN"); currentSystemState = SystemState.RUNNING; timeOfLastSystemStateChange = time; numberOfHeartBeatsSinceLastStateChange = 0; MachineEvent evt = new MachineEvent { AssetID = config.AssetNumber, state = "RUNNING", ticks = DateTime.Now.Ticks.ToString() }; sparkQueue.Enqueue(@"assetID=" + config.AssetNumber + "&state=" + evt.state + "&ticks=" + evt.ticks.ToString()); //+ "&blnNetworkUp=" + network.NetworkUp.ToString() + "&blntimeupdated=" + Program.time.TimeUpdated.ToString()); }
public MainPage() { this.InitializeComponent(); string powerOuttagePost = PowerOuttageHandler.CheckLog().Result; SetUpMisc(powerOuttagePost); _uiSyncContext = System.Threading.SynchronizationContext.Current; DateTime dt = TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time")); txtblockTime.Text = dt.Hour.ToString() + ":" + dt.Minute.ToString(); // ToString("HH:mm:ss"); timerDateTime = new DispatcherTimer(); timerDateTime.Interval = TimeSpan.FromMilliseconds(300); //timerDateTime.Tick += TimerDateTime_Tick; timerDateTime.Tick += TimerDateTime_Tick1; timerDateTime.Start(); setUpSystem(); setUpBoardIO(); controller = new Controller(); configuration = new Configuration(); powerHandler = new PowerOuttageHandler(configuration); network = new Network(); Utilities.SparkEmail.Send(this.configuration.AssetNumber + " Starting "); viewModel = new VM.ViewModel(controller, configuration, cycleLights, network, sparkQueue, this); //sparkQueue = new SparkQueue(); sparkQueue.DataReadyForPickUp += SparkQueue_DataReadyForPickUp; }