AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Lernpaket: Experimente mit USB - FT232R USB UART
Thema durchsuchen
Ansicht
Themen-Optionen

Lernpaket: Experimente mit USB - FT232R USB UART

Ein Thema von mynamenixname · begonnen am 16. Jan 2010 · letzter Beitrag vom 8. Okt 2010
Antwort Antwort
mynamenixname

Registriert seit: 16. Jan 2010
2 Beiträge
 
#1

Lernpaket: Experimente mit USB - FT232R USB UART

  Alt 16. Jan 2010, 11:40
Hallo,
ich versuche zurzeit aus dem Franzis Lernpaket "Experimente mit USB" die in Visual Basic geschriebenen Beispielprogramme in Delphi nachzubauen, um die entsprechenden Funktionen selber nutzen zu können.
Es ist mir bereits gelungen mit Hilfe der "D2XXUnit.pas" einen Port zu öffnen und einen Ausgang zu schalten. Nun möchte ich deinen Eingang abfragen, woran ich leider scheitere.
Die Anleitung des Lernpaketes sagt folgendes dazu:
Zitat:
Für das siebte Beispiel ist der Quellcode in der Datei BeispielVBP im Verzeichnis
Bsp_7 einsehbar. Die folgenden Routinen werden aufgerufen, wenn der Schalter
Signale abfragen zur Programmlaufzeit im VB-Formular betätigt wird.

Code:
Private Sub bt_Eingang_abfragen_Click()
.
.
IF FT_GetModemStatus(lngHandle, ModemStatus) <> FT_OK Then
LoggerList.AddItem "Fehler bei Aufruf: FT_GetModemStatus"
Else
Me.Cb_cts.Value = (ModemStatus And &H10) / &H10
Me.cb_dsr.Value = (ModemStatus And &H20) / &H20
Me.cb_ri.Value = (ModemStatus And &H40) / &H40
Me.Cb_dcd.Value = (ModemStatus And &H80) / &H80
End If
.
.
End Sub
Der Funktionsaufruf FT_GetModemStatus zeigt den Zustand der jeweiligen Signalleitungen
im zurückgegebenen Wert ModemStatus in einzelnen Bits an. Diese müssen
abgefragt und einzeln weiter verarbeitet werden:

DCD RI DSR CTS X X X X = Modemstatus, die letzten 8 Bits
D7 D6 D5 D4 D0 = Datenbits
0 0 0 1 0 0 0 0 = Maske: &H10 (= HEX10)

Als Beispiel schauen wir uns die Verarbeitung von CTS an. CTS wird im Datenbit
D4 angezeigt. Mit (ModemStatus And &H10) wird das Datenbit D4 im ModemStatus
mit dem Datenbit D4 in der Maske &H10 logisch mit UND (AND) verknüpft.
Bei einer UND-Verknüpfung müssen beide Bits einen Wert von 1 besitzen, damit
das Ergebnis eine 1, bzw. ungleich 0 ist. Ist CTS 0, bleibt das Ergebnis 0 und das
Kontrollkäschen Cb_cts ist deaktiviert.
CTS = 0:
0 = CTS = 0
0 0 0 1 0 0 0 0 =MaskeHEX10
0 0 0 0 0 0 0 0 = Ergebnis = 0

CTS = 1:
1 = CTS = 1
0 0 0 1 0 0 0 0 =MaskeHEX10
0 0 0 1 0 0 0 0 = Ergebnis = Hex 10, bzw. dezimal 16

Nur wenn CTS eine 1 besitzt, erhält man in diesem Fall ein Ergebnis von 1. Das
Ergebnis aus (ModemStatus And &H10) würde in diesem Fall die Zahl 16
(= Hex10) sein. Damit das Ergebnis gleich alsWert 1 beim Kontrollkästchen Cb_cts
verwendet werden kann, muss noch durch die Maske &H10 geteilt werden.
Die weiteren Signale DCD, RI und DSR werden entsprechend der Position des Bits
im ModemStatus mit &H80, &H40 und &H20 maskiert.
Um den Eingang nun mit Delphi abzufragen habe ich in der "D2XXUnit.pas" nach FT_GetModemStatus gesucht und folgende Funktion gefunden:
function FT_GetModemStatus(ftHandle:Dword; ModemStatus:Pointer):FT_Result; stdcall; External FT_DLL_Name name 'FT_GetModemStatus';
Delphi-Quellcode:
Function Get_USB_Device_ModemStatus : FT_Result;
Begin
Result := FT_GetModemStatus(FT_Handle,@FT_Modem_Status);
If Result <> FT_OK then FT_Error_Report('FT_GetModemStatus',Result);
End;
Leider bekomme ich es einfach nicht hin diese Funktion zu nutzen.
Führe ich sie einfach aus, ergibt sie, egal ob es einen Signal gibt oder nicht, 0.

Wie kann ich die Funktion sinnvoll nutzen?

Vielen Dank für eure Mühe
mynamenixname
  Mit Zitat antworten Zitat
Alloc

Registriert seit: 18. Apr 2005
Ort: Griesheim
167 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Lernpaket: Experimente mit USB - FT232R USB UART

  Alt 16. Jan 2010, 12:49
Hi,

Zitat von mynamenixname:
function FT_GetModemStatus(ftHandle:Dword; ModemStatus:Pointer):FT_Result; stdcall; External FT_DLL_Name name 'FT_GetModemStatus';
Delphi-Quellcode:
Function Get_USB_Device_ModemStatus : FT_Result;
Begin
Result := FT_GetModemStatus(FT_Handle,@FT_Modem_Status);
If Result <> FT_OK then FT_Error_Report('FT_GetModemStatus',Result);
End;
Leider bekomme ich es einfach nicht hin diese Funktion zu nutzen.
Führe ich sie einfach aus, ergibt sie, egal ob es einen Signal gibt oder nicht, 0.
welche der beiden Funktionen hast du denn probiert? Die erste ist ja die "echte" aus der DLL von FTDI, die zweite ein Wrapper in der D2XXUnit (die durchaus schon etwas merkwürdig geschrieben ist ). Wenn du es nur mit letzterer Versucht hast: Ein Rückgabewert von 0 bedeutet nur, dass der Aufruf erfolgreich war. Das ist also gut. Den eigentlichen Wert speichert die Methode in der Variablen FT_Modem_Status in der D2XXUnit, den du dann auslesen kannst.

Grüße,
Chris
Christian Illy
ONI2.net, basicly every important link about Oni.
  Mit Zitat antworten Zitat
mynamenixname

Registriert seit: 16. Jan 2010
2 Beiträge
 
#3

Re: Lernpaket: Experimente mit USB - FT232R USB UART

  Alt 16. Jan 2010, 17:02
cool, danke (ich hatte die 2. Funktion genutzt, aber den wert nicht richtig abgefragt)
  Mit Zitat antworten Zitat
Dickaa

Registriert seit: 16. Feb 2010
2 Beiträge
 
#4

Re: Lernpaket: Experimente mit USB - FT232R USB UART

  Alt 16. Feb 2010, 19:39
Hallo Leute,
Ich weiß das hier ist eigentlich ein Delphi-Forum aber vielleicht kann mir dennoch jemand helfen.
Ich möchte das hier besprochene Experimentierset unter Java betreiben könnte es alternativ aber auch mit Delphi machen.
(Delphi hab ich in der Schule gelernt / Java jetzt im Studium)
Nun wollte ich mal wissen ob jemand weiß wo die Bibliotheken leichter einzu benden sind bzw. ob es da ein auf das Experiment zugeschnittenes Tutorial oder so gibt da ich weder in Delphi noch in Java mit Dll´s gearbeitet habe.

Danke für eure Hilfe!
Fabian
  Mit Zitat antworten Zitat
markusj

Registriert seit: 9. Dez 2005
Ort: Kandel
408 Beiträge
 
#5

Re: Lernpaket: Experimente mit USB - FT232R USB UART

  Alt 16. Feb 2010, 21:32
Ich habe vor längerer Zeit mal mit den FT232 und der DLL unter Delphi experimentiert, möchte hier aber etwas zu Java + FT232 sagen:
Du wirst das wohl so vergessen können, um mit Java die Hardware direkt ansprechen zu können, außer du bemühst das JNI (Java Native Interface) und evtl. noch C/Delphi um die DLL zu wrappen.
Es gibt wohl bereits ein Projekt mit diesem Ziel, https://jd2xx.dev.java.net/ - Wie weit das fortgeschritten ist, kann ich aber nicht beurteilen.

mfG
Markus
Markus
  Mit Zitat antworten Zitat
Dickaa

Registriert seit: 16. Feb 2010
2 Beiträge
 
#6

Re: Lernpaket: Experimente mit USB - FT232R USB UART

  Alt 16. Feb 2010, 22:10
OK Danke!!!
Dann werd ich doch wohl eher bei Delphi bleiben.
Hab das Projekt schon Teilweise mit Hilfe des Com-Ports verwirklicht - über USB ist es aber vielseitiger.
Werd mich dan mal mit DLL´s in Delphi beschäftigen!!
  Mit Zitat antworten Zitat
Alloc

Registriert seit: 18. Apr 2005
Ort: Griesheim
167 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Lernpaket: Experimente mit USB - FT232R USB UART

  Alt 17. Feb 2010, 17:56
Zitat von markusj:
Es gibt wohl bereits ein Projekt mit diesem Ziel, https://jd2xx.dev.java.net/ - Wie weit das fortgeschritten ist, kann ich aber nicht beurteilen.
Ist eigentlich genauso weit, wie die nativen FTD2XX sind
Der Wrapper ist in einem größeren Projekt im Einsatz, da klappt das wunderbär (zumindest mit Windows + Linux) =)

Grüße,
Chris
Christian Illy
ONI2.net, basicly every important link about Oni.
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#8

AW: Lernpaket: Experimente mit USB - FT232R USB UART

  Alt 8. Okt 2010, 19:32
Der Thread ist zwar etwas alt, aber weil ich mir gerade einige USB-I2C-Wandler (Devantech USB zu I2C Interface Modul) gekauft habe, suchte ich nach DELPHI-Software und andere Infos (FT232R USB UART).

http://www.ftdichip.com/Products/FT232R.htm
http://code.google.com/p/ftdiclass/downloads/list
http://code.google.com/p/ftdiclass/d...-08%20v0.2.zip
http://code.google.com/p/ftdiclass/d...-08%20v0.2.zip
http://www.ftdichip.com/Support/Docu...R/USB232R1.zip
http://www.ftdichip.com/Drivers/VCP.htm

Geändert von hathor ( 8. Okt 2010 um 19:45 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz