Forum: Mikrocontroller und Digitale Elektronik FTDI D2XX Treiber - Problem mit FT_OpenEx


von TK (Gast)


Lesenswert?

Hallo zusammen,

ich spiele gerade mit der Funktion FT_Open bzw. FT_OpenEx herum und
bekomme bei FT_OpenEx immer einen Fehler 'FT_INVALID_HANDLE'.
Wenn ich das Device über FT_Open(0,&ftHandle) öffne, ist alles OK und 
ich kann weiterarbeiten.
Der Versuch das Device über 
FT_OpenEx(&loc_id[0],FT_OPEN_BY_LOCATION,&ftHandle)
zu öffnen, mündet im o.a. Fehler.
Die loc_id habe ich - wie von FTDI beschrieben mittels
FT_ListDevices(loc_id,&anz,FT_LIST_ALL | FT_OPEN_BY_LOCATION) ermittelt.
Ich habe mit FT_PROG die zurückgegebene Location-Id überprüft - diese 
stimmt überein.
Betriebssystem ist WIN XP SP3.

Hier der Codeausschnitt:

DWORD anz=0,loc_id[64];
FT_HANDLE ftHandle;

FT_STATUS ftStatus=FT_ListDevices(&anz,NULL,FT_LIST_NUMBER_ONLY);
if (ftStatus == FT_OK)
{
  ftStatus=FT_ListDevices(&loc_id,&anz,FT_LIST_ALL | 
FT_OPEN_BY_LOCATION);
}
if ((ftStatus == FT_OK) && (anz > 0))
{
  ftStatus = FT_OpenEx(&loc_id[0],FT_OPEN_BY_LOCATION,&ftHandle);
  //  ftStatus = FT_Open(0,&ftHandle);  //die Funktion geht
}
if ((ftStatus == FT_OK) && (anz > 0))
{
  if (ftHandle != FT_INVALID_HANDLE)
  {
    // hier gehts weiter
  }
  else
  {
    // hier ist ein Fehler aufgetreten
  }
}

Wo könnte der Fehler liegen?
Momentan benutze ich die FTD2XX.DLL in der Version 3.1.8.1

Gruß
TK

von Ralf (Gast)


Lesenswert?

Ist das Problem noch aktuell?

Kann es sein dass hier:
1
ftStatus = FT_OpenEx(&loc_id[0],FT_OPEN_BY_LOCATION,&ftHandle);
die Adresse des ersten Elements des loc_id-Arrays übergeben wird anstatt 
der Inhalt? Bin mir nicht sicher, wie C das genau handhabt. Ich meine 
mal gelesen zu haben, dass ein Array-Zugriff im Prinzip wie ein Pointer 
gehandhabt wird, aber mit dem '&' sagst du ja explizit, dass du die 
Adresse haben willst.

Ralf

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.