public async Task Open() { if (Status == ModbusServerStatus.Initialled) { try { Status = ModbusServerStatus.Opening; string aqs = SerialDevice.GetDeviceSelector(portName); var dis = await DeviceInformation.FindAllAsync(aqs); serialPort = await SerialDevice.FromIdAsync(dis[0].Id); serialPort.WriteTimeout = TimeSpan.FromMilliseconds(WRITE_TIMEOUT); serialPort.ReadTimeout = TimeSpan.FromMilliseconds(READ_TIMEOUT); serialPort.BaudRate = BAUD_RATE; serialPort.Parity = SERIAL_PARITY; serialPort.StopBits = SERIAL_STOP_BIT_COUNT; serialPort.DataBits = DATA_BITS; serialPort.Handshake = SERIAL_HANDSHAKE; readCancellationTokenSource = new CancellationTokenSource(); listen(1024); Status = ModbusServerStatus.Opened; } catch (Exception ex) { throw ex; } } }
public void Close() { if (serialPort != null) { serialPort.Dispose(); } serialPort = null; Status = ModbusServerStatus.None; }
public ModbusServer(string portName) { this.portName = portName; Status = ModbusServerStatus.Initialled; }
public void Cancel() { if (readCancellationTokenSource != null) { if (!readCancellationTokenSource.IsCancellationRequested) { readCancellationTokenSource.Cancel(); } } Status = ModbusServerStatus.Closed; }