/// <summary> /// 생성자 /// </summary> /// <param name="portName">포트 이름</param> /// <param name="baudRate">Baud Rate</param> /// <param name="dataBits">Data Bits</param> /// <param name="stopBits">Stop Bits</param> /// <param name="parity">Parity</param> /// <param name="handshake">ㅗandshake</param> public SerialPortModbusChannel(string portName, int baudRate, int dataBits, SerialStopBitCount stopBits, SerialParity parity, SerialHandshake handshake) { PortName = portName; BaudRate = baudRate; DataBits = dataBits; StopBits = stopBits; Parity = parity; Handshake = handshake; Description = PortName; foreach (var instance in instances.ToArray()) { if (!instance.Value.TryGetTarget(out var channelSerial)) { RemoveIntance(channelSerial.GetHashCode()); } } Open(null); AddInstance(this); }
public ParametresPortSerie(string nom, string idRecherche, uint vitesse, SerialParity parite, SerialStopBitCount bitsDeStop, ushort bitsDeDonnees, SerialHandshake controleDeFlux, double dureeLectureMs, double dureeEcritureMs) { Nom = nom; IdRecherche = idRecherche; Vitesse = vitesse; Parite = parite; BitsDeStop = bitsDeStop; BitsDeDonnees = bitsDeDonnees; ControleDeFlux = controleDeFlux; DureeLectureMs = dureeLectureMs; DureeEcritureMs = dureeEcritureMs; }
public ConnectionSettings(uint baudRate, ushort dataBits, SerialStopBitCount stopBits, SerialParity parity, SerialHandshake handshake, byte xOn = 0x00, byte xOff = 0x00) { BaudRate = baudRate; DataBits = dataBits; StopBits = stopBits; Parity = parity; Handshake = handshake; XOn = xOn; XOff = xOff; }
public static SerialFlowControlHandshake Convert(this SerialHandshake handshake) { switch (handshake) { case SerialHandshake.None: return(SerialFlowControlHandshake.None); case SerialHandshake.RequestToSend: return(SerialFlowControlHandshake.RequestToSend); case SerialHandshake.XOnXOff: return(SerialFlowControlHandshake.XonXoff); case SerialHandshake.RequestToSendXOnXOff: return(SerialFlowControlHandshake.RequestToSendXonXoff); default: return(SerialFlowControlHandshake.None); } }
private static FLOW_CONTROL GetFlowControl(SerialHandshake handshake) { switch (handshake) { case SerialHandshake.None: return FLOW_CONTROL.NONE; case SerialHandshake.RequestToSend: return FLOW_CONTROL.RTS_CTS; case SerialHandshake.RequestToSendXOnXOff: return FLOW_CONTROL.DTR_DSR; // todo: this is probably not correct... case SerialHandshake.XOnXOff: return FLOW_CONTROL.XON_XOFF; default: throw new Exception($"SerialHandshake {handshake} is not supported for the FTDIDevice."); } }
public Device( int writeTimeOut = 1000, int readTimeout = 1000, uint baudRate = 9600, SerialParity parity = SerialParity.None, SerialStopBitCount stopBits = SerialStopBitCount.One, ushort dataBits = 8, SerialHandshake handshake = SerialHandshake.None) { this.writeTimeOutTimeSpan = TimeSpan.FromMilliseconds(writeTimeOut); this.readTimeOutTimeSpan = TimeSpan.FromMilliseconds(readTimeout); this.baudRate = baudRate; this.parity = parity; this.stopBits = stopBits; this.dataBits = dataBits; this.handshake = handshake; }
private static FLOW_CONTROL GetFlowControl(SerialHandshake handshake) { switch (handshake) { case SerialHandshake.None: return(FLOW_CONTROL.NONE); case SerialHandshake.RequestToSend: return(FLOW_CONTROL.RTS_CTS); case SerialHandshake.RequestToSendXOnXOff: return(FLOW_CONTROL.DTR_DSR); // todo: this is probably not correct... case SerialHandshake.XOnXOff: return(FLOW_CONTROL.XON_XOFF); default: throw new Exception($"SerialHandshake {handshake} is not supported for the FTDIDevice."); } }
public static ParametresPortSerie CreerPourUARTGpioPi(uint vitesse, SerialParity parite, SerialStopBitCount bitsDeStop, ushort bitsDeDonnees, SerialHandshake controleDeFlux, double dureeLectureMs, double dureeEcritureMs) { if (string.IsNullOrEmpty(_piIdString)) { _piIdString = RaspberryPi.EstRaspberryPi2() ? @"\\?\ACPI#BCM2837#4#" : @"\\?\ACPI#BCM2836#0#"; } return(new ParametresPortSerie("", _piIdString, vitesse, parite, bitsDeStop, bitsDeDonnees, controleDeFlux, dureeLectureMs, dureeEcritureMs)); }
/// <summary>Initializes the serial port with the given parameters.</summary> /// <param name="baudRate">The baud rate to use.</param> /// <param name="parity">The parity to use.</param> /// <param name="stopBits">The stop bits to use.</param> /// <param name="dataBits">The number of data bits to use.</param> /// <param name="flowControl">The flow control to use.</param> public void Configure(uint baudRate, SerialParity parity, SerialStopBitCount stopBits, ushort dataBits, SerialHandshake flowControl) { if (this.serialPort != null) { throw new InvalidOperationException("Configure can only be called once."); } serialPort = SerialDevice.FromId(ComId); serialPort.BaudRate = baudRate; serialPort.Parity = parity; serialPort.StopBits = stopBits; serialPort.DataBits = dataBits; serialPort.Handshake = flowControl; _outStream = serialPort.OutputStream; _inStream = serialPort.InputStream; SerialWriter = new DataWriter(_outStream); SerialReader = new DataReader(_inStream); }