#ifndef ROTARYENCODER_BEHAVIOUR_h #define ROTARYENCODER_BEHAVIOUR_h #include "Arduino.h" #include "Behaviours.h" #include <WallVis.h> class RotaryEncoderUpdated : public Behaviour { /* * Class that defines a behaviour that publishes a * ButtonPressed message to the input topic of the * MQQT broker */ WallVis* _node; public: RotaryEncoderUpdated(WallVis* node, String name = "RotaryEncoderUpdated") : Behaviour(name), _node(node){ } char* args() {return "<String rotaryEncoderId> <int position>"; }; String start(String args) { //This is where you do your stuff for a simple behaviour int index = args.indexOf(" "); String encoder = ""; String position = ""; if ( index > 0 ) { encoder = args.substring(0, index); position = args.substring(index+1); } else { return "RotaryEncoderUpdated behaviour args error!"; } String str = "{\"id\":\"" + String(_node->getId()) + "\",\"Input\":{\"type\":\"" + String(name()) + "\",\"encoder\":\"" + encoder + "\",\"position\":\"" + position + "\"}}"; _node->announce(str); return "RotaryEncoderUpdated behaviour " + _name + " with (" + args + ")"; } }; #endif