通过cmessage -Omnet 发送数组
Sending Array through CMessage - OMNET++
我正在尝试制作结构并使用send()命令将其数据发送到应用程序/MAC层。现在,我面临的问题是,send()仅允许cmessage对象/指针作为参数。这是使项目陷入困境的问题。
到目前为止我尝试过的事情是:
- 从cmessage继承(但是如何处理数组?)
- 超载handlecommand函数,但再次发送()不允许发送数组。
任何帮助将不胜感激。谢谢!
OMNeT++
中的一个人可以定义自己的消息。该定义可以使用嵌入式类型(int,double,string,...)以及自己的类型。
假设您要发送Foo.h
中定义的Foo
的实例:
// Foo.h
#ifndef _FOO_H
#define _FOO_H
class Foo {
public:
int x;
};
#endif
您应该使用.msg
扩展名创建一个新文件,例如TestMsg.msg
:
// TestMsg.msg
cplusplus {{
#include "Foo.h"
}}
class noncobject Foo;
message TestMsg {
Foo oneObject;
Foo tab[10]; // example of fixed-size array
}
建立项目后,将创建新的C 文件(TestMsg_m.h
和TestMsg_m.cc
)。这些文件包含从cMessage
继承的TestMsg
类的定义。TestMsg
类具有所有需要的设置并获取方法。
参考:Omnet 仿真手册,第6章
这是对我有用的实现:
namespace inet;
struct NodeM
{
int type;
string description;
double coords[3];
};
// TODO generated message class
//
message Signal extends cMessage {
NodeM Result[500];
int sizeRes;
NodeM RedQ[500];
int sizeRed;
}
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 将数组的地址分配给变量并删除
- 从C++本机插件更新Vector3数组
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 数组索引的值没有增加
- 将对象数组的引用传递给函数
- 为char数组调整zlib-zpipe
- 2D数组来自文本输入,中间有空格
- std::向量与传递值的动态数组
- 在c++中用vector填充一个简单的动态数组
- 使用strcpy将char数组的元素复制到另一个数组
- 使用指针从C++中的数组中获取最大值
- C++使用整数的压缩数组初始化对象
- 告诉一个 const char 数组,除了编译时 C 样式的字符串外,它不以 '