/// <summary> /// Send colors to target IP address /// </summary> /// <param name="target">Target device to send to</param> /// <param name="colors">An array of 12 System.Drawing>Colors</param> /// <returns></returns> public async Task SendColors(DreamDevice target, IEnumerable <Color> colors) { var msg = new Message(target.IpAddress, MessageType.ColorData, MessageFlag.ColorData, target.DeviceGroup) { Payload = new Payload(colors.Cast <object>().ToArray()) }; await BroadcastMessageAsync(msg); }
/// <summary> /// Set ambient Show (scene) /// </summary> /// <param name="target">Target device</param> /// <param name="show"><see cref="AmbientShow" />Type of Ambient Show to set</param> /// <returns></returns> public async Task <DreamScreenResponse> SetAmbientShow(DreamDevice target, AmbientShow show) { var flag = Equals(target.DeviceGroup == 0) ? MessageFlag.WriteIndividual : MessageFlag.WriteGroup; var msg = new Message(target.IpAddress, MessageType.AmbientScene, flag, target.DeviceGroup) { Payload = new Payload(new object[] { (byte)show }) }; var response = await BroadcastMessageForResponse(msg); return(response); }
/// <summary> /// Set device group name /// </summary> /// <param name="groupName">The new name to set. Should be less than 16 chars.</param> /// <param name="target">The device to set</param> /// <returns></returns> public async Task <DreamScreenResponse> SetGroupName(DreamDevice target, string groupName) { var flag = Equals(target.IpAddress, _broadcastIp) ? MessageFlag.WriteGroup : MessageFlag.WriteIndividual; var msg = new Message(target.IpAddress, MessageType.GroupName, flag, target.DeviceGroup) { Payload = new Payload(new object[] { groupName }) }; var response = await BroadcastMessageForResponse(msg); return(response); }
/// <summary> /// Set the device group number /// </summary> /// /// <param name="target">Target group Ip</param> /// <param name="groupNumber">The group number to set the device to</param> /// <returns></returns> public async Task <DreamScreenResponse> SetGroupNumber(DreamDevice target, int groupNumber) { var flag = MessageFlag.WriteIndividual; var msg = new Message(target.IpAddress, MessageType.GroupNumber, flag, target.DeviceGroup) { Payload = new Payload(new object[] { groupNumber }) }; var response = await BroadcastMessageForResponse(msg); return(response); }
public DreamScreenData(DreamDevice dev) { Name = dev.Name; Id = dev.IpAddress.ToString(); IpAddress = Id; Brightness = dev.Brightness; LastSeen = DateTime.Now.ToString(CultureInfo.InvariantCulture); GroupNumber = dev.DeviceGroup; DeviceTag = dev.Type.ToString(); if (DeviceTag.Contains("DreamScreen")) { Enable = false; } }
public void Test5() { const string stream = "TTTTTT"; var dreamDevice = new DreamDevice(2); dreamDevice.ExperienceDream(stream); var stats = dreamDevice.DreamStats; Assert.AreEqual(0, stats.TotalSubjectiveDreamingDuration); Assert.AreEqual(0, stats.RealTimeDreamingDuration); Assert.AreEqual(0, stats.DreamLevels); }
public void Test3() { const string stream = "DTWTDTTTW"; var dreamDevice = new DreamDevice(3); dreamDevice.ExperienceDream(stream); var stats = dreamDevice.DreamStats; Assert.AreEqual(4, stats.TotalSubjectiveDreamingDuration); Assert.AreEqual(2, stats.RealTimeDreamingDuration); Assert.AreEqual(1, stats.DreamLevels); Assert.AreEqual(4, stats.DurationsPerDreamLevel[1]); }
public DreamScreenDevice(DreamScreenData data, ColorService cs) : base(cs) { _data = data; Id = data.Id; var client = cs.ControlService.GetAgent("DreamAgent"); if (client != null) { _client = client; } _ipAddress = _data.IpAddress; _deviceTag = _data.DeviceTag; LoadData(); cs.ColorSendEventAsync += SetColors; var myIp = IPAddress.Parse(_ipAddress); _dev = new DreamDevice(_deviceTag) { IpAddress = myIp, DeviceGroup = data.GroupNumber }; }
internal DeviceDiscoveryEventArgs(DreamDevice device) { Device = device; }