Initial Push

This commit is contained in:
2026-02-11 08:38:36 +01:00
commit 627050501d
81 changed files with 5500 additions and 0 deletions

View File

@@ -0,0 +1,60 @@
using CommunityToolkit.Mvvm.ComponentModel;
using Heisig.HMI.AdsManager;
using TwinCAT.TypeSystem;
namespace UniperHMI;
public enum E_COMPONENT_STATUS : short
{
OFF = 0,
ON = 1,
CHARGING = 2,
DISCHARGING = 3,
ERROR = 4
}
public partial class SMUBaseVM : ObservableObject, IDisposable
{
[ObservableProperty]
protected float voltage;
[ObservableProperty]
protected E_COMPONENT_STATUS status;
protected readonly string _variableName;
protected readonly IAdsManager? _adsManager;
public SMUBaseVM()
{
_variableName = string.Empty;
_adsManager = null;
voltage = 0.0f;
status = E_COMPONENT_STATUS.OFF;
}
public SMUBaseVM(IAdsManager adsManager, string variableName)
{
Status = E_COMPONENT_STATUS.OFF;
_adsManager = adsManager;
_variableName = variableName;
_adsManager!.Register(_variableName + ".rVoltage", VoltageChanged);
_adsManager.Register(_variableName + ".eStatus", StatusChanged);
}
protected void VoltageChanged(object? sender, ValueChangedEventArgs e)
{
Voltage = (float)e.Value;
}
protected void StatusChanged(object? sender, ValueChangedEventArgs e)
{
Status = (E_COMPONENT_STATUS)((short)e.Value);
}
public void Dispose()
{
_adsManager?.Deregister(_variableName + ".rVoltage", VoltageChanged);
_adsManager?.Deregister(_variableName + ".eStatus", StatusChanged);
}
}