Exemplo n.º 1
0
 protected override async Task ConnectSlave()
 {
     if (config.SlaveConnection.Substring(0, 3) == "COM" || config.SlaveConnection.Substring(0, 8) == "/dev/tty")
     {
         try
         {
             Console.WriteLine($"Opening...{config.SlaveConnection}");
             if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
             {
                 m_serialPort = WinSerialDevice.CreateDevice(config.SlaveConnection, (int)config.BaudRate, config.Parity, (int)config.DataBits, config.StopBits);
             }
             else
             {
                 m_serialPort = UnixSerialDevice.CreateDevice(config.SlaveConnection, (int)config.BaudRate, config.Parity, (int)config.DataBits, config.StopBits);
             }
             m_serialPort.Open();
             //m_serialPort.DataReceived += new SerialDataReceivedEventHandler(sp_DataReceived);
             await Task.Delay(0);
         }
         catch (Exception e)
         {
             Console.WriteLine("Connect Slave failed");
             Console.WriteLine(e.Message);
             m_serialPort = null;
         }
     }
 }
        /// <summary>
        /// Open the initialized serial port
        /// </summary>
        private static ISerialDevice OpenSerial(string connection, int baudRate, Parity parity, int dataBits, StopBits stopBits, string direction)
        {
            ISerialDevice serialDevice = SerialDeviceFactory.CreateSerialDevice(connection, baudRate, parity, dataBits, stopBits);

            serialDevice.Open();

            Log.Information($"Serial port '{connection}' opened for '{direction}'");

            return(serialDevice);
        }
Exemplo n.º 3
0
        protected override async Task ConnectSlave()
        {
            if (config.SlaveConnection.Substring(0, 3) == "COM" || config.SlaveConnection.Substring(0, 8) == "/dev/tty")
            {
                try
                {
                    Console.WriteLine($"Opening...{config.SlaveConnection}");

                    m_serialPort = SerialDeviceFactory.CreateSerialDevice(config.SlaveConnection, (int)config.BaudRate.Value, config.Parity.Value, (int)config.DataBits.Value, config.StopBits.Value);

                    m_serialPort.Open();
                    //m_serialPort.DataReceived += new SerialDataReceivedEventHandler(sp_DataReceived);
                    await Task.Delay(2000); //Wait target to be ready to write the modbus package
                }
                catch (Exception e)
                {
                    Console.WriteLine("Connect Slave failed");
                    Console.WriteLine(e.Message);
                    m_serialPort = null;
                }
            }
        }
Exemplo n.º 4
0
 /// <summary>
 /// Opens the serial port and starts the thread that communicates with the serial device.
 /// </summary>
 public void Start()
 {
     try
     {
         if (!serialDevice.IsOpen)
         {
             serialDevice.Open();
             if (serialDevice.IsOpen)
             {
                 if (commThread == null)
                 {
                     commThread = new Thread(ThreadCommunication);
                 }
                 commThread.Start();
             }
         }
     }
     catch (Exception)
     {
         // TODO: Decide how to handle SerialPort errors.
         //throw;
     }
 }