Пользовательское сообщение для использования в TracIDemo11p в OMNeT ++, проект Veins

В проекте я должен использовать настраиваемое сообщение маяка. Требуемые параметры отличаются от параметров в WaveShortMessage. Я определил файл .msg и смог сгенерировать файлы _m.cc и _m.h. Чтобы использовать настраиваемое сообщение в TraCIDemo11p, я подумал о замене параметра объекта WSM параметром объекта настраиваемого сообщения в функции onBeacon (). Но это не сработает, поскольку BaseWaveApplLayer тоже использовал только объект WSM.

Итак, я создал еще один MyAppLayer.ned, содержимое которого было таким же, как и у TraCIDemo11p.ned, за исключением параметра sendWhileParking (который я удалил в MyAppLayer.ned), и написал соответствующие файлы .h и .cc для MyAppLayer.ned, посмотрев на структура файлов TraCIDemo11p.h / .cc. Кроме того, я тщательно включил все соответствующие файлы заголовков, включая файл _m.h пользовательского сообщения. Но это привело к множеству ошибок, таких как:

  1. scheduleAt () не определено в области видимости
  2. «MyMsg» не определяется в области действия. . . и тому подобное.

Пожалуйста, помогите мне с тем, как использовать собственное сообщение в TraCIDemo11p вместо WSM. Спасибо.


person Yashika Jain    schedule 30.03.2016    source источник
comment
scheduleAt является частью API OMNeT ++, а не VEINS. Не могли бы вы опубликовать, какую версию инструментов вы используете, и проверить, правильно ли вы включили библиотеки OMNeT ++? Кроме того, если вы используете OMNeT ++ 5, убедитесь, что вы используете совместимую версию VEINS, и убедитесь, что пространство имен установлено правильно.   -  person Rens van der Heijden    schedule 31.03.2016
comment
OMNeT ++ 4.6 и Veins 3.0 вместе с MiXiM 2.3 и SUMO 0.21.0. Заголовочный файл OMNeT ++ ‹omnetpp.h› включен.   -  person Yashika Jain    schedule 31.03.2016
comment
Но включается ли он во время компиляции? Из-за ошибок вы подразумеваете, что он не может найти файл omnetpp.h. То же самое касается ваших собственных сгенерированных файлов _m.h, хотя они обычно должны создаваться везде, где находится файл .msg, и, следовательно, также должны быть правильно включены.   -  person Rens van der Heijden    schedule 01.04.2016
comment
Полагаю, я правильно включил файлы. В случае _m.h указывается полный путь. Что ж, я попробую еще раз и посмотрю, исчезнет ли проблема. И в худшем случае, если это повторится, я спрошу еще раз, может быть, есть дополнительная информация. Спасибо.!   -  person Yashika Jain    schedule 02.04.2016


Ответы (1)


Прежде всего, вы должны добавить в свой файл следующий код

#include omnetpp.h 

и

using namespace omnetpp;

Наконец, вы должны унаследовать класс cSimpleModule, чтобы распознавать такие методы, как scheduleAt().

Например:

class className : cSimpleModule{
...
}
person sepideh    schedule 15.07.2019