public bool UpdateBatchReport(LiveRelevantDataDO liveRelevantData) { bool success = false; using (DataContext context = new DataContext()) { //Returns the latest Batch report saved in the database. BatchDO batchReport = context.BatchReports.Find(liveRelevantData.BatchID); //Update batchReport data batchReport.ProducedProducts = liveRelevantData.ProducedProducts; batchReport.DefectProducts = liveRelevantData.DefectProducts; batchReport.ProductionEndTime = System.DateTime.Now; //Create a new entry of environmental log EnvironmentalLogDO environmentalLog = new EnvironmentalLogDO { BatchReportID = batchReport.BatchReportID, Temperature = liveRelevantData.Temperature, Vibration = liveRelevantData.Vibration, Humidity = liveRelevantData.Humidity, Time = System.DateTime.Now }; //Save environmental log entry batchReport.EnvironmentalLogs.Add(environmentalLog); StateLogDO stateLog = context.StateLogs.FirstOrDefault(s => s.BatchReportID == batchReport.BatchReportID); stateLog.SetTimeInStates(liveRelevantData.StateDictionary); context.SaveChanges(); success = true; } return(success); }
private void UpdateLiveRelevantData(object sender, EventArgs e) { try { LiveRelevantDataDO data = logicFacade.UpdateData(); temperatureLabel.Text = data.Temperature.ToString(); humidityLabel.Text = data.Humidity.ToString(); vibrationLabel.Text = data.Vibration.ToString(); batchIDLabel.Text = data.BatchID.ToString(); productsPerMinuteLabel.Text = data.ActualMachineSpeed.ToString(); batchSizeLabel.Text = data.BatchSize.ToString(); producedLabel.Text = data.ProducedProducts.ToString(); defectLabel.Text = data.DefectProducts.ToString(); acceptableLabel.Text = data.AcceptableProducts.ToString(); var state = (MachineState)data.CurrentState; currentStateLabel.Text = state.ToString(); verticalProgressBarBarley.Value = (int)data.Barley; verticalProgressBarHops.Value = (int)data.Hops; verticalProgressBarMalt.Value = (int)data.Malt; verticalProgressBarWheat.Value = (int)data.Wheat; verticalProgressBarYeast.Value = (int)data.Yeast; verticalProgressBarMaintenance.Value = (int)data.MaintainenceMeter; if (currentStateLabel.Text.Equals("Execute")) { BatchProgressBar.Value = ((Int32)data.ProducedProducts * 100) / (Int32)data.BatchSize; } else if (currentStateLabel.Text.Equals("Complete")) { BatchProgressBar.Value = 100; } } catch (Exception ex) { if (ex is InvalidOperationException || ex is Opc.UaFx.OpcException) { if (!logicFacade.CheckMachineConnection()) { disconnectedLabel.Visible = true; disconnectedLabel2.Visible = true; tabPage.Enabled = false; if (logicFacade.ConnectToMachine("")) { disconnectedLabel.Visible = false; disconnectedLabel2.Visible = false; tabPage.Enabled = true; } } else { Debug.WriteLine(ex.StackTrace); } } else { throw; } } }
public LiveRelevantDataDO GetUpdateData() { LiveRelevantDataDO liveRelevantData = new LiveRelevantDataDO( machineReadData.ReadTemperature(accessPoint), machineReadData.ReadHumidity(accessPoint), machineReadData.ReadVibration(accessPoint), machineReadData.ReadActualMachineSpeed(accessPoint), machineReadData.ReadProducedProducts(accessPoint), machineReadData.ReadDefectProducts(accessPoint), machineReadData.ReadBarleyAmount(accessPoint), machineReadData.ReadHopsAmount(accessPoint), machineReadData.ReadMaltAmount(accessPoint), machineReadData.ReadWheatAmount(accessPoint), machineReadData.ReadYeastAmount(accessPoint), machineReadData.ReadMaintenanceCounter(accessPoint), machineReadData.ReadCurrentState(accessPoint) ); return(liveRelevantData); }
public LiveRelevantDataDO UpdateData() { LiveRelevantDataDO liveRelevantData = persistenceFacade.GetUpdateData(); currentState = (MachineState)liveRelevantData.CurrentState; liveRelevantData.BatchID = batchManager.CurrentBatch == null ? (ushort)0 : batchManager.CurrentBatch.BatchReportID; liveRelevantData.BatchSize = batchManager.CurrentBatch == null ? (ushort)0 : batchManager.CurrentBatch.BatchSize; liveRelevantData.AcceptableProducts = (liveRelevantData.ProducedProducts - liveRelevantData.DefectProducts); if (productionRunning) { Task task = Task.Run(() => { TimeSpan timeSpan = DateTime.Now.Subtract(startTime); liveRelevantData.StateDictionary[(int)currentState] += timeSpan; startTime = DateTime.Now; persistenceFacade.UpdateBatchReport(liveRelevantData); }); } return(liveRelevantData); }
public bool UpdateBatchReport(LiveRelevantDataDO liveRelevantData) { return(databaseManager.UpdateBatchReport(liveRelevantData)); }