public class FlickerRenderer extends Object
| Modifier and Type | Field and Description |
|---|---|
static int |
FREQUENCY_DEFAULT
Default-Taktfequenz in Hz.
|
static int |
FREQUENCY_MAX
Maximale Taktfrequenz.
|
static int |
FREQUENCY_MIN
Minimale Taktfrequenz.
|
| Constructor and Description |
|---|
FlickerRenderer(String code)
ct.
|
| Modifier and Type | Method and Description |
|---|---|
void |
done(int iterations)
Wird immer dann aufgerufen, nachdem der Flicker-Code einmal komplett
an den TAN-Generator uebertragen wurde.
|
void |
paint(boolean b1,
boolean b2,
boolean b3,
boolean b4,
boolean b5)
Wird immer dann aufgerufen, wenn die 5 Balken der Flicker-Grafik aktualisiert
werden sollen.
|
void |
setFrequency(int hz)
Legt die Taktfrequenz in Hz fest.
|
void |
start()
Startet das Rendering des Flicker-Codes.
|
void |
stop()
Stoppt das Rendern.
|
void |
waitFor()
Kann verwendet werden, um den Aufrufer-Thread solange zu pausieren,
bis "stop()" aufgerufen wurde.
|
public static final int FREQUENCY_DEFAULT
public static final int FREQUENCY_MIN
public static final int FREQUENCY_MAX
public FlickerRenderer(String code)
code - der zu rendernde Flicker-Code.
Er wird von HBCI4Java ueber den Callback NEED_PT_TA uebergeben.
Etwa so:
case HBCICallback.NEED_PT_TAN: String flicker = retData.toString(); if (flicker != null && flicker.length() > 0) { MyFlickerRenderer = new FlickerRenderer(flicker) { // hier paint() ueberschreiben }; }
public void setFrequency(int hz)
hz - die zu verwendende Taktfrequenz.
Es werden nur Werte zwischen FREQUENCY_MIN und
FREQUENCY_MAX akzeptiert.public void start()
Da diese Funktion einen neuen Thread startet und somit sofort zurueckkehrt, kann es ggf. noetig sein, eine Warteschleife zu implementieren. Hierzu kann einfach die Funktion "waitFor()" aufgerufen werden. Sie pausiert solange, bis "stop()" augerufen wurde.
Beispiel:
FlickerRenderer renderer = new FlickerRenderer(meinCode) { public void paint(boolean b1,boolean b2,boolean b3,boolean b4,boolean b5) { // hier eigenen Code zum Rendern einbauen }
public void done(int iterations) { // Nach 20 Uebertragungen hoeren wir auf. if (iterations > 20) stop(); } };
renderer.start(); renderer.waitFor(); System.out.println("Code uebertragen");
public final void stop()
public void paint(boolean b1,
boolean b2,
boolean b3,
boolean b4,
boolean b5)
Die Default-Implementierung ist leer.
Diese Funktion muss auf jeden Fall ueberschrieben werden. Sonst kriegt man keinen Flicker-Code.
b1 - Balken 1. true=weiss, false=schwarzb2 - Balken 2. true=weiss, false=schwarzb3 - Balken 3. true=weiss, false=schwarzb4 - Balken 4. true=weiss, false=schwarzb5 - Balken 5. true=weiss, false=schwarzpublic void done(int iterations)
Die Default-Implementierung ist leer.
Fuer gewoehnlich wird die Funktion zur Darstellung nicht benoetigt. Sie kann aber zu Debugging-Zwecken verwendet werden oder zum automatischen Abbruch nach einer definierten Anzahl von Uebertragungen. Sie muss also nicht ueberschrieben werden.
Die Funktion wird direkt im Flicker-Thread aufgerufen. Sie sollte daher auf keinen Fall irgendwas aufwaendiges machen, da das zum Ausbremsen der Flicker-Uebertragung fuehren wuerde.
iterations - Anzahl der bisherigen Uebertragungen (beginnend bei 1 -
da die Funktion ja erst nach der ersten Uebertragung aufgerufen wird)public final void waitFor()
Copyright © 2018. All rights reserved.