Class WorkStation

    • Constructor Detail

      • WorkStation

        public WorkStation()
      • WorkStation

        public WorkStation​(int numInGroup)
    • Method Detail

      • init

        public void init()
      • enqueueOrProcess

        public void enqueueOrProcess​(Job j)
        Job 'j' arrives at a machine.
      • futureArrival

        public void futureArrival​(Job f,
                                  double arrivesAt)
        The machine is notified of the future arrival of the job f at a certain time. Note that f is not the job itself but a clone of this job with current operation advanced to this machine obtained with Job.getFuture().
      • removeFromQueue

        public void removeFromQueue​(Job j)
      • startProc

        protected void startProc​(PrioRuleTarget batch)
        Start processing the current batch/job.
      • notifyJobsOfProcStart

        protected void notifyJobsOfProcStart​(PrioRuleTarget batch)
      • depart

        protected void depart()
        Called when an operation of Job j is finished.
      • notifyJobsOfDepart

        protected void notifyJobsOfDepart​(PrioRuleTarget b)
      • selectAndStart

        public void selectAndStart()
        Selects the next batch from the queue and starts processing. Even though this method is public it should never be called externally unless you know exactly what you are doing.
      • selectAndStart0

        protected void selectAndStart0()
      • numJobsWaiting

        public int numJobsWaiting()
        Return the number of jobs waiting in queue, ready to be started immediately. This does not include the KeepIdleDummy. This means, the following equation holds: queue.size()==numJobsWaiting()+ numFutures()+1.
        See Also:
        numFutures()
      • numFutures

        public int numFutures()
        Returns the number of future jobs in the queue. This does not include the KeepIdleDummy.
        See Also:
        numJobsWaiting()
      • startedWorkInGroup

        public double startedWorkInGroup()
        How much work have all machines in this group to finish their current jobs.
      • againIdleIn

        public double againIdleIn()
      • againIdle

        public double againIdle()
      • workContent

        public double workContent​(boolean includeFutureJobs)
        Returns the sum of processing times of all operations currently waiting in this machine's queue.
      • getProcessedJob

        public PrioRuleTarget getProcessedJob​(int machIdx)
      • getSetupState

        public int getSetupState​(int machIdx)
      • setSetupMatrix

        public void setSetupMatrix​(double[][] setupMatrix)
      • getSetupMatrix

        public double[][] getSetupMatrix()
      • translateSetupState

        public int translateSetupState​(String s)
        Translates a setup state s in a numeric constant.
        Parameters:
        s - A setup state name.
        Returns:
        Numeric constant for s.
        See Also:
        setupStateToString(int)
      • setupStateToString

        public String setupStateToString​(int id)
        Provides a human-readable string for a numeric setup state.
        Parameters:
        id - The numeric setup id. This was usually (optionally) created before using translateSetupState(String)
        See Also:
        translateSetupState(String)
      • numFreeMachines

        public int numFreeMachines()
      • numBusy

        public int numBusy()
      • numInGroup

        public int numInGroup()
      • shop

        public Shop shop()
      • index

        public int index()
      • setBatchForming

        public void setBatchForming​(BatchForming formBatch)
      • setBatchSequencingRule

        public void setBatchSequencingRule​(PR batchSequencingRule)
      • getBatchSequencingRule

        public PR getBatchSequencingRule()