Exemple #1
0
        internal void Render(RgbClient client)
        {
            var cpu = getCpuUtilization();

            var backgroundColor = Color.White;
            var barStart        = 2;
            var barLength       = 12;
            var activeSlots     = cpu / 100.0 * barLength;

            for (var i = 0; i < barLength; ++i)
            {
                Color color;
                if (i < 4)
                {
                    color = Color.FromArgb(0, 255, 0);
                }
                else if (i < 8)
                {
                    color = Color.Yellow;
                }
                else
                {
                    color = Color.Red;
                }

                if (i > activeSlots)
                {
                    color = backgroundColor;
                }

                client.SetKey(i + barStart, 0, color);
            }
        }
        private void drawPing(RgbClient client, int x, int y, double value)
        {
            string effect = KeyState.SET_COLOR;
            Color  c;

            if (value < 20)
            {
                c = Color.FromArgb(0, 255, 0);
            }
            else if (value < 50)
            {
                c = Color.Yellow;
            }
            else if (value < 100)
            {
                c = Color.Orange;
            }
            else
            {
                effect = KeyState.BREATHE;
                c      = Color.Red;
            }

            client.SetKey(x, y, c, effect);
        }
Exemple #3
0
        internal void Render(RgbClient client)
        {
            string effect = KeyState.SET_COLOR;
            Color  c;

            if (_currentPing < 15)
            {
                c = Color.FromArgb(0, 255, 0);
            }
            else if (_currentPing < 50)
            {
                c = Color.Yellow;
            }
            else if (_currentPing < 100)
            {
                c = Color.Orange;
            }
            else
            {
                effect = KeyState.BREATHE;
                c      = Color.Red;
            }

            client.SetKey(13, 1, c, effect);
        }
Exemple #4
0
        internal void Render(RgbClient client)
        {
            var availableMemory = PerformanceInfo.GetPhysicalAvailableMemoryInMiB();
            var totalMemory     = PerformanceInfo.GetTotalMemoryInMiB();

            var   ramUsage = 100 - 100.0 * availableMemory / totalMemory;
            Color ramColor;

            if (ramUsage < 50)
            {
                ramColor = Color.FromArgb(0, 255, 0);
            }
            else if (ramUsage < 75)
            {
                ramColor = Color.Yellow;
            }
            else if (ramUsage < 85)
            {
                ramColor = Color.Orange;
            }
            else
            {
                ramColor = Color.Red;
            }

            client.SetKey(0, 2, ramColor);
        }
Exemple #5
0
        static void startupSequence(RgbClient client)
        {
            var sequenceColors = new Color[] { Color.Red, Color.Green, Color.Blue, Color.Yellow, Color.White };

            foreach (var color in sequenceColors)
            {
                client.SetAllKeys(color);
                client.Flush();
                Thread.Sleep(200);
            }
        }
        internal void Render(RgbClient client)
        {
            var p = _currentPings.OrderByDescending(n => n).ToArray();

            drawPing(client, 17, 2, p[0]);
            drawPing(client, 18, 2, p[1]);
            drawPing(client, 19, 2, p[2]);

            drawPing(client, 17, 3, p[3]);
            drawPing(client, 18, 3, p[4]);
            drawPing(client, 19, 3, p[5]);

            drawPing(client, 17, 4, p[6]);
            drawPing(client, 18, 4, p[7]);
            drawPing(client, 19, 4, p[8]);
        }
Exemple #7
0
        static void renderProviders(RgbClient client)
        {
            var cpuProvider          = new CpuInfoProvider();
            var ramProvider          = new RamInfoProvider();
            var pingProvider         = new PingInfoProvider("8.8.8.8");
            var extendedPingProvider = new ExtendedPingInfoProvider("8.8.8.8");

            var lastRefresh     = DateTime.MinValue;
            var wasDisconnected = true;

            while (true)
            {
                try
                {
                    var currentRefreshTime = DateTime.Now;
                    if (wasDisconnected || (currentRefreshTime - lastRefresh).TotalSeconds > 30)
                    {
                        // refresh background (e.g. when waking up)
                        Thread.Sleep(1000); // prevent any race conditions

                        client.ForgetKeys();
                        client.SetAllKeys(Color.White);
                        wasDisconnected = false;
                    }

                    lastRefresh = currentRefreshTime;

                    cpuProvider.Render(client);
                    ramProvider.Render(client);
                    pingProvider.Render(client);
                    extendedPingProvider.Render(client);
                    client.Flush();
                    Thread.Sleep(200);
                }
                catch (Exception)
                {
                    Console.WriteLine("DISCONNECTED");
                    client.WaitForConnection();
                    wasDisconnected = true;
                    Console.WriteLine("CONNECTED AGAIN");
                }
            }
        }
Exemple #8
0
        static void Main(string[] args)
        {
            Thread.CurrentThread.CurrentCulture   = CultureInfo.CreateSpecificCulture("en-US");
            Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");

            var usbDriver = new Usb4QDriver(verbose: false);
            // var qToolsDriver = new QToolsDriver(27301);

            var client = new RgbClient(usbDriver);

            // runUsbDemo(usbDriver);
            try
            {
                startupSequence(client);
            }
            catch (Exception)
            {
                Console.WriteLine("STARTUP SEQUENCE WAS SKIPPED");
            }
            renderProviders(client);
        }