Exemple #1
0
        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);
            }
        }
Exemple #2
0
 private async void NewStatus(PumpStatusMessage entry)
 {
     await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
                                                                   () =>
     {
         this.CurrentMessage = entry;
     });
 }
Exemple #3
0
        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);
        }
Exemple #4
0
        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;
                }
            }
        }