/// <summary> /// Updates the state of the device active. /// </summary> /// <param name="source">The source.</param> /// <param name="args">The <see cref="frm_DevicesEventArgs"/> instance containing the event data.</param> private void UpdateDeviceActiveState(object source, frm_DevicesEventArgs args) { // DeviceInfo control'unden gönderilen eventteki args'lara göre ilgili device'ın haberleşme durumu değiştirilir. if (modbusTCP != null) { // Device'ın drivera eklenip eklenmedigi kontrol edilir. if (modbusTCP.Devices.Exists(d => d.ID == args.deviceId)) { modbusTCP.Devices.Where(d => d.ID == args.deviceId).First().isActive = args.state; } } dbhelper.UpdateDeviceActiveState(args.deviceId, args.state); if (args.state) { Log.Instance.Info("{0} nolu Device için haberleşme aktif edildi", args.deviceId); // Haberleşme aktif edilse bile haberleşmenin kurulacağı kesin olmadığı için device.Connected burada true yapılmaz. // modbusTCP.Devices.Where(d => d.ID == args.deviceId).First().Connected = true; } else { Log.Instance.Info("{0} nolu Device için haberleşme kapatıldı", args.deviceId); if (modbusTCP != null) { if (modbusTCP.Devices.Exists(d => d.ID == args.deviceId)) { modbusTCP.Devices.Where(d => d.ID == args.deviceId).First().Connected = false; } } dbhelper.UpdateDeviceConnectedState(args.deviceId, args.state); // Haberleşme kapatıldıgında haberleşme sağlanamayacağı için device.Connected burada false'a çekilir. } }
private void OnStateChanged(ushort _deviceID, bool _state) { frm_DevicesEventArgs args = new frm_DevicesEventArgs(); args.state = _state; args.deviceId = _deviceID; if (StateChanged != null) { StateChanged(this, args); } }