Почему "как IRadio" требуется для подключения к RadioIn, чтобы остановить шлюз, не связанный с ошибкой родного брата? - PullRequest
0 голосов
/ 07 февраля 2019

Я создал простой узел, который передает данные на сетевой уровень BroadcastRouting, который затем просто пересылает их обратно.

Я получаю сообщение об ошибке: Gate 'radioIn' is not connected to sibling or parent module. Я исправил его, предоставив входной шлюзсвойство @directIn и создание физического уровня <default("Ieee802154UwbIrRadio")> like IRadio вместо просто Ieee802154UwbIrRadio

Почему это было исправлено?Я думал, что у Ieee802154UwbIrRadio уже есть радиоинтерфейс.

module Node
{
    @display("bgl=8;bgb=97,315");
    gates:
        input radioIn @directIn;
    submodules:
        Physical: <default("Ieee802154UwbIrRadio")> like IRadio {
            @display("p=41,74");
        }
        Link: Ieee802154Mac {
            @display("p=41,169");
        }
        Net: BroadcastRouting {
            @display("p=41,248");
        }
    connections allowunconnected:
        radioIn --> Physical.radioIn;
        Physical.upperLayerOut --> Link.lowerLayerIn;
        Physical.upperLayerIn <-- Link.lowerLayerOut;
        Link.upperLayerOut --> Net.fromMac;
        Link.upperLayerIn <-- Net.toMac;
}

1 Ответ

0 голосов
/ 08 февраля 2019

Для поддержания работоспособности концепции инкапсуляции радиоинфраструктура INET (точнее модуль, управляющий самой средой) ожидает, что ваш модуль Node имеет шлюз radioIn.Беспроводные сообщения будут доставлены в эти ворота с помощью вызовов directSend().Теперь, поскольку эти ворота не связаны с чем-либо снаружи, в то время как они, очевидно, связаны с шлюзом модуля Physical, OMNeT ++ выдает ошибку, поскольку это типичная ошибка.Вот почему вам явно нужно пометить шлюз аннотацией @directIn, чтобы отключить эту проверку.

Тот факт, что этот шлюз подключен (внутри) к шлюзу Physical.radioIn или что Ieee802154UwbIrRadio имеет логический элемент radioIn - это просто деталь реализации.Он должен не иметь значение, так как он находится внутри узла.

...