void Parametertuner::handleJoystickInput(const sensor_msgs::JoyConstPtr& joy)
{
	if (!m_useJoystick)
		return;

	int buttonUp = 4;
	int buttonDown = 6;
	int buttonLeft = 5;
	int buttonRight = 7;

	if (m_buttonUp && !joy->buttons[buttonUp])
		moveSelectionRequested(UP);
	m_buttonUp = joy->buttons[buttonUp];

	if (m_buttonDown && !joy->buttons[buttonDown])
		moveSelectionRequested(DOWN);
	m_buttonDown = joy->buttons[buttonDown];

	if (m_buttonDec && !joy->buttons[buttonLeft])
		ValueChangeRequested(LEFT);
	m_buttonDec = joy->buttons[buttonLeft];

	if (m_buttonInc && !joy->buttons[buttonRight])
		ValueChangeRequested(RIGHT);
	m_buttonInc = joy->buttons[buttonRight];

}
void Parametertuner::handleJoystickInput(const sensor_msgs::JoyConstPtr& joy)
{
	if(!m_useJoystick)
		return;

	if(joy->buttons.size() < 8)
		return;

	int buttonUp = 4;
	int buttonDown = 5;
	int buttonLeft = 6;
	int buttonRight = 7;

	bool collapse = false;
	bool pressedUpLeft = joy->buttons[buttonUp] && joy->buttons[buttonLeft];
	if(m_buttonUpLeft && !pressedUpLeft)
	{
		expansionRequested(COLLAPSE);
		collapse = true;
	}
	m_buttonUpLeft = pressedUpLeft;

	if(m_buttonUp && !joy->buttons[buttonUp] && !collapse)
		moveSelectionRequested(UP);
	m_buttonUp = joy->buttons[buttonUp];

	if(m_buttonDown && !joy->buttons[buttonDown])
		moveSelectionRequested(DOWN);
	m_buttonDown = joy->buttons[buttonDown];

	if(m_buttonDec && !joy->buttons[buttonLeft] && !collapse)
		valueChangeRequested(LEFT);
	m_buttonDec = joy->buttons[buttonLeft];

	if(m_buttonInc && !joy->buttons[buttonRight])
		valueChangeRequested(RIGHT);
	m_buttonInc = joy->buttons[buttonRight];

}