我想在基于Omnet的Veins中使用UDPBasicApp但我无法实现

时间:2015-09-30 09:08:09

标签: omnet++ inet

我想在静脉中实施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;
}

1 个答案:

答案 0 :(得分:0)

您要在同一模块中导入inet.applications.udpapp.UDPBasicBurstorg.car2x.veins.modules.nic.Nic80211p。这可能不会像你希望的那样工作:

简单来说,inet.*命名空间中的模块只希望与此命名空间中的其他模块交换消息。直到和包括静脉4a2,org.car2x.veins.*命名空间中的模块也是如此 - 有一个值得注意的例外:静脉4a2 TraCIScenarioManager将检查实例化模块是否使用inet 2.3.0 {{1} }模块作为其移动子模块。如果是,它将相应地移动模块。

这允许您在INET 2.3.0主机中使用静脉4a2移动性。