Skip to content
This repository was archived by the owner on Oct 5, 2025. It is now read-only.

Commit 981d2cc

Browse files
committed
use Extended Shared Memory Interface in hwinfo 7.34 that exposes UTF-8 encoded strings
1 parent 4f6df25 commit 981d2cc

File tree

4 files changed

+36
-7
lines changed

4 files changed

+36
-7
lines changed

fipha/HWInfo.cs

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,11 @@ public class _HWiNFO_SENSOR
6060
public string SensorNameOrig;
6161
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = HWINFO_SENSORS_STRING_LEN)]
6262
public string SensorNameUser;
63+
64+
// Version 2+ new:
65+
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = HWINFO_SENSORS_STRING_LEN)]
66+
public string utfSensorNameUser; // Sensor name displayed, which might be translated or renamed by user [UTF-8 string]
67+
6368
}
6469

6570
[StructLayout(LayoutKind.Sequential, Pack = 1)]
@@ -78,6 +83,12 @@ public class _HWiNFO_ELEMENT
7883
public double ValueMin;
7984
public double ValueMax;
8085
public double ValueAvg;
86+
87+
// Version 2+ new:
88+
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = HWINFO_SENSORS_STRING_LEN)]
89+
public string utfLabelUser; // Label displayed, which might be translated or renamed by user [UTF-8 string]
90+
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = HWINFO_UNIT_STRING_LEN)]
91+
public string utfUnit; // e.g. "RPM" [UTF-8 string]
8192
}
8293

8394
public class ElementObj
@@ -398,12 +409,18 @@ private static void ReadSensors(MemoryMappedFile mmf, _HWiNFO_SHARED_MEM hWiNFOM
398409

399410
if (!FullSensorData.ContainsKey(index))
400411
{
412+
var sensorName = structure.SensorNameUser;
413+
if (hWiNFOMemory.Version > 1)
414+
{
415+
sensorName = structure.utfSensorNameUser;
416+
}
417+
401418
var sensor = new SensorObj
402419
{
403420
SensorId = structure.SensorId,
404421
SensorInstance = structure.SensorInstance,
405422
SensorNameOrig = structure.SensorNameOrig,
406-
SensorNameUser = structure.SensorNameUser,
423+
SensorNameUser = sensorName,
407424
Elements = new Dictionary<string, ElementObj>()
408425
};
409426

@@ -444,15 +461,27 @@ private static void ReadElements(MemoryMappedFile mmf, _HWiNFO_SHARED_MEM hWiNFO
444461

445462
var elementKey = sensor.SensorId + "-" + sensor.SensorInstance + "-" + structure.ElementId;
446463

464+
var unit = structure.Unit;
465+
if (hWiNFOMemory.Version > 1)
466+
{
467+
unit = structure.utfUnit;
468+
}
469+
470+
var label = structure.LabelUser;
471+
if (hWiNFOMemory.Version > 1)
472+
{
473+
label = structure.utfLabelUser;
474+
}
475+
447476
var element = new ElementObj
448477
{
449478
ElementKey = elementKey,
450479

451480
SensorType = structure.SensorType,
452481
ElementId = structure.ElementId,
453482
LabelOrig = structure.LabelOrig,
454-
LabelUser = structure.LabelUser,
455-
Unit = structure.Unit,
483+
LabelUser = label,
484+
Unit = unit,
456485
NumericValue = (float)RoundValue(structure.SensorType, structure.Unit, structure.Value),
457486
Value = NumberFormat(structure.SensorType, structure.Unit, structure.Value),
458487
ValueMin = NumberFormat(structure.SensorType, structure.Unit, structure.ValueMin),

fipha/Properties/AssemblyInfo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
// You can specify all the values or you can default the Build and Revision Numbers
3232
// by using the '*' as shown below:
3333
// [assembly: AssemblyVersion("1.0.*")]
34-
[assembly: AssemblyVersion("0.0.1.2")]
35-
[assembly: AssemblyFileVersion("0.0.1.2")]
34+
[assembly: AssemblyVersion("0.0.1.3")]
35+
[assembly: AssemblyFileVersion("0.0.1.3")]
3636

3737
[assembly: log4net.Config.XmlConfigurator(Watch = true)]

fipha/fipha.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@
9999
<HintPath>..\packages\MQTTnet.Extensions.ManagedClient.4.1.3.436\lib\net461\MQTTnet.Extensions.ManagedClient.dll</HintPath>
100100
</Reference>
101101
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
102-
<HintPath>..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
102+
<HintPath>..\packages\Newtonsoft.Json.13.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
103103
</Reference>
104104
<Reference Include="PresentationCore" />
105105
<Reference Include="PresentationFramework" />

fipha/packages.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<package id="Microsoft.Win32.Registry" version="5.0.0" targetFramework="net472" />
1313
<package id="MQTTnet" version="4.1.3.436" targetFramework="net48" />
1414
<package id="MQTTnet.Extensions.ManagedClient" version="4.1.3.436" targetFramework="net48" />
15-
<package id="Newtonsoft.Json" version="13.0.1" targetFramework="net472" />
15+
<package id="Newtonsoft.Json" version="13.0.2" targetFramework="net48" />
1616
<package id="RazorEngine" version="3.10.0" targetFramework="net472" />
1717
<package id="SharpDX" version="4.2.0" targetFramework="net472" />
1818
<package id="SharpDX.DirectInput" version="4.2.0" targetFramework="net472" />

0 commit comments

Comments
 (0)