Initial WIP commit
Some checks failed
Deploy to Gitea Releases / deploy-to-gitea-releases (push) Failing after 9s

This commit is contained in:
2026-01-27 18:58:09 -05:00
commit 853e8eab0d
45 changed files with 2920 additions and 0 deletions

49
Service/Sensor.cs Normal file
View File

@@ -0,0 +1,49 @@
namespace HardwareMonitorStatusWindow.Service;
public class Sensor
{
public required SensorType Type { get; set; }
public required string Identifier { get; set; }
public required string Name { get; set; }
public required float? Value { get; set; }
internal static Sensor Create(LibreHardwareMonitor.Hardware.ISensor sensor)
{
return new Sensor
{
Type = MapSensorType(sensor.SensorType),
Name = sensor.Name,
Identifier = sensor.Identifier.ToString(),
Value = sensor.Value
};
}
private static SensorType MapSensorType(LibreHardwareMonitor.Hardware.SensorType sensorType)
{
return sensorType switch
{
LibreHardwareMonitor.Hardware.SensorType.Voltage => SensorType.Voltage,
LibreHardwareMonitor.Hardware.SensorType.Current => SensorType.Current,
LibreHardwareMonitor.Hardware.SensorType.Power => SensorType.Power,
LibreHardwareMonitor.Hardware.SensorType.Clock => SensorType.Clock,
LibreHardwareMonitor.Hardware.SensorType.Temperature => SensorType.Temperature,
LibreHardwareMonitor.Hardware.SensorType.Load => SensorType.Load,
LibreHardwareMonitor.Hardware.SensorType.Frequency => SensorType.Frequency,
LibreHardwareMonitor.Hardware.SensorType.Fan => SensorType.Fan,
LibreHardwareMonitor.Hardware.SensorType.Flow => SensorType.Flow,
LibreHardwareMonitor.Hardware.SensorType.Control => SensorType.Control,
LibreHardwareMonitor.Hardware.SensorType.Level => SensorType.Level,
LibreHardwareMonitor.Hardware.SensorType.Factor => SensorType.Factor,
LibreHardwareMonitor.Hardware.SensorType.Data => SensorType.Data,
LibreHardwareMonitor.Hardware.SensorType.SmallData => SensorType.SmallData,
LibreHardwareMonitor.Hardware.SensorType.Throughput => SensorType.Throughput,
LibreHardwareMonitor.Hardware.SensorType.TimeSpan => SensorType.TimeSpan,
LibreHardwareMonitor.Hardware.SensorType.Timing => SensorType.Timing,
LibreHardwareMonitor.Hardware.SensorType.Energy => SensorType.Energy,
LibreHardwareMonitor.Hardware.SensorType.Noise => SensorType.Noise,
LibreHardwareMonitor.Hardware.SensorType.Conductivity => SensorType.Conductivity,
LibreHardwareMonitor.Hardware.SensorType.Humidity => SensorType.Humidity,
_ => throw new ArgumentOutOfRangeException(nameof(sensorType), sensorType, null)
};
}
}