示例#1
0
        public async Task <DeviceSource> ConnectAsync(string port, UInt16 universe)
        {
            try
            {
                var writer = await WriterFactory.CreateDmxWriterAsync(port);

                if (!Writers.Values.Any(x => x.UniverseID == universe))
                {
                    // start listening on a new universe
                    SacnReceiver.JoinMulticastGroup(universe);
                }
                Writers.Add(port, new WriterEntry {
                    Writer = writer, UniverseID = universe
                });
            }
            catch (Exception ex)
            {
                await Console.Error.WriteAsync(ex.ToString());

                throw new ExecutionError(ex.Message);
            }
            return(new DeviceSource
            {
                Id = port,
                Status = DeviceStatus.InUse,
                Universe = universe
            });
        }