public abstract class DeviceUnit extends NamedElement implements java.lang.Comparable<DeviceUnit>
Modifier and Type | Field and Description |
---|---|
protected int |
count
Die Gesamtzahl der benötigten IO-Pins am Mikrocontroller.
|
protected int |
ctrl_id
Die Mikrocontroller-ID.
|
protected int |
elapsed
Die verstrichene Gesamtzeit an Schaltticks im Mikrocontroller.
|
protected int |
elapsedCount
Die Zahl der Schaltaufträge.
|
protected int |
pin
Der Startpin, ab der sich dieses Gerät am Mikrocontroller befindet.
|
protected int |
unit_no
Die Gerätenummer.
|
name
Constructor and Description |
---|
DeviceUnit(Modell modell,
java.lang.String name)
Dieser Konstruktur initialisiert dieses Gerät in ein Modell und benennt es.
|
Modifier and Type | Method and Description |
---|---|
void |
addCommand(Batch batch)
Diese Methode fügt einen Schaltauftrag einem Verarbeitungsstapel hinzu
|
protected void |
addData(MrwMessage msg)
Diese Methode fügt einem Schaltauftrag Daten hinzu.
|
void |
addElapsed(int elapsed)
Diese Methode fügt dem Gerät eine Schaltzeit hinzu.
|
protected void |
addPinConfig(MrwMessage msg)
Diese Methode fügt einer Konfigurations-Meldung die IO-Pin-Belegung bei.
|
void |
clearBatchElement()
Diese Methode markiert diesem Gerät, dass die Kommandoverarbeitung abgeschlossen wurde.
|
int |
compareTo(DeviceUnit unit)
Diese Vergleichsmethode sorgt dafür, dass Geräte gemäß ihrer ansteigenden
Pin-Konfiguration sortiert werden.
|
abstract MrwMessage |
createConfigMessage()
Diese abstrakte Methode definiert das erzeugen einer Konfigurationsmeldung.
|
protected MrwMessage |
createMsg()
Diese Methode erzeugt eine CAN-Meldung und initialisiert diese mit den IDs
dieses Geräts.
|
boolean |
equals(java.lang.Object arg0) |
static DeviceUnit |
findDeviceUnit(int id)
Diese Methode sucht ein Gerät an Hand ihrer ID.
|
BatchElement |
getBatchElement()
Diese Methode gibt im Falle einer ausstehenden Kommandoverarbeitung das damit verbundene
BatchElement zurück. |
protected abstract Command |
getCommand()
Diese abstrakte Methode gibt das Schaltkommando zurück.
|
int |
getDeviceUnitNumber()
Diese Methode gibt die Gerätenummer zurück.
|
int |
getMicroControllerId()
Diese Methode gibt die Microcontroller-ID zurück.
|
Modell |
getModell()
Gibt das Modell dieses Abschnitts zurück.
|
double |
getSwitchTime(double quantum)
Diese Methode gibt die durchschnittliche Schaltzeit zurück.
|
int |
hashCode() |
boolean |
isProcessing()
Diese Methode meldet zurück, ob ein Kommando zur Verarbeitung verschickt wurde.
|
void |
setBatchElement(BatchElement element)
Diese Methode weist ein
BatchElement diesem Gerät zu. |
void |
setMicroControllerId(int ctrl_id,
int unit_no)
Diese Methode definiert für dieses Gerät die Controller-ID und die Gerätenummer.
|
void |
setPinConfiguration(int pin,
int count)
Diese Methode definiert den Startpin und die Anzahl der benötigten IO-Pins.
|
getLayoutInfo, getLogX, getLogY, getName, parseLayoutInfo, setLogX, setLogY
protected int ctrl_id
protected int unit_no
protected int pin
protected int count
protected int elapsed
protected int elapsedCount
elapsed
kann daraus die durchschnittliche Schaltzeit berechnet werden.public DeviceUnit(Modell modell, java.lang.String name)
modell
- Das Modell, zu dem dieses Gerät gehört.name
- Der Name dieses Geräts.protected abstract Command getCommand()
public abstract MrwMessage createConfigMessage()
MrwMessage
public final void setMicroControllerId(int ctrl_id, int unit_no)
ctrl_id
- Die zu setzende Controller-ID.unit_no
- Die zu setzende Gerätenummer.public final int getMicroControllerId()
public final int getDeviceUnitNumber()
public Modell getModell()
public static final DeviceUnit findDeviceUnit(int id)
id
- Die Geräte-ID.public final void setPinConfiguration(int pin, int count)
pin
- Der Startpin, ab dem der Mikrocontroller dieses Gerät verwaltet.count
- Die Zahl der benötigten IO-Pins.protected MrwMessage createMsg()
MrwMessage
protected void addPinConfig(MrwMessage msg)
msg
- protected void addData(MrwMessage msg)
msg
- Die CAN-Meldung, der Daten hinzugefügt werden sollen.public final void addCommand(Batch batch)
batch
- Der Kommandostapel.public final void addElapsed(int elapsed)
elapsed
- Die hinzuzufügende Schaltzeit als Zeitquantum. Dieses Zeitquantum
entspricht der Periodendauer eines Timerinterrupts auf dem Mikrocontroller. Ist
dieses Quantum 0, wird es nicht registriert.public final double getSwitchTime(double quantum)
quantum
- Das Timerquantum, dass der Berechnung zugrunde liegt.public final int compareTo(DeviceUnit unit)
compareTo
in interface java.lang.Comparable<DeviceUnit>
unit
- Das zu vergleichende Gerät.public boolean equals(java.lang.Object arg0)
equals
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object
public final void setBatchElement(BatchElement element)
BatchElement
diesem Gerät zu. Damit wird signalisiert, dass
ein Kommando verschickt wurde. Das BatchElement darf nicht null sein, ansonsten wird eine
UndefinedBatchElementException
geworfen.element
- Das mit dem Gerät verbundene BatchElement mit dem verschickten Kommando.UndefinedBatchElementException
- Falls das BatchElement null war.BatchElementDefinedException
- Falls schon ein BatchElement vorher definiert war.public void clearBatchElement()
BatchElement
wird ausgetragen.public boolean isProcessing()
public BatchElement getBatchElement()
BatchElement
zurück. Ist keine Kommandoverarbeitung ausstehend, wird eine
UndefinedBatchElementException
geworfen.BatchElement
.Copyright © 2011 all committers of this modelrailway project