Я пытаюсь интегрировать одну программу в OMNET и отправлять сообщения из метода, созданного в определенном классе. Этот метод вызывает другой метод внутри модуля. В следующем коде описывается то, что я пытаюсь сделать.
#include "Txcc.h"
Define_Module(Txcc);
Txcc::Txcc() {
// TODO Auto-generated constructor stub
}
Txcc::~Txcc() {
// TODO Auto-generated destructor stub
}
void Txcc::initialize()
{
// Am I tuc
ev << "XXXXX INITILIZING XXXXX\n";
}
void Txcc::handleMessage(cMessage *msg)
{
ev << " message received " << endl;
}
void Txcc::finish() {
printf("%s\n", " finishing ....");
}
// -----------------------------------------------------
void Txcc::submitMessageQueue() {
printf("%s\n", "***************************");
printf("%s\n", "Message submitted ...");
printf("%s\n", "***************************");
cMessage *Mess = new cMessage();
cSimpleModule::send(Mess,"out");
}
// --------------------------------------------------------
Кусок кода, который вызывает submitMessageQueue, является:..... Txcc Transmitter; Transmitter.submitMessageQueue();
Когда этот метод вызывается, симуляция падает с сообщением о следующем:
Ошибка при событии # 1, t = 0: (Txcc): нет такого вектора ворот или ворот: 'out'.
TRAPPING в приведенном выше исключении из-за опции конфигурации отладки на ошибках = истина. Готова ли отладчик? завершение вызова после вызова экземпляра 'cRuntimeError' what(): send()/sendDelayed(): (Txcc): нет таких векторов ворот или ворот: 'out'
Имитация завершена кодом выхода: 134
Может ли кто-нибудь помочь мне с некоторой информацией о том, как его исправить?
С уважением, Андре
Является ли ваш файл Txcc ned доступным выходным воротом?
как
simple Txcc{
gate:
output out;
}
убедитесь, что файл ned существует соответствующий выходной логический элемент, который вы назвали, когда вы используете send()
.