Jump to content

Systyem monitor in C#

So i am working on a custom unility for a 5" display panel for my case build. I am coding it in C# and so far its going well. Am going top add more stuff and make the font big that it display good on the 5". Going to add graph and temp Guage. 

image.png.023e89c95f2c580d6cef9a245613aa26.png

Link to comment
Share on other sites

Link to post
Share on other sites

On 12/01/2018 at 3:26 AM, xiiijamaican said:

Snip

Would you be willing to make the source code available?

Judge a product on its own merits AND the company that made it.

How to setup MSI Afterburner OSD | How to make your AMD Radeon GPU more efficient with Radeon Chill | (Probably) Why LMG Merch shipping to the EU is expensive

Oneplus 6 (Early 2023 to present) | HP Envy 15" x360 R7 5700U (Mid 2021 to present) | Steam Deck (Late 2022 to present)

 

Mid 2023 AlTech Desktop Refresh - AMD R7 5800X (Mid 2023), XFX Radeon RX 6700XT MBA (Mid 2021), MSI X370 Gaming Pro Carbon (Early 2018), 32GB DDR4-3200 (16GB x2) (Mid 2022

Noctua NH-D15 (Early 2021), Corsair MP510 1.92TB NVMe SSD (Mid 2020), beQuiet Pure Wings 2 140mm x2 & 120mm x1 (Mid 2023),

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, AluminiumTech said:

Would you be willing to make the source code available?

Once am done coding it i will if people are intersed in it.

Link to comment
Share on other sites

Link to post
Share on other sites

10 hours ago, xiiijamaican said:

Once am done coding it i will if people are intersed in it.

Alright, cool cos I am definitely interested.

Judge a product on its own merits AND the company that made it.

How to setup MSI Afterburner OSD | How to make your AMD Radeon GPU more efficient with Radeon Chill | (Probably) Why LMG Merch shipping to the EU is expensive

Oneplus 6 (Early 2023 to present) | HP Envy 15" x360 R7 5700U (Mid 2021 to present) | Steam Deck (Late 2022 to present)

 

Mid 2023 AlTech Desktop Refresh - AMD R7 5800X (Mid 2023), XFX Radeon RX 6700XT MBA (Mid 2021), MSI X370 Gaming Pro Carbon (Early 2018), 32GB DDR4-3200 (16GB x2) (Mid 2022

Noctua NH-D15 (Early 2021), Corsair MP510 1.92TB NVMe SSD (Mid 2020), beQuiet Pure Wings 2 140mm x2 & 120mm x1 (Mid 2023),

Link to comment
Share on other sites

Link to post
Share on other sites

3 hours ago, AluminiumTech said:

Alright, cool cos I am definitely interested.

Its finally done for most part

image.png.50e8331ac91e6c1925147ff8b4587958.png

Link to comment
Share on other sites

Link to post
Share on other sites

/*
*	FILE			: CM.cs
*	PROJECT			: ComputerMonitor
*	PROGRAMMER		: Brian Hinds
*	FIRST VERSION	: 1.0.0
*	DESCRIPTION 	: This application monitors the PC's GPU, CPU temperatures
*	                : the GPU, CPU, RAM, and local disks utilization.
*/

using OpenHardwareMonitor.Hardware;
using System;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using System.Management;
using System.Management.Instrumentation;
using System.Linq;

namespace ComputerMonitor
{
    public partial class CM : Form
    {


        /// <summary>
        /// Add CPU and GPU and as hardware
        /// Note that, CPU temperature data requires 'highestAvailable' permission.
        /// </summary>
        private Computer computer = new Computer() { CPUEnabled = true, GPUEnabled = true, RAMEnabled = true };
        /// <summary>
        /// These objects are used to access performance Monitor of the operating system.
        /// </summary>
        private PerformanceCounter perfCpuCounter = new PerformanceCounter("Processor Information", "% Processor Time", "_Total");
        private PerformanceCounter perfMemCounter = new PerformanceCounter("Memory", "Available MBytes");
        
        /// <summary>
        /// These variables store source and destination 
        /// of the NVIDIA files needed for readings
        /// </summary>

        private string path = @"c:\NVSMI";
        private string SourcePath = @"C:\Program Files\NVIDIA Corporation\NVSMI\";
        private string DestinationPath = @"c:\NVSMI";

        /// <summary>
        /// These variables are used to extract NVIDA gpu readings
        /// </summary>
        private Char delimiter = '-';
        private Char delimiter2 = 'W';
        private int GPUCount = 0;
        private string output;
        /// <summary>
        /// This syntax instantiate an array for the possible drive on your pc
        /// </summary>
        private DriveInfo[] allDrives = DriveInfo.GetDrives();

        /// <summary>
        /// Temporary hods data
        /// </summary>
        private string buffer;
        private string buffer2  ;
        /// <summary>
        /// for-each counter variables
        /// </summary>
        private int counter = 0;
        private int counter2 = 0;
        private int counter3 = 0;

        /// <summary>
        /// CPU core temperature variables
        /// More can be added depending on the amount of core present
        /// </summary>
        private int cpu1;
        private int cpu2;
        private int cpu3;
        private int cpu4;
        private int cpuTotal;
        private int _cpuLoad;

        /// <summary>
        /// Disk drives usage variables
        /// more can be added based on the amount of drive present
        /// </summary>
        private double _Disk01;
        private double _Disk02;
        private double _Disk03;
        private double _Disk04;
        private int byteConvert = 1073741824;

        /// <summary>
        /// Variables for the RAM.
        /// Total ram is in MB and is the total thats in your system
        /// </summary>
        private double tRam;
        private double tRamTotal = 32000;
        private double tRamBar;

        /// <summary>
        /// These variables stores GPU temp and load data
        /// </summary>
        private int _gpuTemp;
        private int _gpuLoad;

        public CM()
        {
            InitializeComponent();
            computer.Open();
        }
        /// <summary>
        /// This time get hardware status every 1 sec
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void interval_Tick(object sender, EventArgs e)
        {
            cpu_gpu_temp();

            systemInfo();

            diskSize();

            gpuInfo();
                        
            progress();
        }

        /// <summary>
        /// This method is used to get cpu temperature
        /// and gpu temperature using OpenHardwareMonitor library
        /// </summary>
        private void cpu_gpu_temp()
        {
            counter = 0;
            counter2 = 0;

            foreach (IHardware hardware in computer.Hardware)
            {
                hardware.Update();

                if (counter2 == 0)
                {
                    gpuPanel.Text = hardware.Name.ToString();
                }
                if (counter2 == 2)
                {
                    cpuPanel.Text = hardware.Name.ToString();
                }
                if (counter2 == 1)
                {
                    ramPanel.Text = hardware.Name.ToString();
                }
                if (counter2 == 3)
                {
                    discPanel.Text = hardware.Name.ToString();
                }

                counter2++;

                foreach (ISensor sensor in hardware.Sensors)
                {
                    if (sensor.SensorType == SensorType.Temperature)
                    {
                        if (counter == 0)
                        {
                            c1.Text = sensor.Value.ToString() + " .C";
                            cpu1 = (int)sensor.Value;
                        }
                        if (counter == 1)
                        {
                            c2.Text = sensor.Value.ToString() + " .C";
                            cpu2 = (int)sensor.Value;
                        }
                        if (counter == 2)
                        {
                            c3.Text = sensor.Value.ToString() + " .C";
                            cpu3 = (int)sensor.Value;
                        }
                        if (counter == 3)
                        {
                            c4.Text = sensor.Value.ToString() + " .C";
                            cpu4 = (int)sensor.Value;
                        }
                        if (counter == 4)
                        {
                            buffer = sensor.Value.ToString();
                        }
                        if (counter == 5)
                        {
                            gpuTemp.Text = sensor.Value.ToString() + " .C";
                            _gpuTemp = (int)sensor.Value;
                        }

                        counter++;
                    }

                    cpuTotal = (cpu1 + cpu2 + cpu3 + cpu4) / 4;

                    coreAve.Text = cpuTotal.ToString() + " .C";
                }
            }
        }

        /// <summary>
        /// This method is used to get cpu and memory load
        /// from the Performance Monitor
        /// </summary>
        private void systemInfo()
        {
            _cpuLoad = (int)perfCpuCounter.NextValue();

            tRam = (int)perfMemCounter.NextValue();

            tRamBar = tRam / tRamTotal;

            tRamBar = tRamBar * 100;

            tRamBar = 100 - tRamBar;

            RamByte.Text = tRam + " MB";

            cpuLoad.Text = _cpuLoad + " %";
        }

        /// <summary>
        /// This method use gathered data and
        /// display them in a progress bar
        /// </summary>
        private void progress()
        {
            cpuBar.Minimum = 0;
            cpuBar.Maximum = 100;

            if (cpuTotal < cpuBar.Maximum)
            {
                if (cpuTotal < 49)
                {
                    cpuBar.ForeColor = Color.Green;
                }

                if (cpuTotal > 50)
                {
                    cpuBar.ForeColor = Color.Orange;
                }

                if (cpuTotal > 75)
                {
                    cpuBar.ForeColor = Color.Red;
                }

                cpuBar.Value = cpuTotal;
            }

            coreBar01.Minimum = 0;
            coreBar01.Maximum = 100;

            if (cpu1 < coreBar01.Maximum)
            {
                if (cpu1 < 49)
                {
                    coreBar01.ForeColor = Color.Green;
                }
                if (cpu1 > 50)
                {
                    coreBar01.ForeColor = Color.Orange;
                }

                if (cpu1 > 75)
                {
                    coreBar01.ForeColor = Color.Red;
                }

                coreBar01.Value = cpu1;
            }

            coreBar02.Minimum = 0;
            coreBar02.Maximum = 100;

            if (cpu2 < coreBar02.Maximum)
            {
                if (cpu2 < 49)
                {
                    coreBar02.ForeColor = Color.Green;
                }
                if (cpu2 > 50)
                {
                    coreBar02.ForeColor = Color.Orange;
                }

                if (cpu2 > 75)
                {
                    coreBar02.ForeColor = Color.Red;
                }
                coreBar02.Value = cpu2;
            }

            coreBar03.Minimum = 0;
            coreBar03.Maximum = 100;

            if (cpu3 < coreBar03.Maximum)
            {
                if (cpu3 < 49)
                {
                    coreBar03.ForeColor = Color.Green;
                }
                if (cpu3 > 50)
                {
                    coreBar03.ForeColor = Color.Orange;
                }

                if (cpu3 > 75)
                {
                    coreBar03.ForeColor = Color.Red;
                }

                coreBar03.Value = cpu3;
            }

            coreBar04.Minimum = 0;
            coreBar04.Maximum = 100;

            if (cpu4 < coreBar04.Maximum)
            {
                if (cpu4 < 49)
                {
                    coreBar04.ForeColor = Color.Green;
                }
                if (cpu4 > 50)
                {
                    coreBar04.ForeColor = Color.Orange;
                }

                if (cpu4 > 75)
                {
                    coreBar04.ForeColor = Color.Red;
                }

                coreBar04.Value = cpu4;
            }

            CpuLoadBar.Minimum = 0;
            CpuLoadBar.Maximum = 100;

            if (_cpuLoad < CpuLoadBar.Maximum)
            {
                if (_cpuLoad < 49)
                {
                    CpuLoadBar.ForeColor = Color.Green;
                }
                if (_cpuLoad > 50)
                {
                    CpuLoadBar.ForeColor = Color.Orange;
                }

                if (_cpuLoad > 75)
                {
                    CpuLoadBar.ForeColor = Color.Red;
                }

                CpuLoadBar.Value = _cpuLoad;
            }

            gpuTempBar.Minimum = 0;
            gpuTempBar.Maximum = 100;

            if (_gpuTemp < gpuTempBar.Maximum)
            {
                if (_gpuTemp < 49)
                {
                    gpuTempBar.ForeColor = Color.Green;
                }
                if (_gpuTemp > 50)
                {
                    gpuTempBar.ForeColor = Color.Orange;
                }

                if (_gpuTemp > 75)
                {
                    gpuTempBar.ForeColor = Color.Red;
                }

                gpuTempBar.Value = _gpuTemp;
            }
            DiskBar01.Minimum = 0;
            DiskBar01.Maximum = 100;

            if (_Disk01 < DiskBar01.Maximum)
            {
                if (_Disk01 < 49)
                {
                    DiskBar01.ForeColor = Color.Green;
                }
                if (_Disk01 > 50)
                {
                    DiskBar01.ForeColor = Color.Orange;
                }

                if (_Disk01 > 75)
                {
                    DiskBar01.ForeColor = Color.Red;
                }

                DiskBar01.Value = (int)_Disk01;
            }
            DiskBar02.Minimum = 0;
            DiskBar02.Maximum = 100;

            if (_Disk02 < DiskBar02.Maximum)
            {
                if (_Disk02 < 49)
                {
                    DiskBar02.ForeColor = Color.Green;
                }
                if (_Disk02 > 50)
                {
                    DiskBar02.ForeColor = Color.Orange;
                }

                if (_Disk02 > 75)
                {
                    DiskBar02.ForeColor = Color.Red;
                }

                DiskBar02.Value = (int)_Disk02;
            }
            DiskBar03.Minimum = 0;
            DiskBar03.Maximum = 100;

            if (_Disk03 < DiskBar03.Maximum)
            {
                if (_Disk03 < 49)
                {
                    DiskBar03.ForeColor = Color.Green;
                }
                if (_Disk03 > 50)
                {
                    DiskBar03.ForeColor = Color.Orange;
                }

                if (_Disk03 > 75)
                {
                    DiskBar03.ForeColor = Color.Red;
                }

                DiskBar03.Value = (int)_Disk03;
            }
            DiskBar01.Minimum = 0;
            DiskBar01.Maximum = 100;

            if (_Disk04 < DiskBar01.Maximum)
            {
                if (_Disk04 < 49)
                {
                    DiskBar04.ForeColor = Color.Green;
                }
                if (_Disk04 > 50)
                {
                    DiskBar04.ForeColor = Color.Orange;
                }

                if (_Disk04 > 75)
                {
                    DiskBar04.ForeColor = Color.Red;
                }

                DiskBar04.Value = (int)_Disk04;
            }
            ramPerc.Minimum = 0;
            ramPerc.Maximum = 100;

            if (tRamBar < ramPerc.Maximum)
            {
                if (tRamBar < 49)
                {
                    ramPerc.ForeColor = Color.Green;
                }
                if (tRamBar > 50)
                {
                    ramPerc.ForeColor = Color.Orange;
                }

                if (tRamBar > 75)
                {
                    ramPerc.ForeColor = Color.Red;
                }

                ramPerc.Value = (int)tRamBar;
            }

            gpuLoadBar.Minimum = 0;
            gpuLoadBar.Maximum = 100;

            if (_gpuLoad < gpuLoadBar.Maximum)
            {
                if (_gpuLoad < 49)
                {
                    gpuLoadBar.ForeColor = Color.Green;
                }
                if (_gpuLoad > 50)
                {
                    gpuLoadBar.ForeColor = Color.Orange;
                }

                if (_gpuLoad > 75)
                {
                    gpuLoadBar.ForeColor = Color.Red;
                }

                gpuLoadBar.Value = (int)_gpuLoad;
            }
        }

        /// <summary>
        /// This method is used to get all
        /// local disk information from the OS
        /// </summary>
        private void diskSize()
        {
            counter3 = 0;
            foreach (DriveInfo d in allDrives)
            {
                //Console.WriteLine("Drive {0}", d.Name);

                if (counter3 == 0)
                {
                    LDisk01.Text = d.Name;
                }
                if (counter3 == 1)
                {
                    LDisk02.Text = d.Name;
                }
                if (counter3 == 2)
                {
                    LDisk03.Text = d.Name;
                }
                if (counter3 == 3)
                {
                    LDisk04.Text = d.Name;
                }
                if (d.IsReady == true)
                {
                    Console.WriteLine("  Volume label: {0}", d.VolumeLabel);
                    Console.WriteLine("  File system: {0}", d.DriveFormat);
                    Console.WriteLine(
                        "  Available space to current user:{0, 15} bytes",
                        d.AvailableFreeSpace);

                    Console.WriteLine(
                        "  Total available space:          {0, 15} bytes",
                        d.TotalFreeSpace);
                    //DataBox.Items.Add(d.TotalFreeSpace / byteConvert);

                    Console.WriteLine(
                        "  Total size of drive:            {0, 15} bytes ",
                        d.TotalSize);

                    if (counter3 == 0)
                    {
                        DiskSize01.Text = Convert.ToString((d.AvailableFreeSpace / byteConvert)) + " GB Free of " + Convert.ToString((d.TotalSize / byteConvert)) + " GB";
                        _Disk01 = (d.AvailableFreeSpace / byteConvert);
                        _Disk01 = _Disk01 / (d.TotalSize / byteConvert);
                        _Disk01 = _Disk01 * 100;
                        _Disk01 = 100 - _Disk01;
                    }
                    if (counter3 == 1)
                    {
                        DiskSize02.Text = Convert.ToString((d.AvailableFreeSpace / byteConvert)) + " GB Free of " + Convert.ToString((d.TotalSize / byteConvert)) + " GB";
                        _Disk02 = (d.AvailableFreeSpace / byteConvert);
                        _Disk02 = _Disk02 / (d.TotalSize / byteConvert);
                        _Disk02 = _Disk02 * 100;
                        _Disk02 = 100 - _Disk02;
                    }
                    if (counter3 == 2)
                    {
                        DiskSize03.Text = Convert.ToString((d.AvailableFreeSpace / byteConvert)) + " GB Free of " + Convert.ToString((d.TotalSize / byteConvert)) + " GB";
                        _Disk03 = (d.AvailableFreeSpace / byteConvert);
                        _Disk03 = _Disk03 / (d.TotalSize / byteConvert);
                        _Disk03 = _Disk03 * 100;
                        _Disk03 = 100 - _Disk03;
                    }
                    if (counter3 == 3)
                    {
                        DiskSize04.Text = Convert.ToString((d.AvailableFreeSpace / byteConvert)) + " GB Free of " + Convert.ToString((d.TotalSize / byteConvert)) + " GB";
                        _Disk04 = (d.AvailableFreeSpace / byteConvert);
                        _Disk04 = _Disk04 / (d.TotalSize / byteConvert);
                        _Disk04 = _Disk04 * 100;
                        _Disk04 = 100 - _Disk04;
                    }
                }
                counter3++;
            }
        }
          
        /// <summary>
        /// This method gets gpu info.
        /// Note that this only supports NVIDA GPUs at the moment
        /// </summary>
        private void gpuInfo()
        {
            try
            {
                // Determine whether the directory exists.
                if (!Directory.Exists(path))
                {
                    // Try to create the directory.
                    DirectoryInfo di = Directory.CreateDirectory(path);
                    Console.WriteLine("The directory was created successfully at {0}.", Directory.GetCreationTime(path));
                    // try to copy to the new director
                    NVIDIAGPU();
                }
            }
            catch { MessageBox.Show("Unable to access NVIDIA files"); return; }

            try
            {
                GPUCount = 0;
                /// Process command line string ///

                ProcessStartInfo processStartInfo = new ProcessStartInfo("cmd.exe", @"/C cd c:\NVSMI&nvidia-smi --query-gpu=utilization.memory --format=csv");
                processStartInfo.UseShellExecute = false;
                processStartInfo.RedirectStandardOutput = true;
                processStartInfo.CreateNoWindow = true;
                               
                /// Creating a stream reader that will pass the output of the command line ///
                Process process = Process.Start(processStartInfo);
                using (StreamReader streamReader = process.StandardOutput)
                {
                    output = streamReader.ReadToEnd();
                }

                /// remove unit from value
                String[] substrings = output.Split(delimiter2);
                foreach (var substring in substrings)
                {
                    if (GPUCount == 0)
                    {
                        
                        gpuLoadPer.Text = String.Join("", substring.Where(Char.IsDigit)) + " %";

                        _gpuLoad = Convert.ToInt16(String.Join("", substring.Where(Char.IsDigit)));
                                                                        
                    }
                    GPUCount++;
                }
            }
            catch
            {
                MessageBox.Show("Unable to access NVIDIA files"); return;
            }
        }

        /// <summary>
        /// Copy Nvida files to C:\
        /// </summary>
        private void NVIDIAGPU()
        {
            SourcePath = SourcePath.EndsWith(@"\") ? SourcePath : SourcePath + @"\";
            DestinationPath = DestinationPath.EndsWith(@"\") ? DestinationPath : DestinationPath + @"\";

            try
            {
                if (Directory.Exists(SourcePath))
                {
                    if (Directory.Exists(DestinationPath) == false)
                    {
                        Directory.CreateDirectory(DestinationPath);
                    }

                    foreach (string files in Directory.GetFiles(SourcePath))
                    {
                        FileInfo fileInfo = new FileInfo(files);
                        fileInfo.CopyTo(string.Format(@"{0}\{1}", DestinationPath, fileInfo.Name), true);
                    }
                }
            }
            catch (Exception )
            {
                MessageBox.Show("NVIDIA File Access Error") ;
                this.Close();
            }
        }
    }
}

 

Link to comment
Share on other sites

Link to post
Share on other sites

why the touch panel? and are you running that on a pi? if so why winforms and not uwp?

"You know it'll clock down as soon as it hits 40°C, right?" - "Yeah ... but it doesnt hit 40°C ... ever  😄"

 

GPU: MSI GTX1080 Ti Aero @ 2 GHz (watercooled) CPU: Ryzen 5600X (watercooled) RAM: 32GB 3600Mhz Corsair LPX MB: Gigabyte B550i PSU: Corsair SF750 Case: Hyte Revolt 3

 

Link to comment
Share on other sites

Link to post
Share on other sites

Just now, cluelessgenius said:

why the touch panel? and are you running that on a pi? if so why winforms and not uwp?

I dont really care for the touch  section, it was the only available panel at that size on  newegg. If someone wishes they can use my source code in incorperate it in a uwp or which ever C# .Net platform they wish.

Link to comment
Share on other sites

Link to post
Share on other sites

8 minutes ago, xiiijamaican said:

I dont really care for the touch  section, it was the only available panel at that size on  newegg. If someone wishes they can use my source code in incorperate it in a uwp or which ever C# .Net platform they wish.

ohh ok so how have you interfaced it? are you using a controller board? aöso have you looked into openhardwaremonitor it helps alot with this kind of info

"You know it'll clock down as soon as it hits 40°C, right?" - "Yeah ... but it doesnt hit 40°C ... ever  😄"

 

GPU: MSI GTX1080 Ti Aero @ 2 GHz (watercooled) CPU: Ryzen 5600X (watercooled) RAM: 32GB 3600Mhz Corsair LPX MB: Gigabyte B550i PSU: Corsair SF750 Case: Hyte Revolt 3

 

Link to comment
Share on other sites

Link to post
Share on other sites

4 minutes ago, cluelessgenius said:

ohh ok so how have you interfaced it? are you using a controller board? aöso have you looked into openhardwaremonitor it helps alot with this kind of info

I am going to replace the current blue screen LCD with the colored one i ordered. Am planning to make some changes to my current system.

 

photo_2018-01-15_08-36-09.jpg

photo_2018-01-15_08-37-23.jpg

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, xiiijamaican said:

snip

You don't want to put the source code on GitHub?

 

And is there any license you want to attach to this? Since normally this would be considered either Creative Commons or in the public domain due to a lack of license.

Judge a product on its own merits AND the company that made it.

How to setup MSI Afterburner OSD | How to make your AMD Radeon GPU more efficient with Radeon Chill | (Probably) Why LMG Merch shipping to the EU is expensive

Oneplus 6 (Early 2023 to present) | HP Envy 15" x360 R7 5700U (Mid 2021 to present) | Steam Deck (Late 2022 to present)

 

Mid 2023 AlTech Desktop Refresh - AMD R7 5800X (Mid 2023), XFX Radeon RX 6700XT MBA (Mid 2021), MSI X370 Gaming Pro Carbon (Early 2018), 32GB DDR4-3200 (16GB x2) (Mid 2022

Noctua NH-D15 (Early 2021), Corsair MP510 1.92TB NVMe SSD (Mid 2020), beQuiet Pure Wings 2 140mm x2 & 120mm x1 (Mid 2023),

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, AluminiumTech said:

You don't want to put the source code on GitHub?

 

And is there any license you want to attach to this? Since normally this would be considered either Creative Commons or in the public domain due to a lack of license.

I think my repo is link to github

 

Link to comment
Share on other sites

Link to post
Share on other sites

51 minutes ago, xiiijamaican said:

I think my repo is link to github

 

No but you copy pasted code without a github link and without any form of license.

Judge a product on its own merits AND the company that made it.

How to setup MSI Afterburner OSD | How to make your AMD Radeon GPU more efficient with Radeon Chill | (Probably) Why LMG Merch shipping to the EU is expensive

Oneplus 6 (Early 2023 to present) | HP Envy 15" x360 R7 5700U (Mid 2021 to present) | Steam Deck (Late 2022 to present)

 

Mid 2023 AlTech Desktop Refresh - AMD R7 5800X (Mid 2023), XFX Radeon RX 6700XT MBA (Mid 2021), MSI X370 Gaming Pro Carbon (Early 2018), 32GB DDR4-3200 (16GB x2) (Mid 2022

Noctua NH-D15 (Early 2021), Corsair MP510 1.92TB NVMe SSD (Mid 2020), beQuiet Pure Wings 2 140mm x2 & 120mm x1 (Mid 2023),

Link to comment
Share on other sites

Link to post
Share on other sites

2 minutes ago, AluminiumTech said:

No but you copy pasted code without a github link and without any form of license.

oh, the code i posted is for anyone to use, but the actual application will have more code because it will tie in with another application to a device that i am making. which is a device that i make to cool the pc loop, it will dynamilcally adjust cooling base on the system monitor  feedback

1 (2017_12_08 23_29_48 UTC).PNG

3 (2017_12_08 23_29_48 UTC).PNG

4 (2017_12_09 13_17_11 UTC).PNG

Link to comment
Share on other sites

Link to post
Share on other sites

 

1 minute ago, Pangea2017 said:

Considering anything without licence as CC or public domain is dangerous. This is copyright infringement if you use it this way. Adding a license is important if you want that people can use this for there own project and being able to share them.

Umm no?

 

Also I'm not the OP so tell OP to add a license.

Judge a product on its own merits AND the company that made it.

How to setup MSI Afterburner OSD | How to make your AMD Radeon GPU more efficient with Radeon Chill | (Probably) Why LMG Merch shipping to the EU is expensive

Oneplus 6 (Early 2023 to present) | HP Envy 15" x360 R7 5700U (Mid 2021 to present) | Steam Deck (Late 2022 to present)

 

Mid 2023 AlTech Desktop Refresh - AMD R7 5800X (Mid 2023), XFX Radeon RX 6700XT MBA (Mid 2021), MSI X370 Gaming Pro Carbon (Early 2018), 32GB DDR4-3200 (16GB x2) (Mid 2022

Noctua NH-D15 (Early 2021), Corsair MP510 1.92TB NVMe SSD (Mid 2020), beQuiet Pure Wings 2 140mm x2 & 120mm x1 (Mid 2023),

Link to comment
Share on other sites

Link to post
Share on other sites

38 minutes ago, MyName13 said:

What did you use to access hardware information (temperatures, usage etc.)?

not op but you can use libraries like openhardwaremonitor but there also openly available system performance counters you can access

"You know it'll clock down as soon as it hits 40°C, right?" - "Yeah ... but it doesnt hit 40°C ... ever  😄"

 

GPU: MSI GTX1080 Ti Aero @ 2 GHz (watercooled) CPU: Ryzen 5600X (watercooled) RAM: 32GB 3600Mhz Corsair LPX MB: Gigabyte B550i PSU: Corsair SF750 Case: Hyte Revolt 3

 

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, Pangea2017 said:

Why? Everything which did not have a dedicated license is under copyright law.

Not if it's in the public domain. Also OP expressed they were willing to share the source code.

 

And the Complete Source Code is available on OP's website for download.

 

@xiiijamaican Do you intend to officially make your source code open source and attach a license to it? Because otherwise there is questionable legal standing regarding other people's use of it.

 

If you want others to be able to use it etc, you must assign a license to it.

Judge a product on its own merits AND the company that made it.

How to setup MSI Afterburner OSD | How to make your AMD Radeon GPU more efficient with Radeon Chill | (Probably) Why LMG Merch shipping to the EU is expensive

Oneplus 6 (Early 2023 to present) | HP Envy 15" x360 R7 5700U (Mid 2021 to present) | Steam Deck (Late 2022 to present)

 

Mid 2023 AlTech Desktop Refresh - AMD R7 5800X (Mid 2023), XFX Radeon RX 6700XT MBA (Mid 2021), MSI X370 Gaming Pro Carbon (Early 2018), 32GB DDR4-3200 (16GB x2) (Mid 2022

Noctua NH-D15 (Early 2021), Corsair MP510 1.92TB NVMe SSD (Mid 2020), beQuiet Pure Wings 2 140mm x2 & 120mm x1 (Mid 2023),

Link to comment
Share on other sites

Link to post
Share on other sites

9 minutes ago, Pangea2017 said:

great "case mod"

 

@xiiijamaican Considering anything without licence as CC or public domain is dangerous. This is copyright infringement if you use it this way. Adding a license is important if you want that people can use this for there own project and being able to share them.

 

4 minutes ago, Pangea2017 said:

Why? Everything which did not have a dedicated license is under copyright law.

 

7 minutes ago, AluminiumTech said:

 

Umm no?

 

Also I'm not the OP so tell OP to add a license.

 

 

guys seriously were not talking complex AI simulations here. i cant speak for OPs perspective about this but this code is really nothing ground breaking you cant find anywhere else.

it feels like being worried about someone maybe stealing youre formula how "2+2=4"

"You know it'll clock down as soon as it hits 40°C, right?" - "Yeah ... but it doesnt hit 40°C ... ever  😄"

 

GPU: MSI GTX1080 Ti Aero @ 2 GHz (watercooled) CPU: Ryzen 5600X (watercooled) RAM: 32GB 3600Mhz Corsair LPX MB: Gigabyte B550i PSU: Corsair SF750 Case: Hyte Revolt 3

 

Link to comment
Share on other sites

Link to post
Share on other sites

18 minutes ago, Pangea2017 said:

it is still a risk to get a expensive letter from a advocate

making the code public is not the same as agreeing that anybody can use it

it is not important if it is the secret how to pass the turing test or 2+2 

well then we need copiright licences in high school too. if i think back on how many times we copied of each other. just imagine the law suits. 

 

in all seriousness me personally i would say it depends on the time spent on it if i was able to whip something up in one afternoon then anybody could do so themselves and the code is nothing special. if i have spent a month on really fine tuning some software tool the i might agree to protect that bit of code. over all find the math formula metaphor pretty fitting. nobody needs to steal my formula on how to calculate the hypotenuse i hope but if i spent a month and figured an elegant and fast to calculate string approximity withing large datasets handling even very bad data quality. then now thats something thats maybe a bit more unique. 

(ps example actually not random, did that in my last project getting best price to performance offers on used GPUs but didnt publish it at all since it was still a bit buggy for my taste and i wasnt motivated enough to fix it)

"You know it'll clock down as soon as it hits 40°C, right?" - "Yeah ... but it doesnt hit 40°C ... ever  😄"

 

GPU: MSI GTX1080 Ti Aero @ 2 GHz (watercooled) CPU: Ryzen 5600X (watercooled) RAM: 32GB 3600Mhz Corsair LPX MB: Gigabyte B550i PSU: Corsair SF750 Case: Hyte Revolt 3

 

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, cluelessgenius said:

not op but you can use libraries like openhardwaremonitor but there also openly available system performance counters you can access

Is this the library or source code for openhardwaremonitor software?

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×