Ejemplo n.º 1
0
 public DeviceStatus(EnumDeviceId deviceID)
 {
     this.DeviceID   = deviceID;
     this.DeviceName = string.Empty;
     this.Status     = null;
     this.Summary    = EnumDeviceStatusSumary.Error;
 }
Ejemplo n.º 2
0
        public void ReportDeviceStatus(EnumDeviceId enumDeviceId, EnumDeviceStatus[] newStatuses)
        {
            try
            {
                if (_lstDevices == null || _lstDevices.Count == 0)
                {
                    return;
                }

                DeviceStatus deviceStatus = _lstDevices.FirstOrDefault(item => item.DeviceID == enumDeviceId);
                // Save new status
                deviceStatus.Status = newStatuses;

                // update summary
                // Error status
                if (newStatuses == null || newStatuses.Length == 0 || newStatuses.Contains(EnumDeviceStatus.Disconnected))
                {
                    deviceStatus.Summary = EnumDeviceStatusSumary.Error;
                }
                // if application have no device disconnected, and have any device status is diffirent connected, update status caution
                // Need to define caution statuses group
                else if (newStatuses.Any(item => item != EnumDeviceStatus.Connected))
                {
                    deviceStatus.Summary = EnumDeviceStatusSumary.Caution;
                }
                // if all devices are connected and have no caution, update status is ready
                else
                {
                    deviceStatus.Summary = EnumDeviceStatusSumary.Ready;
                }

                // If application initialization is not fisnished and this device status is not reported yet
                // update device initialization finished
                if (_isInitializing && !_isInitializing_LayerWeb && !_lstDevices.Any(item => item.Status == null))
                {
                    _isInitializing = false;
                }

                UpdateLEDsLight();

                // update local ApplicationDevice_Status
                DAL_DeviceStatus dAL_DeviceStatus = new DAL_DeviceStatus();
                dAL_DeviceStatus.Update((int)enumDeviceId, newStatuses);
                Trinity.SignalR.Client.Instance.DeviceStatusChanged((int)enumDeviceId, newStatuses);
            }
            catch (Exception ex)
            {
                Debug.WriteLine("ReportDeviceStatus exception: " + ex.ToString());
            }
        }