de.wenzlaff.twusb.schnittstelle
Class TWUsb

java.lang.Object
  extended by de.wenzlaff.twusb.schnittstelle.TWUsb
All Implemented Interfaces:
TWUsbKonstante

public class TWUsb
extends java.lang.Object
implements TWUsbKonstante

Java Schnittstelle zum USB K8055 USB Experiment Interface Board der Firma:

Velleman Components NV
Legen Heirweg 33
9890 Gavere
Belgium Europe
http://www.velleman.be
http://www.velleman-kit.com

Dieses Board hat:
-5 Eingänge
-8 digitale Ausgänge
-2 analoge Eingänge
-2 analoge Ausgänge

Es muss die: TWUsb.dll im Windows/System32 Verzeichnis liegen.

Java Version > 1.5
Die Nutzung ist ganz einfach. Alle Funktionen der TWUsb Klasse sind static Methoden.

Folgende drei Dinge sind immer nötig:

1. Das öffnen des Device mit der auf dem Board eingestellten Adresse, oder mit Auto Search
2. Das ausführen eines oder mehrere Befehle
3. Das schließen des Device

z.B.:

 TWUsb.OpenDevice(TWUsb.ADDRESSE_0);
 
 TWUsb.SetAllDigital();
 
 TWUsb.CloseDevice();
 

Since:
24.10.2004
Version:
2.4
Author:
Thomas Wenzlaff
See Also:
www.wenzlaff.de

Field Summary
 
Fields inherited from interface de.wenzlaff.twusb.schnittstelle.TWUsbKonstante
ABFRAGE_INTERVAL_1_SEKUNDEN, ABFRAGE_INTERVAL_10_SEKUNDEN, ABFRAGE_INTERVAL_100_MILLISEKUNDEN, ABFRAGE_INTERVAL_5_SEKUNDEN, ABFRAGE_INTERVAL_500_MILLISEKUNDEN, ADDRESSE_0, ADDRESSE_1, ADDRESSE_2, ADDRESSE_3, ADDRESSE_AUTO_SEARCH, ANALOGER_AUSGABE_KANAL_1, ANALOGER_AUSGABE_KANAL_2, ANALOGER_EINGABE_KANAL_1, ANALOGER_EINGABE_KANAL_2, COUNTER_KANAL_1, COUNTER_KANAL_2, DATA_FEHLER, DEVICE_IS_CONNECT, DEVICE_NOT_CONNECT, DEVICE_NOT_FOUND, DIGITALER_AUSGABE_KANAL_1, DIGITALER_AUSGABE_KANAL_2, DIGITALER_AUSGABE_KANAL_3, DIGITALER_AUSGABE_KANAL_4, DIGITALER_AUSGABE_KANAL_5, DIGITALER_AUSGABE_KANAL_6, DIGITALER_AUSGABE_KANAL_7, DIGITALER_AUSGABE_KANAL_8, DIGITALER_EINGABE_KANAL_1, DIGITALER_EINGABE_KANAL_2, DIGITALER_EINGABE_KANAL_3, DIGITALER_EINGABE_KANAL_4, DIGITALER_EINGABE_KANAL_5, DIGITALER_EINGABE_KANAL_AN, DIGITALER_EINGABE_KANAL_AUS, DIGITALER_EINGABE_KANAL_TASTE_GEDRUECKT, DIGITALER_EINGABE_KANAL_TASTE_NICHT_GEDRUECKT, MAX_DATA, MAX_ENTPRELL_ZEIT, MIN_DATA, MIN_ENTPRELL_ZEIT, START_IN_1_MINUTE, START_IN_1_SEKUNDE, START_IN_10_MINUTEN, START_IN_10_SEKUNDEN, TWUSB_DLL_NAME, VERSION_TWUSB
 
Method Summary
static void ClearAllAnalog()
          Löscht alle beiden analogen Kanäle.
static void ClearAllDigital()
          Schaltet alle digitalen 8 Ausgänge (rote Leuchtdioden) aus.
static void ClearAnalogChannel(int pvKanal)
          Löscht einen der beiden analogen Ausgabe Kanäle d.h. setzt ihn auf 0.
static void ClearDigitalChannel(int pvKanal)
          Schaltet den digitalen Ausgabe Kanal aus.
static void CloseDevice()
          Schliesst das Device.
static java.lang.String getInfo()
          Gibt einen Info String mit Copyright und Programmversion aus der DLL zurück.
static java.lang.String getVersion()
          Gibt einen Versions String direkt aus der TWUsb.DLL zurück.
static boolean isDllVersionValid()
          Testet ob diese Klasse mit der Version der entsprechenden TWUsb.dll zusammen passt.
static java.lang.String OpenDevice(int pvAdresse)
          Öffnet das USB Gerät über eine bekannte Adresse oder über Auto_Search.
static void OutputAllAnalog(int pvDatenFuerKanal1, int pvDatenFuerKanal2)
          Setzt beide analogen Ausgabe Kanäle gleichzeitig mit den gewünschten Daten.
static void OutputAnalogChannel(int pvKanal, int pvDaten)
          Schreibt in einen der beiden analogen Ausgangs Kanäle.
static int ReadAllDigital()
          Liest alle 5 digitalen Eingabe Kanäle.
static int ReadAnalogChannel(int pvKanal)
          Liest die Daten aus den beiden analogen Eingabe Kanälen ein.
static long ReadCounter(int pvCounterNr)
          Es stehen zwei 16 Bit Impulszähler zur Verfügung.
static boolean ReadDigitalChannel(int pvKanal)
          Liest einen der 5 digitalen Eingabe Kanäle Inp1 bis Inp5.
static void ResetCounter(int pvCounterNr)
          Löscht einen der beiden Counter.
static int SearchDevices()
          Diese Search Device Funktion sucht das verbundene Geräte.
static void SetAllAnalog()
          Setzt alle beiden analogen Kanäle auf den maximal Wert.
static void SetAllDigital()
          Schaltet alle digitalen 8 Ausgänge (rote Leuchtdioden) an.
static void SetAnalogChannel(int pvKanal)
          Setzt den analogen ausgabe Kanal auf den maximal Wert.
static void SetCounterDebounceTime(int pvCounterNr, int pvDebounceTime)
          Setzt die Entprell Zeit für einen der beiden Counter Kanäle.
static int SetCurrentDevice(int pvAdresse)
          Die Funktion stellt die Adresse des Gerät ein.
static void SetDigitalChannel(int pvKanal)
          Schaltet den digitalen Ausgabe Kanal an.
static void ShowDeviceVersionDialog()
          Zeigt den Versions Dialog mit Copyright und Treiberversion aus dem Device Treiber von Vellman an.
static void WriteAllDigital(int pvData)
          Schreibt in die digitalen Ausgänge die Daten.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getInfo

public static java.lang.String getInfo()
Gibt einen Info String mit Copyright und Programmversion aus der DLL zurück.

Unabhängig davon ob das Device zuvor mit OpenDevice geöffnet wurde oder nicht.

Returns:
String mit Copyright und Programmversion aus der DLL.

getVersion

public static java.lang.String getVersion()
Gibt einen Versions String direkt aus der TWUsb.DLL zurück.

Unabhängig davon ob das Device zuvor mit OpenDevice geöffnet werden oder nicht.

Returns:
String mit Versions Information.

isDllVersionValid

public static boolean isDllVersionValid()
Testet ob diese Klasse mit der Version der entsprechenden TWUsb.dll zusammen passt.

Unabhängig davon ob das Device zuvor mit OpenDevice geöffnet werden oder nicht.

Returns:
boolean true wenn die Version der TWUsb.dll zu dieser Interface Klasse passt, sonst false.

ShowDeviceVersionDialog

public static void ShowDeviceVersionDialog()
                                    throws TWUsbException
Zeigt den Versions Dialog mit Copyright und Treiberversion aus dem Device Treiber von Vellman an.

Das Device muss zuvor mit OpenDevice geöffnet worden sein!

Throws:
TWUsbDeviceNotOpen - wenn das Device nicht zuvor mit OpenDevice geöffnet wurde.
TWUsbException

OpenDevice

public static java.lang.String OpenDevice(int pvAdresse)
                                   throws TWUsbException
Öffnet das USB Gerät über eine bekannte Adresse oder über Auto_Search.

Parameters:
pvAdresse - die Adresse der Karte. Eine von 5 möglichen Werten von TWUsb.ADDRESSE_0 bis TWUsb.ADDRESSE_4 und auch TWUsb.ADDRESSE_AUTO_SEARCH. Wird auf der Karte mit den Jumpern SK5 und SK6 wie folgt eingestellt:
  Addr   SK5      SK6
  0      on       on
  1      off      on
  2      on       off
  3      off      off
 

Wenn diese OpenDevice Funktion ohne Exception ausgeführt wurde, heißt das das die Verbindung zur DLL ok ist.

Das muß nicht bedeuten das das Board auch an den USB Port angeschlossen ist.

Nach dem absetzen der Befehle darf nicht TWUsb.CloseDevice vergessen werden.

Returns:
String mit der OK oder Fehlermeldung im Format:
Für OK:
OK: Ok Nachricht
Für Fehler:
ERROR: Fehlernummer Fehler Nachricht
Throws:
TWUsbException - bei ungültiger Adresse
TWUsbDeviceNotConnectException - wenn ein Fehler beim Connect auftrat.

CloseDevice

public static void CloseDevice()
Schliesst das Device.


SearchDevices

public static int SearchDevices()
                         throws TWUsbException
Diese Search Device Funktion sucht das verbundene Geräte.

Es wird die über die Pins SK5 und SK6 eingestellte Adresse zurückgeliefert.

-1 = TWUsb.DEVICE_NOT_FOUND

0 = Kein Gerät gefunden

TWUsb.ADDRESSE_0 (intern 1) = Gerät an Kartenadresse 0 gefunden

TWUsb.ADDRESSE_1 (intern 2) = Gerät an Kartenadresse 1 gefunden

TWUsb.ADDRESSE_2 (intern 4) = Gerät an Kartenadresse 2 gefunden

TWUsb.ADDRESSE_3 (intern 8) = Gerät an Kartenadresse 3 gefunden

Das Device muss zuvor mit Open Device und ADDRESSE_AUTO_SEARCH geöffnet werden. Z.B.: OpenDevice(TWUsb.ADDRESSE_AUTO_SEARCH); TWUsb.SearchDevices(); TWUsb.CloseDevice();

Wurde das Gerät nicht mit Open Device geöffnet, wird eine TWUsbDeviceNotOpen Exception geworfen und TWUsb.DEVICE_NOT_FOUND zurückgeliefert.

Das gilt für den Fall das eine Karte verbunden ist oder nicht.

Returns:
int die mit Pin SK5 und SK6 eingestellte Adresse. Das können folgende Konstanten sein: TWUsb.ADDRESSE_0 bis TWUsb.ADDRESSE_3 oder aber eine Summe (aus den internen Konstanten siehe oben) bei mehreren Karten (das habe ist aber noch nicht getestet, da ich nur eine Karte habe).
Throws:
TWUsbDeviceNotConnectException - wenn das Gerät nicht verbunden ist
TWUsbDeviceNotOpen - wenn das Gerät noch nicht erfolgreich mit OpenDevice geöffnet wurde, ob eine Karte verbunden wurde oder nicht
TWUsbException

SetCurrentDevice

public static int SetCurrentDevice(int pvAdresse)
                            throws TWUsbException
Die Funktion stellt die Adresse des Gerät ein.

Das Device muss zuvor mit OpenDevice geöffnet worden sein!

Parameters:
pvAdresse - int mit der Adresse die gesetzt werden soll.
Returns:
int mit der gültigen Geräteadresse die verbunden wurde oder aber eine Exception
Throws:
TWUsbDeviceNotConnectException - wenn kein Gerät mit dem Adressparameter gefunden wurde also das Gerät nicht angeklemmt wurde
TWUsbDeviceNotOpen - wenn das Device nicht zuvor mit OpenDevice geöffnet wurde.
TWUsbException - wenn die Adressanfrage Parameter ungültig sind.

WriteAllDigital

public static void WriteAllDigital(int pvData)
                            throws TWUsbException
Schreibt in die digitalen Ausgänge die Daten. Die Daten müssen zwischen TWUsb.MIN_DATA und TWUsb.MAX_DATA liegen.

Parameters:
pvData - die Daten die in die digitalen Ausgänge geschrieben werden. Die Daten müssen zwischen TWUsb.MIN_DATA und TWUsb.MAX_DATA liegen.
Throws:
TWUsbDeviceNotOpen - wenn das Device nicht zuvor mit OpenDevice geöffnet wurde.
TWUsbDatenException - bei ungültigen Daten. Die Daten müssen zwischen TWUsb.MIN_DATA und TWUsb.MAX_DATA liegen.
TWUsbException

SetAllDigital

public static void SetAllDigital()
                          throws TWUsbException
Schaltet alle digitalen 8 Ausgänge (rote Leuchtdioden) an.

Das Device muss zuvor mit OpenDevice geöffnet wurden sein.

Throws:
TWUsbDeviceNotOpen - wenn das Device nicht zuvor mit OpenDevice geöffnet wurde.
TWUsbException

ClearAllDigital

public static void ClearAllDigital()
                            throws TWUsbException
Schaltet alle digitalen 8 Ausgänge (rote Leuchtdioden) aus.

* Das Device muss zuvor mit OpenDevice geöffnet wurden sein, sonnst bleibt der Aufruf wirkungslos.

Throws:
TWUsbDeviceNotOpen - wenn das Device nicht zuvor mit OpenDevice geöffnet wurde.
TWUsbException

SetDigitalChannel

public static void SetDigitalChannel(int pvKanal)
                              throws TWUsbException
Schaltet den digitalen Ausgabe Kanal an.

Das Device muss zuvor mit OpenDevice geöffnet wurden sein.

Parameters:
pvKanal - einer der 8 digitalen Kanäle der angeschaltet werden soll. Mögliche Werte von TWUsb.DIGITALER_AUSGABE_KANAL_1 bis TWUsb.DIGITALER_AUSGABE_KANAL_8
Throws:
TWUsbException - bei ungültiger Kanalangabe
TWUsbDeviceNotOpen - wenn das Device nicht zuvor mit OpenDevice geöffnet wurde.

ClearDigitalChannel

public static void ClearDigitalChannel(int pvKanal)
                                throws TWUsbException
Schaltet den digitalen Ausgabe Kanal aus. Das Device muss zuvor mit OpenDevice geöffnet wurden sein.

Parameters:
pvKanal - einer der 8 Kanäle der ausgeschaltet werden soll. Mögliche Werte von TWUsb.DIGITALER_AUSGABE_KANAL_1 bis TWUsb.DIGITALER_AUSGABE_KANAL_8
Throws:
TWUsbException - bei ungültiger Kanalangabe
TWUsbDeviceNotOpen - wenn das Device nicht zuvor mit OpenDevice geöffnet wurde.

ReadAllDigital

public static int ReadAllDigital()
                          throws TWUsbException
Liest alle 5 digitalen Eingabe Kanäle. Das Device muss zuvor mit OpenDevice geöffnet wurden sein.

Returns:
int der Daten Wert der 5 Eingabe Kanälen.
Throws:
TWUsbDeviceNotOpen - wenn das Device nicht zuvor mit OpenDevice geöffnet wurde.
TWUsbException

ReadDigitalChannel

public static boolean ReadDigitalChannel(int pvKanal)
                                  throws TWUsbException
Liest einen der 5 digitalen Eingabe Kanäle Inp1 bis Inp5.

Das Device muss zuvor mit OpenDevice geöffnet wurden sein.

Parameters:
pvKanal - der Kanal 1-5 der gelesen werden soll. Mögliche Parameter sind TWUsb.DIGITALER_EINGABE_KANAL_1 bis TWUsb.DIGITALER_EINGABE_KANAL_5
Returns:
true wenn der Pegel high oder der Taster Inp1 ... Inp5 gedrückt wurde.
Throws:
TWUsbException - bei ungültigen Kanal oder bei ungültigen Eingabe Kanal
TWUsbDeviceNotOpen - wenn das Device nicht zuvor mit OpenDevice geöffnet wurde.

ReadAnalogChannel

public static int ReadAnalogChannel(int pvKanal)
                             throws TWUsbException
Liest die Daten aus den beiden analogen Eingabe Kanälen ein.

* Die Analog zu Digitalwandlung mit 8 Bit. Die Werte können über die Potis ATT1 für Kanal 1 und ATT2 für Kanal 2 verändert werden.

Das Device muss zuvor mit OpenDevice geöffnet wurden sein.

Parameters:
pvKanal - entweder Kanal 1 mit TWUsb.ANALOGER_EINGABE_KANAL_1 oder für Kanal 2 TWUsb.ANALOGER_EINGABE_KANAL_2.
Returns:
int der gelesenen Daten Wert zwischen 0-255 oder zwichschen TWUsb.MIN_DATA und TWUsbb.MAX_DATA.
Throws:
TWUsbException - bei ungültigen Eingabe Kanal
TWUsbDeviceNotOpen - wenn das Device nicht zuvor mit OpenDevice geöffnet wurde.

OutputAnalogChannel

public static void OutputAnalogChannel(int pvKanal,
                                       int pvDaten)
                                throws TWUsbException
Schreibt in einen der beiden analogen Ausgangs Kanäle.

Das Ergebnis wird in den PWM1 und PWM2 ausgegeben bzw. durch die Leuchtdioden LD9 und LD10 angezeigt.

Das Device muss zuvor mit OpenDevice geöffnet wurden sein.

Parameters:
pvKanal - der Kanal 1 mit TWUsb.ANALOGER_AUSGABE_KANAL_1 oder für Kanal 2 den TWUsb.ANALOGER_AUSGABE_KANAL_2
pvDaten - die Daten die in den Ausgangskanal geschrieben werden von 0-255 bez. von TWUsb.MIN_DATA und TWUsb.MAX_DATA das entspricht von 0 bis 5 Volt. Daten dazwischen können berechnet werden mit Daten/255 * 5 Volt
Throws:
TWUsbException - bei ungültigen Kanal oder Daten
TWUsbDeviceNotOpen - wenn das Device nicht zuvor mit OpenDevice geöffnet wurde.

OutputAllAnalog

public static void OutputAllAnalog(int pvDatenFuerKanal1,
                                   int pvDatenFuerKanal2)
                            throws TWUsbException
Setzt beide analogen Ausgabe Kanäle gleichzeitig mit den gewünschten Daten.

Das Device muss zuvor mit OpenDevice geöffnet wurden sein.

Parameters:
pvDatenFuerKanal1 - die Daten die auf dem analogen 1. Ausgang ausgegeben werden.
pvDatenFuerKanal2 - die Daten die auf dem analogen 2. Ausgang ausgegeben werden.
Throws:
TWUsbDatenException - bei falschen Daten
TWUsbException - bei falschen Kanal.
TWUsbDeviceNotOpen - wenn das Device nicht zuvor mit OpenDevice geöffnet wurde.

ClearAnalogChannel

public static void ClearAnalogChannel(int pvKanal)
                               throws TWUsbException
Löscht einen der beiden analogen Ausgabe Kanäle d.h. setzt ihn auf 0.

Das Device muss zuvor mit OpenDevice geöffnet wurden sein.

Parameters:
pvKanal - der Kanal der gelöscht werden soll. Mögliche Kanäle TWUsb.ANALOGER_AUSGABE_KANAL_1 oder TWUsb.ANALOGER_AUSGABE_KANAL_2
Throws:
TWUsbException - bei ungültigen Kanal
TWUsbDeviceNotOpen - wenn das Device nicht zuvor mit OpenDevice geöffnet wurde.

ClearAllAnalog

public static void ClearAllAnalog()
                           throws TWUsbException
Löscht alle beiden analogen Kanäle.

Das Device muss zuvor mit OpenDevice geöffnet wurden sein.

Throws:
TWUsbDeviceNotOpen - wenn das Device nicht zuvor mit OpenDevice geöffnet wurde.
TWUsbException

SetAnalogChannel

public static void SetAnalogChannel(int pvKanal)
                             throws TWUsbException
Setzt den analogen ausgabe Kanal auf den maximal Wert.

Das Device muss zuvor mit OpenDevice geöffnet wurden sein.

Parameters:
pvKanal - der Kanal der auf maximal Wert gesetzt werden soll.
Throws:
TWUsbException - bei ungültigen Kanal
TWUsbDeviceNotOpen - wenn das Device nicht zuvor mit OpenDevice geöffnet wurde.

SetAllAnalog

public static void SetAllAnalog()
                         throws TWUsbException
Setzt alle beiden analogen Kanäle auf den maximal Wert.

Das Device muss zuvor mit OpenDevice geöffnet wurden sein.

Throws:
TWUsbDeviceNotOpen - wenn das Device nicht zuvor mit OpenDevice geöffnet wurde.
TWUsbException

ReadCounter

public static long ReadCounter(int pvCounterNr)
                        throws TWUsbException
Es stehen zwei 16 Bit Impulszähler zur Verfügung.

Diese Funktion liest den Counter aus.

Das Device muss zuvor mit OpenDevice geöffnet wurden sein.

Parameters:
pvCounterNr - der Counter Kanal der gelesen wird. Gültige werte sind TWUsb.COUNTER_KANAL_1 oder TWUsb.COUNTER_KANAL_2
Returns:
long der Wert des Counters. Bei Fehler wird TWUsb.DATA_FEHLER zurückgeliefert.
Throws:
TWUsbException - bei ungültigen Counter Kanal.
TWUsbDeviceNotOpen - wenn das Device nicht zuvor mit OpenDevice geöffnet wurde.

ResetCounter

public static void ResetCounter(int pvCounterNr)
                         throws TWUsbException
Löscht einen der beiden Counter. D.h. setzt ihn auf 0.

Das Device muss zuvor mit OpenDevice geöffnet wurden sein.

Parameters:
pvCounterNr - der Counter Kanal TWUsb.COUNTER_KANAL_1 oder TWUsb.COUNTER_KANAL_2 der gelöscht werden soll.
Throws:
TWUsbException - bei ungültigen Counter Kanal
TWUsbDeviceNotOpen - wenn das Device nicht zuvor mit OpenDevice geöffnet wurde.

SetCounterDebounceTime

public static void SetCounterDebounceTime(int pvCounterNr,
                                          int pvDebounceTime)
                                   throws TWUsbException
Setzt die Entprell Zeit für einen der beiden Counter Kanäle.

Das Device muss zuvor mit OpenDevice geöffnet wurden sein.

Parameters:
pvCounterNr - der Counter Kanal TWUsb.COUNTER_KANAL_1 oder TWUsb.COUNTER_KANAL_2
pvDebounceTime - die entprell Zeit in ms. Es sind Werte von 0-5000 das sind Werte von TWUsb.MIN_ENTPRELL_ZEIT bis TWUsb.MAX_ENTPRELL_ZEITmöglich. Default: 2 ms Bei entprell Zeit von 0 sind ca. 2000 Zählungen pro Sekunde möglich.
Throws:
TWUsbException - bei ungültigen Counter Kanal oder entprell Zeit.
TWUsbDeviceNotOpen - wenn das Device nicht zuvor mit OpenDevice geöffnet wurde.



TWUsb 2.4 - © 2005-2007 by Thomas Wenzlaff

Anleitung und neueste Version auf www.wenzlaff.de

Java is a trademark or registered trademark of Sun Microsystems, Inc. in the US and other countries.
Copyright 1993-2007 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.