00001 #ifndef HSTORAGE_INCLUDED 00002 #define HSTORAGE_INCLUDED 00003 00004 #include <odem.h> 00005 00006 #include <list> 00007 #include "CraneRequestq.h" 00008 #include "Bath.h" 00009 00010 class SetOfRingStack; 00011 class Place; 00012 class Bin; 00013 class Res; 00014 00015 00016 00017 00018 class PlaceConfiguration { 00019 // Res-Funktionalität: zur Darstellung der Platzbelegung 00020 00021 Place *places[6]; // Res- Objekte mit Kapazität= 1 00022 // zur Auslastungsstatistik eines Platzes 00023 public: 00024 // Port - Synchronisationsobjekte 00025 // zur Registrierung der Plätze als Abstell- oder Kühlplätze 00026 Buff_head *parkingAirPlacesH; // synchronisiert: Dispatcher 00027 Buff_tail *parkingAirPlacesT; // synchronisiert: Crane 00028 Buff_head *parkingVentilatorPlacesH; // synchronisiert: Dispatcher 00029 Buff_tail *parkingVentilatorPlacesT; // synchronisiert: Furnace 00030 Buff_head *airChillPlacesH; // synchronisiert: Dispatcher 00031 Buff_tail *airChillPlacesT; // synchronisiert: Funace 00032 Buff_head *ventilatorChillPlacesH; // synchronisiert: Dispatcher 00033 Buff_tail *ventilatorChillPlacesT; // synchronisiert: Funace 00034 Buff_head *waterChillPlacesH; // synchronisiert: Dispatcher 00035 Buff_tail *waterChillPlacesT; // synchronisiert: Funace 00036 Buff_head *polymerChillPlacesH; // synchronisiert: Dispatcher 00037 Buff_tail *polymerChillPlacesT; // synchronisiert: Funace 00038 00039 Buff_head *blockedParkingPlacesH; // synchronisiert: Dispatcher 00040 Buff_tail *blockedParkingPlacesT; // synchronisiert: Crane 00041 00042 // zur Übergabe der ParkPlätze vom Dispatcher an Kran 00043 // nach Kranauftrag "INSTORAGE" 00044 Buff_head *takeOverPlacesH; 00045 Buff_tail *takeOverPlacesT; 00046 00047 int airChillRequests; // offene LuftAbkühlForderungen 00048 int ventilatorChillRequests;// offene VentilatorAbkühlForderungen 00049 int waterChillRequests; // offene WasserAbkühlForderungen 00050 int polymerChillRequests; // offene PolymerAbkühlForderungen 00051 00052 Histo* airBlocking; 00053 Histo* ventilatorBlocking; 00054 Histo* waterBlocking; 00055 Histo* polymerBlocking; 00056 Histo* transmissionBlocking; 00057 Histo* restPreWait; // restliche Vorabwartezeit von Paletten: mindestens 3h 00058 00059 Histo* ovenStartBlocking; 00060 Sum* craneMoves; 00061 Histo* craneStatistik; 00062 Histo* palettiesStatistik; 00063 00064 Sum* allBlocking; 00065 CraneRequestq* craneRequestQ; 00066 00067 PlaceConfiguration(char *id, CraneRequestq *cReq); 00068 00069 //Parkplatzverwaltung 00070 Place* getNextFreeParkingPlace(); 00071 Place* getNextFreeParkingVentilatorPlace(); 00072 Place* findNextParker(); 00073 void parking(Place* pl, SetOfRingStack* p); 00074 void stopParking(Place *pl); 00075 void takeOver(Place *pl); 00076 00077 //Abschreckplatzverwaltung 00078 Place* getNextFreeWaterChillPlace(); 00079 Place* getNextFreePolymerChillPlace(); 00080 Place* getNextFreeAirChillPlace(); 00081 Place* getNextFreeVentilatorChillPlace(); 00082 void reservationPlaceFor(Place *pl, ReserveType rType); 00083 Place* takeOut(); 00084 00085 //Abschreckung 00086 void chilling(Place* pl, SetOfRingStack *palette, BathType type, double serve); 00087 void stopChilling(Place *pl); 00088 void breakChilling(Place *pl); 00089 }; 00090 00091 #endif