Ejemplo n.º 1
0
    def __init__(self, id, name, **kw):
        ManPyObject.__init__(self, id, name)
        self.objName = name
        #     lists that hold the previous and next objects in the flow
        self.next = []  # list with the next objects in the flow
        self.previous = []  # list with the previous objects in the flow
        self.nextIds = []  # list with the ids of the next objects in the flow
        self.previousIds = []  # list with the ids of the previous objects in the flow

        # lists to hold statistics of multiple runs
        self.Failure = []
        self.Working = []
        self.Blockage = []
        self.Waiting = []
        self.OffShift = []
        self.WaitingForOperator = []
        self.WaitingForLoadOperator = []
        self.Loading = []
        self.SettingUp = []
        self.OnBreak = []

        # list that holds the objectInterruptions that have this element as victim
        self.objectInterruptions = []

        # default attributes set so that the CoreObject has them
        self.isPreemptive = False
        self.resetOnPreemption = False
        self.interruptCause = None
        self.gatherWipStat = False
        # flag used to signal that the station waits for removeEntity event
        self.waitEntityRemoval = False
        # attributes/indices used for printing the route, hold the cols corresponding to the object (entities route and operators route)
        self.station_col_inds = []
        self.op_col_indx = None
        # if there is input in a dictionary parse from it
        from Globals import G

        G.ObjList.append(self)  # add object to ObjList
        # list of expected signals of a station (values can be used as flags to inform on which signals is the station currently yielding)
        self.expectedSignals = {
            "isRequested": 0,
            "canDispose": 0,
            "interruptionStart": 0,
            "interruptionEnd": 0,
            "loadOperatorAvailable": 0,
            "initialWIP": 0,
            "brokerIsSet": 0,
            "preemptQueue": 0,
            "entityRemoved": 0,
            "entityCreated": 0,
            "moveEnd": 0,
            "processOperatorUnavailable": 0,
        }
        # flag notifying the the station can deliver entities that ended their processing while interrupted
        self.canDeliverOnInterruption = False
        # keep wip stats for every replication
        self.WipStat = []
Ejemplo n.º 2
0
    def __init__(self, id, name, **kw):
        ManPyObject.__init__(self, id, name)
        self.objName = name
        #     lists that hold the previous and next objects in the flow
        self.next = []  #list with the next objects in the flow
        self.previous = []  #list with the previous objects in the flow
        self.nextIds = []  #list with the ids of the next objects in the flow
        self.previousIds = [
        ]  #list with the ids of the previous objects in the flow

        #lists to hold statistics of multiple runs
        self.Failure = []
        self.Working = []
        self.Blockage = []
        self.Waiting = []
        self.OffShift = []
        self.WaitingForOperator = []
        self.WaitingForLoadOperator = []
        self.Loading = []
        self.SettingUp = []
        self.OnBreak = []

        # list that holds the objectInterruptions that have this element as victim
        self.objectInterruptions = []

        #default attributes set so that the CoreObject has them
        self.isPreemptive = False
        self.resetOnPreemption = False
        self.interruptCause = None
        self.gatherWipStat = False
        # flag used to signal that the station waits for removeEntity event
        self.waitEntityRemoval = False
        # attributes/indices used for printing the route, hold the cols corresponding to the object (entities route and operators route)
        self.station_col_inds = []
        self.op_col_indx = None
        # if there is input in a dictionary parse from it
        from Globals import G
        G.ObjList.append(self)  # add object to ObjList
        # list of expected signals of a station (values can be used as flags to inform on which signals is the station currently yielding)
        self.expectedSignals = {
            "isRequested": 0,
            "canDispose": 0,
            "interruptionStart": 0,
            "interruptionEnd": 0,
            "loadOperatorAvailable": 0,
            "initialWIP": 0,
            "brokerIsSet": 0,
            "preemptQueue": 0,
            "entityRemoved": 0,
            "entityCreated": 0,
            "moveEnd": 0,
            "processOperatorUnavailable": 0
        }
        # flag notifying the the station can deliver entities that ended their processing while interrupted
        self.canDeliverOnInterruption = False
        # keep wip stats for every replication
        self.WipStat = []
Ejemplo n.º 3
0
    def __init__(self,
                 id=None,
                 name=None,
                 priority=0,
                 dueDate=0,
                 orderDate=0,
                 isCritical=False,
                 remainingProcessingTime=0,
                 remainingSetupTime=0,
                 currentStation=None,
                 status='Good',
                 **kw):
        ManPyObject.__init__(self, id, name)
        #         information on the object holding the entity
        #         initialized as None and updated every time an entity enters a new object
        #         information on the lifespan of the entity
        self.creationTime = 0
        self.startTime = 0  #holds the startTime for the lifespan
        #         dimension data of the entity
        self.width = 1.0
        self.height = 1.0
        self.length = 1.0
        #         information concerning the sorting of the entities inside (for example) queues
        self.priority = float(priority)
        self.dueDate = float(dueDate)
        self.orderDate = float(orderDate)
        #         a list that holds information about the schedule
        #         of the entity (when it enters and exits every station)
        self.schedule = []
        # the current station of the entity
        self.currentStation = currentStation
        #         values to be used in the internal processing of compoundObjects
        self.internal = False  # informs if the entity is being processed internally
        if isinstance(isCritical, unicode):
            self.isCritical = bool(int(isCritical))
        elif isinstance(isCritical, int):
            self.isCritical = bool(
                isCritical
            )  # flag to inform weather the entity is critical -> preemption
        else:
            self.isCritical = isCritical
        self.manager = None  # default value
        self.numberOfUnits = 1  # default value
        # variable used to differentiate entities with and entities without routes
        self.family = 'Entity'

        # variables to be used by OperatorRouter
        self.proceed = False  # boolean that is used to check weather the entity can proceed to the candidateReceiver
        self.candidateReceivers = [
        ]  # list of candidateReceivers of the entity (those stations that can receive the entity
        self.candidateReceiver = None  # the station that is finaly chosen to receive the entity
        # alias used for printing the Route
        self.alias = None
        self.remainingProcessingTime = remainingProcessingTime
        self.remainingSetupTime = remainingSetupTime
        self.status = status
Ejemplo n.º 4
0
 def __init__(self, id='', name='', **kw):
     ManPyObject.__init__(self, id, name)
     self.initialized = False
     # list that holds the objectInterruptions that have this element as victim
     self.objectInterruptions = []
     # alias used for printing the trace
     self.alias = None
     # list with the coreObjects IDs that the resource services
     self.coreObjectIds = []
     from Globals import G
     G.ObjectResourceList.append(self)
Ejemplo n.º 5
0
 def __init__(self,id='',name='',**kw):
     ManPyObject.__init__(self,id,name)
     self.initialized = False
     # list that holds the objectInterruptions that have this element as victim
     self.objectInterruptions=[]        
     # alias used for printing the trace
     self.alias=None
     # list with the coreObjects IDs that the resource services
     self.coreObjectIds=[]
     from Globals import G
     G.ObjectResourceList.append(self) 
Ejemplo n.º 6
0
 def __init__(self, id=None, name=None, priority=0, dueDate=0, orderDate=0, 
              isCritical=False, remainingProcessingTime=0,remainingSetupTime=0,currentStation=None,
              status='Good',**kw):
     ManPyObject.__init__(self,id,name)
     #         information on the object holding the entity
     #         initialized as None and updated every time an entity enters a new object
     #         information on the lifespan of the entity  
     self.creationTime=0
     self.startTime=0            #holds the startTime for the lifespan
     #         dimension data of the entity
     self.width=1.0
     self.height=1.0
     self.length=1.0
     #         information concerning the sorting of the entities inside (for example) queues
     self.priority=float(priority)
     self.dueDate=float(dueDate)
     self.orderDate=float(orderDate)
     #         a list that holds information about the schedule 
     #         of the entity (when it enters and exits every station)
     self.schedule=[]
     # the current station of the entity
     self.currentStation=currentStation
     #         values to be used in the internal processing of compoundObjects
     self.internal = False               # informs if the entity is being processed internally
     if isinstance(isCritical, unicode):
         self.isCritical=bool(int(isCritical))
     elif isinstance(isCritical, int): 
         self.isCritical=bool(isCritical)          # flag to inform weather the entity is critical -> preemption
     else:
         self.isCritical=isCritical
     self.manager=None                   # default value
     self.numberOfUnits=1                # default value
     # variable used to differentiate entities with and entities without routes
     self.family='Entity'
     
     # variables to be used by OperatorRouter
     self.proceed=False               # boolean that is used to check weather the entity can proceed to the candidateReceiver
     self.candidateReceivers=[]          # list of candidateReceivers of the entity (those stations that can receive the entity
     self.candidateReceiver=None         # the station that is finaly chosen to receive the entity
     # alias used for printing the Route
     self.alias=None
     self.remainingProcessingTime=remainingProcessingTime
     self.remainingSetupTime=remainingSetupTime
     self.status=status
Ejemplo n.º 7
0
 def __init__(self, id='',name='',victim=None,**kw):
     ManPyObject.__init__(self,id,name)
     self.victim=victim
     # variable used to hand in control to the objectInterruption
     self.call=False
     from Globals import G
     # G.ObjectInterruptionList.append(self)
     # append the interruption to the list that victim (if any) holds
     if self.victim:
         if isinstance(self.victim.objectInterruptions, list):
             self.victim.objectInterruptions.append(self)
     # list of expected signals of an interruption (values can be used as flags to inform on which signals is the interruption currently yielding)
     self.expectedSignals={
                             "victimOffShift":0,
                             "victimOnShift":0,
                             "victimStartsProcessing":0,
                             "victimEndsProcessing":0,
                             "isCalled":0,
                             "endedLastProcessing":0,
                             "victimIsEmptyBeforeMaintenance":0,
                             "resourceAvailable":0,
                           }
Ejemplo n.º 8
0
 def __init__(self, id='', name='', victim=None, **kw):
     ManPyObject.__init__(self, id, name)
     self.victim = victim
     # variable used to hand in control to the objectInterruption
     self.call = False
     from Globals import G
     # G.ObjectInterruptionList.append(self)
     # append the interruption to the list that victim (if any) holds
     if self.victim:
         if isinstance(self.victim.objectInterruptions, list):
             self.victim.objectInterruptions.append(self)
     # list of expected signals of an interruption (values can be used as flags to inform on which signals is the interruption currently yielding)
     self.expectedSignals = {
         "victimOffShift": 0,
         "victimOnShift": 0,
         "victimStartsProcessing": 0,
         "victimEndsProcessing": 0,
         "isCalled": 0,
         "endedLastProcessing": 0,
         "victimIsEmptyBeforeMaintenance": 0,
         "resourceAvailable": 0,
         "victimFailed": 0
     }