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));
     }
 }
Beispiel #6
0
        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);
                }
            }
        }
Beispiel #9
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());
        }
Beispiel #10
0
    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);
        }
Beispiel #12
0
 private void Button_Click(object sender, RoutedEventArgs e)
 {
     DMXController.Reset();
 }