mirror of https://github.com/contiki-ng/mspsim
Updated to use state change from Chip + added method to change only specified leds
This commit is contained in:
parent
14ca3e1e22
commit
586420e75b
|
|
@ -44,7 +44,6 @@ package se.sics.mspsim.chip;
|
|||
|
||||
import se.sics.mspsim.core.Chip;
|
||||
import se.sics.mspsim.core.MSP430Core;
|
||||
import se.sics.mspsim.core.StateChangeListener;
|
||||
import se.sics.mspsim.util.Utils;
|
||||
|
||||
public class Leds extends Chip {
|
||||
|
|
@ -52,7 +51,6 @@ public class Leds extends Chip {
|
|||
private final int[] ledColors;
|
||||
|
||||
private int leds;
|
||||
private StateChangeListener stateListener;
|
||||
|
||||
public Leds(MSP430Core cpu, int[] ledColors) {
|
||||
super("Leds", cpu);
|
||||
|
|
@ -68,17 +66,25 @@ public class Leds extends Chip {
|
|||
|
||||
public void setLeds(int leds) {
|
||||
if (this.leds != leds) {
|
||||
int oldLeds = this.leds;
|
||||
this.leds = leds;
|
||||
fireStateChanged(oldLeds, leds);
|
||||
stateChanged(leds);
|
||||
if (DEBUG) log(ledColors.length <= 8 ? Utils.binary8(leds) : Utils.binary16(leds));
|
||||
}
|
||||
}
|
||||
|
||||
public void setLeds(int leds, boolean on) {
|
||||
if (on) {
|
||||
setLeds(this.leds | leds);
|
||||
} else {
|
||||
setLeds(this.leds & ~leds);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isLedOn(int led) {
|
||||
return (leds & (1 << led)) != 0;
|
||||
}
|
||||
|
||||
|
||||
public int getLedsColor(int led) {
|
||||
return ledColors[led];
|
||||
}
|
||||
|
|
@ -87,21 +93,6 @@ public class Leds extends Chip {
|
|||
return ledColors.length;
|
||||
}
|
||||
|
||||
private void fireStateChanged(int oldState, int newState) {
|
||||
StateChangeListener listener = this.stateListener;
|
||||
if (listener != null) {
|
||||
listener.stateChanged(this, oldState, newState);
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized void addStateChangeListener(StateChangeListener listener) {
|
||||
stateListener = StateChangeListener.Proxy.INSTANCE.add(stateListener, listener);
|
||||
}
|
||||
|
||||
public synchronized void removeStateChangeListener(StateChangeListener listener) {
|
||||
stateListener = StateChangeListener.Proxy.INSTANCE.remove(stateListener, listener);
|
||||
}
|
||||
|
||||
public int getModeMax() {
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue