public DeviceStatus(EnumDeviceId deviceID) { this.DeviceID = deviceID; this.DeviceName = string.Empty; this.Status = null; this.Summary = EnumDeviceStatusSumary.Error; }
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()); } }