00001 /* -*- mode:c++ -*- ******************************************************** 00002 * file: GilbertElliotSnr.h 00003 * 00004 * author: Marc Loebbers 00005 * 00006 * copyright: (C) 2004 Telecommunication Networks Group (TKN) at 00007 * Technische Universitaet Berlin, Germany. 00008 * 00009 * This program is free software; you can redistribute it 00010 * and/or modify it under the terms of the GNU General Public 00011 * License as published by the Free Software Foundation; either 00012 * version 2 of the License, or (at your option) any later 00013 * version. 00014 * For further information see file COPYING 00015 * in the top level directory 00016 *************************************************************************** 00017 * part of: framework implementation developed by tkn 00018 ***************************************************************************/ 00019 00020 #ifndef GE_SNR_H 00021 #define GE_SNR_H 00022 00023 #include "SnrEval.h" 00024 00025 00046 class GilbertElliotSnr : public SnrEval 00047 { 00048 Module_Class_Members( GilbertElliotSnr, SnrEval, 0 ); 00049 00050 public: 00052 virtual void initialize(int); 00053 virtual void finish(); 00054 00055 protected: 00056 00061 virtual void handleSelfMsg(cMessage*); 00062 00069 virtual void handleLowerMsgStart(AirFrame*); 00076 virtual void handleLowerMsgEnd(AirFrame*); 00077 00078 protected: 00079 00081 enum State{ 00082 GOOD, 00083 BAD 00084 }; 00085 00087 State state; 00088 00090 double meanGood; 00091 00093 double meanBad; 00094 00096 cMessage* stateChange; 00097 00098 00099 }; 00100 00101 #endif