/* ==================================================================
* Command.java - Jun 27, 2011 12:58:21 PM
*
* Copyright 2007-2011 SolarNetwork.net Dev Team
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
* 02111-1307 USA
* ==================================================================
* $Id$
* ==================================================================
*/
package net.solarnetwork.node.control.jf2.lata.command;
/**
* Enumeration of supported commands.
*
* @author matt
* @version $Revision$
*/
public enum Command implements CommandInterface {
GetVersionLong("v\r", true),
GetVersionShort("V\r", true),
StartResetMode("C\r"),
StartOperationalMode("O\r"),
SetSpeed("S4\r"),
SwitchOn("T%s26464\r"),
SwitchOff("T%s26400\r"),
SwitchStatus("T%s26500\r", true);
private String data;
private boolean response;
private Command(String data) {
this(data, false);
}
private Command(String data, boolean response) {
this.data = data;
this.response = response;
}
public byte[] getCommandData() {
return this.data.getBytes();
}
/**
* Get the command as a string, with the trailing carriage return stripped off.
*
* <p>This method is designed for debugging only. The {@link #getCommandData()}
* method should be used when actually communicating with the switch.</p>
*/
public String getData() {
return this.data.substring(0, this.data.length() - 1);
}
@Override
public boolean includesResponse() {
return response;
}
}