Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members

SetOfRingStack.h

Go to the documentation of this file.
00001 #ifndef SETOFRINGSTACK_INCLUDED
00002 #define SETOFRINGSTACK_INCLUDED
00003 
00004 #include <odem.h>
00005 
00006 #include "RingStack.h"
00007 #include "Bath.h"
00008 #include "Placement.h"
00009 
00010 #include <list>
00011 #include <cassert>
00012 
00013 
00014 class SetOfRingStack : public Msg { // Inhalt einer Palette
00015         std::list<RingStack*> stacks;
00016 
00017         int maxStacks;               // stacks on this palette, set acc. to the first stack
00018         int filledStacks;
00019         int noRings;
00020         double maxDiameterOnStack;
00021         double totalMass;
00022         bool flagForFirst;              // Anzeige für erste Palette eines Auftrages
00023         bool flagForMixed;              // Anzeige für eine gemischte Palette
00024 
00025 public:
00026         bool                    empty;          // true, die Palette ist leer
00027 
00028         SIMTIME                 warmingTime;    // Ofenausgang - Ofeneingang
00029         SIMTIME                 processingTime; // Austrittszeit - Ankunftszeit
00030         SIMTIME                 intialCoolTime; // Ofeneintrittszeit - Ankunftszeit
00031 
00032         SIMTIME                 entryTime;  // Ankunftszeit von Produktion
00033         SIMTIME                 loadTime;       // tatsächliche Platzierungszeit auf der Pufferstrecke
00034                                                                 // durch den Loader (weicht um Verweildauer im Inputpuffer
00035                                                                 // von entryTime ab!)
00036 
00037         long                    vno;            // Laufende Nummer über alle Paletten
00038 
00039         // Sollzeiten (eingelesen aus Lastdatei)
00040         SIMTIME                 ovenIn,
00041                                         ovenOut,
00042                                         waterIn,
00043                                         waterOut,
00044                                         polymerIn,
00045                                         polymerOut;
00046 
00047         // Zeitpunkte (ermittelt durch Simulation)
00048         SIMTIME                 simArriveDispatcher,    
00049                                         simOvenIn,                              // wird benutzt
00050                                         simOvenOut,                             // wird benutzt
00051                                         simWaterIn,
00052                                         simWaterOut,
00053                                         simPolymerIn,
00054                                         simPolymerOut;
00055 
00056         SetOfRingStack(long vn=0);
00057         
00058         BathType convert(const std::string& str);
00059 
00060         bool isFirstOfRequest() {return flagForFirst;};
00061         void setAsFirst() {flagForFirst= true;};
00062         void setAsMixed() {flagForMixed= true;};
00063 
00064         bool canAdd(RingStack* r);
00065         void add(RingStack* r);
00066         static int capacity(double diameter);
00067         double oventime() const;
00068         
00069         void finished();
00070 
00071         // Auftragsdaten
00072         Treatment* getTreatment() const {assert(!stacks.empty()); return stacks.front()->getTreatment();}
00073 
00074 
00075         BathType getBathType() { return getTreatment()->getBath(); } 
00076         const std::string& getMaterial() const {assert(!stacks.empty()); return stacks.front()->getMaterial();}
00077         double getMass() const;
00078 
00079         bool isCompatibleTo(SetOfRingStack* s) {
00080                 return (getTreatment() == s->getTreatment() &&
00081                                 getMaterial() == s->getMaterial());
00082         }
00083 
00084         const std::list<RingStack*>& getStacks() const {return stacks;}
00085         int noOfRings() const;
00086 
00087 private:
00088         XY* getPlace(RingStack* r);
00089 };
00090 
00091 #endif
00092 

Generated on Tue Apr 26 14:42:42 2005 for rollingmill by doxygen 1.3.6