コード例 #1
0
        /// <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);
        }
コード例 #2
0
 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;
 }
コード例 #3
0
 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;
 }
コード例 #4
0
        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);
            }
        }
コード例 #5
0
ファイル: FtdiSerialDevice.cs プロジェクト: Jark/FTDISample
 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.");
     }
 }
コード例 #6
0
 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;
 }
コード例 #7
0
        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.");
            }
        }
コード例 #8
0
 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));
 }
コード例 #9
0
ファイル: DeviceConnection.cs プロジェクト: Jark/FTDISample
 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;
 }
コード例 #10
0
        /// <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);
        }