124 lines
3.5 KiB
C#
124 lines
3.5 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>
|
|
/// <param name="realValue"></param>
|
|
/// <param name="typeName"></param>
|
|
/// <param name="compare"></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 != "")
|
|
{
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|