int SendCapabilities::start(String args) { //This is where you do your stuff for a simple behaviour _node->announce_capabilities(); return "SendCapabilities behaviour " + _name; }; PingServer::PingServer(VizBlocks* node, String name = "PingServer") : Behaviour(name), _node(node) { _background = true; } void PingServer::update() { if (millis() > (_t+_interval)) { _t = millis(); _node->announce(str); } }; int PingServer::start(String args) { _background = true; _running = true; _t = millis(); str = "{\"id\":\"" + String(_node->getId()) + "\",\"PingServer\":{}}"; _node->announce(str); return "Pinging server"; }; void Link::update() { if (millis() > (_t+_timeoutInterval)) { String str = "{\"id\":\"" + String(_node->getId()) + "\",\"Unlink\":{\"peerId\":\"" + _peerId + "\"}}"; _node->announce(str); _peerId = ""; _running = false; } }; int Link::start(String args) { _running = true; if (args == name() || args.indexOf(" ")>0) { return "Invalid args (" + args + ") in behaviour " + name(); } _t = millis(); if (args == _peerId) { return "Link ping from (" + _peerId + ")"; } _peerId = args; String str = "{\"id\":\"" + String(_node->getId()) + "\",\"Link\":{\"peerId\":\"" + _peerId + "\"}}"; _node->announce(str); return "New link with (" + _peerId + ")"; }; char * Link::args() { return "<String peerId>"; };