我想在静脉中实施UDPBASICBurst
应用,但我遇到了问题。我做了如下但我不知道我是否正确。有人能说清楚这件事吗?
import inet.applications.udpapp.UDPBasicBurst;
import org.car2x.veins.base.modules.*;
import org.car2x.veins.modules.nic.Nic80211p;
...
udpBasicBurst: UDPBasicBurst {
@display("p=130,56");
}`enter code here`
connections allowunconnected:
nic.upperLayerOut --> appl.lowerLayerIn;
nic.upperLayerIn <-- appl.lowerLayerOut;
nic.upperControlOut --> appl.lowerControlIn;
nic.upperControlIn <-- appl.lowerControlOut;
veinsradioIn --> nic.radioIn;
udpBasicBurst.udpOut --> nic.upperControlIn;
udpBasicBurst.udpIn <-- nic.upperControlOut;
}
import inet.applications.udpapp.UDPBasicBurst;
import org.car2x.veins.base.modules.*;
import org.car2x.veins.modules.nic.Nic80211p;
module Car
{
parameters:
string applType; //type of the application layer
string nicType = default("Nic80211p"); // type of network interface card
string veinsmobilityType; //type of the mobility module
gates:
input veinsradioIn; // gate for sendDirect
submodules:
appl: <applType> like org.car2x.veins.base.modules.IBaseApplLayer {
parameters:
@display("p=60,50");
}
nic: <nicType> like org.car2x.veins.modules.nic.INic80211p {
parameters:
@display("p=60,166");
}
veinsmobility: <veinsmobilityType> like org.car2x.veins.base.modules.IMobility {
parameters:
@display("p=130,172;i=block/cogwheel");
}
udpBasicBurst: UDPBasicBurst {
@display("p=130,56");
}
connections allowunconnected:
nic.upperLayerOut --> appl.lowerLayerIn;
nic.upperLayerIn <-- appl.lowerLayerOut;
nic.upperControlOut --> appl.lowerControlIn;
nic.upperControlIn <-- appl.lowerControlOut;
veinsradioIn --> nic.radioIn;
udpBasicBurst.udpOut --> nic.upperControlIn;
udpBasicBurst.udpIn <-- nic.upperControlOut;
}
答案 0 :(得分:0)
您要在同一模块中导入inet.applications.udpapp.UDPBasicBurst
和org.car2x.veins.modules.nic.Nic80211p
。这可能不会像你希望的那样工作:
简单来说,inet.*
命名空间中的模块只希望与此命名空间中的其他模块交换消息。直到和包括静脉4a2,org.car2x.veins.*
命名空间中的模块也是如此 - 有一个值得注意的例外:静脉4a2 TraCIScenarioManager
将检查实例化模块是否使用inet 2.3.0 {{1} }模块作为其移动子模块。如果是,它将相应地移动模块。
这允许您在INET 2.3.0主机中使用静脉4a2移动性。