我正在尝试创建一个struct并使用send()命令将其数据发送到Application / MAC层。现在我面临的问题是send()只允许cMessage对象/指针作为参数。这是一个让项目陷入困境的问题。
到目前为止我尝试过的事情是:
任何帮助都将非常感激。谢谢!
答案 0 :(得分:2)
在OMNeT++
中,可以定义自己的消息。该定义可以使用嵌入类型(int,double,string,...)以及自己的类型。
假设您要发送Foo
中定义的Foo.h
实例:
// 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
)。这些文件包含继承自TestMsg
的{{1}}类的定义。 cMessage
类需要set和get方法。
答案 1 :(得分:1)
这是对我有用的实现:
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;
}