Exemple #1
0
 public TcpServerOrb(ArgParser args, BuildOrbDevice orb)
 {
     _orb       = orb;
     _converter = new ColorByteConverter();
     if (args.ServerIpAddressDetected)
     {
         ServerIpAddress = IPAddress.Parse(args.ServerAddress);
     }
     else
     {
         var ips = Dns.GetHostAddresses(args.ServerAddress);
         if (ips == null || ips.Length == 0)
         {
             args.ThrowIncorrectServerAddress(args.ServerAddress);
         }
         if (ips.Any(x => x.AddressFamily.ToString() == ProtocolFamily.InterNetwork.ToString()))
         {
             ServerIpAddress = ips.First(x => x.AddressFamily.ToString() == ProtocolFamily.InterNetwork.ToString());
         }
         else
         {
             ServerIpAddress = ips.Last();
         }
     }
     _listener = new TcpListener(ServerIpAddress, args.PortNumber);
     if (args.CountProgressColors)
     {
         _colorCounter = new ProgressColorCounter(args.ProgressColorForServer, args.SuccessColorForServer);
     }
     else
     {
         _colorCounter = new NullColorCounter();
     }
 }
Exemple #2
0
            new UsbDeviceFinder(0x16C0, 0x05DB); // specify vendor, product id

        #endregion

        public static void Main(string[] args)
        {
            ErrorCode ec = ErrorCode.None;

            try
            {
                var argValues = new ArgParser(args);

                if (argValues.IsRemoteClientMode)
                {
                    using (var serverClient = new TcpClientOrb(argValues, new ColorByteConverter()))
                    {
                        serverClient.Send(argValues.Color);
                        Console.WriteLine("\r\nDone!\r\n");
                        return;
                    }
                }

                // Find and open the usb device.
                MyUsbDevice = UsbDevice.OpenUsbDevice(MyUsbFinder);
                // If the device is open and ready
                if (MyUsbDevice == null)
                {
                    throw new Exception("Device Not Found.");
                }
                SetConsoleCtrlHandler(new HandlerRoutine(ConsoleCtrlCheck), true);
                _orb = new BuildOrbDevice(MyUsbDevice);
                if (argValues.IsClientMode)
                {
                    _orb.TurnLightningOn(argValues.Color);
                }
                else
                {
                    var server = new TcpServerOrb(argValues, _orb);
                    Console.WriteLine("Server was started on interface {0}", server.ServerIpAddress);
                    server.Start();
                }

                Console.WriteLine("\r\nDone!\r\n");
            }
            catch (Exception ex)
            {
                Console.WriteLine();
                Console.WriteLine((ec != ErrorCode.None ? ec + ":" : String.Empty) + ex.Message);
            }
            finally
            {
                ReleaseResourcesIfRequired();
            }
        }
Exemple #3
0
        public TcpClientOrb(ArgParser args, ColorByteConverter converter)
        {
            _converter = converter;
            _client    = new TcpClient();
            var result  = _client.BeginConnect(args.ServerAddress, args.PortNumber, null, null);
            var success = result.AsyncWaitHandle.WaitOne(TimeSpan.FromSeconds(2));

            if (!success)
            {
                throw new ApplicationException(string.Format("Failed to connect to host {0} port {1}.", args.ServerAddress, args.PortNumber));
            }

            // we have connected
            _client.EndConnect(result);
        }