Commit 0c298bb5 authored by Ioannis Papagiannopoulos's avatar Ioannis Papagiannopoulos Committed by Georgios Dagkakis

isInRoute made an CoreObject method that controls whether an activeObject is...

isInRoute made an CoreObject method that controls whether an activeObject is successor to a callerObject
parent 4707cf09
...@@ -696,6 +696,20 @@ class CoreObject(ManPyObject): ...@@ -696,6 +696,20 @@ class CoreObject(ManPyObject):
def canAccept(self, callerObject=None): def canAccept(self, callerObject=None):
pass pass
#===========================================================================
# method used to check whether the station is a successor of the caller
#===========================================================================
def isInRoute(self, callerObject=None):
thecaller=callerObject
# if the caller is not defined then return True. We are only interested in checking whether
# the station can accept whatever entity from whichever giver
if not thecaller:
return True
#check it the caller object is predecessor to the activeObject
if thecaller in self.previous:
return True
return False
# ======================================================================= # =======================================================================
# sorts the Entities in the activeQ of the objects # sorts the Entities in the activeQ of the objects
# ======================================================================= # =======================================================================
......
...@@ -966,11 +966,7 @@ class Machine(CoreObject): ...@@ -966,11 +966,7 @@ class Machine(CoreObject):
if self.isLocked: if self.isLocked:
return False return False
activeObjectQueue=self.Res.users activeObjectQueue=self.Res.users
# local flag that is set only if there is no callerObject or if thecaller is predecessor of the activeObject
theCallerIsPredecessor=False
thecaller=callerObject thecaller=callerObject
if callerObject==None or thecaller in self.previous:
theCallerIsPredecessor=True
# return True ONLY if the length of the activeOjbectQue is smaller than # return True ONLY if the length of the activeOjbectQue is smaller than
# the object capacity, and the callerObject is not None but the giverObject # the object capacity, and the callerObject is not None but the giverObject
if (self.operatorPool!='None' and (any(type=='Load' for type in self.multOperationTypeList)\ if (self.operatorPool!='None' and (any(type=='Load' for type in self.multOperationTypeList)\
...@@ -978,14 +974,14 @@ class Machine(CoreObject): ...@@ -978,14 +974,14 @@ class Machine(CoreObject):
return self.operatorPool.checkIfResourceIsAvailable()\ return self.operatorPool.checkIfResourceIsAvailable()\
and self.checkIfMachineIsUp()\ and self.checkIfMachineIsUp()\
and len(activeObjectQueue)<self.capacity\ and len(activeObjectQueue)<self.capacity\
and theCallerIsPredecessor\ and self.isInRoute(thecaller)\
and not self.entryIsAssignedTo() and not self.entryIsAssignedTo()
else: else:
# the operator doesn't have to be present for the loading of the machine as the load operation # the operator doesn't have to be present for the loading of the machine as the load operation
# is not assigned to operators # is not assigned to operators
return self.checkIfMachineIsUp()\ return self.checkIfMachineIsUp()\
and len(activeObjectQueue)<self.capacity\ and len(activeObjectQueue)<self.capacity\
and theCallerIsPredecessor\ and self.isInRoute(thecaller)\
and not self.entryIsAssignedTo() and not self.entryIsAssignedTo()
# ======================================================================= # =======================================================================
......
...@@ -152,7 +152,7 @@ class Queue(CoreObject): ...@@ -152,7 +152,7 @@ class Queue(CoreObject):
if(callerObject==None): if(callerObject==None):
return len(activeObjectQueue)<self.capacity return len(activeObjectQueue)<self.capacity
thecaller=callerObject thecaller=callerObject
return len(activeObjectQueue)<self.capacity and (thecaller in self.previous) return len(activeObjectQueue)<self.capacity and (self.isInRoute(thecaller))
# ======================================================================= # =======================================================================
# checks if the Queue can dispose an entity to the following object # checks if the Queue can dispose an entity to the following object
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment