using System;
namespace Xylem.Common.Logic.ProductionOrderCore
{
///
/// Source for final properties of Cordonel
///
public enum ProgrammingSource
{
Vako,
Csd,
ProcessOrFix,
Order
}
public enum ReadCompare
{
NoCompare,
Equal,
True,
Near,
}
public enum isForProcessStep
{
NotSet,
UnlockMeter,
Programming,
LockMeter,
SetShippingState
}
///
/// Values for single registers
///
public class ProgrammingParameters
{
///
/// Single register setup value assignment
///
///
///
///
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;
}
///
/// The register name
///
public String RegisterName { get; set; }
///
/// The register value converted to raw bytes by register converter
///
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 != "")
{
}
}
}
}