bunti/src/main/java/de/ctdo/bunti/model/Par56Spot.java

95 lines
2.6 KiB
Java

package de.ctdo.bunti.model;
import de.ctdo.bunti.dmx.DMX;
import de.ctdo.bunti.dmx.DMXChannel;
import javax.persistence.Entity;
import javax.persistence.Transient;
@Entity
public class Par56Spot extends BuntiDMXDevice {
private static final String CHANNEL_MODE = "mode";
private static final String CHANNEL_RED = "red";
private static final String CHANNEL_GREEN = "green";
private static final String CHANNEL_BLUE = "blue";
private static final String CHANNEL_SPEED = "speed";
public Par56Spot() {
super();
addChannels();
}
private void addChannels() {
int offset = 0;
addChannel(new DMXChannel(offset++, CHANNEL_MODE));
addChannel(new DMXChannel(offset++, CHANNEL_RED));
addChannel(new DMXChannel(offset++, CHANNEL_GREEN));
addChannel(new DMXChannel(offset++, CHANNEL_BLUE));
addChannel(new DMXChannel(offset, CHANNEL_SPEED));
}
public final void setRed(int value) {
setChannelValueByName(CHANNEL_RED, value);
}
public final void setGreen(int value) {
setChannelValueByName(CHANNEL_GREEN, value);
}
public final void setBlue(int value) {
setChannelValueByName(CHANNEL_BLUE, value);
}
@Transient
public final int getRed() {
return getChannelValueByName(CHANNEL_RED);
}
@Transient
public final int getGreen() {
return getChannelValueByName(CHANNEL_GREEN);
}
@Transient
public final int getBlue() {
return getChannelValueByName(CHANNEL_BLUE);
}
@Override
public final void switchOff() {
setChannelValueByName(CHANNEL_MODE, DMX.DMX_CHANNEL_VALUE_MIN);
setRed(DMX.DMX_CHANNEL_VALUE_MIN);
setGreen(DMX.DMX_CHANNEL_VALUE_MIN);
setBlue(DMX.DMX_CHANNEL_VALUE_MIN);
setChannelValueByName(CHANNEL_SPEED, DMX.DMX_CHANNEL_VALUE_MIN);
}
@Override
public final void switchOn() {
setChannelValueByName(CHANNEL_MODE, DMX.DMX_CHANNEL_VALUE_MIN);
setRed(DMX.DMX_CHANNEL_VALUE_MAX);
setGreen(DMX.DMX_CHANNEL_VALUE_MAX);
setBlue(DMX.DMX_CHANNEL_VALUE_MAX);
setChannelValueByName(CHANNEL_SPEED, DMX.DMX_CHANNEL_VALUE_MIN);
}
@Override
public final String toString() {
StringBuilder sb = new StringBuilder();
sb.append("Par56Spot ");
sb.append(getId());
sb.append(", ");
sb.append(getDeviceName());
sb.append(" [");
sb.append(getRed());
sb.append(",");
sb.append(getGreen());
sb.append(",");
sb.append(getBlue());
sb.append("]");
return sb.toString();
}
}