public virtual Case_Load CreateCaseLoad(BaseCaseData caseData) { MeshInfo boxInfo = new MeshInfo() { color = caseData.colour, filename = Case_Load.GraphicsMesh, length = caseData.Length, width = caseData.Width, height = caseData.Height }; Case_Load load = new Case_Load(boxInfo); DCICaseData caseDataDCi = caseData as DCICaseData; if (caseDataDCi == null) { Log.Write("ERROR: Bad cast to DCICaseData in CreateCaseLoad", Color.Red); return(null); } load.Weight = caseData.Weight; load.Identification = caseDataDCi.TUIdent; load.SSCCBarcode = caseDataDCi.TUIdent; load.Case_Data = caseData; return(load); }
/// <summary> /// Create transport telegrams only from load, do not use for any other type of telegram /// </summary> /// <param name="telegramType"></param> /// <param name="load"></param> /// <returns></returns> public string CreateTelegramFromLoad(TelegramTypes telegramType, Case_Load load) { string telegram = Template.CreateTelegram(this, telegramType); DCICaseData caseData = load.Case_Data as DCICaseData; //Populate the correct field values telegram = telegram.SetFieldValue(this, TelegramFields.Source, caseData.Source); telegram = telegram.SetFieldValue(this, TelegramFields.Current, caseData.Current); telegram = telegram.SetFieldValue(this, TelegramFields.Destination, caseData.Destination); telegram = telegram.SetFieldValue(this, TelegramFields.TUIdent, load.Identification); telegram = telegram.SetFieldValue(this, TelegramFields.TUType, caseData.TUType); telegram = telegram.SetFieldValue(this, TelegramFields.TULength, (caseData.Length * 1000).ToString("0000")); telegram = telegram.SetFieldValue(this, TelegramFields.TUWidth, (caseData.Width * 1000).ToString("0000")); telegram = telegram.SetFieldValue(this, TelegramFields.TUHeight, (caseData.Height * 1000).ToString("0000")); telegram = telegram.SetFieldValue(this, TelegramFields.TUWeight, (caseData.Weight * 1000).ToString("000000")); telegram = telegram.SetFieldValue(this, TelegramFields.EventCode, caseData.EventCode); telegram = telegram.SetFieldValue(this, TelegramFields.DropIndex, caseData.DropIndex.ToString()); telegram = telegram.SetFieldValue(this, TelegramFields.ShuttleDynamics, caseData.ShuttleDynamics); telegram = telegram.SetFieldValue(this, TelegramFields.LiftDynamics, caseData.LiftDynamics); telegram = telegram.SetFieldValue(this, TelegramFields.SourceShuttleExtension, caseData.SourceShuttleExtension); telegram = telegram.SetFieldValue(this, TelegramFields.DestinationShuttleExtension, caseData.DestinationShuttleExtension); if (DCIVersion == DCIVersions._1_60) { telegram = telegram.SetFieldValue(this, TelegramFields.CaseConveyorDynamics, caseData.CaseConveyorDynamics); } return(telegram); }
/// <summary> /// Creates the ATC Case Data that the load will hold from the telegram /// </summary> public DCICaseData CreateDCICaseData(string telegram, int blockPosition = 0) { DCICaseData caseData = new DCICaseData(); float length, width, height, weight; int dropIndex = 0; float.TryParse(telegram.GetFieldValue(this, TelegramFields.TULength, blockPosition), out length); float.TryParse(telegram.GetFieldValue(this, TelegramFields.TUWidth, blockPosition), out width); float.TryParse(telegram.GetFieldValue(this, TelegramFields.TUHeight, blockPosition), out height); float.TryParse(telegram.GetFieldValue(this, TelegramFields.TUWeight, blockPosition), out weight); int.TryParse(telegram.GetFieldValue(this, TelegramFields.DropIndex, blockPosition), out dropIndex); caseData.Length = length / 1000; caseData.Width = width / 1000; caseData.Height = height / 1000; caseData.Weight = weight; caseData.colour = Color.Blue; caseData.DropIndex = dropIndex; caseData.TUIdent = telegram.GetFieldValue(this, TelegramFields.TUIdent, blockPosition); caseData.TUType = telegram.GetFieldValue(this, TelegramFields.TUType, blockPosition); caseData.Source = telegram.GetFieldValue(this, TelegramFields.Source, blockPosition); caseData.Current = telegram.GetFieldValue(this, TelegramFields.Current, blockPosition); caseData.Destination = telegram.GetFieldValue(this, TelegramFields.Destination, blockPosition); caseData.EventCode = telegram.GetFieldValue(this, TelegramFields.EventCode, blockPosition); caseData.ShuttleDynamics = telegram.GetFieldValue(this, TelegramFields.ShuttleDynamics, blockPosition); caseData.LiftDynamics = telegram.GetFieldValue(this, TelegramFields.LiftDynamics, blockPosition); caseData.SourceShuttleExtension = telegram.GetFieldValue(this, TelegramFields.SourceShuttleExtension, blockPosition); caseData.DestinationShuttleExtension = telegram.GetFieldValue(this, TelegramFields.DestinationShuttleExtension, blockPosition); caseData.CaseConveyorDynamics = telegram.GetFieldValue(this, TelegramFields.CaseConveyorDynamics, blockPosition); return(caseData); }
public void UpDateLoadParameters(string telegram, Case_Load load, int blockPosition = 0) { int dropIndex = 0; int.TryParse(telegram.GetFieldValue(this, TelegramFields.DropIndex, blockPosition), out dropIndex); DCICaseData caseData = load.Case_Data as DCICaseData; load.Identification = telegram.GetFieldValue(this, TelegramFields.TUIdent, blockPosition); caseData.TUIdent = telegram.GetFieldValue(this, TelegramFields.TUIdent, blockPosition); caseData.TUType = telegram.GetFieldValue(this, TelegramFields.TUType, blockPosition); caseData.Source = telegram.GetFieldValue(this, TelegramFields.Source, blockPosition); caseData.Current = telegram.GetFieldValue(this, TelegramFields.Current, blockPosition); caseData.Destination = telegram.GetFieldValue(this, TelegramFields.Destination, blockPosition); caseData.EventCode = telegram.GetFieldValue(this, TelegramFields.EventCode, blockPosition); caseData.DropIndex = dropIndex; caseData.ShuttleDynamics = telegram.GetFieldValue(this, TelegramFields.ShuttleDynamics, blockPosition); caseData.LiftDynamics = telegram.GetFieldValue(this, TelegramFields.LiftDynamics, blockPosition); caseData.SourceShuttleExtension = telegram.GetFieldValue(this, TelegramFields.SourceShuttleExtension, blockPosition); caseData.DestinationShuttleExtension = telegram.GetFieldValue(this, TelegramFields.DestinationShuttleExtension, blockPosition); caseData.CaseConveyorDynamics = telegram.GetFieldValue(this, TelegramFields.CaseConveyorDynamics, blockPosition); float weight; float.TryParse(telegram.GetFieldValue(this, TelegramFields.TUWeight), out weight); load.Weight = weight; }