Push Changes from Techcrafters Repo
This commit is contained in:
201
uniper_hmi/UniperHMI/Common/PackMLControlVm.cs
Normal file
201
uniper_hmi/UniperHMI/Common/PackMLControlVm.cs
Normal file
@@ -0,0 +1,201 @@
|
||||
using CommunityToolkit.Mvvm.ComponentModel;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using CommunityToolkit.Mvvm.Input;
|
||||
using TwinCAT.TypeSystem;
|
||||
using Heisig.HMI.AdsManager;
|
||||
using HMIToolkit;
|
||||
using InfineonHMI.Common;
|
||||
|
||||
namespace Common;
|
||||
|
||||
public sealed partial class PackMLControlVM : ObservableValidator, IDisposable
|
||||
{
|
||||
|
||||
private IAdsManager _adsManager;
|
||||
private readonly string _variableName;
|
||||
|
||||
[ObservableProperty] private string? sTitle;
|
||||
|
||||
[ObservableProperty] private string? sCurrentMode;
|
||||
|
||||
[ObservableProperty] private string? sCurrentState;
|
||||
|
||||
[ObservableProperty] private HMIControlButtonVM? prodModeButtonVm;
|
||||
[ObservableProperty] private HMIControlButtonVM? manualModeButtonVm;
|
||||
[ObservableProperty] private HMIControlButtonVM? clearButtonVm;
|
||||
[ObservableProperty] private HMIControlButtonVM? resetButtonVm;
|
||||
[ObservableProperty] private HMIControlButtonVM? startButtonVm;
|
||||
[ObservableProperty] private HMIControlButtonVM? abortButtonVm;
|
||||
[ObservableProperty] private HMIControlButtonVM? holdButtonVm;
|
||||
[ObservableProperty] private HMIControlButtonVM? stopButtonVm;
|
||||
[ObservableProperty] private HMIControlButtonVM? suspendButtonVm;
|
||||
[ObservableProperty] private HMIControlButtonVM? unholdButtonVm;
|
||||
[ObservableProperty] private HMIControlButtonVM? unsuspendButtonVm;
|
||||
|
||||
[ObservableProperty] private bool canUserInteract;
|
||||
|
||||
public PackMLControlVM()
|
||||
{
|
||||
SCurrentMode = "Modus: ";
|
||||
SCurrentState = "Aktueller Zustand: ";
|
||||
STitle = "Betriebsart";
|
||||
ProdModeButtonVm = new();
|
||||
ManualModeButtonVm = new();
|
||||
ClearButtonVm= new();
|
||||
ResetButtonVm= new();
|
||||
StartButtonVm = new();
|
||||
AbortButtonVm = new();
|
||||
HoldButtonVm = new();
|
||||
StopButtonVm = new();
|
||||
SuspendButtonVm = new();
|
||||
UnholdButtonVm = new();
|
||||
UnsuspendButtonVm = new();
|
||||
|
||||
var currentUser = Users.getCurrentUser();
|
||||
canUserInteract = currentUser.UserLevel > 50;
|
||||
}
|
||||
|
||||
public PackMLControlVM(IAdsManager adsManager, string variableName)
|
||||
{
|
||||
|
||||
_adsManager = adsManager;
|
||||
_variableName = variableName;
|
||||
STitle = "Betriebsart";
|
||||
|
||||
SCurrentMode = "Modus: ";
|
||||
SCurrentState = "Aktueller Zustand: ";
|
||||
|
||||
ProdModeButtonVm = new(_adsManager, _variableName + ".stBtnProdMode");
|
||||
ManualModeButtonVm = new(_adsManager, _variableName + ".stBtnManualMode");
|
||||
ClearButtonVm = new(_adsManager, _variableName + ".stBtnClear");
|
||||
ResetButtonVm = new(_adsManager, _variableName + ".stBtnReset");
|
||||
StartButtonVm = new(_adsManager, _variableName + ".stBtnStart");
|
||||
AbortButtonVm = new(_adsManager, _variableName + ".stBtnAbort");
|
||||
HoldButtonVm = new(_adsManager, _variableName + ".stBtnHold");
|
||||
StopButtonVm = new(_adsManager, _variableName + ".stBtnStop");
|
||||
SuspendButtonVm = new(_adsManager, _variableName + ".stBtnSuspend");
|
||||
UnholdButtonVm = new(_adsManager, _variableName + ".stBtnUnhold");
|
||||
UnsuspendButtonVm = new(_adsManager, _variableName + ".stBtnUnsuspend");
|
||||
|
||||
_adsManager.Register(_variableName + ".eCurrentState", StateChanged);
|
||||
_adsManager.Register(_variableName + ".eCurrentMode", ModeChanged);
|
||||
|
||||
var currentUser = Users.getCurrentUser();
|
||||
canUserInteract = currentUser.UserLevel > 50;
|
||||
}
|
||||
|
||||
private void StateChanged(object? sender, ValueChangedEventArgs e)
|
||||
{
|
||||
var state = (int)e.Value;
|
||||
var curState = "Aktueller Status: ";
|
||||
switch (state)
|
||||
{
|
||||
case 0:
|
||||
curState += "Undefined";
|
||||
break;
|
||||
case 1:
|
||||
curState += "Clearing";
|
||||
break;
|
||||
case 2:
|
||||
curState += "Stopped";
|
||||
break;
|
||||
case 3:
|
||||
curState += "Starting";
|
||||
break;
|
||||
case 4:
|
||||
curState += "Idle";
|
||||
break;
|
||||
case 5:
|
||||
curState += "Suspended";
|
||||
break;
|
||||
case 6:
|
||||
curState += "Execute";
|
||||
break;
|
||||
case 7:
|
||||
curState += "Stopping";
|
||||
break;
|
||||
case 8:
|
||||
curState += "Aborting";
|
||||
break;
|
||||
case 9:
|
||||
curState += "Aborted";
|
||||
break;
|
||||
case 10:
|
||||
curState += "Holding";
|
||||
break;
|
||||
case 11:
|
||||
curState += "Held";
|
||||
break;
|
||||
case 12:
|
||||
curState += "Unholding";
|
||||
break;
|
||||
case 13:
|
||||
curState += "Suspending";
|
||||
break;
|
||||
case 14:
|
||||
curState += "Unsuspending";
|
||||
break;
|
||||
case 15:
|
||||
curState += "Resetting";
|
||||
break;
|
||||
case 16:
|
||||
curState += "Completing";
|
||||
break;
|
||||
case 17:
|
||||
curState += "Completed";
|
||||
break;
|
||||
default:
|
||||
curState += "Undefined";
|
||||
break;
|
||||
}
|
||||
SCurrentState = curState;
|
||||
}
|
||||
|
||||
private void ModeChanged(object? sender, ValueChangedEventArgs e)
|
||||
{
|
||||
var curMode = "Aktueller Modus: ";
|
||||
var mode = (int)e.Value;
|
||||
|
||||
switch (mode)
|
||||
{
|
||||
case 0:
|
||||
curMode += "Invalid";
|
||||
break;
|
||||
case 1:
|
||||
curMode += "Production";
|
||||
break;
|
||||
case 2:
|
||||
curMode += "Maintenance";
|
||||
break;
|
||||
case 3:
|
||||
curMode += "Manual";
|
||||
break;
|
||||
case 4:
|
||||
curMode += "change_over";
|
||||
break;
|
||||
case 5:
|
||||
curMode += "clean";
|
||||
break;
|
||||
case 6:
|
||||
curMode += "set up";
|
||||
break;
|
||||
case 7:
|
||||
curMode += "empty out";
|
||||
break;
|
||||
default:
|
||||
curMode += "Invalid";
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
SCurrentMode = curMode;
|
||||
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user