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); }
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 //} } }
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(); } } }