как использовать prepareWSM и sendWsm - PullRequest
0 голосов
/ 13 марта 2019

Я пользуюсь OMNeT ++ - 5.3 и Veins-4.7.1. Вот как я реализую свой код для отправки сообщения в режиме счетчика (я делаю то же самое с флудом)

    void Counter::sendMessage(std::string blockedRoadId)
{
    t_channel channel = dataOnSch ? type_SCH : type_CCH;
    WaveShortMessage* wsm = prepareWSM("data", dataLengthBits, channel, dataPriority, -1,2);
    wsm->setWsmData(blockedRoadId.c_str());
    sendWSM(wsm);

    sentMessage = true;
}
void Counter::handleSelfMsg(cMessage *msg)
{
 // for "data" and "beacon" self messages
 if ((!strcmp(msg->getName(), "data")) || (!strcmp(msg->getName(), "beacon"))) {
 BaseWaveApplLayer::handleSelfMsg(msg);
 return;
 }
 else { // for "rebroadcast" self messages
 // if the number of times a warning message is received exceeds the counterThreshold
 // configuration variable, do not rebroadcast.
 if (receivedMessages[atol(msg->getName())].size() >= (unsigned)counterThreshold)
 return;
 // if greater than threshold.. rebroadcast.
 sendWSM(receivedMessages[atol(msg->getName())][0]->dup());
 }
}

вот ошибки, которые я нахожу:

'dataPriority’ was not declared in this scope

‘sendWSM’ was not declared in this scope

Не могли бы вы мне помочь?

это код Counter.h

typedef std::vector<WaveShortMessage*> WaveShortMessages;
class Counter : public BaseWaveApplLayer
{
    public:
        virtual void initialize(int stage);
        virtual void receiveSignal(cComponent *source, simsignal_t signalID, cObject *obj);
    protected:
        TraCIMobility* traci;
        vector<WaveShortMessage*> warningMessages;
        map<long,WaveShortMessages> receivedMessages; // treeId, WSM vector
    protected:
        virtual void onBeacon(WaveShortMessage *wsm);
        virtual void onData(WaveShortMessage *wsm);
        virtual void handlePositionUpdate(cObject *obj);
        virtual void sendMessage(std::string blockedRoadId);
        virtual void handleSelfMsg(cMessage *msg)
...