Ejemplo n.º 1
0
            public static GeneratedEventStatusInfo Get(List <GeneratedEvents.GeneratedEvent> gEvents)
            {
                var statusInfo = new GeneratedEventStatusInfo();

                // Get Device Status
                var deviceStatusEvents = gEvents.FindAll(o => o.EventName == "device_status" && o.CurrentValue != null);

                if (deviceStatusEvents.Any())
                {
                    var deviceStatusEvent = deviceStatusEvents.OrderBy(o => o.CurrentValue.Timestamp).Last();
                    if (deviceStatusEvent != null)
                    {
                        statusInfo.DeviceStatus      = deviceStatusEvent.CurrentValue.Value;
                        statusInfo.DeviceStatusTimer = (deviceStatusEvent.CurrentValue.Timestamp - deviceStatusEvent.CurrentValue.ChangedTimestamp).TotalSeconds;
                    }
                }

                // Get Production Status
                var productionStatusEvents = gEvents.FindAll(o => o.EventName == "production_status" && o.CurrentValue != null);

                if (productionStatusEvents.Any())
                {
                    var productionStatusEvent = productionStatusEvents.OrderBy(o => o.CurrentValue.Timestamp).Last();
                    if (productionStatusEvent != null)
                    {
                        statusInfo.ProductionStatus      = productionStatusEvent.CurrentValue.Value;
                        statusInfo.ProductionStatusTimer = (productionStatusEvent.CurrentValue.Timestamp - productionStatusEvent.CurrentValue.ChangedTimestamp).TotalSeconds;
                    }
                }

                return(statusInfo);
            }
Ejemplo n.º 2
0
        private void UpdateGeneratedEvents(EventData data)
        {
            if (data.Data01 != null && data.Data02 != null)
            {
                var gEvents = (List <GeneratedEvents.GeneratedEvent>)data.Data02;

                // Only update if deviceInfo.Status is not null since this doesn't always include the Connected property which causes
                // the device to appear to be turning on and off using a client
                if (deviceInfo.Status != null)
                {
                    // Update Generated Event Status Info
                    var statusInfo = GeneratedEventStatusInfo.Get(gEvents);
                    deviceInfo.Status.DeviceStatus          = statusInfo.DeviceStatus;
                    deviceInfo.Status.ProductionStatus      = statusInfo.ProductionStatus;
                    deviceInfo.Status.DeviceStatusTimer     = statusInfo.DeviceStatusTimer;
                    deviceInfo.Status.ProductionStatusTimer = statusInfo.ProductionStatusTimer;
                }

                // Update Generated Event Times
                deviceInfo.AddHourInfos(GeneratedEventTime.GetHourInfos(gEvents));

                queue.Add(deviceInfo);
            }
        }
Ejemplo n.º 3
0
            public static GeneratedEventStatusInfo Get(List<GeneratedEvents.GeneratedEvent> gEvents)
            {
                var statusInfo = new GeneratedEventStatusInfo();

                // Get Device Status
                var deviceStatusEvents = gEvents.FindAll(o => o.EventName == "device_status" && o.CurrentValue != null);
                if (deviceStatusEvents.Any())
                {
                    var deviceStatusEvent = deviceStatusEvents.OrderBy(o => o.CurrentValue.Timestamp).Last();
                    if (deviceStatusEvent != null)
                    {
                        statusInfo.DeviceStatus = deviceStatusEvent.CurrentValue.Value;
                        statusInfo.DeviceStatusTimer = (deviceStatusEvent.CurrentValue.Timestamp - deviceStatusEvent.CurrentValue.ChangedTimestamp).TotalSeconds;
                    }
                }

                // Get Production Status
                var productionStatusEvents = gEvents.FindAll(o => o.EventName == "production_status" && o.CurrentValue != null);
                if (productionStatusEvents.Any())
                {
                    var productionStatusEvent = productionStatusEvents.OrderBy(o => o.CurrentValue.Timestamp).Last();
                    if (productionStatusEvent != null)
                    {
                        statusInfo.ProductionStatus = productionStatusEvent.CurrentValue.Value;
                        statusInfo.ProductionStatusTimer = (productionStatusEvent.CurrentValue.Timestamp - productionStatusEvent.CurrentValue.ChangedTimestamp).TotalSeconds;
                    }
                }

                return statusInfo;
            }