public async override Task <bool> ConnectAsync() { try { await _port.OpenAsync(); State = States.Connecting; _reader = new StreamReader(_port.InputStream); _writer = new StreamWriter(_port.OutputStream); StartListening(_reader); State = States.Connected; return(true); } catch (Exception ex) { _logger.NotifyUserError("SerialPortChannel_ConnectAsync", ex.Message); if (_reader != null) { _reader.Dispose(); _reader = null; } if (_writer != null) { _writer.Dispose(); _writer = null; } return(false); } }
public async Task ConnectAsync(ISerialPort port) { if (Connected) { throw new Exception("Can't Connect: Already Connected"); } try { await port.OpenAsync(); var outputStream = port.OutputStream; if (outputStream == null) { AddStatusMessage(StatusMessageTypes.Warning, $"Could not open serial port"); return; } Connected = true; lock (_queueAccessLocker) { _toSend.Clear(); _sentQueue.Clear(); _toSendPriority.Clear(); } Mode = OperatingMode.Manual; if (Settings.MachineType == FirmwareTypes.Repeteir_PnP) { Enqueue("M43 P25"); Enqueue("M43 P27"); Enqueue("M43 P29"); Enqueue("M43 P31"); Enqueue("M43 P32"); Enqueue("M43 P33"); Enqueue("G90"); } _cancelSource = new CancellationTokenSource(); _port = port; AddStatusMessage(StatusMessageTypes.Info, $"Opened Serial Port"); await Task.Run(() => { Work(port.InputStream, port.OutputStream); }, _cancelSource.Token); } catch (Exception ex) { _port = null; Connected = false; AddStatusMessage(StatusMessageTypes.Warning, $"Could not open serial port: " + ex.Message); } }
public async Task OpenAsync(SerialPortInfo portInfo) { _serialPort = _deviceManager.CreateSerialPort(portInfo); await _serialPort.OpenAsync(); StartListening(); IsConected = true; }
public async Task OpenAsync(ISerialPort serialPort) { _serialPort = serialPort; await _serialPort.OpenAsync(); StartListening(); ThreadPool.QueueUserWorkItem(new WaitCallback(ProcessReceiveQueue), null); ThreadPool.QueueUserWorkItem(new WaitCallback(ProcessSendQueue)); IsConnected = true; }
public async override Task <bool> ConnectAsync() { try { await _port.OpenAsync(); State = States.Connecting; _reader = new StreamReader(_port.InputStream); _writer = new StreamWriter(_port.OutputStream); ReceiveDataAsync(_reader); State = States.Connected; return(true); } catch (Exception ex) { _logger.NotifyUserError("SerialPortChannel_ConnectAsync", ex.Message); return(false); } }