如何在OMNeT ++ / mixim中检查电池电量并发送传感器节点的数据

时间:2015-05-31 06:41:33

标签: omnet++

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

if (node1.check_battery() >= node2.check_battery()) {
    send(node1.out-->node2.in);
}

我如何以及在何处实施代码来检查条件?

由于

1 个答案:

答案 0 :(得分:0)

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

例如:

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;
};

您可以每1秒为您的传感器节点设置一条自我消息,以确保它们报告最新的电池电量。

在您的节点中,您可以执行与您的代码类似的操作:

    if (batteryMonitor->check_battery(this->myID) >= batteryMonitor->check_battery(otherNodeID)) {
        send(thisMessage, otherNode);
}