private void selectScanner(string scanner) { if (serSystemConnector != null || dataManSystem != null) { if (dataManSystem == null) { serSystemConnector.Disconnect(); serSystemConnector.Dispose(); serSystemConnector = null; } else if (serSystemConnector == null) { dataManSystem.Disconnect(); dataManSystem.Dispose(); dataManSystem = null; } else { try { dataManSystem.ReadStringArrived -= DataManSystem_ReadStringArrived; } catch { } dataManSystem.Disconnect(); dataManSystem = null; serSystemConnector.Disconnect(); serSystemConnector = null; } } try { serSystemConnector = new SerSystemConnector(scanner); dataManSystem = new DataManSystem(serSystemConnector); } catch (Exception) { throw; } try { dataManSystem.ReadStringArrived -= DataManSystem_ReadStringArrived; } finally { dataManSystem.ReadStringArrived += DataManSystem_ReadStringArrived; } try { dataManSystem.SystemDisconnected -= DataManSystem_SystemDisconnected; } finally { dataManSystem.SystemDisconnected += DataManSystem_SystemDisconnected; if (serSystemConnector.IsKeepAliveSupported) { serSystemConnector.SetKeepAliveOptions(true, 1000, 2000); } } try { dataManSystem.SystemWentOffline -= DataManSystem_SystemWentOffline; } finally { dataManSystem.SystemWentOffline += DataManSystem_SystemWentOffline; } dataManSystem.Connect(); this.Invoke(SetFormTitle, $"扫码校验【{serSystemConnector.PortName},{serSystemConnector.Baudrate},{serSystemConnector.Parity},{serSystemConnector.DataBits},{serSystemConnector.StopBits}】"); }