public Stat(HardwareMonitorEntry hardwareMonitorEntry) { Name = hardwareMonitorEntry.SrcName; Units = hardwareMonitorEntry.SrcUnits; Value = hardwareMonitorEntry.Data; MinValue = hardwareMonitorEntry.MinLimit; MaxValue = hardwareMonitorEntry.MaxLimit; Gpu = hardwareMonitorEntry.GPU; }
public string function1(string param1, string param2) { try { HardwareMonitor mahm = new HardwareMonitor(); if (param1 == "Framerate") { HardwareMonitorEntry framerate = mahm.GetEntry(HardwareMonitor.GPU_GLOBAL_INDEX, MONITORING_SOURCE_ID.FRAMERATE); if (framerate == null) { return("---"); } return(framerate.Data.ToString(param2)); } HardwareMonitorEntry value = mahm.GetEntry(0, param1); mahm.ReloadEntry(value); return(value.Data.ToString(param2)); } catch (MSI.Afterburner.Exceptions.SharedMemoryDead) { return("[Exception: Shared memory dead because Afterburner was closed. You have to restart LCD Smartie."); } //TODO: srsly catch (MSI.Afterburner.Exceptions.SharedMemoryNotFound) { return("[Exception: Couldn't find shared memory. Is Afterburner running?]"); } catch (Exception e) { return(e.ToString()); } }
static void Main(string[] args) { Console.Clear(); Console.TreatControlCAsInput = false; Console.CancelKeyPress += (s, e) => { Console.WriteLine("ctrl+c pressed"); Continue = false; e.Cancel = true; }; try { // connect to MACM shared memory HardwareMonitor mahm = new HardwareMonitor(); // print out current MACM Header values Console.WriteLine("***** MSI AFTERTERBURNER HARDWARE MONITOR HEADER *****"); Console.WriteLine(mahm.Header.ToString().Replace(";", "\n")); Console.WriteLine(); // print out current MAHM GPU Entry values for (int i = 0; i < mahm.Header.GpuEntryCount; i++) { Console.WriteLine("***** MSI AFTERTERBURNER GPU " + i + " *****"); Console.WriteLine(mahm.GpuEntries[i].ToString().Replace(";", "\n")); Console.WriteLine(); } // print out current Entry values for (int i = 0; i < mahm.Header.EntryCount; i++) { if (mahm.Entries[i].SrcName == "CPU usage") { if (cpuUsageIndex == -1) { cpuUsageIndex = i; } } else if (mahm.Entries[i].SrcName == "CPU1 temperature") { if (cpuTempIndex == -1) { cpuTempIndex = i; } } else if (mahm.Entries[i].SrcName == "GPU temperature") { if (gpuTempIndex == -1) { gpuTempIndex = i; } } else if (mahm.Entries[i].SrcName == "Framerate") { if (framerateIndex == -1) { framerateIndex = i; } } else if (mahm.Entries[i].SrcName == "Power") { if (powerIndex == -1) { powerIndex = i; } } else if (mahm.Entries[i].SrcName == "GPU usage") { if (gpuUsageIndex == -1) { gpuUsageIndex = i; } } else if (mahm.Entries[i].SrcName == "Memory usage") { if (memoryUsageIndex == -1) { memoryUsageIndex = i; } } else if (mahm.Entries[i].SrcName == "RAM usage") { if (ramUsageIndex == -1) { ramUsageIndex = i; } } Console.WriteLine("***** MSI AFTERTERBURNER DATA SOURCE " + i + " *****"); Console.WriteLine(mahm.Entries[i].ToString().Replace(";", "\n")); Console.WriteLine(); } Console.WriteLine(mahm.Entries.Length); Console.WriteLine("Enter arduino COM port:"); String comPort = Console.ReadLine(); Console.WriteLine("Enter arduino baudRate:"); int baudRate = Int32.Parse(Console.ReadLine()); Arduino arduino = new Arduino(); arduino.Connect(comPort, baudRate); // show a data source monitor several times HardwareMonitorEntry cpuUsageEntry = mahm.Entries[cpuUsageIndex]; HardwareMonitorEntry cpuTempEntry = mahm.Entries[cpuTempIndex]; HardwareMonitorEntry gpuTempEntry = mahm.Entries[gpuTempIndex]; //mahm.GetEntry(0, MONITORING_SOURCE_ID.GPU_TEMPERATURE); HardwareMonitorEntry framerateEntry = mahm.Entries[framerateIndex]; //mahm.GetEntry(HardwareMonitor.GPU_GLOBAL_INDEX, MONITORING_SOURCE_ID.FRAMERATE); HardwareMonitorEntry powerEntry = mahm.Entries[powerIndex]; HardwareMonitorEntry gpuUsageEntry = mahm.Entries[gpuUsageIndex]; HardwareMonitorEntry memoryUsageEntry = mahm.Entries[memoryUsageIndex]; HardwareMonitorEntry ramUsageEntry = mahm.Entries[ramUsageIndex]; if (framerateEntry != null && cpuUsageEntry != null && cpuTempEntry != null && gpuTempEntry != null) { byte[] data = new byte[16]; UInt16 cpuUsage, gpuUsage, cpuTemp, gpuTemp, memoryUsage, ramUsage, framerate, powerUsage; while (Continue) { cpuUsage = (UInt16)cpuUsageEntry.Data; gpuUsage = (UInt16)gpuUsageEntry.Data; cpuTemp = (UInt16)cpuTempEntry.Data; gpuTemp = (UInt16)gpuTempEntry.Data; memoryUsage = (UInt16)memoryUsageEntry.Data; ramUsage = (UInt16)ramUsageEntry.Data; framerate = (UInt16)framerateEntry.Data; powerUsage = (UInt16)powerEntry.Data; data[0] = (byte)(cpuUsage >> 8); data[1] = (byte)(cpuUsage); data[2] = (byte)(gpuUsage >> 8); data[3] = (byte)(gpuUsage); data[4] = (byte)(cpuTemp >> 8); data[5] = (byte)(cpuTemp); data[6] = (byte)(gpuTemp >> 8); data[7] = (byte)(gpuTemp); data[8] = (byte)(memoryUsage >> 8); data[9] = (byte)(memoryUsage); data[10] = (byte)(ramUsage >> 8); data[11] = (byte)(ramUsage); data[12] = (byte)(framerate >> 8); data[13] = (byte)(framerate); data[14] = (byte)(powerUsage >> 8); data[15] = (byte)(powerUsage); arduino.write(data, 0, 16); System.Threading.Thread.Sleep(500); mahm.ReloadEntry(cpuUsageEntry); mahm.ReloadEntry(gpuUsageEntry); mahm.ReloadEntry(cpuTempEntry); mahm.ReloadEntry(gpuTempEntry); mahm.ReloadEntry(memoryUsageEntry); mahm.ReloadEntry(ramUsageEntry); mahm.ReloadEntry(framerateEntry); mahm.ReloadEntry(powerEntry); } } Console.WriteLine("Closing arduino connection!"); arduino.close(); } catch (Exception e) { Console.WriteLine(e.Message); if (e.InnerException != null) { Console.WriteLine(e.InnerException.Message); } } Console.WriteLine("\nPress any key to exit"); Console.ReadKey(); }