Skip to content
Snippets Groups Projects
ButtonBehaviours.h 2.14 KiB
Newer Older
#ifndef BUTTON_BEHAVIOUR_h
#define BUTTON_BEHAVIOUR_h
#include "Arduino.h"
#include "Behaviours.h"
Joe Revans's avatar
Joe Revans committed
#include <VizBlocks.h>
Matthew's avatar
Matthew committed
class ButtonPressed : public Behaviour
{
	/*
	 * Class that defines a behaviour that publishes a
	 * ButtonPressed message to the input topic of the
	 * MQQT broker
	 */
	VizBlocks* _node;
Matthew's avatar
Matthew committed
	ButtonPressed(VizBlocks* node, String name = "ButtonPressed")
	char* args();
	String start(String args);
Matthew's avatar
Matthew committed
class ButtonReleased : public Behaviour
{
	/*
	 * Class that defines a behaviour that publishes a
	 * ButtonReleased message to the input topic of the
	 * MQQT broker
	 */
	VizBlocks* _node;
Matthew's avatar
Matthew committed
	ButtonReleased(VizBlocks* node, String name = "ButtonReleased");
	char* args()
	String start(String args)
class ButtonClicked : public Behaviour
{
Matthew's avatar
Matthew committed
	/*
	 * Class that defines a behaviour that publishes a
	 * ButtonClicked message to the input topic of the
	 * MQQT broker
	 */
	VizBlocks* _node;
Matthew's avatar
Matthew committed
	ButtonClicked(VizBlocks* node, String name = "ButtonClicked");
	char* args()
	String start(String args);
class ButtonHeld : public Behaviour
{
Matthew's avatar
Matthew committed
	/*
	 * Class that defines a behaviour that publishes a
	 * ButtonLongPressed message to the input topic of the
	 * MQQT broker
	 */
	VizBlocks* _node;
Matthew's avatar
Matthew committed
	ButtonHeld(VizBlocks* node, String name = "ButtonHeld")
Matthew's avatar
Matthew committed
	/**
	   @brief What does this do?
	 */
Matthew's avatar
Matthew committed
	char* args()
	{
		return "<String buttonId>";
	};
Matthew's avatar
Matthew committed
	/**
	   @brief What does this do?
	 */
Matthew's avatar
Matthew committed
	String start(String args)
	{
		 //This is where you do your stuff for a simple behaviour
		String str = "{\"id\":\"" + String(_node->getId()) + "\",\"Input\":{\"type\":\"" + String(name()) + "\",\"button\":\"" + args + "\"}}";
		_node->announce(str);
Matthew's avatar
Matthew committed
		return "ButtonHeld behaviour " + _name + " with (" + args + ")";
	}
Matthew's avatar
Matthew committed
class ButtonTick : public Behaviour
{
	/*
	 * Class that defines a behaviour that publishes a
	 * ButtonRepeatPressed message to the input topic of the
	 * MQQT broker
	 */
	VizBlocks* _node;
Matthew's avatar
Matthew committed
	ButtonTick(VizBlocks* node, String name = "ButtonTick") :
		Behaviour(name), _node(node)
	{ }

Matthew's avatar
Matthew committed
	/**
	   @brief What does this do?
	 */
Matthew's avatar
Matthew committed
	char* args()
	{
		return "<String buttonId>";
	};
	String start(String args);