Esempio n. 1
0
 public void Run()
 {
     int inBufferCount;
     try
     {
         serialPort = Comm2IP.GetSerialPort(socket, comPort, baudRate);
         while (true)
         {
             inBufferCount = socket.Receive(inBuffer);
             if (inBufferCount == 0) break;
             serialPort.Send(inBuffer, inBufferCount);
         }
     }
     catch (Exception e)
     {
         log.Error(e);
     }
     finally
     {
         log.Info("Lost connection from: " + socket.RemoteEndPoint + " for: " + comPort + "@" + baudRate);
         Comm2IP.CloseSerialPort(serialPort);
         try { socket.Close(); }
         catch { }
     }
 }
Esempio n. 2
0
 public Socket(System.Net.Sockets.Socket socket, string comPort, int baudRate)
 {
     this.socket = socket;
     serialPort = null;
     this.comPort = comPort;
     this.baudRate = baudRate;
 }
Esempio n. 3
0
 public static void CloseSerialPort(SerialPort serialPort)
 {
     lock (ports)
     {
         if (serialPort != null) serialPort.SetSocket(null);
     }
 }
Esempio n. 4
0
 public static SerialPort GetSerialPort(System.Net.Sockets.Socket socket, string portName, int baudRate)
 {
     lock (ports)
     {
         SerialPort sp = null;
         string key = portName.ToUpper();
         try
         {
             sp = ports[key];
             if (sp.InUse()) throw new Exception("Port is already in use!");
             sp.SetSocket(socket);
         }
         catch (KeyNotFoundException)
         {
             sp = new SerialPort(socket, portName, baudRate);
             sp.OpenPort();
             ports.Add(key, sp);
         }
         return sp;
     }
 }