private void UpdateSuppressed(object sender, EventArgs e) { foreach (SoloSuppressButton btn in _bumpButtons) { btn.LitRight = DMXController.IsSuppressed(ParseTag(btn)); } }
private void ClearAllBumps() { foreach (SoloSuppressButton btn in _bumpButtons) { btn.LitLeft = false; DMXController.SetLevel(btn.Name, ParseTag(btn), 0); } }
private void ClearAllSliders() { foreach (Slider slider in _sliders) { slider.Value = 0; DMXController.SetLevel(slider.Name, ParseTag(slider), 0); } }
private void tbr_Scroll(object sender, EventArgs e) { string tbarName = ((Slider)sender).Name; // Zach discovered Tag, which works great for this // Get the channel number from the tag int channelNum = ParseTag((Control)sender); int intensity = Convert.ToInt32(((Slider)sender).Value); DMXController.SetLevel(tbarName, channelNum, intensity); }
public void HTPFlush() { foreach (SoloSuppressButton btn in _bumpButtons) { if (btn.LitLeft) { DMXController.SetLevel(btn.Name, ParseTag(btn), 255); } } foreach (Slider tbar in _sliders) { DMXController.SetLevel(tbar.Name, ParseTag(tbar), Convert.ToInt32(tbar.Value)); } }
public void Run(bool driverManagement, string drivertoload = null) { DIRECTflyingServer = new Server(IPAddress.Parse("192.168.179.255"), 3636); DIRECTflyingServer.OnServerStart += OnServerStart; DIRECTflyingServer.OnServerStop += OnServerStop; DIRECTflyingServer.OnCommandIncoming += OnCommandIncoming; flyingServer = new Server(IPAddress.Parse("192.168.178.255"), 3636); flyingServer.OnServerStart += OnServerStart; flyingServer.OnServerStop += OnServerStop; flyingServer.OnCommandIncoming += OnCommandIncoming; controller = new DMXController(Path.Combine(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().FullName), "devices")); controller.OnDeviceLoaded += OnDeviceLoaded; Console.WriteLine("\nLoading devices from folder '" + controller.DeviceDefinitionsLocation + "' .."); controller.LoadDevices(); driverManager = new DriverManager(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location)); driverManager.OnDriverLoaded += OnDriverLoaded; driverManager.OnDriverUnloaded += OnDriverUnloaded; if (driverManagement) { Console.WriteLine("Starting with driver manager enabled."); driverManager.Load(); driverManager.StartWatching(); } else { Console.WriteLine("Starting with driver manager disabled."); if (!String.IsNullOrEmpty(drivertoload)) { Console.WriteLine("But with driver: " + drivertoload); driverManager.Load(false, drivertoload); } else { Console.WriteLine("And *NO* driver choosen!"); } } flyingServer.Start(false); DIRECTflyingServer.Start(true); }
private void bump_MouseDown(object sender, MouseEventArgs e) { SoloSuppressButton btn = (SoloSuppressButton)sender; // Zach discovered Tag, which works great for this // Get the channel number from the tag int channelNum = ParseTag((Control)sender); if ((Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control) { DMXController.FlushHTP(channelNum); if (btn.LitLeft) { DMXController.SetLevel(btn.Name, channelNum, 255); } DMXController.SetLevel(_sliders[channelNum - 1].Name, channelNum, Convert.ToInt32(_sliders[channelNum - 1].Value)); } else if ((Keyboard.Modifiers & ModifierKeys.Shift) == ModifierKeys.Shift) { _shiftPressed = true; if (!DMXController.IsSuppressed(channelNum)) { DMXController.Suppress(channelNum); btn.LitRight = true; } else { DMXController.Unsuppress(channelNum); btn.LitRight = false; } } else { // Set the level string buttonName = btn.Name; DMXController.SetLevel(buttonName, channelNum, 255); // If it was a right-click, toggle if (e.RightButton == MouseButtonState.Pressed) { btn.LitLeft = !btn.LitLeft; } } }
private void bump_MouseUp(object sender, MouseEventArgs e) { SoloSuppressButton btn = (SoloSuppressButton)sender; // Zach discovered Tag, which works great for this // Get the channel number from the tag int channelNum = ParseTag((Control)sender); if (_shiftPressed) { _shiftPressed = false; } else { // Turn the channel off if it wasn't right-clicked. string buttonName = btn.Name; if (!btn.LitLeft) { DMXController.SetLevel(buttonName, channelNum, 0); } } }
public void BeginAction(BaseLightSetterProperty property) { byte GetValue(BaseValue value) { if (value is StaticValue sv) { return(sv.Value); } else if (value is PropertyValue pv) { byte b = (byte)property.GetType().GetRuntimeProperty(pv.PropertyName).GetValue(property); return(b); } else if (value is RelativeValue rv) { byte b = (byte)property.GetType().GetRuntimeProperty(rv.PropertyName).GetValue(property); if (rv.Sign == RelativeValue.RelativeSign.Minus) { int calculatedValue = b - rv.Value; if (calculatedValue >= 0) { return((byte)calculatedValue); } else { return(0); } } else { int calculatedValue = b + rv.Value; if (calculatedValue <= 255) { return((byte)calculatedValue); } else { return(0); } } } throw new Exception("StaticValue 또는 PropertyValue가 아닙니다."); } DMXController lightController = new DMXController(_startPort); byte[] firstValue = new byte[16]; if (_setterBoard.InitalizeValue != null) { foreach (ValueSetter inVSetter in _setterBoard.InitalizeValue) { byte value = GetValue(inVSetter.Value); lightController.SetValue(inVSetter.Port, value); firstValue[(int)inVSetter.Port - 1] = value; lightController.Send(); } } Thread propThread = new Thread(() => { IEnumerable <SetterProperty> staticProperties = _setterBoard.SetterProperties.Where(k => k.IsStatic); while (true) { foreach (SetterProperty sp in staticProperties) { lightController.SetValue(sp.PortNumber, (byte)property.GetType().GetRuntimeProperty(sp.PropertyName).GetValue(property)); } lightController.Send(); Thread.Sleep(100); } }); threads.Push(propThread); foreach (SetterGroup setterGroup in _setterBoard.SetterGroups) { Thread thr = new Thread(() => { byte[] lastValue = new byte[16]; firstValue.CopyTo(lastValue, 0); while (true) { for (int i = 0; i < setterGroup.Setters.Count; i++) { MovingLight.Effects.Setters.BaseSetter setter = setterGroup.Setters[i]; if (setter is ValueSetter valueSetter) { byte value = GetValue(valueSetter.Value); lightController.SetValue(valueSetter.Port, value); lastValue[(int)valueSetter.Port - 1] = value; lightController.Send(); } else if (setter is ValuesSetter valuesSetter) { foreach (ValueSetter vSetter in valuesSetter.ValueSetters) { byte value = GetValue(vSetter.Value); lightController.SetValue(vSetter.Port, value); lastValue[(int)vSetter.Port - 1] = value; } lightController.Send(); } else if (setter is ContinueSetter continueSetter) { var max = (continueSetter.ContinueMilliseconds / property.Speed) / 16; MovingLight.Effects.Setters.BaseSetter nextSetter = setterGroup.Setters[i + 1]; i++; var copiedValue = new List <byte>(lastValue); for (int j = 1; j <= max; j++) { if (nextSetter is ValueSetter nVSetter) { int lastState = lastValue[(int)nVSetter.Port - 1]; int k = GetValue(nVSetter.Value) - lastState; int finalValue = (int)((k / (double)max) * j); lightController.SetValue(nVSetter.Port, (byte)(lastState + finalValue)); copiedValue[(int)nVSetter.Port - 1] = (byte)(lastState + finalValue); lightController.Send(); } else if (nextSetter is ValuesSetter nVsSetter) { foreach (ValueSetter vSetter in nVsSetter.ValueSetters) { int lastState = lastValue[(int)vSetter.Port - 1]; int k = GetValue(vSetter.Value) - lastState; int finalValue = (int)((k / (double)max) * j); lightController.SetValue(vSetter.Port, (byte)(lastState + finalValue)); //Console.WriteLine((byte)(lastState + finalValue)); copiedValue[(int)vSetter.Port - 1] = (byte)(lastState + finalValue); } lightController.Send(); } } lastValue = copiedValue.ToArray(); } else if (setter is WaitSetter waitSetter) { Thread.Sleep((int)(waitSetter.WaitMilliseconds / property.Speed)); } } } }); threads.Push(thr); } threads.ForEach(i => i.Start()); }
void Awake() { _DMXController = GameObject.Find("DMXController").GetComponent <DMXController>(); _FloorController = GameObject.Find("FloorController").GetComponent <FloorController>(); _GUIController = GetComponent <GUIController> (); _CameraLeft = GameObject.Find("CameraLeft").GetComponent <Camera>(); _CameraFront = GameObject.Find("CameraFront").GetComponent <Camera>(); _CameraRight = GameObject.Find("CameraRight").GetComponent <Camera>(); _CameraGroup = GameObject.Find("CameraNode").transform; _Cave = GameObject.Find("CaveBoxSetup").transform; _Destination = GameObject.Find("Destination").transform; _Light_1 = GameObject.Find("Light_1").GetComponent <Light>(); _Light_2 = GameObject.Find("Light_2").GetComponent <Light>(); _UI = GameObject.Find("UI"); _UI_Text = GameObject.Find("UI_Text_1"); _Text = _UI_Text.GetComponent <Renderer>(); _UI_Video_0 = GameObject.Find("UI_Video_0"); _UI_Video_1 = GameObject.Find("UI_Video_1"); _UI_Video_2 = GameObject.Find("UI_Video_2"); _StarTravelFront = GameObject.Find("StarTravelFront"); _StarTravelLeft = GameObject.Find("StarTravelLeft"); _StarTravelRight = GameObject.Find("StarTravelRight"); _Video_0 = _UI_Video_0.GetComponent <Renderer>(); _Video_1 = _UI_Video_1.GetComponent <Renderer>(); _Video_2 = _UI_Video_2.GetComponent <Renderer>(); _Video_3 = _StarTravelFront.GetComponent <Renderer>(); _Video_4 = _StarTravelLeft.GetComponent <Renderer>(); _Video_5 = _StarTravelRight.GetComponent <Renderer>(); _UI_Script_1 = GameObject.Find("UI_Script_1"); _UI_Script_2 = GameObject.Find("UI_Script_2"); _Script_1 = _UI_Script_1.GetComponent <Renderer>(); _Script_2 = _UI_Script_2.GetComponent <Renderer>(); _Power_Down = GameObject.Find("Power_Down").GetComponent <AudioSource>(); _Power_Up = GameObject.Find("Power_Up").GetComponent <AudioSource>(); _Warning_Alarm = GameObject.Find("Warning_Alarm").GetComponent <AudioSource>(); _Attack = GameObject.Find("Attack").GetComponent <AudioSource>(); _Attack_1 = GameObject.Find("Attack_1").GetComponent <AudioSource>(); _Attack_2 = GameObject.Find("Attack_2").GetComponent <AudioSource>(); _Attack_3 = GameObject.Find("Attack_3").GetComponent <AudioSource>(); _Attack_4 = GameObject.Find("Attack_4").GetComponent <AudioSource>(); _Attack_5 = GameObject.Find("Attack_5").GetComponent <AudioSource>(); _Decoding = GameObject.Find("Decoding").GetComponent <AudioSource>(); _Decode_Success = GameObject.Find("Decode_Success").GetComponent <AudioSource>(); _Decode_Failed = GameObject.Find("Decode_Failed").GetComponent <AudioSource>(); _Shake = GameObject.Find("Shake").GetComponent <AudioSource>(); _Tap = GameObject.Find("Tap").GetComponent <AudioSource>(); _Establish = GameObject.Find("Establish").GetComponent <AudioSource>(); _Video_Sound_0 = GameObject.Find("Video_Sound_0").GetComponent <AudioSource>(); _Video_Sound_1 = GameObject.Find("Video_Sound_1").GetComponent <AudioSource>(); _Video_Sound_2 = GameObject.Find("Video_Sound_2").GetComponent <AudioSource>(); _Video_Sound_End = GameObject.Find("Video_Sound_End").GetComponent <AudioSource>(); _Fade = GetComponent <Fade>(); _Texture_Script = Resources.LoadAll <Texture2D>("Textures/UI_Script"); _Texture_Text_Trans = Resources.LoadAll <Texture2D>("Textures/UI_Trans"); _Texture_Text_Decoding = Resources.LoadAll <Texture2D>("Textures/UI_Decoding"); _Texture_Text_Radio = Resources.LoadAll <Texture2D>("Textures/UI_Radio"); _Texture_Text_Connected = Resources.LoadAll <Texture2D>("Textures/UI_Connected_Big"); _Texture_Text_Establishing = Resources.LoadAll <Texture2D>("Textures/UI_Establishing_Big"); _Texture_Text_Warning = Resources.LoadAll <Texture2D>("Textures/UI_Warning_Big"); _Texture_Ship_1 = Resources.LoadAll <Texture2D>("Textures/UI_Ship_1"); _Texture_Ship_2 = Resources.LoadAll <Texture2D>("Textures/UI_Ship_2"); _Texture_Ship_3 = Resources.LoadAll <Texture2D>("Textures/UI_Ship_4"); _UI_Credits_1 = GameObject.Find("UI_Credits_1"); _UI_Credits_2 = GameObject.Find("UI_Credits_2"); _UI_Credits_3 = GameObject.Find("UI_Credits_3"); _UI_Skymap_1 = GameObject.Find("UI_Skymap_1"); _UI_Skymap_2 = GameObject.Find("UI_Skymap_2"); _UI_Main_Text = GameObject.Find("UI_Main_Text"); _UI_Guest = GameObject.Find("UI_Guest"); _UI_Meta = GameObject.Find("UI_Meta"); _Main_Text = _UI_Main_Text.GetComponent <Renderer>(); _UI_Ship = GameObject.Find("UI_Ship_1"); _Ship = _UI_Ship.GetComponent <Renderer>(); _UI_Main_Ship = GameObject.Find("UI_Main_Ship"); _Main_Ship = _UI_Main_Ship.GetComponent <Renderer>(); _UI_Text.SetActive(false); _UI_Video_0.SetActive(false); _UI_Video_1.SetActive(false); _UI_Video_2.SetActive(false); _StarTravelFront.SetActive(false); _StarTravelLeft.SetActive(false); _StarTravelRight.SetActive(false); _UI_Credits_1.SetActive(false); _UI_Credits_2.SetActive(false); _UI_Credits_3.SetActive(false); _UI_Skymap_1.SetActive(false); _UI_Skymap_2.SetActive(false); _UI_Main_Text.SetActive(false); _UI_Guest.SetActive(false); _UI_Ship.SetActive(false); _UI_Main_Ship.SetActive(false); originalIntensity_Light_1 = _Light_1.intensity; originalIntensity_Light_2 = _Light_2.intensity; _meta = _UI_Meta.GetComponent <GUIText> ().text; }
private void GenerateSliders() { foreach (Slider s in _sliders) { this.cnv_sliders.Children.Remove(s); } foreach (SoloSuppressButton b in _bumpButtons) { this.cnv_sliders.Children.Remove(b); } //Remember, arrays still start at 0 _sliders = new List <Slider>(); _bumpButtons = new List <SoloSuppressButton>(); for (int i = 1; i <= _numSliders; i++) { //Generate a trackbar Slider tbar = new Slider(); //We will set location in a minute tbar.Margin = new Thickness(); tbar.Name = "tbar_Chan" + i; //Zach discovered this //This property stores the associated channel tbar.Tag = i.ToString(); tbar.LargeChange = 15; tbar.Maximum = 255; //tbar tbar.Width = 45; tbar.Height = 78; //We don't want to accidentally tab to this tbar.IsTabStop = false; tbar.Orientation = Orientation.Vertical; tbar.TickFrequency = 25; tbar.TickPlacement = System.Windows.Controls.Primitives.TickPlacement.Both; //Attach the scroll event handler tbar.ValueChanged += new RoutedPropertyChangedEventHandler <double>(this.tbr_Scroll); //Add it to the list _sliders.Add(tbar); //Actually add it to the form this.cnv_sliders.Children.Add(tbar); //Generate a button SoloSuppressButton btn = new SoloSuppressButton(45, 45); //We will set location in a minute btn.Margin = new Thickness(); btn.Name = "btn_Chan" + i; //Zach discovered this //This property stores the associated channel btn.Tag = i.ToString(); btn.IsTabStop = false; btn.Label = i.ToString(); //Attach the event handlers btn.MouseDown += new MouseButtonEventHandler(this.bump_MouseDown); btn.MouseUp += new MouseButtonEventHandler(this.bump_MouseUp); //Add it to the list _bumpButtons.Add(btn); //Actually add it to the form this.cnv_sliders.Children.Add(btn); //Set the button's Green (bump) status to false btn.LitLeft = false; //Set the Red (suppressed) state btn.LitRight = DMXController.IsSuppressed(i); } PositionSliders(20, 10, 10, 5); }
private void Button_Click(object sender, RoutedEventArgs e) { DMXController.Reset(); }