Professional Documents
Culture Documents
#define Njl_H
#include "BaseWaveApplLayer.h"
#include "modules/mobility/traci/TraCIMobility.h"
#include "modules/stats/FranciscoStatistics.h"
#include <vector>
#include <map>
#include <string>
#include <list>
using Veins::TraCIMobility;
using Veins::AnnotationManager;
using std::vector;
using std::map;
#define SCHEDULED_REBROADCAST
typedef std::vector<WaveShortMessage*> WaveShortMessages;
// std::list<std::string> junctionIds;
std::map<std::string,Coord> junctionMap;
std::map<long,WaveShortMessages> receivedMessageMap;
std::vector<WaveShortMessage*> neighbors;
double hostToJunctionDistanceThreshold;
double sendWarningInterval;
double neighborLifetimeThreshold;
long indexOfAccidentNode;
simsignal_t beaconReceivedSignal;
simsignal_t newWarningReceivedSignal;
simsignal_t warningReceivedSignal;
simsignal_t messageReceivedSignal;
simtime_t lastDroveAt;
bool sentMessage;
protected:
virtual void initialize(int stage);
virtual void onBeacon(WaveShortMessage *wsm);
virtual void onData(WaveShortMessage *wsm);
virtual void handleSelfMsg(cMessage *msg);
virtual void handlePositionUpdate(cObject *obj);
#endif // Njl_H