/*
* Please read the LICENSE file that is included with the source
* code.
*/
package se.nicklasgavelin.sphero.macro.command;
import se.nicklasgavelin.sphero.macro.MacroCommand;
import se.nicklasgavelin.util.ByteArrayBuffer;
import se.nicklasgavelin.util.Value;
/**
* @author Nicklas Gavelin, nicklas.gavelin@gmail.com, LuleƄ University of
* Technology
*/
public class FrontLED extends MacroCommand
{
private float brightness;
public static final float MIN_BRIGHTNESS = 0, MAX_BRIGHTNESS = 1.0F;
/**
* Create a front LED macro command with a specified brightness
*
* @param _brightness The brightness for the LED (MIN_BRIGHTNESS - MAX_BRIGHTNESS)
*/
public FrontLED( float _brightness )
{
super( MACRO_COMMAND.MAC_FRONT_LED );
this.setBrightness( _brightness );
}
/**
* Update the internal brightness value
*
* @param _brightness The internal brightness value (MIN_BRIGHTNESS - MAX_BRIGHTNESS)
*/
public void setBrightness( float _brightness )
{
this.brightness = Value.clamp( _brightness, MIN_BRIGHTNESS, MAX_BRIGHTNESS );
}
@Override
public byte[] getByteRepresentation()
{
ByteArrayBuffer bab = new ByteArrayBuffer( getLength() );
bab.append( getCommandID() );
bab.append( (int) ( this.brightness * 255.0F ) );
return bab.toByteArray();
}
}