Отправка сообщения от узла к его соседу - PullRequest
0 голосов
/ 29 мая 2020

Я пытаюсь создать грид-сеть и отправлять сообщения. Мой узел выглядит следующим образом:

simple Node
{
    parameters:
        @display("i=misc/node");
        gates:
        inout up;
        inout left;
        inout down;
        inout right;
}

И я отправляю следующее сообщение:

if(this->gate("right$o")->isConnected())
        {
            send(msg,"right$o",k);
        }

Он не дает никаких ошибок сборки, но дает ошибку при моделировании. Что я делаю не так? Ошибка выглядит следующим образом:

send()/sendDelayed(): Scalar gate 'right$o' referenced with index -- in module (Node) GridNetwork.sensor[0] (id=2), at t=0s, event #1

1 Ответ

0 голосов
/ 29 мая 2020

В вашем примере Node есть элемент inout right, который является скалярным элементом inout, а не вектором. Это означает, что есть только один, и у него есть два входа: right$i и right$o, как вы пытаетесь использовать в своем примере.

Таким образом, вы должны заменить inout right на inout right[], а также создавать соединения от него к другим воротам. См. документацию OMNeT ++ по воротам .

...