This commit is contained in:
Lucas Pleß 2012-03-07 00:42:30 +01:00
parent d5084b1290
commit 99ae75b88f
6 changed files with 232 additions and 220 deletions

View File

@ -2,6 +2,7 @@ package de.ctdo.bunti.dao;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.Collections;
import java.util.List; import java.util.List;
import org.slf4j.Logger; import org.slf4j.Logger;
@ -28,7 +29,6 @@ public class BuntiDevicesDAOImpl implements BuntiDevicesDAO {
devices.add(new Par56Spot(deviceID++, 11, "Par56 Lampe 3")); devices.add(new Par56Spot(deviceID++, 11, "Par56 Lampe 3"));
devices.add(new Par56Spot(deviceID++, 16, "Par56 Lampe 4")); devices.add(new Par56Spot(deviceID++, 16, "Par56 Lampe 4"));
devices.add(new Strobe1500(deviceID++, 21, "Stroboskop 1")); devices.add(new Strobe1500(deviceID++, 21, "Stroboskop 1"));
devices.add(new Par56Spot(deviceID++, 508, "Par56 Lampe 5")); devices.add(new Par56Spot(deviceID++, 508, "Par56 Lampe 5"));
logger.debug("added dummy devices in DAO"); logger.debug("added dummy devices in DAO");
} }
@ -36,13 +36,18 @@ public class BuntiDevicesDAOImpl implements BuntiDevicesDAO {
@Override @Override
public final Collection<BuntiDMXDevice> getAllDMXDevices() { public final Collection<BuntiDMXDevice> getAllDMXDevices() {
List<BuntiDMXDevice> liste = new ArrayList<BuntiDMXDevice>(); List<BuntiDMXDevice> list = new ArrayList<BuntiDMXDevice>();
for (BuntiDevice device : devices) { for (BuntiDevice device : devices) {
if( device instanceof BuntiDMXDevice ) { if( device instanceof BuntiDMXDevice ) {
liste.add((BuntiDMXDevice) device); list.add((BuntiDMXDevice) device);
} }
} }
return liste; return list;
}
@Override
public final Collection<BuntiDevice> getAllDevices() {
return Collections.unmodifiableCollection(devices);
} }
@Override @Override

View File

@ -1,15 +1,17 @@
package de.ctdo.bunti.model; package de.ctdo.bunti.model;
import de.ctdo.bunti.dmx.DMX;
import de.ctdo.bunti.dmx.DMXChannel;
import de.ctdo.bunti.dmx.DMXChannels;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
import de.ctdo.bunti.dmx.*;
public abstract class BuntiDMXDevice extends BuntiDevice { public abstract class BuntiDMXDevice extends BuntiDevice {
private int startAddress; private int startAddress;
private long lastSendOut; private long lastSendOut;
private DMXChannels dmxChannels = new DMXChannels(); private final DMXChannels dmxChannels = new DMXChannels();
public BuntiDMXDevice(int deviceId, int startAddress, String name) { public BuntiDMXDevice(int deviceId, int startAddress, String name) {
super(deviceId, name); super(deviceId, name);
@ -34,6 +36,7 @@ public abstract class BuntiDMXDevice extends BuntiDevice {
/** /**
* Set channel value by given channel name. * Set channel value by given channel name.
*
* @param name The channel name to change the value. * @param name The channel name to change the value.
* @param value The channel value to set. * @param value The channel value to set.
* @return True on success, otherwise false * @return True on success, otherwise false
@ -50,6 +53,7 @@ public abstract class BuntiDMXDevice extends BuntiDevice {
/** /**
* Returns the channel value identified by channel name. * Returns the channel value identified by channel name.
*
* @param name The channel name to get the value from. * @param name The channel name to get the value from.
* @return The desired channel value. * @return The desired channel value.
*/ */
@ -61,6 +65,10 @@ public abstract class BuntiDMXDevice extends BuntiDevice {
return 0; return 0;
} }
/**
* Collect the DMX Channel Data with correct DMX512 calculated offsets
* @return The channel data with startaddress+offset of every channel
*/
public Map<Integer, Integer> getChannelData() { public Map<Integer, Integer> getChannelData() {
Map<Integer, Integer> map = new HashMap<Integer, Integer>(); Map<Integer, Integer> map = new HashMap<Integer, Integer>();
@ -92,6 +100,12 @@ public abstract class BuntiDMXDevice extends BuntiDevice {
return true; return true;
} }
/**
* Add a channel to this DMX Device
* used internally by subclasses to define their structure
* @param channel DMXChannel to add (name and offset)
* @return True on success, false otherwise.
*/
public final boolean addChannel(DMXChannel channel) { public final boolean addChannel(DMXChannel channel) {
return dmxChannels.addChannel(channel); return dmxChannels.addChannel(channel);
} }

View File

@ -49,6 +49,7 @@ public abstract class BuntiDevice {
/** /**
* The the internal options corresponding to the given Key Value Map * The the internal options corresponding to the given Key Value Map
*
* @param options The options Map. * @param options The options Map.
* @return True on success. False otherwise. * @return True on success. False otherwise.
*/ */

View File

@ -2,7 +2,7 @@ package de.ctdo.bunti.model;
import java.util.Map; import java.util.Map;
public class BuntiSwitchingDevice extends BuntiDevice { public abstract class BuntiSwitchingDevice extends BuntiDevice {
public BuntiSwitchingDevice(int deviceId, String deviceName, long lastChanged) { public BuntiSwitchingDevice(int deviceId, String deviceName, long lastChanged) {
@ -13,17 +13,6 @@ public class BuntiSwitchingDevice extends BuntiDevice {
super(deviceId, deviceName); super(deviceId, deviceName);
} }
@Override
public void switchOff() {
// TODO Auto-generated method stub
}
@Override
public void switchOn() {
// TODO Auto-generated method stub
}
@Override @Override
public final boolean setValuesFromOptions(Map<String, Object> options) { public final boolean setValuesFromOptions(Map<String, Object> options) {
@ -31,6 +20,4 @@ public class BuntiSwitchingDevice extends BuntiDevice {
return false; return false;
} }
// zum Beispiel Lampel, also nen Hostname und HTTP Krams hier rein
} }

View File

@ -24,18 +24,23 @@ public class Par56Spot extends BuntiDMXDevice {
public final void setColorRed(int value) { public final void setColorRed(int value) {
setChannelValueByName(CHANNEL_RED, value); setChannelValueByName(CHANNEL_RED, value);
} }
public final void setColorGreen(int value) { public final void setColorGreen(int value) {
setChannelValueByName(CHANNEL_GREEN, value); setChannelValueByName(CHANNEL_GREEN, value);
} }
public final void setColorBlue(int value) { public final void setColorBlue(int value) {
setChannelValueByName(CHANNEL_BLUE, value); setChannelValueByName(CHANNEL_BLUE, value);
} }
public final int getColorRed() { public final int getColorRed() {
return getChannelValueByName(CHANNEL_RED); return getChannelValueByName(CHANNEL_RED);
} }
public final int getColorGreen() { public final int getColorGreen() {
return getChannelValueByName(CHANNEL_GREEN); return getChannelValueByName(CHANNEL_GREEN);
} }
public final int getColorBlue() { public final int getColorBlue() {
return getChannelValueByName(CHANNEL_BLUE); return getChannelValueByName(CHANNEL_BLUE);
} }