Omnet++ 如何在OMNeT+中检查电池电源并发送传感器节点的数据+/米西姆

Omnet++ 如何在OMNeT+中检查电池电源并发送传感器节点的数据+/米西姆,omnet++,Omnet++,我想在mixim framework节点Host80211{}下交换数据,但首先需要检查每个节点的电池电量,如示例代码所示: if (node1.check_battery() >= node2.check_battery()) { send(node1.out-->node2.in); } 如何以及在何处实现代码以检查条件 谢谢正如我在评论中解释的那样:您可以拥有一个中心实体,其他节点可以查询该实体,然后根据该实体做出发送决策。该中心实体可以是传感器网络中的另一个节点,也

我想在mixim framework节点Host80211{}下交换数据,但首先需要检查每个节点的电池电量,如示例代码所示:

if (node1.check_battery() >= node2.check_battery()) {
    send(node1.out-->node2.in);
}
如何以及在何处实现代码以检查条件


谢谢

正如我在评论中解释的那样:您可以拥有一个中心实体,其他节点可以查询该实体,然后根据该实体做出发送决策。该中心实体可以是传感器网络中的另一个节点,也可以只是节点可以实例化的一个类

例如:

class BatteryMonitor: public cSimpleModule
{
    public:
        BatteryMonitor();

        void report_battery(const std::string& nodeID, float batteryLevel,) 
        double check_battery(const std::string& nodeID);


    protected:
        std::map<std::string, double> batteryLevels;
};

听起来您需要一个中心实体,该实体具有网络概览,可以比较不同节点的电池电量,然后告诉他们该做什么?这就是我从你的模拟代码中推断出来的,这就是你想要实现的吗?实际上我是WSN的新手。我正在尝试在传感器节点上进行简单的编码。我的概念很简单。如果节点1比节点2有更多的能量,它将以节点1->节点2的形式发送数据,反之亦然。我需要模拟代码。感谢实际可行吗?首先,您需要确定MIXIM框架是否提供了这样一个能够感知不同电池电量的中心实体。如果是,则每个节点都会查询该中心实体,以了解另一个节点的电池电量,然后做出发送决定。如果没有这样的模块,那么您可能需要定义一个节点,您可以调用
服务器
,该节点包含一个电池电量表,并且每个节点都会定期向其提供电池电量,然后他们可以查询电池电量并做出进一步的决定……因为我不熟悉那些MIXIM模块,也许从一些现有的WSN节点示例开始对您很有用。如果你是一个完全的新手,那么从TicToc教程开始:先生,请你澄清一下,我把下面的代码放在哪里了?它是在无线节点的.CC文件中还是在mixim模块下的batterystats.CC模块中?我将代码放在wirelessNode.cc文件中,但它显示“节点未在此范围内声明?首先,您需要创建一个新模块,然后您的每个节点都应该有一个指向该模块的指针,以便能够查询它。在我的回答中,我在您的节点中写入了。。。
    if (batteryMonitor->check_battery(this->myID) >= batteryMonitor->check_battery(otherNodeID)) {
        send(thisMessage, otherNode);
}