void PreviousLoadWaitingStatus_OnLoadWaitingChanged(object sender, LoadWaitingChangedEventArgs e) { if (e._loadWaiting) //Load is waiting to be released from previous conveyor { if (RouteAvailable == RouteStatuses.Request) { psTimeoutTimer.Stop(); psTimeoutTimer.Reset(); RouteAvailable = RouteStatuses.Available; ParentMultiShuttle.LoadTransferingToPickStation(new PickDropStationArrivalEventArgs(null, e._waitingLoad as Case_Load, Elevator, 1)); } } else //Load has completed transfer from previous conveyor { if (RouteAvailable == RouteStatuses.Available) { if (TransportSection.Route.Loads.Count == 2) //2 loads are on the pick station { RouteAvailable = RouteStatuses.Blocked; } else { RouteAvailable = RouteStatuses.Request; } } } }
void psTimeoutTimer_OnElapsed(Timer sender) { if (LocationB.ActiveLoad != null && RouteAvailable == RouteStatuses.Request) //If the conveyor is availbale then do not send arrival message as one is transferring { RouteAvailable = RouteStatuses.Blocked; ParentMultiShuttle.ArrivedAtPickStationConvPosB(new PickDropStationArrivalEventArgs(LocationB.LocName, (Case_Load)LocationB.ActiveLoad, Elevator, 1)); } }
//void sensor_OnLeave2(DematicSensor sender, Load load) //{ // if (infeedInProgress) //This doesn't do anything! // { // RouteAvailable = RouteStatuses.Blocked; // } //} public void sensor_OnEnterA(DematicSensor sender, Load load) { if (TransportSection.Route.Loads.Count == 2) { load.Stop(); psTimeoutTimer.Stop(); psTimeoutTimer.Reset(); RouteAvailable = RouteStatuses.Blocked; ParentMultiShuttle.ArrivedAtPickStationConvPosA(new PickDropStationArrivalEventArgs(LocationA.LocName, (Case_Load)load, Elevator, 2)); } else { ParentMultiShuttle.ArrivedAtPickStationConvPosA(new PickDropStationArrivalEventArgs(LocationA.LocName, (Case_Load)load, Elevator, 1)); } }