public void Open()
 {
     portError = false;
     portBusy  = false;
     if (serialPortMode == SerialPortModes.RSMode)
     {
         if (serialPort.IsOpen)
         {
             return;
         }
         serialPort.Open();
     }
     else if (serialPortMode == SerialPortModes.TCPMode)
     {
         tcpMaster = new ModbusTCPMaster(ipAddress, portNum);
         tcpMaster.OnResponseData += new ModbusTCPMaster.ResponseData(tcpMaster_OnResponseData);
     }
     requestTimer.Enabled = true;
 }
        public void SetNewPortMode(SerialPortModes SerialPortMode)
        {
            if (IsOpen)
            {
                throw new Exception("Serial port is open!");
            }

            if (SerialPortMode == SerialPortModes.RSMode)
            {
                serialPortMode = SerialPortModes.RSMode;
                if (tcpMaster != null)
                {
                    tcpMaster = null;
                }
            }
            else
            {
                serialPortMode = SerialPortModes.TCPMode;
            }
        }