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 != "") { } } } }