コード例 #1
0
        private void Pickup(Core.Loads.Load load)
        {
            //Go up
            load.Release();
            loadMover.Attach(load);
            float y = vertMover.Position.Y - leftframe.Height + horzMover.Height / 2;

            yMoverTimer.Start(new Microsoft.DirectX.Vector3(0, -y, 0), Math.Abs(y) * 2);

            Core.Timer.Action(() => Lifted(load), Math.Abs(y) * 2 + 1);
        }
コード例 #2
0
        public void rackConvLocA_Enter(ActionPoint sender, Core.Loads.Load load)
        {
            if (LocationA.LocName.ConvType() == ConveyorTypes.OutfeedRack)
            {
                Elevator.ParentMultiShuttle.ArrivedAtOutfeedRackConvPosA(new RackConveyorArrivalEventArgs(LocationA.LocName, (Case_Load)load, Elevator, this, null));
                Elevator.ParentMultiShuttle.shuttlecars[Level].CurrentTask = null; //If outfeed then shuttle must have finished its current task

                if (TransportSection.Route.Loads.Count == 2)
                {
                    load.Stop();
                }
                else
                {
                    load.Release();
                }
            }
            else if (LocationA.LocName.ConvType() == ConveyorTypes.InfeedRack)
            {
                Cycle?unloadCycle = null;

                //if (RelevantElevatorTask(Elevator.CurrentTask))
                if (RelevantElevatorTask(LocationA, LocationB))
                {
                    unloadCycle = Elevator.CurrentTask.UnloadCycle;
                }

                Elevator.ParentMultiShuttle.ArrivedAtInfeedRackConvPosA(new RackConveyorArrivalEventArgs(LocationA.LocName, (Case_Load)load, Elevator, this, unloadCycle));
                TryClearElevatorTask(Elevator.CurrentTask);

                if (TransportSection.Route.Loads.Count > 1)
                {
                    load.Stop();
                }

                if (Elevator.ElevatorConveyor.TransportSection.Route.Loads.Count > 0) //release the elevator load from A
                {
                    Elevator.ElevatorConveyor.UnLoading = true;
                    Elevator.ElevatorConveyor.LocationA.Release();
                    //Elevator.ReleaseLocationAFFS(Elevator.ElevatorConveyor.LocationA.ActiveLoad, "RackConveyor 309");
                }

                //if ((Elevator.CurrentTask != null && Elevator.CurrentTask.UnloadCycle == Cycle.Single && (Elevator.CurrentTask.BarcodeLoadA == ((Case_Load)load).SSCCBarcode || Elevator.CurrentTask.BarcodeLoadB == ((Case_Load)load).SSCCBarcode)) && Elevator.ElevatorConveyor.Route.Loads.Count == 0 )
                //                    {
                //    Elevator.CurrentTask = null;  // Elevator task is now complete
                //}
            }
        }
コード例 #3
0
        public void rackConvLocA_Enter(ActionPoint sender, Core.Loads.Load load)
        {
            if (LocationA.LocName.ConvType() == ConveyorTypes.OutfeedRack)
            {
                Elevator.ParentMultiShuttle.ArrivedAtOutfeedRackConvPosA(new RackConveyorArrivalEventArgs(LocationA.LocName, (Case_Load)load, Elevator, this, null));
                Elevator.ParentMultiShuttle.shuttlecars[Level].CurrentTask = null; //If outfeed then shuttle must have finished its current task

                if (TransportSection.Route.Loads.Count == 2)
                {
                    load.Stop();
                }
                else
                {
                    load.Release();
                }
            }
            else if (LocationA.LocName.ConvType() == ConveyorTypes.InfeedRack)
            {
                Cycle?unloadCycle = null;

                if (RelevantElevatorTask(LocationA, LocationB))
                {
                    unloadCycle = Elevator.CurrentTask.UnloadCycle;
                }

                TryClearElevatorTask(Elevator.CurrentTask);
                Elevator.ParentMultiShuttle.ArrivedAtInfeedRackConvPosA(new RackConveyorArrivalEventArgs(LocationA.LocName, (Case_Load)load, Elevator, this, unloadCycle));

                if (TransportSection.Route.Loads.Count > 1)
                {
                    load.Stop();
                }

                if (Elevator.ElevatorConveyor.TransportSection.Route.Loads.Count > 0) //release the elevator load from A
                {
                    Elevator.ElevatorConveyor.UnLoading = true;
                    Elevator.ElevatorConveyor.LocationA.Release();
                }
            }
        }