package de.ctdo.bunti.model; import de.ctdo.bunti.dmx.DMX; import de.ctdo.bunti.dmx.model.DMXChannel; import org.codehaus.jackson.annotate.JsonIgnore; 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); } @JsonIgnore @Transient public final int getRed() { return getChannelValueByName(CHANNEL_RED); } @JsonIgnore @Transient public final int getGreen() { return getChannelValueByName(CHANNEL_GREEN); } @JsonIgnore @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(); } }