public Animatroller.Framework.PhysicalDevice.AnalogInput AddAnalogInput(AnalogInput3 logicalDevice) { var moduleControl = new Control.ModuleControl(); moduleControl.Text = logicalDevice.Name; moduleControl.Size = new System.Drawing.Size(80, 80); var control = new Control.TrackBarAdv(); moduleControl.ChildControl = control; control.Size = new System.Drawing.Size(80, 80); control.Maximum = 255; control.TickFrequency = 26; flowLayoutPanelLights.Controls.Add(moduleControl); var device = new Animatroller.Framework.PhysicalDevice.AnalogInput(); control.ValueChanged += (sender, e) => { device.Trigger((sender as TrackBar).Value / 255.0); }; device.Connect(logicalDevice); control.Value = logicalDevice.Value.GetByteScale(); logicalDevice.Output .ObserveOn(SynchronizationContext.Current) .Subscribe(x => { control.SuspendChangedEvents = true; try { control.Value = x.GetByteScale(); } finally { control.SuspendChangedEvents = false; } }); return(device); }
public Animatroller.Framework.PhysicalDevice.AnalogInput AddAnalogInput(AnalogInput3 logicalDevice) { var moduleControl = new Control.ModuleControl(); moduleControl.Text = logicalDevice.Name; moduleControl.Size = new System.Drawing.Size(80, 80); var control = new Control.TrackBarAdv(); moduleControl.ChildControl = control; control.Size = new System.Drawing.Size(80, 80); control.Maximum = 255; control.TickFrequency = 26; flowLayoutPanelLights.Controls.Add(moduleControl); var device = new Animatroller.Framework.PhysicalDevice.AnalogInput(); control.ValueChanged += (sender, e) => { device.Trigger((sender as TrackBar).Value / 255.0); }; device.Connect(logicalDevice); control.Value = logicalDevice.Value.GetByteScale(); logicalDevice.Output .ObserveOn(SynchronizationContext.Current) .Subscribe(x => { control.SuspendChangedEvents = true; try { control.Value = x.GetByteScale(); } finally { control.SuspendChangedEvents = false; } }); return device; }