Модуль не найден в пути для модуля интерфейсной таблицы - PullRequest
0 голосов
/ 08 января 2020

Я получаю следующую ошибку

Модуль не найден по пути 'GPSSim.satell [0] .interfaceTable', определенному параметром 'GPSSim.s satellite [0] .wlan [0] .interfaceTableModule '- в модуле (inet :: InterfaceEntry) GPSSim.satell [0] .wlan [0] (id = 51), во время инициализации сети

Есть много кода, но я покажет те, которые я считаю важными. Если требуется больше кода, дайте мне знать, спасибо!

GPSSIM.ned Этот файл является сетевым файлом

network GPSSim
{
    parameters:

        int numOfSats; // Number of satellites

    submodules:

        satellite[numOfSats]: GPSSatellite {
            parameters:
                @display("p=505.835,100.085;r=10,,#707070;i=device/satellite_l");
        }

}

GPSS satellite.ned

module GPSSatellite extends StandardSatellite
{
    submodules:

        gpsApp[numGpsApps]: <default("GPSApp")> like IGPSApp {  //default("UdpApp")
            parameters:
                @display("p=100,284,row,60");
        }
}

StandardSatell.ned

module StandardSatellite extends Satellite
{
    parameters:
        @node; //because of MobilityBase initialization'
        @networkNode();
        int numRadios = default(1); 
        **.interfaceTableModule = default(absPath(".interfaceTable"));
        //wlan[*].mgmt.typename = default("Ieee80211MgmtAp");
        //wlan[*].interfaceTableModule = default(absPath(".interfaceEntry"));
        //wlan[*].mgmtType = default("Ieee80211MgmtAdhoc");  // use adhoc management

    submodules:

        interfaceTable: InterfaceTable {
            parameters:
                @display("p=407,69");
        }

        routingTable: Ipv4RoutingTable {
            parameters:
                @display("p=45,178");
                //IPForward = IPForward;
                //forwardMulticast = forwardMulticast;
                routingFile = routingFile;
        }
        wlan[numRadios]: <default("Ieee80211Interface")> like IWirelessInterface {
            parameters:
                @display("p=301.35,379.05;q=queue");
        }

        ext[numExtInterfaces]: <default("ExtInterface")> like IExternalInterface {
            parameters:
                @display("p=217,421,row,10;q=txQueue;i=block/ifcard");
        }

        networkLayer: NetworkLayerNodeBase {
            parameters:
                @display("p=226.8,198.45;q=queue");
        }
        lo0: LoopbackInterface {
            @display("p=78,406");
        }
        App: <default("UdpBasicBurst")> like IApp {
            @display("p=469.35,198.45");
        }
    connections allowunconnected:

        wlan[0].upperLayerOut --> networkLayer.radioIn[0];
        //ext[0].upperLayerOut --> networkLayer.radioIn[0];
        //lo0.upperLayerOut --> networkLayer.radioIn[0];

}

Когда я помещаю модуль таблицы интерфейсов в сеть верхнего уровня (GPSSim), я не получаю эта ошибка, но вместо этого я получаю еще одну ошибку, когда интерфейс уже зарегистрирован, причина этого именно потому, что я сделал это, так как я призываю каждый экземпляр спутника использовать одну и ту же интерфейсную таблицу.

Я не знаю, где go отсюда. Любая помощь будет принята с благодарностью! Заранее спасибо.

1 Ответ

0 голосов
/ 08 января 2020

Попробуйте изменить строку

**.interfaceTableModule = default(absPath(".interfaceTable"));

на:

interfaceTableModule = default("interfaceTable");

Параметр interfaceTableModule должен указывать на таблицу интерфейса в этом узле.

...