как использовать prepareWSM и sendWsm

#omnet #veins

#omnet #вены

Вопрос:

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

     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
  

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

это счетчик кода.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)
  

Комментарии:

1. Можете ли вы также опубликовать полный файл Counter.h здесь?

2. ошибка в counter.cc

3. Counter Наследуется от BaseWaveApplLayer ? Не могли бы вы отредактировать свой вопрос и добавить Counter.h а также Counter.ned ?

4. и в Counter.ned у меня есть: встроенный import org.car2x.veins.modules.application.ieee80211p.BaseWaveApplLayer; import org.car2x.veins.modules.application.ieee80211p.BaseWaveApplLayer; simple Counter extends BaseWaveApplLayer

5. Невозможно ответить на этот вопрос, не увидев ваш код полностью. В сообщении об ошибке, которое вы опубликовали, содержалась жалоба на использование вами символов, которые вы не объявляли. Да, части вашего кода, которые вы показываете здесь, действительно, не объявляют эти символы. Вы пытаетесь объявить их где-нибудь еще? Возможно. Все, что можно сказать наверняка, это то, что в коде, который вы нам раскрываете, они не объявляются. Это именно то, что говорит компилятор.