mirror of
https://github.com/hirschmann/nbfc
synced 2025-09-02 07:05:19 +00:00
[fix] Fixed MinOSVersion for Linux plugins.
[new] Implemented EmbeddedController plugin for Linux. [chg] Removed unnecessary usings from StagWare.Configurations. [chg] Fixed path to Linux plugins project in solution file.
This commit is contained in:
@@ -1,20 +1,22 @@
|
|||||||
using StagWare.FanControl.Plugins;
|
using StagWare.FanControl.Plugins;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel.Composition;
|
using System.ComponentModel.Composition;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace StagWare.Linux.NbfcPlugins
|
namespace StagWare.Linux.NbfcPlugins
|
||||||
{
|
{
|
||||||
[Export(typeof(ITemperatureProvider))]
|
[Export(typeof(ITemperatureProvider))]
|
||||||
[FanControlPluginMetadata("StagWare.Linux.CpuTempProvider", PlatformID.Unix, MinOSVersion = "13.0")]
|
[FanControlPluginMetadata("StagWare.Linux.CpuTempProvider", PlatformID.Unix, MinOSVersion = "3.10")]
|
||||||
public class CpuTemperatureProvider : ITemperatureProvider
|
public class CpuTemperatureProvider : ITemperatureProvider
|
||||||
{
|
{
|
||||||
const string cpuTempFilePath = "/sys/class/hwmon/hwmon0/cpu1_input";
|
#region Constants
|
||||||
|
|
||||||
|
const string cpuTempFilePath = "/sys/class/hwmon/hwmon0/temp1_input";
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region ITemperatureProvider implementation
|
||||||
|
|
||||||
public bool IsInitialized
|
public bool IsInitialized
|
||||||
{
|
{
|
||||||
@@ -33,11 +35,7 @@ namespace StagWare.Linux.NbfcPlugins
|
|||||||
|
|
||||||
if (double.TryParse(File.ReadAllText(cpuTempFilePath), out temp))
|
if (double.TryParse(File.ReadAllText(cpuTempFilePath), out temp))
|
||||||
{
|
{
|
||||||
Debug.WriteLine("GetTemperature failed");
|
temp /= 1000;
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Debug.WriteLine(string.Format("GetTemperature succeeded: {0.00}", temp));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return temp;
|
return temp;
|
||||||
@@ -45,7 +43,8 @@ namespace StagWare.Linux.NbfcPlugins
|
|||||||
|
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
{
|
{
|
||||||
Debug.WriteLine("Disposed CpuTemperatureProvider");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,23 +1,31 @@
|
|||||||
using StagWare.FanControl.Plugins;
|
using StagWare.FanControl.Plugins;
|
||||||
|
using StagWare.Hardware.LPC;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel.Composition;
|
using System.ComponentModel.Composition;
|
||||||
using System.Diagnostics;
|
using System.IO;
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace StagWare.Linux.NbfcPlugins
|
namespace StagWare.Linux.NbfcPlugins
|
||||||
{
|
{
|
||||||
[Export(typeof(IEmbeddedController))]
|
[Export(typeof(IEmbeddedController))]
|
||||||
[FanControlPluginMetadata("StagWare.Linux.EmbeddedController", PlatformID.Unix, MinOSVersion = "13.0")]
|
[FanControlPluginMetadata("StagWare.Linux.EmbeddedController", PlatformID.Unix, MinOSVersion = "3.10")]
|
||||||
public class EmbeddedController : IEmbeddedController
|
public class EmbeddedController : EmbeddedControllerBase, IEmbeddedController
|
||||||
{
|
{
|
||||||
public bool IsInitialized
|
#region Constants
|
||||||
{
|
|
||||||
get;
|
const string PortFilePath = "/dev/port";
|
||||||
private set;
|
private const int MaxRetries = 10;
|
||||||
}
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Private Fields
|
||||||
|
|
||||||
|
private FileStream stream;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region IEmbeddedController implementation
|
||||||
|
|
||||||
|
public bool IsInitialized { get; private set; }
|
||||||
|
|
||||||
public void Initialize()
|
public void Initialize()
|
||||||
{
|
{
|
||||||
@@ -26,40 +34,115 @@ namespace StagWare.Linux.NbfcPlugins
|
|||||||
|
|
||||||
public void WriteByte(byte register, byte value)
|
public void WriteByte(byte register, byte value)
|
||||||
{
|
{
|
||||||
Debug.WriteLine(string.Format("WriteByte: {0} => {1}", value, register));
|
int writes = 0;
|
||||||
|
|
||||||
|
while (writes < MaxRetries)
|
||||||
|
{
|
||||||
|
if (TryWriteByte(register, value))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
writes++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void WriteWord(byte register, ushort value)
|
public void WriteWord(byte register, ushort value)
|
||||||
{
|
{
|
||||||
Debug.WriteLine(string.Format("WriteWord: {0} => {1}", value, register));
|
int writes = 0;
|
||||||
|
|
||||||
|
while (writes < MaxRetries)
|
||||||
|
{
|
||||||
|
if (TryWriteWord(register, value))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
writes++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public byte ReadByte(byte register)
|
public byte ReadByte(byte register)
|
||||||
{
|
{
|
||||||
Debug.WriteLine(string.Format("ReadByte: {0}", register));
|
byte result = 0;
|
||||||
return 0;
|
int reads = 0;
|
||||||
|
|
||||||
|
while (reads < MaxRetries)
|
||||||
|
{
|
||||||
|
if (TryReadByte(register, out result))
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
reads++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ushort ReadWord(byte register)
|
public ushort ReadWord(byte register)
|
||||||
{
|
{
|
||||||
Debug.WriteLine(string.Format("ReadWord: {0}", register));
|
int result = 0;
|
||||||
return 0;
|
int reads = 0;
|
||||||
|
|
||||||
|
while (reads < MaxRetries)
|
||||||
|
{
|
||||||
|
if (TryReadWord(register, out result))
|
||||||
|
{
|
||||||
|
return (ushort)result;
|
||||||
|
}
|
||||||
|
|
||||||
|
reads++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (ushort)result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool AquireLock(int timeout)
|
public bool AquireLock(int timeout)
|
||||||
{
|
{
|
||||||
Debug.WriteLine("AquireLock");
|
bool success = false;
|
||||||
return true;
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
this.stream = File.Open(PortFilePath, FileMode.Open, FileAccess.ReadWrite, FileShare.None);
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ReleaseLock()
|
public void ReleaseLock()
|
||||||
{
|
{
|
||||||
Debug.WriteLine("ReleaseLock");
|
if (this.stream != null)
|
||||||
|
{
|
||||||
|
this.stream.Dispose();
|
||||||
|
this.stream = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
{
|
{
|
||||||
Debug.WriteLine("Dispose EmbeddedController");
|
ReleaseLock();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region EmbeddedControllerBase implementation
|
||||||
|
|
||||||
|
protected override void WritePort(int port, byte value)
|
||||||
|
{
|
||||||
|
this.stream.Seek(port, SeekOrigin.Begin);
|
||||||
|
this.stream.WriteByte(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override byte ReadPort(int port)
|
||||||
|
{
|
||||||
|
this.stream.Seek(port, SeekOrigin.Begin);
|
||||||
|
return (byte)this.stream.ReadByte();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -48,10 +48,14 @@
|
|||||||
<WCFMetadata Include="Service References\" />
|
<WCFMetadata Include="Service References\" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\Libraries\StagWare.FanControl\StagWare.FanControl.csproj">
|
<ProjectReference Include="..\..\StagWare.FanControl\StagWare.FanControl.csproj">
|
||||||
<Project>{12084b38-c1a2-414c-80a7-b8d02d6f5b84}</Project>
|
<Project>{12084b38-c1a2-414c-80a7-b8d02d6f5b84}</Project>
|
||||||
<Name>StagWare.FanControl</Name>
|
<Name>StagWare.FanControl</Name>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\StagWare.Hardware.LPC\StagWare.Hardware.LPC.csproj">
|
||||||
|
<Project>{1d5d7c81-802f-46e0-913f-8519f157bc3c}</Project>
|
||||||
|
<Name>StagWare.Hardware.LPC</Name>
|
||||||
|
</ProjectReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
|
@@ -3,7 +3,6 @@ using System.Collections.Generic;
|
|||||||
using System.Collections.ObjectModel;
|
using System.Collections.ObjectModel;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text.RegularExpressions;
|
|
||||||
using System.Xml.Serialization;
|
using System.Xml.Serialization;
|
||||||
|
|
||||||
namespace StagWare.Configurations
|
namespace StagWare.Configurations
|
||||||
|
@@ -1,7 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
namespace StagWare.FanControl.Configurations
|
namespace StagWare.FanControl.Configurations
|
||||||
{
|
{
|
||||||
|
@@ -1,5 +1,4 @@
|
|||||||
using StagWare.Configurations;
|
using System;
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
|
@@ -1,8 +1,4 @@
|
|||||||
using StagWare.Configurations;
|
using StagWare.Configurations;
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Management;
|
|
||||||
|
|
||||||
namespace StagWare.FanControl.Configurations
|
namespace StagWare.FanControl.Configurations
|
||||||
{
|
{
|
||||||
|
@@ -1,7 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
namespace StagWare.FanControl.Configurations
|
namespace StagWare.FanControl.Configurations
|
||||||
{
|
{
|
||||||
|
@@ -1,7 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
namespace StagWare.FanControl.Configurations
|
namespace StagWare.FanControl.Configurations
|
||||||
{
|
{
|
||||||
|
@@ -1,8 +1,4 @@
|
|||||||
using StagWare.Configurations;
|
using System;
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
namespace StagWare.FanControl.Configurations
|
namespace StagWare.FanControl.Configurations
|
||||||
{
|
{
|
||||||
|
@@ -1,8 +1,4 @@
|
|||||||
using StagWare.FanControl.Configurations;
|
using System;
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
namespace StagWare.FanControl.Configurations
|
namespace StagWare.FanControl.Configurations
|
||||||
{
|
{
|
||||||
|
@@ -38,7 +38,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StagWare.BiosInfo", "Window
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StagWare.Windows.NbfcPlugins", "Libraries\Plugins\StagWare.Windows.NbfcPlugins\StagWare.Windows.NbfcPlugins.csproj", "{6C6F4E15-FC36-4298-A7E9-83CD854BDFDB}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StagWare.Windows.NbfcPlugins", "Libraries\Plugins\StagWare.Windows.NbfcPlugins\StagWare.Windows.NbfcPlugins.csproj", "{6C6F4E15-FC36-4298-A7E9-83CD854BDFDB}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StagWare.Linux.NbfcPlugins", "C:\Users\Stefan\Documents\Visual Studio 2012\Projects\Desktop\NoteBookFanControl\Libraries\Plugins\StagWare.Linux.NbfcPlugins\StagWare.Linux.NbfcPlugins.csproj", "{0F5B3D05-7615-4E74-84E6-4F00FAD0413C}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StagWare.Linux.NbfcPlugins", "Libraries\Plugins\StagWare.Linux.NbfcPlugins\StagWare.Linux.NbfcPlugins.csproj", "{0F5B3D05-7615-4E74-84E6-4F00FAD0413C}"
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Reference in New Issue
Block a user