|
void Main() |
|
{ |
|
using var mmf = MemoryMappedFile.OpenExisting("AIDA64_SensorValues"); |
|
using var accessor = mmf.CreateViewAccessor(); |
|
var bytes = new byte[accessor.Capacity]; |
|
accessor.ReadArray(0, bytes, 0, bytes.Length); |
|
using var sw = new StreamWriter(@"F:\Green\aida64\shared-memory.xml"); |
|
sw.WriteLine(Encoding.ASCII.GetString(bytes).Trim()); |
|
return; |
|
var xmlDoc = new XmlDocument(); |
|
xmlDoc.Load(@"F:\Green\aida64\shared-memory.xml"); |
|
var groups = xmlDoc.DocumentElement.ChildNodes.OfType<XmlNode>().GroupBy(n => n.Name).Select(g => new { |
|
Group = g.Key, |
|
Values = g.Select(n => new Sensor |
|
{ |
|
Id = n.SelectSingleNode("id").InnerText, |
|
Label = n.SelectSingleNode("label").InnerText, |
|
Value = n.SelectSingleNode("value").InnerText, |
|
}) |
|
}); |
|
|
|
var sensors = new |
|
{ |
|
Sys = groups.First(g => g.Group == "sys"), |
|
Temp =groups.First(g => g.Group == "temp"), |
|
Fan = groups.First(g => g.Group == "fan"), |
|
Duty =groups.First(g => g.Group == "duty"), |
|
Volt =groups.First(g => g.Group == "volt"), |
|
Pwr = groups.First(g => g.Group == "pwr") |
|
}; |
|
|
|
var json = JsonConvert.SerializeObject(sensors); |
|
json.Dump(); |
|
} |
|
|
|
// You can define other methods, fields, classes and namespaces here |
|
// GPUZShMem |
|
class Sensor |
|
{ |
|
public string Id { get; set; } |
|
public string Label { get; set; } |
|
public string Value { get; set; } |
|
} |
1