private static async Task Main(string[] args) { var tr1 = new TextWriterTraceListener(System.Console.Out); Trace.Listeners.Add(tr1); var client = new DreamScreenClient(); _devices = new List <DreamDevice>(); client.DeviceDiscovered += AddDevice; client.CommandReceived += LogCommand; client.StartDeviceDiscovery(); await Task.Delay(5000); client.StopDeviceDiscovery(); var subscribing = false; if (_devices.Count > 0) { Console.WriteLine($"Found {_devices.Count} devices."); foreach (var dev in _devices) { if (dev.Type == DeviceType.Connect || dev.Type == DeviceType.SideKick) { continue; } var curMode = dev.DeviceMode; Console.WriteLine($"DreamScreen found, beginning subscribe test for {dev.IpAddress}, current mode is {curMode}."); await client.SetMode(dev, DeviceMode.Off); await client.SetMode(dev, DeviceMode.Video); client.ColorsReceived += ColorsReceived; client.StartSubscribing(dev.IpAddress); subscribing = true; break; } } if (subscribing) { while (true) { // Log color messages } } }
private static void Main() { var client = new DreamScreenClient(); var source = new CancellationTokenSource(); client.DeviceDiscovered += ProcessDevice; source.CancelAfter(TimeSpan.FromSeconds(5)); client.StartDeviceDiscovery(); var token = source.Token; while (!token.IsCancellationRequested) { } client.StopDeviceDiscovery(); client.Dispose(); }
private static async Task Main(string[] args) { var client = new DreamScreenClient(); _devices = new List <DreamDevice>(); client.DeviceDiscovered += AddDevice; // Handler for when a device is discovered client.CommandReceived += LogCommand; // Handle incoming messages client.StartDeviceDiscovery(); // Start discovery, wait for 5s await Task.Delay(5000); client.StopDeviceDiscovery(); // Stop discovery // Do stuff with found devices if (_devices.Count > 0) { Console.WriteLine($"Found {_devices.Count} devices."); var dev = _devices[0]; if (dev != null) { var res = await client.SetMode(dev, DeviceMode.Video); Console.WriteLine("Mode Res: " + JsonConvert.SerializeObject(res)); res = await client.SetAmbientColor(dev, Color.Crimson); Console.WriteLine("Col Res: " + JsonConvert.SerializeObject(res)); res = await client.SetAmbientMode(dev, AmbientMode.Scene); Console.WriteLine("Mode Res: " + JsonConvert.SerializeObject(res)); res = await client.SetAmbientShow(dev, AmbientShow.Forest); Console.WriteLine("Mode Res: " + JsonConvert.SerializeObject(res)); while (true) { } await client.SetMode(dev, DeviceMode.Off); } } }