尽管连接正确,NED 文件中的 OMNeT++ 语法错误 - 意外的“.”,需要 RIGHTARROW 或 LEFTARROW 或 DBLARROW

问题描述 投票:0回答:1

我正在使用 INET 和 MQTT-SN 实现在 OMNeT++ 中开发一个项目,我在 .ned 文件中遇到了意外的语法错误,但我似乎无法解决该错误。

在 WifiNetwork.ned 文件中,我定义了一个网络,其中多个发布者和订阅者连接到一个接入点,并且所有内容在语法上似乎都是正确的:

package mqttsn.simulations;

import inet.node.wireless.AccessPoint;
import inet.physicallayer.wireless.ieee80211.packetlevel.Ieee80211RadioMedium;
import inet.networklayer.configurator.ipv4.Ipv4NetworkConfigurator;
import inet.node.inet.WirelessHost;

network WifiNetwork
{
    @display("bgb=713,388");

    submodules:
        accessPoint: AccessPoint {
            @display("p=415,35");
        }
        radioMedium: Ieee80211RadioMedium {
            @display("p=60,42");
        }
        configurator: Ipv4NetworkConfigurator {
            @display("p=60,110");
        }
        //Define 10 publishers
        publisher[10]: WirelessHost {
            @display("p=207,140");
        }
        //Define 10 subscribers
        subscriber[10]: WirelessHost {
            @display("p=633,90");
        }
        //Define the server (MQTT or CoAP broker)
        server: WirelessHost {
            @display("p=415,190");
        }
    connections:
        //Connect publishers and subscribers to the access point
        for i=0..9 {
            publisher[i].wlan[0].upperLayerOut <--> accessPoint.radioIn[0];
            subscriber[i].wlan[0].upperLayerOut <--> accessPoint.radioIn[0];
        }
        //Connect access point to the server (the MQTT broker)
        accessPoint.radioIn[0] <--> server.wlan[0].upperLayerIn;
}

但是,OMNeT++ 在第 52 行报告以下错误:

syntax error, unexpected '.', expecting RIGHTARROW or LEFTARROW or DBLARROW

publisher[i].wlan[0].upperLayerOut <--> accessPoint.radioIn[0];

我尝试过的:

  1. 重建和清理 – 我已经多次清理和重建项目。构建完成后,控制台中出现 0 个错误和 0 个警告,但编辑器中仍然存在语法错误。
  2. 检查门名称 – 基于 AccessPoint.ned 文件,radioIn[] 是 AccessPoint 模块的有效门,wlan[] 是 WirelessHost 的有效接口。连接似乎有效。
  3. IDE 刷新 – 我已刷新项目,手动清除错误标记,并重新启动 OMNeT++ IDE,但错误仍然存在。

附加信息—— OMNeT++ 版本:6.0 & INET 版本:4.5

是否有其他人遇到过这样的问题:尽管进行了干净的构建,但错误标记仍然存在?是否与 IDE 或某些错误配置有关?

如有任何帮助或建议,我们将不胜感激!

syntax-error mqtt omnet++ inet
1个回答
0
投票

我的猜测是

upperLayerOut
是一个
output
门,而
radioIn
是一个
input
你不能用 two way 连接来连接输入和输出门。这意味着输入门也可以向输出门发送消息。这显然是错误的。

用途:

publisher[i].wlan[0].upperLayerOut --> accessPoint.radioIn[0];
© www.soinside.com 2019 - 2024. All rights reserved.