protected BaseSerialPort(string portName, int baud, int databits, Parity parity, StopBits stopbits, Handshake handshake) { Name = portName; _mPort = new SerialPort(portName, baud, parity, databits, stopbits); _mPort.Handshake = handshake; _mPort.WriteTimeout = _mWriteTimeout = 500; _mPort.ReadTimeout = _mReadTimeout = 500; _mPort.Handshake = Handshake.None; _mPort.WriteBufferSize = 4 * 1024; _mPort.ReadBufferSize = 4 * 1024; _mPort.Encoding = System.Text.Encoding.GetEncoding("Windows-1252"); _mPort.DtrEnable = true; _mPort.RtsEnable = true; _mPort.DiscardNull = false; // As portas de comunicação virtuais usam um ponto de extremidade de transferência em massa que é // tipicamente 64 bytes de tamanho. Alta velocidade pode usar 512 bytes, mas é dificil de ser encontrado porta que suporte if (SerialPortUtils.IsVirtualComPort(portName)) { _mChunkSize = 64; } else { // 256 é um valor razoável. RS-232 pode lidar com um pouco mais, mas não é recomendado. // o dispositivo de destino pode ter um buffer pequeno, manter valor baixo _mChunkSize = 256; } }
private void createSerPortUtil() { if (serPort != null) { return; } serPort = new SerialPortUtils(); serPort.onDataReceived += revePortsData; }
private void closeSerPortUtil() { if (serPort == null) { return; } serPort.onDataReceived -= revePortsData; serPort.closeComm(); serPort = null; }
private void createSerPortUtil() { if (cdInterface != null) { return; } SerialPortUtils ser = new SerialPortUtils(); ser.onDataReceived += revePortsData; cdInterface = ser; }
//done private void LoadPortNames() { var ports = SerialPortUtils.GetAvailablePorts().OrderByDescending(x => x); _mainViewModel.GuiStatusViewModel.AvailablePorts = new List <string>(ports); }
/// <summary> /// 獲取串口號,初始化下拉串口名称列表框 /// </summary> public void getCommPorts() { string[] ports = SerialPortUtils.getSerialPorts(); commPortsCallBack(ports); }