我创造了我第一次的OMNeT ++ /静脉项目,但无法启动仿真。你能帮助我吗?
我想改变我的问题 - 有一个简单的方法来创建一个项目,类似于RSUExampleScenario脉,不是下静脉/例子/ MyFolder文件,但在一个单独的项目和工作区?而且我必须为它做什么步骤?
我想创建一个从脉类似RSUExampleScenario项目,但与其他方案,并使用其他的OMNeT ++模块。当我建立了我的项目下的静脉/例子/ MyFolder文件,并把我的新.ned文件下血管结构,它工作得很好。
现在,我创造了新的项目,其中包括与.ned和C ++ / h的文件的文件夹,文件夹一样连接(Connection.ned,Connection.cc,Connection.h,package.ned)和文件夹节点(CloudVehicleScenarioMessage.ned,Cloud.ned)和模拟夹cloudvehiclehi(omnetpp.ini)。
当我开始模拟我收到错误:
误差在模块(cCompoundModule)CloudVehicleScenarioMessage网络建立期间(ID = 1):类“连接”未发现 - 也许是其代码是未连接于,或类没有与Register_Class()注册,或在模块的情况下和信道,Define_Module()/ Define_Channel()。
我猜NED文件被加载,但在C ++文件中的类不能被发现,但我用Define_Module。云计算只是一个复合模块,没有任何自己的C ++编译器,它产生任何问题。连接是一个简单的模块,参照类Connection.cc,其中Define_Module()被调用,并且使错误而载入。我的所有文件夹,如节点或连接都包括在内,我能项目 - >属性 - >路径和Symbols->包括下看。
我已经尝试过重建的OMNeT ++(这里https://www.linkedin.com/grp/post/3801609-234767834告知),并定义命名空间我的课(这里Problem in defining a module in omnetpp告知),但它并没有帮助。
我证明了我的makefile文件和文件夹中有联系(这里https://groups.google.com/forum/#!topic/omnetpp/Cl48hVgkbQ0告知)。
CloudVehicleScenarioMessage.ned是我在omnetpp.ini网络。
节点/ CloudVehicleScenarioMessage.ned:
package cloudbasedcsw.nodes;
import cloudbasedcsw.nodes.ScenarioMobility;
import cloudbasedcsw.nodes.Cloud;
import cloudbasedcsw.connection.Connection;
network CloudVehicleScenarioMessage extends ScenarioMobility
{
@display("bgb=540,555");
submodules:
cloud[1]: Cloud {
@display("p=150,140;b=10,10,oval");
}
con: Connection {
@display("p=200,40;b=10,10,oval");
}
}
模块连接的斯内德文件:
连接/ Connection.ned
package cloudbasedcsw.connection;
simple Connection{
@class(CloudBasedCSW::Connection);
}
类连接,其无法找到:
连接/ Connection.cc
#include <Connection.h>
#include <VehicleListener.h>
#include <iostream>
using CloudBasedCSW::Connection;
Define_Module(CloudBasedCSW::Connection);
void Connection::initialize(int stage){
}
void Connection::connectToCloud(cModule* node){
}
void Connection::disconnectFromCloud(cModule* node){
}
Connection.h
#ifndef CONNECTION_H_
#define CONNECTION_H_
#include <omnetpp.h>
namespace CloudBasedCSW{
class Connection: public cSimpleModule{
public:
cModule* scenario;
void connectToCloud(cModule* node);
void disconnectFromCloud(cModule* node);
protected:
virtual void initialize(int stage);
private:
cModule* cloud;
int currentId;
int gateCloudInId;
int gateCloudOutId;
};
}
#endif /* CONNECTION_H_ */
我猜你的类Connection
是CloudBasedCSW
C ++命名空间。因此,在Connection.ned
你应该改变@class(Connection);
到@class(CloudBasedCSW::Connection);
。
我设法创建一个新的项目并运行它,如果没有这个错误。所以,我将分享我的教程。
如何创建的OMNeT ++项目,该项目采用静脉。
注:在你的C ++文件不使用的命名空间,对应于.ned文件,因为在C ++文件中的类就不会被发现(错误模块(cCompoundModule)网络安装过程中CloudVehicleScenarioMessage(ID = 1):类“车辆”不找到)。
例如,你已经vehicle.ned和vehicle.cc。 vehicle.cc包括类myNameSpace对象::车辆。 vehicle.ned不知道车辆所在的命名空间下myNameSpace对象。仅当一个类被在奈德文件经由@class(myNameSpace对象::车辆)中所定义,可以发现。
一个简单的方法来纠正这个错误被复制的.cc或全部C ++文件到静脉/ src目录/文件夹。使用这种技术,你编译认出你的类。