如何在OMNeT++动画中隐藏已发送消息及自定义Test消息?
我来帮你搞定OMNeT++动画里隐藏消息的事儿,特别是你自定义的Test类型消息,分几种实用的场景给你说明:
方法一:仿真运行时临时隐藏(适合调试时快速调整)
这种方式不用改配置或代码,想临时隐藏消息的时候用最方便:
- 打开仿真界面后,先调出Message Filters面板(要是没看到,去顶部的
View菜单里找就能调出来) - 要是只想隐藏Test类型的消息,就在过滤器输入框里敲
!Test,这样所有Test消息就不会在动画里显示了 - 要是想直接隐藏所有已发送的消息(不管类型),直接勾选面板里的Hide sent messages选项就行,或者在过滤器里输入
!sent
方法二:通过配置文件永久设置(适合固定仿真场景)
如果每次仿真都要隐藏特定消息,直接在omnetpp.ini里配置更省心:
- 打开项目里的
omnetpp.ini文件 - 想全局隐藏Test消息,就加这行配置:
*.visualizer.messageFilter = "!Test" - 要是想隐藏所有已发送的消息,改成下面这样:
*.visualizer.messageFilter = "!sent" - 要是只想隐藏某个子模块之间发送的Test消息,可以指定具体模块路径,比如只让submoduleA和submoduleB之间的Test消息不显示:
*.submoduleA.visualizer.messageFilter = "!Test" *.submoduleB.visualizer.messageFilter = "!Test"
方法三:代码层面控制(适合动态场景)
如果需要根据逻辑动态决定是否显示消息,就在发送消息的代码里做控制:
- 发送Test消息的时候,给
send()方法加上SEND_OPTIONS_NO_DISPLAY参数,比如:
这样这条Test消息就不会出现在动画里了send(testMsg, "out", SEND_OPTIONS_NO_DISPLAY);
这些方法应该能满足你的需求,根据自己的场景选合适的就行~
内容的提问来源于stack exchange,提问作者Alina
相关产品推荐
相关产品推荐

