我想在mixim框架节点Host80211 {}下交换数据,但它首先需要检查每个节点的电池电量,如示例代码所示:
if (node1.check_battery() >= node2.check_battery()) {
send(node1.out-->node2.in);
}
我如何以及在何处实施代码来检查条件?
由于
答案 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);
}