示例#1
0
        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);
        }
示例#2
0
        /// <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);
        }
示例#3
0
        /// <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);
        }
示例#4
0
        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;
        }