public IGetResponse GetMeasuredData() { Log.Trace("GetMeasuredData"); return(new GetResponse( GetResponse.ResponseStatus.OK, MeasuredData.GetMeasuredData())); }
public void Stop() { switch (LoggingSourceType) { case LoggingTypeSourceEnum.Console: _calculationCancellationTokenSource?.Cancel(); if (ConsoleProcess != null && !ConsoleProcess.HasExited) { ConsoleProcess.Kill(); ConsoleProcess = null; } break; case LoggingTypeSourceEnum.RabbitMQ: bus?.Dispose(); break; } // delete not finished measurements MeasuredData.Where(x => x.IsRunning).ToList().ForEach(x => MeasuredData.Remove(x)); InProgress = false; }
static void PrintSensorData(MeasuredData data) { Console.WriteLine($"Sensor data:"); Console.WriteLine($"\t\tBMP180\t\tBME280\t\tDHT22"); Console.WriteLine($"Temperature\t{FormatTemperature(data.Bmp180Temperature)}\t\t{FormatTemperature(data.Bme280Temperature)}\t\t{FormatTemperature(data.DhtTemperature)}"); Console.WriteLine($"Humidity\t{FormatHumidity(data.Bme280Humidity)}\t\t\t\t{FormatHumidity(data.DhtHumidity)}"); Console.WriteLine($"Pressure\t{FormatPressure(data.Bmp180Pressure)}\t{FormatPressure(data.Bme280Pressure)}"); }
public ActionResult DeleteConfirmed(int id) { MeasuredData measuredData = db.MeasuredDatas.Find(id); db.MeasuredDatas.Remove(measuredData); db.SaveChanges(); return(RedirectToAction("Index")); }
public SensorsWorker(int delay) { readingWorker = new BackgroundWorker(); readingWorker.WorkerSupportsCancellation = true; readingWorker.DoWork += ReadingWorker_DoWork; this.readingDelay = delay; basicData = OverviewData.GetOverviewData(); detailData = MeasuredData.GetMeasuredData(); }
public ActionResult Edit([Bind(Include = "ID,From,To,duration,dateTime")] MeasuredData measuredData) { if (ModelState.IsValid) { db.Entry(measuredData).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(measuredData)); }
public void Update(MeasuredData measuredData) { Bmp180Temperature = measuredData.Bmp180Temperature; Bmp180Pressure = measuredData.Bmp180Pressure; Bme280Temperature = measuredData.Bme280Temperature; Bme280Humidity = measuredData.Bme280Humidity; Bme280Pressure = measuredData.Bme280Pressure; DhtTemperature = measuredData.DhtTemperature; DhtHumidity = measuredData.DhtHumidity; Status = measuredData.Status; }
public ActionResult Create([Bind(Include = "ID,From,To,duration,dateTime")] MeasuredData measuredData) { if (ModelState.IsValid) { db.MeasuredDatas.Add(measuredData); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(measuredData)); }
// GET: MeasuredDatas/Delete/5 public ActionResult Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } MeasuredData measuredData = db.MeasuredDatas.Find(id); if (measuredData == null) { return(HttpNotFound()); } return(View(measuredData)); }
// GET: MeasuredDatas/Details/5 public async Task <IActionResult> Details(long?id, string SortOrder, int?MeasuredParameterIdFilter, DateTime?DateTimeFromFilter, DateTime?DateTimeToFilter, int?MonitoringPostIdFilter, int?PollutionSourceIdFilter, bool?AveragedFilter, int?PageSize, int?PageNumber) { ViewBag.SortOrder = SortOrder; ViewBag.PageSize = PageSize; ViewBag.PageNumber = PageNumber; ViewBag.MeasuredParameterIdFilter = MeasuredParameterIdFilter; ViewBag.DateTimeFromFilter = DateTimeFromFilter; ViewBag.DateTimeToFilter = DateTimeToFilter; ViewBag.MonitoringPostIdFilter = MonitoringPostIdFilter; ViewBag.PollutionSourceIdFilter = PollutionSourceIdFilter; ViewBag.AveragedFilter = AveragedFilter; if (id == null) { return(NotFound()); } MeasuredData measuredData = null; HttpResponseMessage response = await _HttpApiClient.GetAsync($"api/MeasuredDatas/{id.ToString()}"); if (response.IsSuccessStatusCode) { measuredData = await response.Content.ReadAsAsync <MeasuredData>(); } if (measuredData == null) { return(NotFound()); } return(View(measuredData)); }
public MeasuredData GetMeasuredData(EnumDataStringElements Elements) { MeasuredData result = new MeasuredData(); result.Voltage = double.NaN; result.Current = double.NaN; result.Resistance = double.NaN; result.Timestamp = double.NaN; result.Status = UInt32.MinValue; var ret = Fetch(); if (Elements == EnumDataStringElements.ALL) { var retArray = ret.Split(','); // get voltage if (double.TryParse(retArray[0], out double v)) { result.Voltage = v; } // get current if (double.TryParse(retArray[1], out double c)) { result.Current = c; } // get resistance if (double.TryParse(retArray[2], out double r)) { result.Resistance = r; } // get timestamps if (double.TryParse(retArray[3], out double t)) { result.Timestamp = t; } // get status if (UInt32.TryParse(retArray[4], out UInt32 s)) { result.Status = s; } } else if (Elements == EnumDataStringElements.VOLT) { // get voltage if (double.TryParse(ret, out double v)) { result.Voltage = v; } } else if (Elements == EnumDataStringElements.CURR) { // get current if (double.TryParse(ret, out double c)) { result.Current = c; } } else if (Elements == EnumDataStringElements.RES) { // get resistance if (double.TryParse(ret, out double r)) { result.Resistance = r; } } else if (Elements == EnumDataStringElements.TIME) { // get timestamps if (double.TryParse(ret, out double t)) { result.Timestamp = t; } } else if (Elements == EnumDataStringElements.STAT) { // get status if (UInt32.TryParse(ret, out UInt32 s)) { result.Status = s; } } return(result); }
public OverviewViewModel(MainWindow mainWindow) { MqttReceivedData = new MQTTCollection(this); SensorsList = new ObservableCollection<AggregatedSensors>(); ChartIntervalType = DateTimeIntervalType.Auto; //Creating the data layer MqttDl = new MqttDataLayer("WPF Client", "192.168.2.122"); MqttDl.OnConnected += MqttDL_OnConnected; MqttDl.Connect(); As1 = new AggregatedSensors("cabinet", "Cabinet"); As1.AddSensor("temperature", "C"); As1.AddSensor("humidity", "%"); SensorsList.Add(As1); MeasuredData=new MeasuredData(); As2 = new AggregatedSensors("cave", "Cave"); As2.AddSensor("temperature", "C"); As2.AddSensor("humidity", "%"); SensorsList.Add(As2); As3 = new AggregatedSensors("outside", "Outside"); As3.AddSensor("temperature", "C"); As3.AddSensor("humidity", "%"); SensorsList.Add(As3); As4 = new AggregatedSensors("sleeping_room", "Sleeping room"); As4.AddSensor("temperature", "C"); As4.AddSensor("humidity", "%"); SensorsList.Add(As4); //note that the sensors listen to the collection events not the data layer events //the collection takes care to parse the received data so that the agregated sensors can use it directly MqttReceivedData.DataReceived += As1.MqttReceivedData; MqttReceivedData.DataReceived += As2.MqttReceivedData; MqttReceivedData.DataReceived += As3.MqttReceivedData; MqttReceivedData.DataReceived += As4.MqttReceivedData; As1.NewReading += MeasuredData.NewReading; As2.NewReading += MeasuredData.NewReading; As3.NewReading += MeasuredData.NewReading; As4.NewReading += MeasuredData.NewReading; Dht22SensorControl dht22; foreach (var aggregatedSensor in SensorsList) { dht22 = new Dht22SensorControl(); dht22.DataContext = aggregatedSensor; dht22.Margin = new Thickness(5); Binding myBinding = new Binding { Source = aggregatedSensor.Sensors["temperature"], Path = new PropertyPath("LastUpdated"), UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged }; dht22.SetBinding(Dht22SensorControl.LastUpdatedProperty, myBinding); mainWindow.SensorsContainerPanel.Children.Add(dht22); } }
public void DataFromSensor(SensorData sensorData) { var measuredData = sensorData.Data; var sensorName = sensorData.SensorName; var browserConnectionId = BrowserStateRepository.ConnectionId; if (statisticsService.UnorderedPerson == null) { statisticsService.AssignNewUnorderedPerson(); } //data from sensors logic if (sensorName.StartsWith("Weight")) { var data = new MeasuredData<float>() { Data = Convert.ToSingle(measuredData), MeasureTime = DateTime.Now }; sensorsRepository.WeightSensor.AddMeasuredData(data); statisticsService.UnorderedPersonWeight = data.Data; if (!String.IsNullOrEmpty(browserConnectionId)) Clients.Client(browserConnectionId).onNewSensorDataReceived("weight", data); //weight is a trigger RequestDataFromSensors(); } else if (sensorName.StartsWith("Crippled")) { var data = new MeasuredData<bool>() { Data = Convert.ToBoolean(measuredData), MeasureTime = DateTime.Now }; sensorsRepository.CrippledSensor.AddMeasuredData(data); statisticsService.UnorderedPersonCrippled = data.Data; if (!String.IsNullOrEmpty(browserConnectionId)) Clients.Client(browserConnectionId).onNewSensorDataReceived("crippled", data); } else if (sensorName.StartsWith("Temperature")) { var data = new MeasuredData<float>() { Data = Convert.ToSingle(measuredData), MeasureTime = DateTime.Now }; sensorsRepository.TemperatureSensor.AddMeasuredData(data); statisticsService.UnorderedPersonTemperature = data.Data; if (!String.IsNullOrEmpty(browserConnectionId)) Clients.Client(browserConnectionId).onNewSensorDataReceived("temperature", data); } else if (sensorName.StartsWith("Pregnant")) { var data = new MeasuredData<bool>() { Data = Convert.ToBoolean(measuredData), MeasureTime = DateTime.Now }; sensorsRepository.PregnantSensor.AddMeasuredData(data); statisticsService.UnorderedPersonPregnant = data.Data; if (!String.IsNullOrEmpty(browserConnectionId)) Clients.Client(browserConnectionId).onNewSensorDataReceived("pregnant", data); } if (statisticsService.CheckIfUnorderedPersonCanBeDirected()) { var person = statisticsService.GetUnorderedPersonComplete(); var queue = queuesRepository.ChooseQueueForPerson(person); Clients.Client(queue.ConnectionId).AddPersonToQueue(person.Guid); if (!String.IsNullOrEmpty(browserConnectionId)) Clients.Client(browserConnectionId).updateQueueLogs(queue); StatisticsService.Instance.HandledPeople.Add(person.Guid, new HandledPerson() { Person = person, QueueId = queue.Id, WaitingStartedAt = DateTime.Now }); statisticsService.UnorderedPerson = null; statisticsService.UnorderedPersonCrippled = null; statisticsService.UnorderedPersonPregnant = null; statisticsService.UnorderedPersonTemperature = null; statisticsService.UnorderedPersonWeight = null; } }
public void PopulateEcoserviceData() { Random rnd = new Random(); DateTime start = (DateTime)_context.MeasuredData .Where(m => m.MonitoringPostId == 39) .Max(m => m.DateTime); decimal?previousValue = _context.MeasuredData .Where(m => m.MonitoringPostId == 39 && m.MeasuredParameterId == 2) .OrderByDescending(m => m.DateTime) .FirstOrDefault() .Value; List <MeasuredData> measuredDatas = new List <MeasuredData>(); for (DateTime dateTime = start; dateTime < DateTime.Now; dateTime = dateTime.AddMinutes(1)) { if (measuredDatas.Count > 0) { previousValue = measuredDatas.Last().Value; } decimal?newValue = -1; while (newValue < 0 || newValue > 400) { newValue = previousValue + rnd.Next(-20, 20); } MeasuredData measuredData = new MeasuredData() { DateTime = dateTime, MeasuredParameterId = 2, MonitoringPostId = 39, Value = newValue }; measuredDatas.Add(measuredData); } _context.MeasuredData.AddRange(measuredDatas); _context.SaveChanges(); previousValue = _context.MeasuredData .Where(m => m.MonitoringPostId == 40 && m.MeasuredParameterId == 2) .OrderByDescending(m => m.DateTime) .FirstOrDefault() .Value; measuredDatas = new List <MeasuredData>(); for (DateTime dateTime = start; dateTime < DateTime.Now; dateTime = dateTime.AddMinutes(1)) { if (measuredDatas.Count > 0) { previousValue = measuredDatas.Last().Value; } decimal?newValue = -1; while (newValue < 0 || newValue > 400) { newValue = previousValue + rnd.Next(-20, 20); } MeasuredData measuredData = new MeasuredData() { DateTime = dateTime, MeasuredParameterId = 2, MonitoringPostId = 40, Value = newValue }; measuredDatas.Add(measuredData); } _context.MeasuredData.AddRange(measuredDatas); _context.SaveChanges(); previousValue = _context.MeasuredData .Where(m => m.MonitoringPostId == 39 && m.MeasuredParameterId == 3) .OrderByDescending(m => m.DateTime) .FirstOrDefault() .Value; measuredDatas = new List <MeasuredData>(); for (DateTime dateTime = start; dateTime < DateTime.Now; dateTime = dateTime.AddMinutes(1)) { if (measuredDatas.Count > 0) { previousValue = measuredDatas.Last().Value; } decimal?newValue = -1; while (newValue < 0 || newValue > 200) { newValue = previousValue + rnd.Next(-12, 12); } MeasuredData measuredData = new MeasuredData() { DateTime = dateTime, MeasuredParameterId = 3, MonitoringPostId = 39, Value = newValue }; measuredDatas.Add(measuredData); } _context.MeasuredData.AddRange(measuredDatas); _context.SaveChanges(); previousValue = _context.MeasuredData .Where(m => m.MonitoringPostId == 40 && m.MeasuredParameterId == 3) .OrderByDescending(m => m.DateTime) .FirstOrDefault() .Value; measuredDatas = new List <MeasuredData>(); for (DateTime dateTime = start; dateTime < DateTime.Now; dateTime = dateTime.AddMinutes(1)) { if (measuredDatas.Count > 0) { previousValue = measuredDatas.Last().Value; } decimal?newValue = -1; while (newValue < 0 || newValue > 200) { newValue = previousValue + rnd.Next(-12, 12); } MeasuredData measuredData = new MeasuredData() { DateTime = dateTime, MeasuredParameterId = 3, MonitoringPostId = 40, Value = newValue }; measuredDatas.Add(measuredData); } _context.MeasuredData.AddRange(measuredDatas); _context.SaveChanges(); }