public void AddStatus(PumpStatusMessage status) { this.Status.Add(status); //calculate best next run //LocalDateTime { 09 / 05 / 2017 21.56.30} //PumpDateTime { 09 / 05 / 2017 21.59.30} //SgvDate { 09 / 05 / 2017 21.59.00} //next sgvdate { 09 / 05 / 2017 22.04.00} //seconds: 20 //optimal, in pumptime: 22:04:20 //optimal, in localtime: 22:01:20 int seconds = 60; int minutes = 5; if (status.SgvDateTime.DateTime.HasValue && this.PumpTime.PumpDateTime.HasValue) { var nextSgvDate = status.SgvDateTime.DateTime.Value.AddMinutes(minutes); var optimalInPumptime = nextSgvDate.AddSeconds(seconds); //difference between local and pumpe time TimeSpan PumpDiffTime = DateTime.Now.Subtract(this.PumpTime.PumpDateTime.Value); this.SessionSystem.OptimalNextReadInPumpTime = optimalInPumptime; this.SessionSystem.OptimalNextRead = optimalInPumptime.Add(PumpDiffTime); } }
private async void NewStatus(PumpStatusMessage entry) { await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { this.CurrentMessage = entry; }); }
private void CreateDeviceStatus() { PumpStatusMessage message = this.LastStatusMessage; string serialNum = _session.Device.SerialNumberFull; DateTime create = _session.PumpTime.PumpDateTime.Value; this.DeviceStatus = new DeviceStatus(); this.DeviceStatus.UploaderBattery = _session.UploaderBattery; this.DeviceStatus.Device = string.Format("medtronic-640g://{0}", serialNum); this.DeviceStatus.CreatedAt = create.ToString(Constants.Dateformat); this.DeviceStatus.PumpInfo.Reservoir = Math.Round(message.ReservoirAmount, 3); this.DeviceStatus.PumpInfo.Iob.Bolusiob = Math.Round(message.ActiveInsulin.INSULIN, 3); //this.DeviceStatus.PumpInfo.Iob.Timestamp = create.ToString("ddd, MMM dd HH:mm:ss CEST yyyy"); this.DeviceStatus.PumpInfo.Iob.Timestamp = create.ToString(Constants.Dateformat); this.DeviceStatus.PumpInfo.Clock = create.ToString(Constants.Dateformat); this.DeviceStatus.PumpInfo.Battery.Percent = message.BatteryPercentage; this.DeviceStatus.PumpInfo.Status.Add("supended", false); this.DeviceStatus.PumpInfo.Status.Add("bolusing", false); //build status message string statusMessage = ""; if (message.Status.Suspended) { statusMessage = "suspended"; } if (message.Status.BolusingNormal) { statusMessage = "bolusing"; } if (!message.Status.Suspended && !message.Status.BolusingNormal) { statusMessage = "normal"; } if (message.SensorCalibrationDateTime.HasValue) { var diff = message.SensorCalibrationDateTime.Value.Subtract(DateTime.Now); statusMessage += $" - Cal.{diff.Hours}h{diff.Minutes}m ({message.SensorCalibrationDateTime.Value.ToString("HH:mm")})"; //statusMessage += $" - Cal. {message.SensorCalibrationDateTime.Value.ToString()}"; } if (message.SensorStatus.Calibrating) { statusMessage += " - Calibrating...."; } this.DeviceStatus.PumpInfo.Status.Add("status", statusMessage); }
private void OnItemClick(ItemClickEventArgs args) { PumpStatusMessage item = args?.ClickedItem as PumpStatusMessage; if (item != null) { if (_currentState.Name == NarrowStateName) { NavigationService.Navigate(typeof(StatusDetailViewModel).FullName, item); } else { Selected = item; } } }