laatzen/Common/Logic/ProductionOrderCore/ProgrammingParameters.cs
2023-08-23 14:45:24 +02:00

120 lines
3.3 KiB
C#

using System;
namespace Xylem.Common.Logic.ProductionOrderCore
{
/// <summary>
/// Source for final properties of Cordonel
/// </summary>
public enum ProgrammingSource
{
Vako,
Csd,
ProcessOrFix,
Order
}
public enum ReadCompare
{
NoCompare,
Equal,
True,
Near,
}
public enum isForProcessStep
{
NotSet,
UnlockMeter,
Programming,
LockMeter,
SetShippingState
}
/// <summary>
/// Values for single registers
/// </summary>
public class ProgrammingParameters
{
/// <summary>
/// Single register setup value assignment
/// </summary>
/// <param name="registerName"></param>
/// <param name="registerValue"></param>
/// <param name="programmingSource"></param>
public ProgrammingParameters(String registerName, Byte[] registerValue, ProgrammingSource programmingSource = ProgrammingSource.Vako, object realValue = null, string typeName = "", ReadCompare compare = ReadCompare.NoCompare)
{
RegisterName = registerName;
RegisterValue = registerValue;
Source = programmingSource;
TypeName = typeName;
if (!String.IsNullOrEmpty(TypeName))
{
switch (TypeName)
{
case "System.Byte":
RealValue = Convert.ToByte(realValue);
break;
case "System.Int16":
RealValue = Convert.ToInt16(realValue);
break;
case "System.Int32":
RealValue = Convert.ToInt32(realValue);
break;
case "System.Int64":
RealValue = Convert.ToInt64(realValue);
break;
case "System.SByte":
RealValue = Convert.ToSByte(realValue);
break;
case "System.UInt16":
RealValue = Convert.ToUInt16(realValue);
break;
case "System.UInt32":
RealValue = Convert.ToUInt32(realValue);
break;
case "System.UInt64":
RealValue = Convert.ToUInt64(realValue);
break;
default:
throw new NotImplementedException($"DataType {TypeName} is not supported. For Register {RegisterName}");
}
}
Compare = compare;
}
/// <summary>
/// The register name
/// </summary>
public String RegisterName { get; set; }
/// <summary>
/// The register value converted to raw bytes by register converter
/// </summary>
public Byte[] RegisterValue { get; set; }
public ProgrammingSource Source { get; set; }
public object RealValue { get; set; }
public string TypeName { get; set; }
public ReadCompare Compare { get; set; }
public void CreateRealValueTypesafe()
{
if (TypeName != "")
{
}
}
}
}