Пример #1
0
        public override void showRGB(byte[] specArray, int min_slider, int max_slider, int min_trigger, bool absNotRel, RGBOutput.IRGBOutput rgbOutput)
        {
            if (min_trigger != 0)
            {
                for (int i = 0; i < specArray.Length; i++)
                {
                    specArray[i] = specArray[i] < min_trigger ? (byte)0 : specArray[i];
                }
                if (!absNotRel)
                {
                    for (int i = 0; i < specArray.Length; i++)
                    {
                        specArray[i] = rel_check(specArray[i], min_trigger);
                    }
                }
            }
            if (min_trigger < 0)
            {
                min_trigger = 1;
            }
            m = 765 / (double)min_trigger;

            _newRGBValue = my_callback(_newRGBValue, specArray, min_slider, max_slider, min_trigger);
            sendRGBValue(rgbOutput);
        }
        protected override RGBValue[] Callback(RGBValue[] new_rgbs)
        {
            // Show random dot at last_rgb_index
            for (int i = 0; i < new_rgbs.Length; i++)
            {
                if (i == last_rgb_index)
                {
                    new_rgbs[i] = new RGBValue((byte)random.Next(0, 255), (byte)random.Next(0, 255), (byte)random.Next(0, 255));
                }
                else
                {
                    new_rgbs[i] = empty_rgb;
                }
            }

            last_rgb_index += direction;

            // Look if direction has to change
            if (last_rgb_index % amount_rgbs == 0)
            {
                direction *= -1;
            }

            // Finally show them
            _rgbOutput.ShowRGBs(new_rgbs);
            Thread.Sleep(100);
            return(new_rgbs);
        }
Пример #3
0
        protected override void Callback()
        {
            RGBValue new_rgb = new RGBValue((byte)random.Next(0, 255), (byte)random.Next(0, 255), (byte)random.Next(0, 255));

            Fade(lastRGB_, new_rgb, 50);
            lastRGB_ = new_rgb;
        }
Пример #4
0
        public override void Start()
        {
            filled_rgb = new RGBValue((byte)random.Next(0, 255), (byte)random.Next(0, 255), (byte)random.Next(0, 255));
            middle_rgb = new RGBValue((byte)random.Next(0, 255), (byte)random.Next(0, 255), (byte)random.Next(0, 255));

            byte diff_r = (byte)(Math.Abs((int)filled_rgb.R - (int)middle_rgb.R) / 2);
            byte diff_g = (byte)(Math.Abs((int)filled_rgb.G - (int)middle_rgb.G) / 2);
            byte diff_b = (byte)(Math.Abs((int)filled_rgb.B - (int)middle_rgb.B) / 2);

            diff_rgb = new RGBValue(diff_r, diff_g, diff_b);

            base.Start();
        }
Пример #5
0
        protected override void Callback()
        {
            RGBValue copy_val = new RGBValue();

            newRGBMutex.WaitOne();
            copy_val.CopyValues(new_rgb);
            newRGBMutex.ReleaseMutex();

            if (!lastRGB_.Equals(copy_val))
            {
                Fade(lastRGB_, copy_val, 10);
                lastRGB_ = copy_val;
            }
            Thread.Sleep(100);
        }
Пример #6
0
        public override void showRGB(byte[] specArray, int min_slider, int max_slider, int min_trigger, bool absNotRel, RGBOutput.IRGBOutput rgbOutput)
        {
            if (min_trigger != 0)
            {
                for (int i = 0; i < specArray.Length; i++)
                {
                    specArray[i] = specArray[i] < min_trigger ? (byte)0 : specArray[i];
                }
                if (!absNotRel)
                {
                    for (int i = 0; i < specArray.Length; i++)
                    {
                        specArray[i] = rel_check(specArray[i], min_trigger);
                    }
                }
            }
            // TODO still neded?
            if (min_trigger < 0)
            {
                min_trigger = 1;
            }
            // TODO end
            m = 765 / (double)min_trigger;


            int new_amount_rgbs = rgbOutput.GetAmountRGBs();

            // In case the amount of RGBs changed create new array (usually if output changes)
            if (rgbs == null || amount_rgbs != new_amount_rgbs)
            {
                rgbs = new RGBValue[new_amount_rgbs];
                for (int led = 0; led < new_amount_rgbs; led++)
                {
                    rgbs[led] = new RGBValue();
                }
                amount_rgbs = new_amount_rgbs;
            }

            rgbs = my_callback(specArray, min_slider, max_slider, min_trigger);
            rgbOutput.ShowRGBs(rgbs);
        }
Пример #7
0
        private void get_rainbow_rgbs()
        {
            _phase_length = amount_rgbs / 6;
            if (_phase_length < 1)
            {
                _phase_length = 1;
            }

            int[] rainbow_values = get_rainbow_values(amount_rgbs);

            _rainbow_rgbs = new RGBValue[amount_rgbs];
            for (int i = 0; i < amount_rgbs; i++)
            {
                byte r, g, b;
                r = (byte)rainbow_values[(i + _phase_length * 2) % amount_rgbs];
                g = (byte)rainbow_values[i];
                b = (byte)rainbow_values[(i + _phase_length * 4) % amount_rgbs];

                _rainbow_rgbs[i] = new RGBValue(r, g, b);
            }
        }
Пример #8
0
        protected override void Callback()
        {
            _cpuHardware.Update();                      // Update Sensors
            float value = _cpuPackageSensor.Value ?? 0; // Get value from Sensor


            // Show temperature on GUI
            System.Diagnostics.Debug.WriteLine("CPU-Temp: " + value);
            String tempString = value + " °C";

            _temperatureTextBlock.Dispatcher.Invoke(new Action(() =>
            {
                _temperatureTextBlock.Text = tempString;
            }));

            // Calculate average to last values
            temp_avg[avg_index] = value;

            float avg = 0.0F;

            for (int i = 0; i < temp_avg.Length; i++)
            {
                avg += temp_avg[i];
            }
            avg /= temp_avg.Length;

            avg_index = (avg_index + 1) % temp_avg.Length;

            // Calculate value and fade into it
            RGBValue newRgb = calculateRGBValueAlgo1(avg);

            Fade(lastRGB_, newRgb, 50);
            lastRGB_ = newRgb;

            Thread.Sleep(_ms_sleepInterval);
        }
Пример #9
0
 public Stroboscope()
 {
     half_freq = 0;
     _white    = new RGBValue(255, 255, 255);
 }
Пример #10
0
 public void sendToSerial(RGBValue rgbValue)
 {
 }
Пример #11
0
 protected abstract RGBValue my_callback(RGBValue rgb_template, byte[] specArray, int min_slider, int max_slider, int min_trigger);
Пример #12
0
 public OldAudioAlgorithm(String name) : base(name)
 {
     _oldRGBValue = new RGBValue();
     _newRGBValue = new RGBValue();
 }