DeciderUWBIREDSyncOnAddress.h

00001 /*
00002  * DeciderUWBIREDSyncOnAddress.cc
00003  * Author: Jerome Rousselot <jerome.rousselot@csem.ch>
00004  * Copyright: (C) 2008-2010 Centre Suisse d'Electronique et Microtechnique (CSEM) SA
00005  *              Wireless Embedded Systems
00006  *              Jaquet-Droz 1, CH-2002 Neuchatel, Switzerland.
00007  */
00008 
00009 #ifndef UWBIREDSYNCONADDRESS_H_
00010 #define UWBIREDSYNCONADDRESS_H_
00011 
00012 #include <vector>
00013 #include <map>
00014 #include <math.h>
00015 
00016 #include "Mapping.h"
00017 #include "AirFrame_m.h"
00018 #include "MacPkt_m.h"
00019 #include "Decider.h"
00020 #include "DeciderUWBIRED.h"
00021 
00022 using namespace std;
00023 
00024 class PhyLayerUWBIR;
00025 
00058 class DeciderUWBIREDSyncOnAddress: public DeciderUWBIRED {
00059 
00060 public:
00061   DeciderUWBIREDSyncOnAddress(DeciderToPhyInterface* iface,
00062         PhyLayerUWBIR* _uwbiface,
00063         double _syncThreshold, bool _syncAlwaysSucceeds, bool _stats,
00064         bool _trace, int _addr, bool alwaysFailOnDataInterference);
00065 
00066   virtual bool attemptSync(Signal* signal);
00067 
00068   virtual simtime_t processSignal(AirFrame* frame);
00069 
00070 protected:
00071   AirFrame* currFrame;
00072   int syncAddress;
00073 };
00074 
00075 #endif /* UWBIREDSYNCONADDRESS_H_ */