dbg("fwe", "FE: The message was not acked => FAIL.\n");
signal MHControl.sendFailed(msg, 2);
signal LinkMonitor.brokenLink(call AMPacket.destination(msg));
+ } else {
+ signal LinkMonitor.refreshedLink(call AMPacket.destination(msg));
}
} else if (e != SUCCESS) {
dbg("fwe", "FE: ...but failed!\n");
#include "AM.h"
/**
- * LinkMonitor - Interface to signals broken links in the neighborhood.
+ * LinkMonitor - Interface to signals broken and used links in the neighborhood.
*
* @author Romain Thouvenin
*/
event void brokenLink(am_addr_t neighbor);
+ event void refreshedLink(am_addr_t neighbor);
+
}
}
}
+ event void LinkMonitor.refreshedLink(addr_t neighbor) {
+ int8_t i = get_route(neighbor);
+ if (i != -1) {
+ replace_info(i, &table[i].info);
+ }
+ }
+
void replace_info(uint8_t pos, const rt_info_t * route_info){
table[pos].info = *route_info;
table[pos].flags = FLAG_NEW;