private void RunPollig() { ModBusDriver?.Dispose(); try { CreateModbusDriver(); } catch (Exception e) { if (!_linkRecoveryTimer.IsEnabled) { StatusString = e.Message; AvaliablePorts = SerialPort.GetPortNames().ToList(); } return; } _timer.Interval = TimeSpan.FromMilliseconds(ScanRate); ModbusConfig.Save(ModbusConfig); _retriesToRecoverLink = 0; _linkRecoveryTimer.Stop(); _linkRecoveryTimer.Tick -= _connectionRecoveryHandler; _timer.Tick += _dataUpdateHandler; _timer.Start(); IsStopped = false; }